Commit | Line | Data |
---|---|---|
6a01f230 | 1 | /* -*- linux-c -*- |
9bd50df6 | 2 | * include/asm-blackfin/ipipe_base.h |
6a01f230 YL |
3 | * |
4 | * Copyright (C) 2007 Philippe Gerum. | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139, | |
9 | * USA; either version 2 of the License, or (at your option) any later | |
10 | * version. | |
11 | * | |
12 | * This program is distributed in the hope that it will be useful, | |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | * GNU General Public License for more details. | |
16 | * | |
17 | * You should have received a copy of the GNU General Public License | |
18 | * along with this program; if not, write to the Free Software | |
19 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
20 | */ | |
21 | ||
22 | #ifndef __ASM_BLACKFIN_IPIPE_BASE_H | |
23 | #define __ASM_BLACKFIN_IPIPE_BASE_H | |
24 | ||
25 | #ifdef CONFIG_IPIPE | |
26 | ||
5b5da4c4 PG |
27 | #include <asm/bitsperlong.h> |
28 | #include <mach/irq.h> | |
29 | ||
6a01f230 | 30 | #define IPIPE_NR_XIRQS NR_IRQS |
6a01f230 | 31 | |
9bd50df6 PG |
32 | /* Blackfin-specific, per-cpu pipeline status */ |
33 | #define IPIPE_SYNCDEFER_FLAG 15 | |
34 | #define IPIPE_SYNCDEFER_MASK (1L << IPIPE_SYNCDEFER_MASK) | |
6a01f230 YL |
35 | |
36 | /* Blackfin traps -- i.e. exception vector numbers */ | |
37 | #define IPIPE_NR_FAULTS 52 /* We leave a gap after VEC_ILL_RES. */ | |
38 | /* Pseudo-vectors used for kernel events */ | |
39 | #define IPIPE_FIRST_EVENT IPIPE_NR_FAULTS | |
40 | #define IPIPE_EVENT_SYSCALL (IPIPE_FIRST_EVENT) | |
41 | #define IPIPE_EVENT_SCHEDULE (IPIPE_FIRST_EVENT + 1) | |
42 | #define IPIPE_EVENT_SIGWAKE (IPIPE_FIRST_EVENT + 2) | |
43 | #define IPIPE_EVENT_SETSCHED (IPIPE_FIRST_EVENT + 3) | |
44 | #define IPIPE_EVENT_INIT (IPIPE_FIRST_EVENT + 4) | |
45 | #define IPIPE_EVENT_EXIT (IPIPE_FIRST_EVENT + 5) | |
46 | #define IPIPE_EVENT_CLEANUP (IPIPE_FIRST_EVENT + 6) | |
5b5da4c4 PG |
47 | #define IPIPE_EVENT_RETURN (IPIPE_FIRST_EVENT + 7) |
48 | #define IPIPE_LAST_EVENT IPIPE_EVENT_RETURN | |
6a01f230 YL |
49 | #define IPIPE_NR_EVENTS (IPIPE_LAST_EVENT + 1) |
50 | ||
51 | #define IPIPE_TIMER_IRQ IRQ_CORETMR | |
52 | ||
5b5da4c4 PG |
53 | #define __IPIPE_FEATURE_SYSINFO_V2 1 |
54 | ||
6a01f230 YL |
55 | #ifndef __ASSEMBLY__ |
56 | ||
6a01f230 YL |
57 | extern unsigned long __ipipe_root_status; /* Alias to ipipe_root_cpudom_var(status) */ |
58 | ||
d2685fb7 PG |
59 | void __ipipe_stall_root(void); |
60 | ||
61 | unsigned long __ipipe_test_and_stall_root(void); | |
62 | ||
63 | unsigned long __ipipe_test_root(void); | |
64 | ||
65 | void __ipipe_lock_root(void); | |
66 | ||
67 | void __ipipe_unlock_root(void); | |
6a01f230 YL |
68 | |
69 | #endif /* !__ASSEMBLY__ */ | |
70 | ||
5b5da4c4 PG |
71 | #define __IPIPE_FEATURE_SYSINFO_V2 1 |
72 | ||
6a01f230 YL |
73 | #endif /* CONFIG_IPIPE */ |
74 | ||
75 | #endif /* !__ASM_BLACKFIN_IPIPE_BASE_H */ |