diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2008-12-31 07:35:57 -0500 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2008-12-31 07:35:57 -0500 |
commit | 2ca1a615835d9f4990f42102ab1f2ef434e7e89c (patch) | |
tree | 726cf3d5f29a6c66c44e4bd68e7ebed2fd83d059 /arch/sparc/include | |
parent | e12f0102ac81d660c9f801d0a0e10ccf4537a9de (diff) | |
parent | 6a94cb73064c952255336cc57731904174b2c58f (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
arch/x86/kernel/io_apic.c
Diffstat (limited to 'arch/sparc/include')
29 files changed, 629 insertions, 963 deletions
diff --git a/arch/sparc/include/asm/Kbuild b/arch/sparc/include/asm/Kbuild index 2d2769d766ec..89c260aab45c 100644 --- a/arch/sparc/include/asm/Kbuild +++ b/arch/sparc/include/asm/Kbuild | |||
@@ -15,8 +15,6 @@ header-y += signal_32.h | |||
15 | header-y += signal_64.h | 15 | header-y += signal_64.h |
16 | header-y += stat_32.h | 16 | header-y += stat_32.h |
17 | header-y += stat_64.h | 17 | header-y += stat_64.h |
18 | header-y += unistd_32.h | ||
19 | header-y += unistd_64.h | ||
20 | 18 | ||
21 | header-y += apc.h | 19 | header-y += apc.h |
22 | header-y += asi.h | 20 | header-y += asi.h |
diff --git a/arch/sparc/include/asm/asm.h b/arch/sparc/include/asm/asm.h new file mode 100644 index 000000000000..e8e1d94b4cc9 --- /dev/null +++ b/arch/sparc/include/asm/asm.h | |||
@@ -0,0 +1,40 @@ | |||
1 | #ifndef _SPARC_ASM_H | ||
2 | #define _SPARC_ASM_H | ||
3 | |||
4 | /* Macros to assist the sharing of assembler code between 32-bit and | ||
5 | * 64-bit sparc. | ||
6 | */ | ||
7 | |||
8 | #ifdef CONFIG_SPARC64 | ||
9 | #define BRANCH32(TYPE, PREDICT, DEST) \ | ||
10 | TYPE,PREDICT %icc, DEST | ||
11 | #define BRANCH32_ANNUL(TYPE, PREDICT, DEST) \ | ||
12 | TYPE,a,PREDICT %icc, DEST | ||
13 | #define BRANCH_REG_ZERO(PREDICT, REG, DEST) \ | ||
14 | brz,PREDICT REG, DEST | ||
15 | #define BRANCH_REG_ZERO_ANNUL(PREDICT, REG, DEST) \ | ||
16 | brz,a,PREDICT REG, DEST | ||
17 | #define BRANCH_REG_NOT_ZERO(PREDICT, REG, DEST) \ | ||
18 | brnz,PREDICT REG, DEST | ||
19 | #define BRANCH_REG_NOT_ZERO_ANNUL(PREDICT, REG, DEST) \ | ||
20 | brnz,a,PREDICT REG, DEST | ||
21 | #else | ||
22 | #define BRANCH32(TYPE, PREDICT, DEST) \ | ||
23 | TYPE DEST | ||
24 | #define BRANCH32_ANNUL(TYPE, PREDICT, DEST) \ | ||
25 | TYPE,a DEST | ||
26 | #define BRANCH_REG_ZERO(PREDICT, REG, DEST) \ | ||
27 | cmp REG, 0; \ | ||
28 | be DEST | ||
29 | #define BRANCH_REG_ZERO_ANNUL(PREDICT, REG, DEST) \ | ||
30 | cmp REG, 0; \ | ||
31 | be,a DEST | ||
32 | #define BRANCH_REG_NOT_ZERO(PREDICT, REG, DEST) \ | ||
33 | cmp REG, 0; \ | ||
34 | bne DEST | ||
35 | #define BRANCH_REG_NOT_ZERO_ANNUL(PREDICT, REG, DEST) \ | ||
36 | cmp REG, 0; \ | ||
37 | bne,a DEST | ||
38 | #endif | ||
39 | |||
40 | #endif /* _SPARC_ASM_H */ | ||
diff --git a/arch/sparc/include/asm/atomic_64.h b/arch/sparc/include/asm/atomic_64.h index 2c71ec4a3b18..5982c5ae7f07 100644 --- a/arch/sparc/include/asm/atomic_64.h +++ b/arch/sparc/include/asm/atomic_64.h | |||
@@ -112,17 +112,10 @@ static inline int atomic64_add_unless(atomic64_t *v, long a, long u) | |||
112 | #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) | 112 | #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) |
113 | 113 | ||
114 | /* Atomic operations are already serializing */ | 114 | /* Atomic operations are already serializing */ |
115 | #ifdef CONFIG_SMP | ||
116 | #define smp_mb__before_atomic_dec() membar_storeload_loadload(); | ||
117 | #define smp_mb__after_atomic_dec() membar_storeload_storestore(); | ||
118 | #define smp_mb__before_atomic_inc() membar_storeload_loadload(); | ||
119 | #define smp_mb__after_atomic_inc() membar_storeload_storestore(); | ||
120 | #else | ||
121 | #define smp_mb__before_atomic_dec() barrier() | 115 | #define smp_mb__before_atomic_dec() barrier() |
122 | #define smp_mb__after_atomic_dec() barrier() | 116 | #define smp_mb__after_atomic_dec() barrier() |
123 | #define smp_mb__before_atomic_inc() barrier() | 117 | #define smp_mb__before_atomic_inc() barrier() |
124 | #define smp_mb__after_atomic_inc() barrier() | 118 | #define smp_mb__after_atomic_inc() barrier() |
125 | #endif | ||
126 | 119 | ||
127 | #include <asm-generic/atomic.h> | 120 | #include <asm-generic/atomic.h> |
128 | #endif /* !(__ARCH_SPARC64_ATOMIC__) */ | 121 | #endif /* !(__ARCH_SPARC64_ATOMIC__) */ |
diff --git a/arch/sparc/include/asm/bitops_64.h b/arch/sparc/include/asm/bitops_64.h index bb87b8080220..e72ac9cdfb98 100644 --- a/arch/sparc/include/asm/bitops_64.h +++ b/arch/sparc/include/asm/bitops_64.h | |||
@@ -23,13 +23,8 @@ extern void change_bit(unsigned long nr, volatile unsigned long *addr); | |||
23 | 23 | ||
24 | #include <asm-generic/bitops/non-atomic.h> | 24 | #include <asm-generic/bitops/non-atomic.h> |
25 | 25 | ||
26 | #ifdef CONFIG_SMP | ||
27 | #define smp_mb__before_clear_bit() membar_storeload_loadload() | ||
28 | #define smp_mb__after_clear_bit() membar_storeload_storestore() | ||
29 | #else | ||
30 | #define smp_mb__before_clear_bit() barrier() | 26 | #define smp_mb__before_clear_bit() barrier() |
31 | #define smp_mb__after_clear_bit() barrier() | 27 | #define smp_mb__after_clear_bit() barrier() |
32 | #endif | ||
33 | 28 | ||
34 | #include <asm-generic/bitops/ffz.h> | 29 | #include <asm-generic/bitops/ffz.h> |
35 | #include <asm-generic/bitops/__ffs.h> | 30 | #include <asm-generic/bitops/__ffs.h> |
diff --git a/arch/sparc/include/asm/hypervisor.h b/arch/sparc/include/asm/hypervisor.h index 109ae24ba242..bafe5a631b6d 100644 --- a/arch/sparc/include/asm/hypervisor.h +++ b/arch/sparc/include/asm/hypervisor.h | |||
@@ -2713,6 +2713,30 @@ extern unsigned long sun4v_ldc_revoke(unsigned long channel, | |||
2713 | */ | 2713 | */ |
2714 | #define HV_FAST_SET_PERFREG 0x101 | 2714 | #define HV_FAST_SET_PERFREG 0x101 |
2715 | 2715 | ||
2716 | #define HV_N2_PERF_SPARC_CTL 0x0 | ||
2717 | #define HV_N2_PERF_DRAM_CTL0 0x1 | ||
2718 | #define HV_N2_PERF_DRAM_CNT0 0x2 | ||
2719 | #define HV_N2_PERF_DRAM_CTL1 0x3 | ||
2720 | #define HV_N2_PERF_DRAM_CNT1 0x4 | ||
2721 | #define HV_N2_PERF_DRAM_CTL2 0x5 | ||
2722 | #define HV_N2_PERF_DRAM_CNT2 0x6 | ||
2723 | #define HV_N2_PERF_DRAM_CTL3 0x7 | ||
2724 | #define HV_N2_PERF_DRAM_CNT3 0x8 | ||
2725 | |||
2726 | #define HV_FAST_N2_GET_PERFREG 0x104 | ||
2727 | #define HV_FAST_N2_SET_PERFREG 0x105 | ||
2728 | |||
2729 | #ifndef __ASSEMBLY__ | ||
2730 | extern unsigned long sun4v_niagara_getperf(unsigned long reg, | ||
2731 | unsigned long *val); | ||
2732 | extern unsigned long sun4v_niagara_setperf(unsigned long reg, | ||
2733 | unsigned long val); | ||
2734 | extern unsigned long sun4v_niagara2_getperf(unsigned long reg, | ||
2735 | unsigned long *val); | ||
2736 | extern unsigned long sun4v_niagara2_setperf(unsigned long reg, | ||
2737 | unsigned long val); | ||
2738 | #endif | ||
2739 | |||
2716 | /* MMU statistics services. | 2740 | /* MMU statistics services. |
2717 | * | 2741 | * |
2718 | * The hypervisor maintains MMU statistics and privileged code provides | 2742 | * The hypervisor maintains MMU statistics and privileged code provides |
diff --git a/arch/sparc/include/asm/irq_32.h b/arch/sparc/include/asm/irq_32.h index fe205cc444b8..ea43057d4763 100644 --- a/arch/sparc/include/asm/irq_32.h +++ b/arch/sparc/include/asm/irq_32.h | |||
@@ -12,4 +12,5 @@ | |||
12 | 12 | ||
13 | #define irq_canonicalize(irq) (irq) | 13 | #define irq_canonicalize(irq) (irq) |
14 | 14 | ||
15 | extern void __init init_IRQ(void); | ||
15 | #endif | 16 | #endif |
diff --git a/arch/sparc/include/asm/irq_64.h b/arch/sparc/include/asm/irq_64.h index 71673eca3660..d47d4a1955a9 100644 --- a/arch/sparc/include/asm/irq_64.h +++ b/arch/sparc/include/asm/irq_64.h | |||
@@ -66,6 +66,9 @@ extern void virt_irq_free(unsigned int virt_irq); | |||
66 | extern void __init init_IRQ(void); | 66 | extern void __init init_IRQ(void); |
67 | extern void fixup_irqs(void); | 67 | extern void fixup_irqs(void); |
68 | 68 | ||
69 | extern int register_perfctr_intr(void (*handler)(struct pt_regs *)); | ||
70 | extern void release_perfctr_intr(void (*handler)(struct pt_regs *)); | ||
71 | |||
69 | static inline void set_softint(unsigned long bits) | 72 | static inline void set_softint(unsigned long bits) |
70 | { | 73 | { |
71 | __asm__ __volatile__("wr %0, 0x0, %%set_softint" | 74 | __asm__ __volatile__("wr %0, 0x0, %%set_softint" |
diff --git a/arch/sparc/include/asm/irqflags_64.h b/arch/sparc/include/asm/irqflags_64.h index bb42e59162aa..8b49bf920df3 100644 --- a/arch/sparc/include/asm/irqflags_64.h +++ b/arch/sparc/include/asm/irqflags_64.h | |||
@@ -10,6 +10,8 @@ | |||
10 | #ifndef _ASM_IRQFLAGS_H | 10 | #ifndef _ASM_IRQFLAGS_H |
11 | #define _ASM_IRQFLAGS_H | 11 | #define _ASM_IRQFLAGS_H |
12 | 12 | ||
13 | #include <asm/pil.h> | ||
14 | |||
13 | #ifndef __ASSEMBLY__ | 15 | #ifndef __ASSEMBLY__ |
14 | 16 | ||
15 | static inline unsigned long __raw_local_save_flags(void) | 17 | static inline unsigned long __raw_local_save_flags(void) |
@@ -40,9 +42,9 @@ static inline void raw_local_irq_restore(unsigned long flags) | |||
40 | static inline void raw_local_irq_disable(void) | 42 | static inline void raw_local_irq_disable(void) |
41 | { | 43 | { |
42 | __asm__ __volatile__( | 44 | __asm__ __volatile__( |
43 | "wrpr 15, %%pil" | 45 | "wrpr %0, %%pil" |
44 | : /* no outputs */ | 46 | : /* no outputs */ |
45 | : /* no inputs */ | 47 | : "i" (PIL_NORMAL_MAX) |
46 | : "memory" | 48 | : "memory" |
47 | ); | 49 | ); |
48 | } | 50 | } |
diff --git a/arch/sparc/include/asm/module.h b/arch/sparc/include/asm/module.h index e82cf9a3e60e..ff8e02d80334 100644 --- a/arch/sparc/include/asm/module.h +++ b/arch/sparc/include/asm/module.h | |||
@@ -1,8 +1,24 @@ | |||
1 | #ifndef ___ASM_SPARC_MODULE_H | 1 | #ifndef __SPARC_MODULE_H |
2 | #define ___ASM_SPARC_MODULE_H | 2 | #define __SPARC_MODULE_H |
3 | #if defined(__sparc__) && defined(__arch64__) | 3 | struct mod_arch_specific { }; |
4 | #include <asm/module_64.h> | 4 | |
5 | #else | 5 | /* |
6 | #include <asm/module_32.h> | 6 | * Use some preprocessor magic to define the correct symbol |
7 | #endif | 7 | * for sparc32 and sparc64. |
8 | #endif | 8 | * Elf_Addr becomes Elf32_Addr for sparc32 and Elf64_Addr for sparc64 |
9 | */ | ||
10 | #define ___ELF(a, b, c) a##b##c | ||
11 | #define __ELF(a, b, c) ___ELF(a, b, c) | ||
12 | #define _Elf(t) __ELF(Elf, CONFIG_BITS, t) | ||
13 | #define _ELF(t) __ELF(ELF, CONFIG_BITS, t) | ||
14 | |||
15 | #define Elf_Shdr _Elf(_Shdr) | ||
16 | #define Elf_Sym _Elf(_Sym) | ||
17 | #define Elf_Ehdr _Elf(_Ehdr) | ||
18 | #define Elf_Rela _Elf(_Rela) | ||
19 | #define Elf_Addr _Elf(_Addr) | ||
20 | |||
21 | #define ELF_R_SYM _ELF(_R_SYM) | ||
22 | #define ELF_R_TYPE _ELF(_R_TYPE) | ||
23 | |||
24 | #endif /* __SPARC_MODULE_H */ | ||
diff --git a/arch/sparc/include/asm/module_32.h b/arch/sparc/include/asm/module_32.h deleted file mode 100644 index cbd9e67b0c0b..000000000000 --- a/arch/sparc/include/asm/module_32.h +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | #ifndef _ASM_SPARC_MODULE_H | ||
2 | #define _ASM_SPARC_MODULE_H | ||
3 | struct mod_arch_specific { }; | ||
4 | #define Elf_Shdr Elf32_Shdr | ||
5 | #define Elf_Sym Elf32_Sym | ||
6 | #define Elf_Ehdr Elf32_Ehdr | ||
7 | #endif /* _ASM_SPARC_MODULE_H */ | ||
diff --git a/arch/sparc/include/asm/module_64.h b/arch/sparc/include/asm/module_64.h deleted file mode 100644 index 3d77ba465783..000000000000 --- a/arch/sparc/include/asm/module_64.h +++ /dev/null | |||
@@ -1,7 +0,0 @@ | |||
1 | #ifndef _ASM_SPARC64_MODULE_H | ||
2 | #define _ASM_SPARC64_MODULE_H | ||
3 | struct mod_arch_specific { }; | ||
4 | #define Elf_Shdr Elf64_Shdr | ||
5 | #define Elf_Sym Elf64_Sym | ||
6 | #define Elf_Ehdr Elf64_Ehdr | ||
7 | #endif /* _ASM_SPARC64_MODULE_H */ | ||
diff --git a/arch/sparc/include/asm/openprom_32.h b/arch/sparc/include/asm/openprom_32.h index 8b1649f29ed9..875da3552d80 100644 --- a/arch/sparc/include/asm/openprom_32.h +++ b/arch/sparc/include/asm/openprom_32.h | |||
@@ -170,9 +170,9 @@ struct linux_romvec { | |||
170 | struct linux_nodeops { | 170 | struct linux_nodeops { |
171 | int (*no_nextnode)(int node); | 171 | int (*no_nextnode)(int node); |
172 | int (*no_child)(int node); | 172 | int (*no_child)(int node); |
173 | int (*no_proplen)(int node, char *name); | 173 | int (*no_proplen)(int node, const char *name); |
174 | int (*no_getprop)(int node, char *name, char *val); | 174 | int (*no_getprop)(int node, const char *name, char *val); |
175 | int (*no_setprop)(int node, char *name, char *val, int len); | 175 | int (*no_setprop)(int node, const char *name, char *val, int len); |
176 | char * (*no_nextprop)(int node, char *name); | 176 | char * (*no_nextprop)(int node, char *name); |
177 | }; | 177 | }; |
178 | 178 | ||
diff --git a/arch/sparc/include/asm/oplib_32.h b/arch/sparc/include/asm/oplib_32.h index 699da05235c8..73d45521db04 100644 --- a/arch/sparc/include/asm/oplib_32.h +++ b/arch/sparc/include/asm/oplib_32.h | |||
@@ -136,7 +136,7 @@ extern char prom_getchar(void); | |||
136 | extern void prom_putchar(char character); | 136 | extern void prom_putchar(char character); |
137 | 137 | ||
138 | /* Prom's internal routines, don't use in kernel/boot code. */ | 138 | /* Prom's internal routines, don't use in kernel/boot code. */ |
139 | extern void prom_printf(char *fmt, ...); | 139 | extern void prom_printf(const char *fmt, ...); |
140 | extern void prom_write(const char *buf, unsigned int len); | 140 | extern void prom_write(const char *buf, unsigned int len); |
141 | 141 | ||
142 | /* Multiprocessor operations... */ | 142 | /* Multiprocessor operations... */ |
@@ -199,12 +199,12 @@ extern int prom_getsibling(int node); | |||
199 | /* Get the length, at the passed node, of the given property type. | 199 | /* Get the length, at the passed node, of the given property type. |
200 | * Returns -1 on error (ie. no such property at this node). | 200 | * Returns -1 on error (ie. no such property at this node). |
201 | */ | 201 | */ |
202 | extern int prom_getproplen(int thisnode, char *property); | 202 | extern int prom_getproplen(int thisnode, const char *property); |
203 | 203 | ||
204 | /* Fetch the requested property using the given buffer. Returns | 204 | /* Fetch the requested property using the given buffer. Returns |
205 | * the number of bytes the prom put into your buffer or -1 on error. | 205 | * the number of bytes the prom put into your buffer or -1 on error. |
206 | */ | 206 | */ |
207 | extern int __must_check prom_getproperty(int thisnode, char *property, | 207 | extern int __must_check prom_getproperty(int thisnode, const char *property, |
208 | char *prop_buffer, int propbuf_size); | 208 | char *prop_buffer, int propbuf_size); |
209 | 209 | ||
210 | /* Acquire an integer property. */ | 210 | /* Acquire an integer property. */ |
@@ -246,7 +246,7 @@ extern int prom_node_has_property(int node, char *property); | |||
246 | /* Set the indicated property at the given node with the passed value. | 246 | /* Set the indicated property at the given node with the passed value. |
247 | * Returns the number of bytes of your value that the prom took. | 247 | * Returns the number of bytes of your value that the prom took. |
248 | */ | 248 | */ |
249 | extern int prom_setprop(int node, char *prop_name, char *prop_value, | 249 | extern int prom_setprop(int node, const char *prop_name, char *prop_value, |
250 | int value_size); | 250 | int value_size); |
251 | 251 | ||
252 | extern int prom_pathtoinode(char *path); | 252 | extern int prom_pathtoinode(char *path); |
diff --git a/arch/sparc/include/asm/pil.h b/arch/sparc/include/asm/pil.h index 71819bb943fc..d573820c0ff4 100644 --- a/arch/sparc/include/asm/pil.h +++ b/arch/sparc/include/asm/pil.h | |||
@@ -10,7 +10,12 @@ | |||
10 | * | 10 | * |
11 | * In fact any XCALL which has to etrap/rtrap has a problem because | 11 | * In fact any XCALL which has to etrap/rtrap has a problem because |
12 | * it is difficult to prevent rtrap from running BH's, and that would | 12 | * it is difficult to prevent rtrap from running BH's, and that would |
13 | * need to be done if the XCALL arrived while %pil==15. | 13 | * need to be done if the XCALL arrived while %pil==PIL_NORMAL_MAX. |
14 | * | ||
15 | * Finally, in order to handle profiling events even when a | ||
16 | * local_irq_disable() is in progress, we only disable up to level 14 | ||
17 | * interrupts. Profile counter overflow interrupts arrive at level | ||
18 | * 15. | ||
14 | */ | 19 | */ |
15 | #define PIL_SMP_CALL_FUNC 1 | 20 | #define PIL_SMP_CALL_FUNC 1 |
16 | #define PIL_SMP_RECEIVE_SIGNAL 2 | 21 | #define PIL_SMP_RECEIVE_SIGNAL 2 |
@@ -18,5 +23,7 @@ | |||
18 | #define PIL_SMP_CTX_NEW_VERSION 4 | 23 | #define PIL_SMP_CTX_NEW_VERSION 4 |
19 | #define PIL_DEVICE_IRQ 5 | 24 | #define PIL_DEVICE_IRQ 5 |
20 | #define PIL_SMP_CALL_FUNC_SNGL 6 | 25 | #define PIL_SMP_CALL_FUNC_SNGL 6 |
26 | #define PIL_NORMAL_MAX 14 | ||
27 | #define PIL_NMI 15 | ||
21 | 28 | ||
22 | #endif /* !(_SPARC64_PIL_H) */ | 29 | #endif /* !(_SPARC64_PIL_H) */ |
diff --git a/arch/sparc/include/asm/scatterlist.h b/arch/sparc/include/asm/scatterlist.h index ec21a4517641..e580f5581c88 100644 --- a/arch/sparc/include/asm/scatterlist.h +++ b/arch/sparc/include/asm/scatterlist.h | |||
@@ -1,8 +1,27 @@ | |||
1 | #ifndef ___ASM_SPARC_SCATTERLIST_H | 1 | #ifndef _SPARC_SCATTERLIST_H |
2 | #define ___ASM_SPARC_SCATTERLIST_H | 2 | #define _SPARC_SCATTERLIST_H |
3 | #if defined(__sparc__) && defined(__arch64__) | 3 | |
4 | #include <asm/scatterlist_64.h> | 4 | #include <asm/page.h> |
5 | #else | 5 | #include <asm/types.h> |
6 | #include <asm/scatterlist_32.h> | 6 | |
7 | #endif | 7 | struct scatterlist { |
8 | #ifdef CONFIG_DEBUG_SG | ||
9 | unsigned long sg_magic; | ||
8 | #endif | 10 | #endif |
11 | unsigned long page_link; | ||
12 | unsigned int offset; | ||
13 | |||
14 | unsigned int length; | ||
15 | |||
16 | dma_addr_t dma_address; | ||
17 | __u32 dma_length; | ||
18 | }; | ||
19 | |||
20 | #define sg_dma_address(sg) ((sg)->dma_address) | ||
21 | #define sg_dma_len(sg) ((sg)->dma_length) | ||
22 | |||
23 | #define ISA_DMA_THRESHOLD (~0UL) | ||
24 | |||
25 | #define ARCH_HAS_SG_CHAIN | ||
26 | |||
27 | #endif /* !(_SPARC_SCATTERLIST_H) */ | ||
diff --git a/arch/sparc/include/asm/scatterlist_32.h b/arch/sparc/include/asm/scatterlist_32.h deleted file mode 100644 index c82609ca1d0f..000000000000 --- a/arch/sparc/include/asm/scatterlist_32.h +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | #ifndef _SPARC_SCATTERLIST_H | ||
2 | #define _SPARC_SCATTERLIST_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | struct scatterlist { | ||
7 | #ifdef CONFIG_DEBUG_SG | ||
8 | unsigned long sg_magic; | ||
9 | #endif | ||
10 | unsigned long page_link; | ||
11 | unsigned int offset; | ||
12 | |||
13 | unsigned int length; | ||
14 | |||
15 | __u32 dvma_address; /* A place to hang host-specific addresses at. */ | ||
16 | __u32 dvma_length; | ||
17 | }; | ||
18 | |||
19 | #define sg_dma_address(sg) ((sg)->dvma_address) | ||
20 | #define sg_dma_len(sg) ((sg)->dvma_length) | ||
21 | |||
22 | #define ISA_DMA_THRESHOLD (~0UL) | ||
23 | |||
24 | #define ARCH_HAS_SG_CHAIN | ||
25 | |||
26 | #endif /* !(_SPARC_SCATTERLIST_H) */ | ||
diff --git a/arch/sparc/include/asm/scatterlist_64.h b/arch/sparc/include/asm/scatterlist_64.h deleted file mode 100644 index 81bd058f9382..000000000000 --- a/arch/sparc/include/asm/scatterlist_64.h +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | #ifndef _SPARC64_SCATTERLIST_H | ||
2 | #define _SPARC64_SCATTERLIST_H | ||
3 | |||
4 | #include <asm/page.h> | ||
5 | #include <asm/types.h> | ||
6 | |||
7 | struct scatterlist { | ||
8 | #ifdef CONFIG_DEBUG_SG | ||
9 | unsigned long sg_magic; | ||
10 | #endif | ||
11 | unsigned long page_link; | ||
12 | unsigned int offset; | ||
13 | |||
14 | unsigned int length; | ||
15 | |||
16 | dma_addr_t dma_address; | ||
17 | __u32 dma_length; | ||
18 | }; | ||
19 | |||
20 | #define sg_dma_address(sg) ((sg)->dma_address) | ||
21 | #define sg_dma_len(sg) ((sg)->dma_length) | ||
22 | |||
23 | #define ISA_DMA_THRESHOLD (~0UL) | ||
24 | |||
25 | #define ARCH_HAS_SG_CHAIN | ||
26 | |||
27 | #endif /* !(_SPARC64_SCATTERLIST_H) */ | ||
diff --git a/arch/sparc/include/asm/sections.h b/arch/sparc/include/asm/sections.h index c7c69b00967f..0b0553bbd8a0 100644 --- a/arch/sparc/include/asm/sections.h +++ b/arch/sparc/include/asm/sections.h | |||
@@ -1,8 +1,10 @@ | |||
1 | #ifndef ___ASM_SPARC_SECTIONS_H | 1 | #ifndef __SPARC_SECTIONS_H |
2 | #define ___ASM_SPARC_SECTIONS_H | 2 | #define __SPARC_SECTIONS_H |
3 | #if defined(__sparc__) && defined(__arch64__) | 3 | |
4 | #include <asm/sections_64.h> | 4 | /* nothing to see, move along */ |
5 | #else | 5 | #include <asm-generic/sections.h> |
6 | #include <asm/sections_32.h> | 6 | |
7 | #endif | 7 | /* sparc entry point */ |
8 | extern char _start[]; | ||
9 | |||
8 | #endif | 10 | #endif |
diff --git a/arch/sparc/include/asm/sections_32.h b/arch/sparc/include/asm/sections_32.h deleted file mode 100644 index 6832841df051..000000000000 --- a/arch/sparc/include/asm/sections_32.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _SPARC_SECTIONS_H | ||
2 | #define _SPARC_SECTIONS_H | ||
3 | |||
4 | #include <asm-generic/sections.h> | ||
5 | |||
6 | #endif | ||
diff --git a/arch/sparc/include/asm/sections_64.h b/arch/sparc/include/asm/sections_64.h deleted file mode 100644 index 3f4b9fdc28d0..000000000000 --- a/arch/sparc/include/asm/sections_64.h +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | #ifndef _SPARC64_SECTIONS_H | ||
2 | #define _SPARC64_SECTIONS_H | ||
3 | |||
4 | /* nothing to see, move along */ | ||
5 | #include <asm-generic/sections.h> | ||
6 | |||
7 | extern char _start[]; | ||
8 | |||
9 | #endif | ||
diff --git a/arch/sparc/include/asm/spinlock_64.h b/arch/sparc/include/asm/spinlock_64.h index 120cfe4577c7..c4d274d330e9 100644 --- a/arch/sparc/include/asm/spinlock_64.h +++ b/arch/sparc/include/asm/spinlock_64.h | |||
@@ -13,17 +13,12 @@ | |||
13 | * and rebuild your kernel. | 13 | * and rebuild your kernel. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | /* All of these locking primitives are expected to work properly | 16 | /* Because we play games to save cycles in the non-contention case, we |
17 | * even in an RMO memory model, which currently is what the kernel | 17 | * need to be extra careful about branch targets into the "spinning" |
18 | * runs in. | 18 | * code. They live in their own section, but the newer V9 branches |
19 | * | 19 | * have a shorter range than the traditional 32-bit sparc branch |
20 | * There is another issue. Because we play games to save cycles | 20 | * variants. The rule is that the branches that go into and out of |
21 | * in the non-contention case, we need to be extra careful about | 21 | * the spinner sections must be pre-V9 branches. |
22 | * branch targets into the "spinning" code. They live in their | ||
23 | * own section, but the newer V9 branches have a shorter range | ||
24 | * than the traditional 32-bit sparc branch variants. The rule | ||
25 | * is that the branches that go into and out of the spinner sections | ||
26 | * must be pre-V9 branches. | ||
27 | */ | 22 | */ |
28 | 23 | ||
29 | #define __raw_spin_is_locked(lp) ((lp)->lock != 0) | 24 | #define __raw_spin_is_locked(lp) ((lp)->lock != 0) |
@@ -38,12 +33,10 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock) | |||
38 | 33 | ||
39 | __asm__ __volatile__( | 34 | __asm__ __volatile__( |
40 | "1: ldstub [%1], %0\n" | 35 | "1: ldstub [%1], %0\n" |
41 | " membar #StoreLoad | #StoreStore\n" | ||
42 | " brnz,pn %0, 2f\n" | 36 | " brnz,pn %0, 2f\n" |
43 | " nop\n" | 37 | " nop\n" |
44 | " .subsection 2\n" | 38 | " .subsection 2\n" |
45 | "2: ldub [%1], %0\n" | 39 | "2: ldub [%1], %0\n" |
46 | " membar #LoadLoad\n" | ||
47 | " brnz,pt %0, 2b\n" | 40 | " brnz,pt %0, 2b\n" |
48 | " nop\n" | 41 | " nop\n" |
49 | " ba,a,pt %%xcc, 1b\n" | 42 | " ba,a,pt %%xcc, 1b\n" |
@@ -59,7 +52,6 @@ static inline int __raw_spin_trylock(raw_spinlock_t *lock) | |||
59 | 52 | ||
60 | __asm__ __volatile__( | 53 | __asm__ __volatile__( |
61 | " ldstub [%1], %0\n" | 54 | " ldstub [%1], %0\n" |
62 | " membar #StoreLoad | #StoreStore" | ||
63 | : "=r" (result) | 55 | : "=r" (result) |
64 | : "r" (lock) | 56 | : "r" (lock) |
65 | : "memory"); | 57 | : "memory"); |
@@ -70,7 +62,6 @@ static inline int __raw_spin_trylock(raw_spinlock_t *lock) | |||
70 | static inline void __raw_spin_unlock(raw_spinlock_t *lock) | 62 | static inline void __raw_spin_unlock(raw_spinlock_t *lock) |
71 | { | 63 | { |
72 | __asm__ __volatile__( | 64 | __asm__ __volatile__( |
73 | " membar #StoreStore | #LoadStore\n" | ||
74 | " stb %%g0, [%0]" | 65 | " stb %%g0, [%0]" |
75 | : /* No outputs */ | 66 | : /* No outputs */ |
76 | : "r" (lock) | 67 | : "r" (lock) |
@@ -83,14 +74,12 @@ static inline void __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long fla | |||
83 | 74 | ||
84 | __asm__ __volatile__( | 75 | __asm__ __volatile__( |
85 | "1: ldstub [%2], %0\n" | 76 | "1: ldstub [%2], %0\n" |
86 | " membar #StoreLoad | #StoreStore\n" | ||
87 | " brnz,pn %0, 2f\n" | 77 | " brnz,pn %0, 2f\n" |
88 | " nop\n" | 78 | " nop\n" |
89 | " .subsection 2\n" | 79 | " .subsection 2\n" |
90 | "2: rdpr %%pil, %1\n" | 80 | "2: rdpr %%pil, %1\n" |
91 | " wrpr %3, %%pil\n" | 81 | " wrpr %3, %%pil\n" |
92 | "3: ldub [%2], %0\n" | 82 | "3: ldub [%2], %0\n" |
93 | " membar #LoadLoad\n" | ||
94 | " brnz,pt %0, 3b\n" | 83 | " brnz,pt %0, 3b\n" |
95 | " nop\n" | 84 | " nop\n" |
96 | " ba,pt %%xcc, 1b\n" | 85 | " ba,pt %%xcc, 1b\n" |
@@ -113,12 +102,10 @@ static void inline __read_lock(raw_rwlock_t *lock) | |||
113 | "4: add %0, 1, %1\n" | 102 | "4: add %0, 1, %1\n" |
114 | " cas [%2], %0, %1\n" | 103 | " cas [%2], %0, %1\n" |
115 | " cmp %0, %1\n" | 104 | " cmp %0, %1\n" |
116 | " membar #StoreLoad | #StoreStore\n" | ||
117 | " bne,pn %%icc, 1b\n" | 105 | " bne,pn %%icc, 1b\n" |
118 | " nop\n" | 106 | " nop\n" |
119 | " .subsection 2\n" | 107 | " .subsection 2\n" |
120 | "2: ldsw [%2], %0\n" | 108 | "2: ldsw [%2], %0\n" |
121 | " membar #LoadLoad\n" | ||
122 | " brlz,pt %0, 2b\n" | 109 | " brlz,pt %0, 2b\n" |
123 | " nop\n" | 110 | " nop\n" |
124 | " ba,a,pt %%xcc, 4b\n" | 111 | " ba,a,pt %%xcc, 4b\n" |
@@ -139,7 +126,6 @@ static int inline __read_trylock(raw_rwlock_t *lock) | |||
139 | " add %0, 1, %1\n" | 126 | " add %0, 1, %1\n" |
140 | " cas [%2], %0, %1\n" | 127 | " cas [%2], %0, %1\n" |
141 | " cmp %0, %1\n" | 128 | " cmp %0, %1\n" |
142 | " membar #StoreLoad | #StoreStore\n" | ||
143 | " bne,pn %%icc, 1b\n" | 129 | " bne,pn %%icc, 1b\n" |
144 | " mov 1, %0\n" | 130 | " mov 1, %0\n" |
145 | "2:" | 131 | "2:" |
@@ -155,7 +141,6 @@ static void inline __read_unlock(raw_rwlock_t *lock) | |||
155 | unsigned long tmp1, tmp2; | 141 | unsigned long tmp1, tmp2; |
156 | 142 | ||
157 | __asm__ __volatile__( | 143 | __asm__ __volatile__( |
158 | " membar #StoreLoad | #LoadLoad\n" | ||
159 | "1: lduw [%2], %0\n" | 144 | "1: lduw [%2], %0\n" |
160 | " sub %0, 1, %1\n" | 145 | " sub %0, 1, %1\n" |
161 | " cas [%2], %0, %1\n" | 146 | " cas [%2], %0, %1\n" |
@@ -179,12 +164,10 @@ static void inline __write_lock(raw_rwlock_t *lock) | |||
179 | "4: or %0, %3, %1\n" | 164 | "4: or %0, %3, %1\n" |
180 | " cas [%2], %0, %1\n" | 165 | " cas [%2], %0, %1\n" |
181 | " cmp %0, %1\n" | 166 | " cmp %0, %1\n" |
182 | " membar #StoreLoad | #StoreStore\n" | ||
183 | " bne,pn %%icc, 1b\n" | 167 | " bne,pn %%icc, 1b\n" |
184 | " nop\n" | 168 | " nop\n" |
185 | " .subsection 2\n" | 169 | " .subsection 2\n" |
186 | "2: lduw [%2], %0\n" | 170 | "2: lduw [%2], %0\n" |
187 | " membar #LoadLoad\n" | ||
188 | " brnz,pt %0, 2b\n" | 171 | " brnz,pt %0, 2b\n" |
189 | " nop\n" | 172 | " nop\n" |
190 | " ba,a,pt %%xcc, 4b\n" | 173 | " ba,a,pt %%xcc, 4b\n" |
@@ -197,7 +180,6 @@ static void inline __write_lock(raw_rwlock_t *lock) | |||
197 | static void inline __write_unlock(raw_rwlock_t *lock) | 180 | static void inline __write_unlock(raw_rwlock_t *lock) |
198 | { | 181 | { |
199 | __asm__ __volatile__( | 182 | __asm__ __volatile__( |
200 | " membar #LoadStore | #StoreStore\n" | ||
201 | " stw %%g0, [%0]" | 183 | " stw %%g0, [%0]" |
202 | : /* no outputs */ | 184 | : /* no outputs */ |
203 | : "r" (lock) | 185 | : "r" (lock) |
@@ -217,7 +199,6 @@ static int inline __write_trylock(raw_rwlock_t *lock) | |||
217 | " or %0, %4, %1\n" | 199 | " or %0, %4, %1\n" |
218 | " cas [%3], %0, %1\n" | 200 | " cas [%3], %0, %1\n" |
219 | " cmp %0, %1\n" | 201 | " cmp %0, %1\n" |
220 | " membar #StoreLoad | #StoreStore\n" | ||
221 | " bne,pn %%icc, 1b\n" | 202 | " bne,pn %%icc, 1b\n" |
222 | " nop\n" | 203 | " nop\n" |
223 | " mov 1, %2\n" | 204 | " mov 1, %2\n" |
diff --git a/arch/sparc/include/asm/spitfire.h b/arch/sparc/include/asm/spitfire.h index 985ea7e31992..f0d0c40c44da 100644 --- a/arch/sparc/include/asm/spitfire.h +++ b/arch/sparc/include/asm/spitfire.h | |||
@@ -6,6 +6,8 @@ | |||
6 | #ifndef _SPARC64_SPITFIRE_H | 6 | #ifndef _SPARC64_SPITFIRE_H |
7 | #define _SPARC64_SPITFIRE_H | 7 | #define _SPARC64_SPITFIRE_H |
8 | 8 | ||
9 | #ifdef CONFIG_SPARC64 | ||
10 | |||
9 | #include <asm/asi.h> | 11 | #include <asm/asi.h> |
10 | 12 | ||
11 | /* The following register addresses are accessible via ASI_DMMU | 13 | /* The following register addresses are accessible via ASI_DMMU |
@@ -338,5 +340,5 @@ static inline void cheetah_put_itlb_data(int entry, unsigned long data) | |||
338 | } | 340 | } |
339 | 341 | ||
340 | #endif /* !(__ASSEMBLY__) */ | 342 | #endif /* !(__ASSEMBLY__) */ |
341 | 343 | #endif /* CONFIG_SPARC64 */ | |
342 | #endif /* !(_SPARC64_SPITFIRE_H) */ | 344 | #endif /* !(_SPARC64_SPITFIRE_H) */ |
diff --git a/arch/sparc/include/asm/system_32.h b/arch/sparc/include/asm/system_32.h index 8623fc48fe24..79c1ae2b42a3 100644 --- a/arch/sparc/include/asm/system_32.h +++ b/arch/sparc/include/asm/system_32.h | |||
@@ -15,6 +15,11 @@ | |||
15 | 15 | ||
16 | #include <linux/irqflags.h> | 16 | #include <linux/irqflags.h> |
17 | 17 | ||
18 | static inline unsigned int probe_irq_mask(unsigned long val) | ||
19 | { | ||
20 | return 0; | ||
21 | } | ||
22 | |||
18 | /* | 23 | /* |
19 | * Sparc (general) CPU types | 24 | * Sparc (general) CPU types |
20 | */ | 25 | */ |
diff --git a/arch/sparc/include/asm/system_64.h b/arch/sparc/include/asm/system_64.h index 8759f2a1b837..6c077816ab28 100644 --- a/arch/sparc/include/asm/system_64.h +++ b/arch/sparc/include/asm/system_64.h | |||
@@ -59,20 +59,9 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \ | |||
59 | : : : "memory"); \ | 59 | : : : "memory"); \ |
60 | } while (0) | 60 | } while (0) |
61 | 61 | ||
62 | #define mb() \ | 62 | #define mb() membar_safe("#StoreLoad") |
63 | membar_safe("#LoadLoad | #LoadStore | #StoreStore | #StoreLoad") | 63 | #define rmb() __asm__ __volatile__("":::"memory") |
64 | #define rmb() \ | 64 | #define wmb() __asm__ __volatile__("":::"memory") |
65 | membar_safe("#LoadLoad") | ||
66 | #define wmb() \ | ||
67 | membar_safe("#StoreStore") | ||
68 | #define membar_storeload() \ | ||
69 | membar_safe("#StoreLoad") | ||
70 | #define membar_storeload_storestore() \ | ||
71 | membar_safe("#StoreLoad | #StoreStore") | ||
72 | #define membar_storeload_loadload() \ | ||
73 | membar_safe("#StoreLoad | #LoadLoad") | ||
74 | #define membar_storestore_loadstore() \ | ||
75 | membar_safe("#StoreStore | #LoadStore") | ||
76 | 65 | ||
77 | #endif | 66 | #endif |
78 | 67 | ||
@@ -80,20 +69,20 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \ | |||
80 | 69 | ||
81 | #define read_barrier_depends() do { } while(0) | 70 | #define read_barrier_depends() do { } while(0) |
82 | #define set_mb(__var, __value) \ | 71 | #define set_mb(__var, __value) \ |
83 | do { __var = __value; membar_storeload_storestore(); } while(0) | 72 | do { __var = __value; membar_safe("#StoreLoad"); } while(0) |
84 | 73 | ||
85 | #ifdef CONFIG_SMP | 74 | #ifdef CONFIG_SMP |
86 | #define smp_mb() mb() | 75 | #define smp_mb() mb() |
87 | #define smp_rmb() rmb() | 76 | #define smp_rmb() rmb() |
88 | #define smp_wmb() wmb() | 77 | #define smp_wmb() wmb() |
89 | #define smp_read_barrier_depends() read_barrier_depends() | ||
90 | #else | 78 | #else |
91 | #define smp_mb() __asm__ __volatile__("":::"memory") | 79 | #define smp_mb() __asm__ __volatile__("":::"memory") |
92 | #define smp_rmb() __asm__ __volatile__("":::"memory") | 80 | #define smp_rmb() __asm__ __volatile__("":::"memory") |
93 | #define smp_wmb() __asm__ __volatile__("":::"memory") | 81 | #define smp_wmb() __asm__ __volatile__("":::"memory") |
94 | #define smp_read_barrier_depends() do { } while(0) | ||
95 | #endif | 82 | #endif |
96 | 83 | ||
84 | #define smp_read_barrier_depends() do { } while(0) | ||
85 | |||
97 | #define flushi(addr) __asm__ __volatile__ ("flush %0" : : "r" (addr) : "memory") | 86 | #define flushi(addr) __asm__ __volatile__ ("flush %0" : : "r" (addr) : "memory") |
98 | 87 | ||
99 | #define flushw_all() __asm__ __volatile__("flushw") | 88 | #define flushw_all() __asm__ __volatile__("flushw") |
@@ -107,11 +96,12 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \ | |||
107 | * arch/sparc64/kernel/smp.c:smp_percpu_timer_interrupt() | 96 | * arch/sparc64/kernel/smp.c:smp_percpu_timer_interrupt() |
108 | * for more information. | 97 | * for more information. |
109 | */ | 98 | */ |
110 | #define reset_pic() \ | 99 | #define write_pic(__p) \ |
111 | __asm__ __volatile__("ba,pt %xcc, 99f\n\t" \ | 100 | __asm__ __volatile__("ba,pt %%xcc, 99f\n\t" \ |
112 | ".align 64\n" \ | 101 | ".align 64\n" \ |
113 | "99:wr %g0, 0x0, %pic\n\t" \ | 102 | "99:wr %0, 0x0, %%pic\n\t" \ |
114 | "rd %pic, %g0") | 103 | "rd %%pic, %%g0" : : "r" (__p)) |
104 | #define reset_pic() write_pic(0) | ||
115 | 105 | ||
116 | #ifndef __ASSEMBLY__ | 106 | #ifndef __ASSEMBLY__ |
117 | 107 | ||
@@ -170,6 +160,7 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \ | |||
170 | "stb %%o5, [%%g6 + %5]\n\t" \ | 160 | "stb %%o5, [%%g6 + %5]\n\t" \ |
171 | "rdpr %%cwp, %%o5\n\t" \ | 161 | "rdpr %%cwp, %%o5\n\t" \ |
172 | "stb %%o5, [%%g6 + %8]\n\t" \ | 162 | "stb %%o5, [%%g6 + %8]\n\t" \ |
163 | "wrpr %%g0, 15, %%pil\n\t" \ | ||
173 | "mov %4, %%g6\n\t" \ | 164 | "mov %4, %%g6\n\t" \ |
174 | "ldub [%4 + %8], %%g1\n\t" \ | 165 | "ldub [%4 + %8], %%g1\n\t" \ |
175 | "wrpr %%g1, %%cwp\n\t" \ | 166 | "wrpr %%g1, %%cwp\n\t" \ |
@@ -180,6 +171,7 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \ | |||
180 | "ldx [%%sp + 2047 + 0x70], %%i6\n\t" \ | 171 | "ldx [%%sp + 2047 + 0x70], %%i6\n\t" \ |
181 | "ldx [%%sp + 2047 + 0x78], %%i7\n\t" \ | 172 | "ldx [%%sp + 2047 + 0x78], %%i7\n\t" \ |
182 | "ldx [%%g6 + %9], %%g4\n\t" \ | 173 | "ldx [%%g6 + %9], %%g4\n\t" \ |
174 | "wrpr %%g0, 14, %%pil\n\t" \ | ||
183 | "brz,pt %%o7, switch_to_pc\n\t" \ | 175 | "brz,pt %%o7, switch_to_pc\n\t" \ |
184 | " mov %%g7, %0\n\t" \ | 176 | " mov %%g7, %0\n\t" \ |
185 | "sethi %%hi(ret_from_syscall), %%g1\n\t" \ | 177 | "sethi %%hi(ret_from_syscall), %%g1\n\t" \ |
@@ -209,14 +201,12 @@ static inline unsigned long xchg32(__volatile__ unsigned int *m, unsigned int va | |||
209 | unsigned long tmp1, tmp2; | 201 | unsigned long tmp1, tmp2; |
210 | 202 | ||
211 | __asm__ __volatile__( | 203 | __asm__ __volatile__( |
212 | " membar #StoreLoad | #LoadLoad\n" | ||
213 | " mov %0, %1\n" | 204 | " mov %0, %1\n" |
214 | "1: lduw [%4], %2\n" | 205 | "1: lduw [%4], %2\n" |
215 | " cas [%4], %2, %0\n" | 206 | " cas [%4], %2, %0\n" |
216 | " cmp %2, %0\n" | 207 | " cmp %2, %0\n" |
217 | " bne,a,pn %%icc, 1b\n" | 208 | " bne,a,pn %%icc, 1b\n" |
218 | " mov %1, %0\n" | 209 | " mov %1, %0\n" |
219 | " membar #StoreLoad | #StoreStore\n" | ||
220 | : "=&r" (val), "=&r" (tmp1), "=&r" (tmp2) | 210 | : "=&r" (val), "=&r" (tmp1), "=&r" (tmp2) |
221 | : "0" (val), "r" (m) | 211 | : "0" (val), "r" (m) |
222 | : "cc", "memory"); | 212 | : "cc", "memory"); |
@@ -228,14 +218,12 @@ static inline unsigned long xchg64(__volatile__ unsigned long *m, unsigned long | |||
228 | unsigned long tmp1, tmp2; | 218 | unsigned long tmp1, tmp2; |
229 | 219 | ||
230 | __asm__ __volatile__( | 220 | __asm__ __volatile__( |
231 | " membar #StoreLoad | #LoadLoad\n" | ||
232 | " mov %0, %1\n" | 221 | " mov %0, %1\n" |
233 | "1: ldx [%4], %2\n" | 222 | "1: ldx [%4], %2\n" |
234 | " casx [%4], %2, %0\n" | 223 | " casx [%4], %2, %0\n" |
235 | " cmp %2, %0\n" | 224 | " cmp %2, %0\n" |
236 | " bne,a,pn %%xcc, 1b\n" | 225 | " bne,a,pn %%xcc, 1b\n" |
237 | " mov %1, %0\n" | 226 | " mov %1, %0\n" |
238 | " membar #StoreLoad | #StoreStore\n" | ||
239 | : "=&r" (val), "=&r" (tmp1), "=&r" (tmp2) | 227 | : "=&r" (val), "=&r" (tmp1), "=&r" (tmp2) |
240 | : "0" (val), "r" (m) | 228 | : "0" (val), "r" (m) |
241 | : "cc", "memory"); | 229 | : "cc", "memory"); |
@@ -272,9 +260,7 @@ extern void die_if_kernel(char *str, struct pt_regs *regs) __attribute__ ((noret | |||
272 | static inline unsigned long | 260 | static inline unsigned long |
273 | __cmpxchg_u32(volatile int *m, int old, int new) | 261 | __cmpxchg_u32(volatile int *m, int old, int new) |
274 | { | 262 | { |
275 | __asm__ __volatile__("membar #StoreLoad | #LoadLoad\n" | 263 | __asm__ __volatile__("cas [%2], %3, %0" |
276 | "cas [%2], %3, %0\n\t" | ||
277 | "membar #StoreLoad | #StoreStore" | ||
278 | : "=&r" (new) | 264 | : "=&r" (new) |
279 | : "0" (new), "r" (m), "r" (old) | 265 | : "0" (new), "r" (m), "r" (old) |
280 | : "memory"); | 266 | : "memory"); |
@@ -285,9 +271,7 @@ __cmpxchg_u32(volatile int *m, int old, int new) | |||
285 | static inline unsigned long | 271 | static inline unsigned long |
286 | __cmpxchg_u64(volatile long *m, unsigned long old, unsigned long new) | 272 | __cmpxchg_u64(volatile long *m, unsigned long old, unsigned long new) |
287 | { | 273 | { |
288 | __asm__ __volatile__("membar #StoreLoad | #LoadLoad\n" | 274 | __asm__ __volatile__("casx [%2], %3, %0" |
289 | "casx [%2], %3, %0\n\t" | ||
290 | "membar #StoreLoad | #StoreStore" | ||
291 | : "=&r" (new) | 275 | : "=&r" (new) |
292 | : "0" (new), "r" (m), "r" (old) | 276 | : "0" (new), "r" (m), "r" (old) |
293 | : "memory"); | 277 | : "memory"); |
diff --git a/arch/sparc/include/asm/tsb.h b/arch/sparc/include/asm/tsb.h index 76e4299dd9bc..83c571d8c8a7 100644 --- a/arch/sparc/include/asm/tsb.h +++ b/arch/sparc/include/asm/tsb.h | |||
@@ -50,8 +50,6 @@ | |||
50 | #define TSB_TAG_INVALID_BIT 46 | 50 | #define TSB_TAG_INVALID_BIT 46 |
51 | #define TSB_TAG_INVALID_HIGH (1 << (TSB_TAG_INVALID_BIT - 32)) | 51 | #define TSB_TAG_INVALID_HIGH (1 << (TSB_TAG_INVALID_BIT - 32)) |
52 | 52 | ||
53 | #define TSB_MEMBAR membar #StoreStore | ||
54 | |||
55 | /* Some cpus support physical address quad loads. We want to use | 53 | /* Some cpus support physical address quad loads. We want to use |
56 | * those if possible so we don't need to hard-lock the TSB mapping | 54 | * those if possible so we don't need to hard-lock the TSB mapping |
57 | * into the TLB. We encode some instruction patching in order to | 55 | * into the TLB. We encode some instruction patching in order to |
@@ -128,13 +126,11 @@ extern struct tsb_phys_patch_entry __tsb_phys_patch, __tsb_phys_patch_end; | |||
128 | cmp REG1, REG2; \ | 126 | cmp REG1, REG2; \ |
129 | bne,pn %icc, 99b; \ | 127 | bne,pn %icc, 99b; \ |
130 | nop; \ | 128 | nop; \ |
131 | TSB_MEMBAR | ||
132 | 129 | ||
133 | #define TSB_WRITE(TSB, TTE, TAG) \ | 130 | #define TSB_WRITE(TSB, TTE, TAG) \ |
134 | add TSB, 0x8, TSB; \ | 131 | add TSB, 0x8, TSB; \ |
135 | TSB_STORE(TSB, TTE); \ | 132 | TSB_STORE(TSB, TTE); \ |
136 | sub TSB, 0x8, TSB; \ | 133 | sub TSB, 0x8, TSB; \ |
137 | TSB_MEMBAR; \ | ||
138 | TSB_STORE(TSB, TAG); | 134 | TSB_STORE(TSB, TAG); |
139 | 135 | ||
140 | #define KTSB_LOAD_QUAD(TSB, REG) \ | 136 | #define KTSB_LOAD_QUAD(TSB, REG) \ |
@@ -153,13 +149,11 @@ extern struct tsb_phys_patch_entry __tsb_phys_patch, __tsb_phys_patch_end; | |||
153 | cmp REG1, REG2; \ | 149 | cmp REG1, REG2; \ |
154 | bne,pn %icc, 99b; \ | 150 | bne,pn %icc, 99b; \ |
155 | nop; \ | 151 | nop; \ |
156 | TSB_MEMBAR | ||
157 | 152 | ||
158 | #define KTSB_WRITE(TSB, TTE, TAG) \ | 153 | #define KTSB_WRITE(TSB, TTE, TAG) \ |
159 | add TSB, 0x8, TSB; \ | 154 | add TSB, 0x8, TSB; \ |
160 | stxa TTE, [TSB] ASI_N; \ | 155 | stxa TTE, [TSB] ASI_N; \ |
161 | sub TSB, 0x8, TSB; \ | 156 | sub TSB, 0x8, TSB; \ |
162 | TSB_MEMBAR; \ | ||
163 | stxa TAG, [TSB] ASI_N; | 157 | stxa TAG, [TSB] ASI_N; |
164 | 158 | ||
165 | /* Do a kernel page table walk. Leaves physical PTE pointer in | 159 | /* Do a kernel page table walk. Leaves physical PTE pointer in |
diff --git a/arch/sparc/include/asm/ttable.h b/arch/sparc/include/asm/ttable.h index 5708ba2719fb..48f2807d3265 100644 --- a/arch/sparc/include/asm/ttable.h +++ b/arch/sparc/include/asm/ttable.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _SPARC64_TTABLE_H | 2 | #define _SPARC64_TTABLE_H |
3 | 3 | ||
4 | #include <asm/utrap.h> | 4 | #include <asm/utrap.h> |
5 | #include <asm/pil.h> | ||
5 | 6 | ||
6 | #ifdef __ASSEMBLY__ | 7 | #ifdef __ASSEMBLY__ |
7 | #include <asm/thread_info.h> | 8 | #include <asm/thread_info.h> |
@@ -123,7 +124,7 @@ | |||
123 | 124 | ||
124 | #define TRAP_IRQ(routine, level) \ | 125 | #define TRAP_IRQ(routine, level) \ |
125 | rdpr %pil, %g2; \ | 126 | rdpr %pil, %g2; \ |
126 | wrpr %g0, 15, %pil; \ | 127 | wrpr %g0, PIL_NORMAL_MAX, %pil; \ |
127 | sethi %hi(1f-4), %g7; \ | 128 | sethi %hi(1f-4), %g7; \ |
128 | ba,pt %xcc, etrap_irq; \ | 129 | ba,pt %xcc, etrap_irq; \ |
129 | or %g7, %lo(1f-4), %g7; \ | 130 | or %g7, %lo(1f-4), %g7; \ |
@@ -143,7 +144,7 @@ | |||
143 | 144 | ||
144 | #define TRAP_IRQ(routine, level) \ | 145 | #define TRAP_IRQ(routine, level) \ |
145 | rdpr %pil, %g2; \ | 146 | rdpr %pil, %g2; \ |
146 | wrpr %g0, 15, %pil; \ | 147 | wrpr %g0, PIL_NORMAL_MAX, %pil; \ |
147 | ba,pt %xcc, etrap_irq; \ | 148 | ba,pt %xcc, etrap_irq; \ |
148 | rd %pc, %g7; \ | 149 | rd %pc, %g7; \ |
149 | mov level, %o0; \ | 150 | mov level, %o0; \ |
@@ -153,6 +154,16 @@ | |||
153 | 154 | ||
154 | #endif | 155 | #endif |
155 | 156 | ||
157 | #define TRAP_NMI_IRQ(routine, level) \ | ||
158 | rdpr %pil, %g2; \ | ||
159 | wrpr %g0, PIL_NMI, %pil; \ | ||
160 | ba,pt %xcc, etrap_irq; \ | ||
161 | rd %pc, %g7; \ | ||
162 | mov level, %o0; \ | ||
163 | call routine; \ | ||
164 | add %sp, PTREGS_OFF, %o1; \ | ||
165 | ba,a,pt %xcc, rtrap_nmi; | ||
166 | |||
156 | #define TRAP_IVEC TRAP_NOSAVE(do_ivec) | 167 | #define TRAP_IVEC TRAP_NOSAVE(do_ivec) |
157 | 168 | ||
158 | #define BTRAP(lvl) TRAP_ARG(bad_trap, lvl) | 169 | #define BTRAP(lvl) TRAP_ARG(bad_trap, lvl) |
diff --git a/arch/sparc/include/asm/unistd.h b/arch/sparc/include/asm/unistd.h index 4207fb362da0..031f038b19f7 100644 --- a/arch/sparc/include/asm/unistd.h +++ b/arch/sparc/include/asm/unistd.h | |||
@@ -1,8 +1,444 @@ | |||
1 | #ifndef ___ASM_SPARC_UNISTD_H | 1 | #ifndef _SPARC_UNISTD_H |
2 | #define ___ASM_SPARC_UNISTD_H | 2 | #define _SPARC_UNISTD_H |
3 | #if defined(__sparc__) && defined(__arch64__) | 3 | |
4 | #include <asm/unistd_64.h> | 4 | /* |
5 | * System calls under the Sparc. | ||
6 | * | ||
7 | * Don't be scared by the ugly clobbers, it is the only way I can | ||
8 | * think of right now to force the arguments into fixed registers | ||
9 | * before the trap into the system call with gcc 'asm' statements. | ||
10 | * | ||
11 | * Copyright (C) 1995, 2007 David S. Miller (davem@davemloft.net) | ||
12 | * | ||
13 | * SunOS compatibility based upon preliminary work which is: | ||
14 | * | ||
15 | * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) | ||
16 | */ | ||
17 | #ifndef __32bit_syscall_numbers__ | ||
18 | #ifndef __arch64__ | ||
19 | #define __32bit_syscall_numbers__ | ||
20 | #endif | ||
21 | #endif | ||
22 | |||
23 | #define __NR_restart_syscall 0 /* Linux Specific */ | ||
24 | #define __NR_exit 1 /* Common */ | ||
25 | #define __NR_fork 2 /* Common */ | ||
26 | #define __NR_read 3 /* Common */ | ||
27 | #define __NR_write 4 /* Common */ | ||
28 | #define __NR_open 5 /* Common */ | ||
29 | #define __NR_close 6 /* Common */ | ||
30 | #define __NR_wait4 7 /* Common */ | ||
31 | #define __NR_creat 8 /* Common */ | ||
32 | #define __NR_link 9 /* Common */ | ||
33 | #define __NR_unlink 10 /* Common */ | ||
34 | #define __NR_execv 11 /* SunOS Specific */ | ||
35 | #define __NR_chdir 12 /* Common */ | ||
36 | #define __NR_chown 13 /* Common */ | ||
37 | #define __NR_mknod 14 /* Common */ | ||
38 | #define __NR_chmod 15 /* Common */ | ||
39 | #define __NR_lchown 16 /* Common */ | ||
40 | #define __NR_brk 17 /* Common */ | ||
41 | #define __NR_perfctr 18 /* Performance counter operations */ | ||
42 | #define __NR_lseek 19 /* Common */ | ||
43 | #define __NR_getpid 20 /* Common */ | ||
44 | #define __NR_capget 21 /* Linux Specific */ | ||
45 | #define __NR_capset 22 /* Linux Specific */ | ||
46 | #define __NR_setuid 23 /* Implemented via setreuid in SunOS */ | ||
47 | #define __NR_getuid 24 /* Common */ | ||
48 | #define __NR_vmsplice 25 /* ENOSYS under SunOS */ | ||
49 | #define __NR_ptrace 26 /* Common */ | ||
50 | #define __NR_alarm 27 /* Implemented via setitimer in SunOS */ | ||
51 | #define __NR_sigaltstack 28 /* Common */ | ||
52 | #define __NR_pause 29 /* Is sigblock(0)->sigpause() in SunOS */ | ||
53 | #define __NR_utime 30 /* Implemented via utimes() under SunOS */ | ||
54 | #ifdef __32bit_syscall_numbers__ | ||
55 | #define __NR_lchown32 31 /* Linux sparc32 specific */ | ||
56 | #define __NR_fchown32 32 /* Linux sparc32 specific */ | ||
57 | #endif | ||
58 | #define __NR_access 33 /* Common */ | ||
59 | #define __NR_nice 34 /* Implemented via get/setpriority() in SunOS */ | ||
60 | #ifdef __32bit_syscall_numbers__ | ||
61 | #define __NR_chown32 35 /* Linux sparc32 specific */ | ||
62 | #endif | ||
63 | #define __NR_sync 36 /* Common */ | ||
64 | #define __NR_kill 37 /* Common */ | ||
65 | #define __NR_stat 38 /* Common */ | ||
66 | #define __NR_sendfile 39 /* Linux Specific */ | ||
67 | #define __NR_lstat 40 /* Common */ | ||
68 | #define __NR_dup 41 /* Common */ | ||
69 | #define __NR_pipe 42 /* Common */ | ||
70 | #define __NR_times 43 /* Implemented via getrusage() in SunOS */ | ||
71 | #ifdef __32bit_syscall_numbers__ | ||
72 | #define __NR_getuid32 44 /* Linux sparc32 specific */ | ||
73 | #endif | ||
74 | #define __NR_umount2 45 /* Linux Specific */ | ||
75 | #define __NR_setgid 46 /* Implemented via setregid() in SunOS */ | ||
76 | #define __NR_getgid 47 /* Common */ | ||
77 | #define __NR_signal 48 /* Implemented via sigvec() in SunOS */ | ||
78 | #define __NR_geteuid 49 /* SunOS calls getuid() */ | ||
79 | #define __NR_getegid 50 /* SunOS calls getgid() */ | ||
80 | #define __NR_acct 51 /* Common */ | ||
81 | #ifdef __32bit_syscall_numbers__ | ||
82 | #define __NR_getgid32 53 /* Linux sparc32 specific */ | ||
83 | #else | ||
84 | #define __NR_memory_ordering 52 /* Linux Specific */ | ||
85 | #endif | ||
86 | #define __NR_ioctl 54 /* Common */ | ||
87 | #define __NR_reboot 55 /* Common */ | ||
88 | #ifdef __32bit_syscall_numbers__ | ||
89 | #define __NR_mmap2 56 /* Linux sparc32 Specific */ | ||
90 | #endif | ||
91 | #define __NR_symlink 57 /* Common */ | ||
92 | #define __NR_readlink 58 /* Common */ | ||
93 | #define __NR_execve 59 /* Common */ | ||
94 | #define __NR_umask 60 /* Common */ | ||
95 | #define __NR_chroot 61 /* Common */ | ||
96 | #define __NR_fstat 62 /* Common */ | ||
97 | #define __NR_fstat64 63 /* Linux Specific */ | ||
98 | #define __NR_getpagesize 64 /* Common */ | ||
99 | #define __NR_msync 65 /* Common in newer 1.3.x revs... */ | ||
100 | #define __NR_vfork 66 /* Common */ | ||
101 | #define __NR_pread64 67 /* Linux Specific */ | ||
102 | #define __NR_pwrite64 68 /* Linux Specific */ | ||
103 | #ifdef __32bit_syscall_numbers__ | ||
104 | #define __NR_geteuid32 69 /* Linux sparc32, sbrk under SunOS */ | ||
105 | #define __NR_getegid32 70 /* Linux sparc32, sstk under SunOS */ | ||
106 | #endif | ||
107 | #define __NR_mmap 71 /* Common */ | ||
108 | #ifdef __32bit_syscall_numbers__ | ||
109 | #define __NR_setreuid32 72 /* Linux sparc32, vadvise under SunOS */ | ||
110 | #endif | ||
111 | #define __NR_munmap 73 /* Common */ | ||
112 | #define __NR_mprotect 74 /* Common */ | ||
113 | #define __NR_madvise 75 /* Common */ | ||
114 | #define __NR_vhangup 76 /* Common */ | ||
115 | #ifdef __32bit_syscall_numbers__ | ||
116 | #define __NR_truncate64 77 /* Linux sparc32 Specific */ | ||
117 | #endif | ||
118 | #define __NR_mincore 78 /* Common */ | ||
119 | #define __NR_getgroups 79 /* Common */ | ||
120 | #define __NR_setgroups 80 /* Common */ | ||
121 | #define __NR_getpgrp 81 /* Common */ | ||
122 | #ifdef __32bit_syscall_numbers__ | ||
123 | #define __NR_setgroups32 82 /* Linux sparc32, setpgrp under SunOS */ | ||
124 | #endif | ||
125 | #define __NR_setitimer 83 /* Common */ | ||
126 | #ifdef __32bit_syscall_numbers__ | ||
127 | #define __NR_ftruncate64 84 /* Linux sparc32 Specific */ | ||
128 | #endif | ||
129 | #define __NR_swapon 85 /* Common */ | ||
130 | #define __NR_getitimer 86 /* Common */ | ||
131 | #ifdef __32bit_syscall_numbers__ | ||
132 | #define __NR_setuid32 87 /* Linux sparc32, gethostname under SunOS */ | ||
133 | #endif | ||
134 | #define __NR_sethostname 88 /* Common */ | ||
135 | #ifdef __32bit_syscall_numbers__ | ||
136 | #define __NR_setgid32 89 /* Linux sparc32, getdtablesize under SunOS */ | ||
137 | #endif | ||
138 | #define __NR_dup2 90 /* Common */ | ||
139 | #ifdef __32bit_syscall_numbers__ | ||
140 | #define __NR_setfsuid32 91 /* Linux sparc32, getdopt under SunOS */ | ||
141 | #endif | ||
142 | #define __NR_fcntl 92 /* Common */ | ||
143 | #define __NR_select 93 /* Common */ | ||
144 | #ifdef __32bit_syscall_numbers__ | ||
145 | #define __NR_setfsgid32 94 /* Linux sparc32, setdopt under SunOS */ | ||
146 | #endif | ||
147 | #define __NR_fsync 95 /* Common */ | ||
148 | #define __NR_setpriority 96 /* Common */ | ||
149 | #define __NR_socket 97 /* Common */ | ||
150 | #define __NR_connect 98 /* Common */ | ||
151 | #define __NR_accept 99 /* Common */ | ||
152 | #define __NR_getpriority 100 /* Common */ | ||
153 | #define __NR_rt_sigreturn 101 /* Linux Specific */ | ||
154 | #define __NR_rt_sigaction 102 /* Linux Specific */ | ||
155 | #define __NR_rt_sigprocmask 103 /* Linux Specific */ | ||
156 | #define __NR_rt_sigpending 104 /* Linux Specific */ | ||
157 | #define __NR_rt_sigtimedwait 105 /* Linux Specific */ | ||
158 | #define __NR_rt_sigqueueinfo 106 /* Linux Specific */ | ||
159 | #define __NR_rt_sigsuspend 107 /* Linux Specific */ | ||
160 | #ifdef __32bit_syscall_numbers__ | ||
161 | #define __NR_setresuid32 108 /* Linux Specific, sigvec under SunOS */ | ||
162 | #define __NR_getresuid32 109 /* Linux Specific, sigblock under SunOS */ | ||
163 | #define __NR_setresgid32 110 /* Linux Specific, sigsetmask under SunOS */ | ||
164 | #define __NR_getresgid32 111 /* Linux Specific, sigpause under SunOS */ | ||
165 | #define __NR_setregid32 112 /* Linux sparc32, sigstack under SunOS */ | ||
166 | #else | ||
167 | #define __NR_setresuid 108 /* Linux Specific, sigvec under SunOS */ | ||
168 | #define __NR_getresuid 109 /* Linux Specific, sigblock under SunOS */ | ||
169 | #define __NR_setresgid 110 /* Linux Specific, sigsetmask under SunOS */ | ||
170 | #define __NR_getresgid 111 /* Linux Specific, sigpause under SunOS */ | ||
171 | #endif | ||
172 | #define __NR_recvmsg 113 /* Common */ | ||
173 | #define __NR_sendmsg 114 /* Common */ | ||
174 | #ifdef __32bit_syscall_numbers__ | ||
175 | #define __NR_getgroups32 115 /* Linux sparc32, vtrace under SunOS */ | ||
176 | #endif | ||
177 | #define __NR_gettimeofday 116 /* Common */ | ||
178 | #define __NR_getrusage 117 /* Common */ | ||
179 | #define __NR_getsockopt 118 /* Common */ | ||
180 | #define __NR_getcwd 119 /* Linux Specific */ | ||
181 | #define __NR_readv 120 /* Common */ | ||
182 | #define __NR_writev 121 /* Common */ | ||
183 | #define __NR_settimeofday 122 /* Common */ | ||
184 | #define __NR_fchown 123 /* Common */ | ||
185 | #define __NR_fchmod 124 /* Common */ | ||
186 | #define __NR_recvfrom 125 /* Common */ | ||
187 | #define __NR_setreuid 126 /* Common */ | ||
188 | #define __NR_setregid 127 /* Common */ | ||
189 | #define __NR_rename 128 /* Common */ | ||
190 | #define __NR_truncate 129 /* Common */ | ||
191 | #define __NR_ftruncate 130 /* Common */ | ||
192 | #define __NR_flock 131 /* Common */ | ||
193 | #define __NR_lstat64 132 /* Linux Specific */ | ||
194 | #define __NR_sendto 133 /* Common */ | ||
195 | #define __NR_shutdown 134 /* Common */ | ||
196 | #define __NR_socketpair 135 /* Common */ | ||
197 | #define __NR_mkdir 136 /* Common */ | ||
198 | #define __NR_rmdir 137 /* Common */ | ||
199 | #define __NR_utimes 138 /* SunOS Specific */ | ||
200 | #define __NR_stat64 139 /* Linux Specific */ | ||
201 | #define __NR_sendfile64 140 /* adjtime under SunOS */ | ||
202 | #define __NR_getpeername 141 /* Common */ | ||
203 | #define __NR_futex 142 /* gethostid under SunOS */ | ||
204 | #define __NR_gettid 143 /* ENOSYS under SunOS */ | ||
205 | #define __NR_getrlimit 144 /* Common */ | ||
206 | #define __NR_setrlimit 145 /* Common */ | ||
207 | #define __NR_pivot_root 146 /* Linux Specific, killpg under SunOS */ | ||
208 | #define __NR_prctl 147 /* ENOSYS under SunOS */ | ||
209 | #define __NR_pciconfig_read 148 /* ENOSYS under SunOS */ | ||
210 | #define __NR_pciconfig_write 149 /* ENOSYS under SunOS */ | ||
211 | #define __NR_getsockname 150 /* Common */ | ||
212 | #define __NR_inotify_init 151 /* Linux specific */ | ||
213 | #define __NR_inotify_add_watch 152 /* Linux specific */ | ||
214 | #define __NR_poll 153 /* Common */ | ||
215 | #define __NR_getdents64 154 /* Linux specific */ | ||
216 | #ifdef __32bit_syscall_numbers__ | ||
217 | #define __NR_fcntl64 155 /* Linux sparc32 Specific */ | ||
218 | #endif | ||
219 | #define __NR_inotify_rm_watch 156 /* Linux specific */ | ||
220 | #define __NR_statfs 157 /* Common */ | ||
221 | #define __NR_fstatfs 158 /* Common */ | ||
222 | #define __NR_umount 159 /* Common */ | ||
223 | #define __NR_sched_set_affinity 160 /* Linux specific, async_daemon under SunOS */ | ||
224 | #define __NR_sched_get_affinity 161 /* Linux specific, getfh under SunOS */ | ||
225 | #define __NR_getdomainname 162 /* SunOS Specific */ | ||
226 | #define __NR_setdomainname 163 /* Common */ | ||
227 | #ifndef __32bit_syscall_numbers__ | ||
228 | #define __NR_utrap_install 164 /* SYSV ABI/v9 required */ | ||
229 | #endif | ||
230 | #define __NR_quotactl 165 /* Common */ | ||
231 | #define __NR_set_tid_address 166 /* Linux specific, exportfs under SunOS */ | ||
232 | #define __NR_mount 167 /* Common */ | ||
233 | #define __NR_ustat 168 /* Common */ | ||
234 | #define __NR_setxattr 169 /* SunOS: semsys */ | ||
235 | #define __NR_lsetxattr 170 /* SunOS: msgsys */ | ||
236 | #define __NR_fsetxattr 171 /* SunOS: shmsys */ | ||
237 | #define __NR_getxattr 172 /* SunOS: auditsys */ | ||
238 | #define __NR_lgetxattr 173 /* SunOS: rfssys */ | ||
239 | #define __NR_getdents 174 /* Common */ | ||
240 | #define __NR_setsid 175 /* Common */ | ||
241 | #define __NR_fchdir 176 /* Common */ | ||
242 | #define __NR_fgetxattr 177 /* SunOS: fchroot */ | ||
243 | #define __NR_listxattr 178 /* SunOS: vpixsys */ | ||
244 | #define __NR_llistxattr 179 /* SunOS: aioread */ | ||
245 | #define __NR_flistxattr 180 /* SunOS: aiowrite */ | ||
246 | #define __NR_removexattr 181 /* SunOS: aiowait */ | ||
247 | #define __NR_lremovexattr 182 /* SunOS: aiocancel */ | ||
248 | #define __NR_sigpending 183 /* Common */ | ||
249 | #define __NR_query_module 184 /* Linux Specific */ | ||
250 | #define __NR_setpgid 185 /* Common */ | ||
251 | #define __NR_fremovexattr 186 /* SunOS: pathconf */ | ||
252 | #define __NR_tkill 187 /* SunOS: fpathconf */ | ||
253 | #define __NR_exit_group 188 /* Linux specific, sysconf undef SunOS */ | ||
254 | #define __NR_uname 189 /* Linux Specific */ | ||
255 | #define __NR_init_module 190 /* Linux Specific */ | ||
256 | #define __NR_personality 191 /* Linux Specific */ | ||
257 | #define __NR_remap_file_pages 192 /* Linux Specific */ | ||
258 | #define __NR_epoll_create 193 /* Linux Specific */ | ||
259 | #define __NR_epoll_ctl 194 /* Linux Specific */ | ||
260 | #define __NR_epoll_wait 195 /* Linux Specific */ | ||
261 | #define __NR_ioprio_set 196 /* Linux Specific */ | ||
262 | #define __NR_getppid 197 /* Linux Specific */ | ||
263 | #define __NR_sigaction 198 /* Linux Specific */ | ||
264 | #define __NR_sgetmask 199 /* Linux Specific */ | ||
265 | #define __NR_ssetmask 200 /* Linux Specific */ | ||
266 | #define __NR_sigsuspend 201 /* Linux Specific */ | ||
267 | #define __NR_oldlstat 202 /* Linux Specific */ | ||
268 | #define __NR_uselib 203 /* Linux Specific */ | ||
269 | #define __NR_readdir 204 /* Linux Specific */ | ||
270 | #define __NR_readahead 205 /* Linux Specific */ | ||
271 | #define __NR_socketcall 206 /* Linux Specific */ | ||
272 | #define __NR_syslog 207 /* Linux Specific */ | ||
273 | #define __NR_lookup_dcookie 208 /* Linux Specific */ | ||
274 | #define __NR_fadvise64 209 /* Linux Specific */ | ||
275 | #define __NR_fadvise64_64 210 /* Linux Specific */ | ||
276 | #define __NR_tgkill 211 /* Linux Specific */ | ||
277 | #define __NR_waitpid 212 /* Linux Specific */ | ||
278 | #define __NR_swapoff 213 /* Linux Specific */ | ||
279 | #define __NR_sysinfo 214 /* Linux Specific */ | ||
280 | #define __NR_ipc 215 /* Linux Specific */ | ||
281 | #define __NR_sigreturn 216 /* Linux Specific */ | ||
282 | #define __NR_clone 217 /* Linux Specific */ | ||
283 | #define __NR_ioprio_get 218 /* Linux Specific */ | ||
284 | #define __NR_adjtimex 219 /* Linux Specific */ | ||
285 | #define __NR_sigprocmask 220 /* Linux Specific */ | ||
286 | #define __NR_create_module 221 /* Linux Specific */ | ||
287 | #define __NR_delete_module 222 /* Linux Specific */ | ||
288 | #define __NR_get_kernel_syms 223 /* Linux Specific */ | ||
289 | #define __NR_getpgid 224 /* Linux Specific */ | ||
290 | #define __NR_bdflush 225 /* Linux Specific */ | ||
291 | #define __NR_sysfs 226 /* Linux Specific */ | ||
292 | #define __NR_afs_syscall 227 /* Linux Specific */ | ||
293 | #define __NR_setfsuid 228 /* Linux Specific */ | ||
294 | #define __NR_setfsgid 229 /* Linux Specific */ | ||
295 | #define __NR__newselect 230 /* Linux Specific */ | ||
296 | #ifdef __32bit_syscall_numbers__ | ||
297 | #define __NR_time 231 /* Linux Specific */ | ||
5 | #else | 298 | #else |
6 | #include <asm/unistd_32.h> | 299 | #ifdef __KERNEL__ |
300 | #define __NR_time 231 /* Linux sparc32 */ | ||
301 | #endif | ||
302 | #endif | ||
303 | #define __NR_splice 232 /* Linux Specific */ | ||
304 | #define __NR_stime 233 /* Linux Specific */ | ||
305 | #define __NR_statfs64 234 /* Linux Specific */ | ||
306 | #define __NR_fstatfs64 235 /* Linux Specific */ | ||
307 | #define __NR__llseek 236 /* Linux Specific */ | ||
308 | #define __NR_mlock 237 | ||
309 | #define __NR_munlock 238 | ||
310 | #define __NR_mlockall 239 | ||
311 | #define __NR_munlockall 240 | ||
312 | #define __NR_sched_setparam 241 | ||
313 | #define __NR_sched_getparam 242 | ||
314 | #define __NR_sched_setscheduler 243 | ||
315 | #define __NR_sched_getscheduler 244 | ||
316 | #define __NR_sched_yield 245 | ||
317 | #define __NR_sched_get_priority_max 246 | ||
318 | #define __NR_sched_get_priority_min 247 | ||
319 | #define __NR_sched_rr_get_interval 248 | ||
320 | #define __NR_nanosleep 249 | ||
321 | #define __NR_mremap 250 | ||
322 | #define __NR__sysctl 251 | ||
323 | #define __NR_getsid 252 | ||
324 | #define __NR_fdatasync 253 | ||
325 | #define __NR_nfsservctl 254 | ||
326 | #define __NR_sync_file_range 255 | ||
327 | #define __NR_clock_settime 256 | ||
328 | #define __NR_clock_gettime 257 | ||
329 | #define __NR_clock_getres 258 | ||
330 | #define __NR_clock_nanosleep 259 | ||
331 | #define __NR_sched_getaffinity 260 | ||
332 | #define __NR_sched_setaffinity 261 | ||
333 | #define __NR_timer_settime 262 | ||
334 | #define __NR_timer_gettime 263 | ||
335 | #define __NR_timer_getoverrun 264 | ||
336 | #define __NR_timer_delete 265 | ||
337 | #define __NR_timer_create 266 | ||
338 | /* #define __NR_vserver 267 Reserved for VSERVER */ | ||
339 | #define __NR_io_setup 268 | ||
340 | #define __NR_io_destroy 269 | ||
341 | #define __NR_io_submit 270 | ||
342 | #define __NR_io_cancel 271 | ||
343 | #define __NR_io_getevents 272 | ||
344 | #define __NR_mq_open 273 | ||
345 | #define __NR_mq_unlink 274 | ||
346 | #define __NR_mq_timedsend 275 | ||
347 | #define __NR_mq_timedreceive 276 | ||
348 | #define __NR_mq_notify 277 | ||
349 | #define __NR_mq_getsetattr 278 | ||
350 | #define __NR_waitid 279 | ||
351 | #define __NR_tee 280 | ||
352 | #define __NR_add_key 281 | ||
353 | #define __NR_request_key 282 | ||
354 | #define __NR_keyctl 283 | ||
355 | #define __NR_openat 284 | ||
356 | #define __NR_mkdirat 285 | ||
357 | #define __NR_mknodat 286 | ||
358 | #define __NR_fchownat 287 | ||
359 | #define __NR_futimesat 288 | ||
360 | #define __NR_fstatat64 289 | ||
361 | #define __NR_unlinkat 290 | ||
362 | #define __NR_renameat 291 | ||
363 | #define __NR_linkat 292 | ||
364 | #define __NR_symlinkat 293 | ||
365 | #define __NR_readlinkat 294 | ||
366 | #define __NR_fchmodat 295 | ||
367 | #define __NR_faccessat 296 | ||
368 | #define __NR_pselect6 297 | ||
369 | #define __NR_ppoll 298 | ||
370 | #define __NR_unshare 299 | ||
371 | #define __NR_set_robust_list 300 | ||
372 | #define __NR_get_robust_list 301 | ||
373 | #define __NR_migrate_pages 302 | ||
374 | #define __NR_mbind 303 | ||
375 | #define __NR_get_mempolicy 304 | ||
376 | #define __NR_set_mempolicy 305 | ||
377 | #define __NR_kexec_load 306 | ||
378 | #define __NR_move_pages 307 | ||
379 | #define __NR_getcpu 308 | ||
380 | #define __NR_epoll_pwait 309 | ||
381 | #define __NR_utimensat 310 | ||
382 | #define __NR_signalfd 311 | ||
383 | #define __NR_timerfd_create 312 | ||
384 | #define __NR_eventfd 313 | ||
385 | #define __NR_fallocate 314 | ||
386 | #define __NR_timerfd_settime 315 | ||
387 | #define __NR_timerfd_gettime 316 | ||
388 | #define __NR_signalfd4 317 | ||
389 | #define __NR_eventfd2 318 | ||
390 | #define __NR_epoll_create1 319 | ||
391 | #define __NR_dup3 320 | ||
392 | #define __NR_pipe2 321 | ||
393 | #define __NR_inotify_init1 322 | ||
394 | #define __NR_accept4 323 | ||
395 | |||
396 | #define NR_SYSCALLS 324 | ||
397 | |||
398 | #ifdef __32bit_syscall_numbers__ | ||
399 | /* Sparc 32-bit only has the "setresuid32", "getresuid32" variants, | ||
400 | * it never had the plain ones and there is no value to adding those | ||
401 | * old versions into the syscall table. | ||
402 | */ | ||
403 | #define __IGNORE_setresuid | ||
404 | #define __IGNORE_getresuid | ||
405 | #define __IGNORE_setresgid | ||
406 | #define __IGNORE_getresgid | ||
7 | #endif | 407 | #endif |
408 | |||
409 | #ifdef __KERNEL__ | ||
410 | #define __ARCH_WANT_IPC_PARSE_VERSION | ||
411 | #define __ARCH_WANT_OLD_READDIR | ||
412 | #define __ARCH_WANT_STAT64 | ||
413 | #define __ARCH_WANT_SYS_ALARM | ||
414 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
415 | #define __ARCH_WANT_SYS_PAUSE | ||
416 | #define __ARCH_WANT_SYS_SGETMASK | ||
417 | #define __ARCH_WANT_SYS_SIGNAL | ||
418 | #define __ARCH_WANT_SYS_TIME | ||
419 | #define __ARCH_WANT_SYS_UTIME | ||
420 | #define __ARCH_WANT_SYS_WAITPID | ||
421 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
422 | #define __ARCH_WANT_SYS_FADVISE64 | ||
423 | #define __ARCH_WANT_SYS_GETPGRP | ||
424 | #define __ARCH_WANT_SYS_LLSEEK | ||
425 | #define __ARCH_WANT_SYS_NICE | ||
426 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
427 | #define __ARCH_WANT_SYS_SIGPENDING | ||
428 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
429 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | ||
430 | #ifndef __32bit_syscall_numbers__ | ||
431 | #define __ARCH_WANT_COMPAT_SYS_TIME | ||
432 | #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND | ||
8 | #endif | 433 | #endif |
434 | |||
435 | /* | ||
436 | * "Conditional" syscalls | ||
437 | * | ||
438 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
439 | * but it doesn't work on all toolchains, so we just do it by hand | ||
440 | */ | ||
441 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
442 | |||
443 | #endif /* __KERNEL__ */ | ||
444 | #endif /* _SPARC_UNISTD_H */ | ||
diff --git a/arch/sparc/include/asm/unistd_32.h b/arch/sparc/include/asm/unistd_32.h deleted file mode 100644 index 0d13d2a4c76f..000000000000 --- a/arch/sparc/include/asm/unistd_32.h +++ /dev/null | |||
@@ -1,385 +0,0 @@ | |||
1 | #ifndef _SPARC_UNISTD_H | ||
2 | #define _SPARC_UNISTD_H | ||
3 | |||
4 | /* | ||
5 | * System calls under the Sparc. | ||
6 | * | ||
7 | * Don't be scared by the ugly clobbers, it is the only way I can | ||
8 | * think of right now to force the arguments into fixed registers | ||
9 | * before the trap into the system call with gcc 'asm' statements. | ||
10 | * | ||
11 | * Copyright (C) 1995, 2007 David S. Miller (davem@davemloft.net) | ||
12 | * | ||
13 | * SunOS compatibility based upon preliminary work which is: | ||
14 | * | ||
15 | * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) | ||
16 | */ | ||
17 | |||
18 | #define __NR_restart_syscall 0 /* Linux Specific */ | ||
19 | #define __NR_exit 1 /* Common */ | ||
20 | #define __NR_fork 2 /* Common */ | ||
21 | #define __NR_read 3 /* Common */ | ||
22 | #define __NR_write 4 /* Common */ | ||
23 | #define __NR_open 5 /* Common */ | ||
24 | #define __NR_close 6 /* Common */ | ||
25 | #define __NR_wait4 7 /* Common */ | ||
26 | #define __NR_creat 8 /* Common */ | ||
27 | #define __NR_link 9 /* Common */ | ||
28 | #define __NR_unlink 10 /* Common */ | ||
29 | #define __NR_execv 11 /* SunOS Specific */ | ||
30 | #define __NR_chdir 12 /* Common */ | ||
31 | #define __NR_chown 13 /* Common */ | ||
32 | #define __NR_mknod 14 /* Common */ | ||
33 | #define __NR_chmod 15 /* Common */ | ||
34 | #define __NR_lchown 16 /* Common */ | ||
35 | #define __NR_brk 17 /* Common */ | ||
36 | #define __NR_perfctr 18 /* Performance counter operations */ | ||
37 | #define __NR_lseek 19 /* Common */ | ||
38 | #define __NR_getpid 20 /* Common */ | ||
39 | #define __NR_capget 21 /* Linux Specific */ | ||
40 | #define __NR_capset 22 /* Linux Specific */ | ||
41 | #define __NR_setuid 23 /* Implemented via setreuid in SunOS */ | ||
42 | #define __NR_getuid 24 /* Common */ | ||
43 | #define __NR_vmsplice 25 /* ENOSYS under SunOS */ | ||
44 | #define __NR_ptrace 26 /* Common */ | ||
45 | #define __NR_alarm 27 /* Implemented via setitimer in SunOS */ | ||
46 | #define __NR_sigaltstack 28 /* Common */ | ||
47 | #define __NR_pause 29 /* Is sigblock(0)->sigpause() in SunOS */ | ||
48 | #define __NR_utime 30 /* Implemented via utimes() under SunOS */ | ||
49 | #define __NR_lchown32 31 /* Linux sparc32 specific */ | ||
50 | #define __NR_fchown32 32 /* Linux sparc32 specific */ | ||
51 | #define __NR_access 33 /* Common */ | ||
52 | #define __NR_nice 34 /* Implemented via get/setpriority() in SunOS */ | ||
53 | #define __NR_chown32 35 /* Linux sparc32 specific */ | ||
54 | #define __NR_sync 36 /* Common */ | ||
55 | #define __NR_kill 37 /* Common */ | ||
56 | #define __NR_stat 38 /* Common */ | ||
57 | #define __NR_sendfile 39 /* Linux Specific */ | ||
58 | #define __NR_lstat 40 /* Common */ | ||
59 | #define __NR_dup 41 /* Common */ | ||
60 | #define __NR_pipe 42 /* Common */ | ||
61 | #define __NR_times 43 /* Implemented via getrusage() in SunOS */ | ||
62 | #define __NR_getuid32 44 /* Linux sparc32 specific */ | ||
63 | #define __NR_umount2 45 /* Linux Specific */ | ||
64 | #define __NR_setgid 46 /* Implemented via setregid() in SunOS */ | ||
65 | #define __NR_getgid 47 /* Common */ | ||
66 | #define __NR_signal 48 /* Implemented via sigvec() in SunOS */ | ||
67 | #define __NR_geteuid 49 /* SunOS calls getuid() */ | ||
68 | #define __NR_getegid 50 /* SunOS calls getgid() */ | ||
69 | #define __NR_acct 51 /* Common */ | ||
70 | /* #define __NR_memory_ordering 52 Linux sparc64 specific */ | ||
71 | #define __NR_getgid32 53 /* Linux sparc32 specific */ | ||
72 | #define __NR_ioctl 54 /* Common */ | ||
73 | #define __NR_reboot 55 /* Common */ | ||
74 | #define __NR_mmap2 56 /* Linux sparc32 Specific */ | ||
75 | #define __NR_symlink 57 /* Common */ | ||
76 | #define __NR_readlink 58 /* Common */ | ||
77 | #define __NR_execve 59 /* Common */ | ||
78 | #define __NR_umask 60 /* Common */ | ||
79 | #define __NR_chroot 61 /* Common */ | ||
80 | #define __NR_fstat 62 /* Common */ | ||
81 | #define __NR_fstat64 63 /* Linux Specific */ | ||
82 | #define __NR_getpagesize 64 /* Common */ | ||
83 | #define __NR_msync 65 /* Common in newer 1.3.x revs... */ | ||
84 | #define __NR_vfork 66 /* Common */ | ||
85 | #define __NR_pread64 67 /* Linux Specific */ | ||
86 | #define __NR_pwrite64 68 /* Linux Specific */ | ||
87 | #define __NR_geteuid32 69 /* Linux sparc32, sbrk under SunOS */ | ||
88 | #define __NR_getegid32 70 /* Linux sparc32, sstk under SunOS */ | ||
89 | #define __NR_mmap 71 /* Common */ | ||
90 | #define __NR_setreuid32 72 /* Linux sparc32, vadvise under SunOS */ | ||
91 | #define __NR_munmap 73 /* Common */ | ||
92 | #define __NR_mprotect 74 /* Common */ | ||
93 | #define __NR_madvise 75 /* Common */ | ||
94 | #define __NR_vhangup 76 /* Common */ | ||
95 | #define __NR_truncate64 77 /* Linux sparc32 Specific */ | ||
96 | #define __NR_mincore 78 /* Common */ | ||
97 | #define __NR_getgroups 79 /* Common */ | ||
98 | #define __NR_setgroups 80 /* Common */ | ||
99 | #define __NR_getpgrp 81 /* Common */ | ||
100 | #define __NR_setgroups32 82 /* Linux sparc32, setpgrp under SunOS */ | ||
101 | #define __NR_setitimer 83 /* Common */ | ||
102 | #define __NR_ftruncate64 84 /* Linux sparc32 Specific */ | ||
103 | #define __NR_swapon 85 /* Common */ | ||
104 | #define __NR_getitimer 86 /* Common */ | ||
105 | #define __NR_setuid32 87 /* Linux sparc32, gethostname under SunOS */ | ||
106 | #define __NR_sethostname 88 /* Common */ | ||
107 | #define __NR_setgid32 89 /* Linux sparc32, getdtablesize under SunOS */ | ||
108 | #define __NR_dup2 90 /* Common */ | ||
109 | #define __NR_setfsuid32 91 /* Linux sparc32, getdopt under SunOS */ | ||
110 | #define __NR_fcntl 92 /* Common */ | ||
111 | #define __NR_select 93 /* Common */ | ||
112 | #define __NR_setfsgid32 94 /* Linux sparc32, setdopt under SunOS */ | ||
113 | #define __NR_fsync 95 /* Common */ | ||
114 | #define __NR_setpriority 96 /* Common */ | ||
115 | #define __NR_socket 97 /* Common */ | ||
116 | #define __NR_connect 98 /* Common */ | ||
117 | #define __NR_accept 99 /* Common */ | ||
118 | #define __NR_getpriority 100 /* Common */ | ||
119 | #define __NR_rt_sigreturn 101 /* Linux Specific */ | ||
120 | #define __NR_rt_sigaction 102 /* Linux Specific */ | ||
121 | #define __NR_rt_sigprocmask 103 /* Linux Specific */ | ||
122 | #define __NR_rt_sigpending 104 /* Linux Specific */ | ||
123 | #define __NR_rt_sigtimedwait 105 /* Linux Specific */ | ||
124 | #define __NR_rt_sigqueueinfo 106 /* Linux Specific */ | ||
125 | #define __NR_rt_sigsuspend 107 /* Linux Specific */ | ||
126 | #define __NR_setresuid32 108 /* Linux Specific, sigvec under SunOS */ | ||
127 | #define __NR_getresuid32 109 /* Linux Specific, sigblock under SunOS */ | ||
128 | #define __NR_setresgid32 110 /* Linux Specific, sigsetmask under SunOS */ | ||
129 | #define __NR_getresgid32 111 /* Linux Specific, sigpause under SunOS */ | ||
130 | #define __NR_setregid32 112 /* Linux sparc32, sigstack under SunOS */ | ||
131 | #define __NR_recvmsg 113 /* Common */ | ||
132 | #define __NR_sendmsg 114 /* Common */ | ||
133 | #define __NR_getgroups32 115 /* Linux sparc32, vtrace under SunOS */ | ||
134 | #define __NR_gettimeofday 116 /* Common */ | ||
135 | #define __NR_getrusage 117 /* Common */ | ||
136 | #define __NR_getsockopt 118 /* Common */ | ||
137 | #define __NR_getcwd 119 /* Linux Specific */ | ||
138 | #define __NR_readv 120 /* Common */ | ||
139 | #define __NR_writev 121 /* Common */ | ||
140 | #define __NR_settimeofday 122 /* Common */ | ||
141 | #define __NR_fchown 123 /* Common */ | ||
142 | #define __NR_fchmod 124 /* Common */ | ||
143 | #define __NR_recvfrom 125 /* Common */ | ||
144 | #define __NR_setreuid 126 /* Common */ | ||
145 | #define __NR_setregid 127 /* Common */ | ||
146 | #define __NR_rename 128 /* Common */ | ||
147 | #define __NR_truncate 129 /* Common */ | ||
148 | #define __NR_ftruncate 130 /* Common */ | ||
149 | #define __NR_flock 131 /* Common */ | ||
150 | #define __NR_lstat64 132 /* Linux Specific */ | ||
151 | #define __NR_sendto 133 /* Common */ | ||
152 | #define __NR_shutdown 134 /* Common */ | ||
153 | #define __NR_socketpair 135 /* Common */ | ||
154 | #define __NR_mkdir 136 /* Common */ | ||
155 | #define __NR_rmdir 137 /* Common */ | ||
156 | #define __NR_utimes 138 /* SunOS Specific */ | ||
157 | #define __NR_stat64 139 /* Linux Specific */ | ||
158 | #define __NR_sendfile64 140 /* adjtime under SunOS */ | ||
159 | #define __NR_getpeername 141 /* Common */ | ||
160 | #define __NR_futex 142 /* gethostid under SunOS */ | ||
161 | #define __NR_gettid 143 /* ENOSYS under SunOS */ | ||
162 | #define __NR_getrlimit 144 /* Common */ | ||
163 | #define __NR_setrlimit 145 /* Common */ | ||
164 | #define __NR_pivot_root 146 /* Linux Specific, killpg under SunOS */ | ||
165 | #define __NR_prctl 147 /* ENOSYS under SunOS */ | ||
166 | #define __NR_pciconfig_read 148 /* ENOSYS under SunOS */ | ||
167 | #define __NR_pciconfig_write 149 /* ENOSYS under SunOS */ | ||
168 | #define __NR_getsockname 150 /* Common */ | ||
169 | #define __NR_inotify_init 151 /* Linux specific */ | ||
170 | #define __NR_inotify_add_watch 152 /* Linux specific */ | ||
171 | #define __NR_poll 153 /* Common */ | ||
172 | #define __NR_getdents64 154 /* Linux specific */ | ||
173 | #define __NR_fcntl64 155 /* Linux sparc32 Specific */ | ||
174 | #define __NR_inotify_rm_watch 156 /* Linux specific */ | ||
175 | #define __NR_statfs 157 /* Common */ | ||
176 | #define __NR_fstatfs 158 /* Common */ | ||
177 | #define __NR_umount 159 /* Common */ | ||
178 | #define __NR_sched_set_affinity 160 /* Linux specific, async_daemon under SunOS */ | ||
179 | #define __NR_sched_get_affinity 161 /* Linux specific, getfh under SunOS */ | ||
180 | #define __NR_getdomainname 162 /* SunOS Specific */ | ||
181 | #define __NR_setdomainname 163 /* Common */ | ||
182 | /* #define __NR_utrap_install 164 Linux sparc64 specific */ | ||
183 | #define __NR_quotactl 165 /* Common */ | ||
184 | #define __NR_set_tid_address 166 /* Linux specific, exportfs under SunOS */ | ||
185 | #define __NR_mount 167 /* Common */ | ||
186 | #define __NR_ustat 168 /* Common */ | ||
187 | #define __NR_setxattr 169 /* SunOS: semsys */ | ||
188 | #define __NR_lsetxattr 170 /* SunOS: msgsys */ | ||
189 | #define __NR_fsetxattr 171 /* SunOS: shmsys */ | ||
190 | #define __NR_getxattr 172 /* SunOS: auditsys */ | ||
191 | #define __NR_lgetxattr 173 /* SunOS: rfssys */ | ||
192 | #define __NR_getdents 174 /* Common */ | ||
193 | #define __NR_setsid 175 /* Common */ | ||
194 | #define __NR_fchdir 176 /* Common */ | ||
195 | #define __NR_fgetxattr 177 /* SunOS: fchroot */ | ||
196 | #define __NR_listxattr 178 /* SunOS: vpixsys */ | ||
197 | #define __NR_llistxattr 179 /* SunOS: aioread */ | ||
198 | #define __NR_flistxattr 180 /* SunOS: aiowrite */ | ||
199 | #define __NR_removexattr 181 /* SunOS: aiowait */ | ||
200 | #define __NR_lremovexattr 182 /* SunOS: aiocancel */ | ||
201 | #define __NR_sigpending 183 /* Common */ | ||
202 | #define __NR_query_module 184 /* Linux Specific */ | ||
203 | #define __NR_setpgid 185 /* Common */ | ||
204 | #define __NR_fremovexattr 186 /* SunOS: pathconf */ | ||
205 | #define __NR_tkill 187 /* SunOS: fpathconf */ | ||
206 | #define __NR_exit_group 188 /* Linux specific, sysconf undef SunOS */ | ||
207 | #define __NR_uname 189 /* Linux Specific */ | ||
208 | #define __NR_init_module 190 /* Linux Specific */ | ||
209 | #define __NR_personality 191 /* Linux Specific */ | ||
210 | #define __NR_remap_file_pages 192 /* Linux Specific */ | ||
211 | #define __NR_epoll_create 193 /* Linux Specific */ | ||
212 | #define __NR_epoll_ctl 194 /* Linux Specific */ | ||
213 | #define __NR_epoll_wait 195 /* Linux Specific */ | ||
214 | #define __NR_ioprio_set 196 /* Linux Specific */ | ||
215 | #define __NR_getppid 197 /* Linux Specific */ | ||
216 | #define __NR_sigaction 198 /* Linux Specific */ | ||
217 | #define __NR_sgetmask 199 /* Linux Specific */ | ||
218 | #define __NR_ssetmask 200 /* Linux Specific */ | ||
219 | #define __NR_sigsuspend 201 /* Linux Specific */ | ||
220 | #define __NR_oldlstat 202 /* Linux Specific */ | ||
221 | #define __NR_uselib 203 /* Linux Specific */ | ||
222 | #define __NR_readdir 204 /* Linux Specific */ | ||
223 | #define __NR_readahead 205 /* Linux Specific */ | ||
224 | #define __NR_socketcall 206 /* Linux Specific */ | ||
225 | #define __NR_syslog 207 /* Linux Specific */ | ||
226 | #define __NR_lookup_dcookie 208 /* Linux Specific */ | ||
227 | #define __NR_fadvise64 209 /* Linux Specific */ | ||
228 | #define __NR_fadvise64_64 210 /* Linux Specific */ | ||
229 | #define __NR_tgkill 211 /* Linux Specific */ | ||
230 | #define __NR_waitpid 212 /* Linux Specific */ | ||
231 | #define __NR_swapoff 213 /* Linux Specific */ | ||
232 | #define __NR_sysinfo 214 /* Linux Specific */ | ||
233 | #define __NR_ipc 215 /* Linux Specific */ | ||
234 | #define __NR_sigreturn 216 /* Linux Specific */ | ||
235 | #define __NR_clone 217 /* Linux Specific */ | ||
236 | #define __NR_ioprio_get 218 /* Linux Specific */ | ||
237 | #define __NR_adjtimex 219 /* Linux Specific */ | ||
238 | #define __NR_sigprocmask 220 /* Linux Specific */ | ||
239 | #define __NR_create_module 221 /* Linux Specific */ | ||
240 | #define __NR_delete_module 222 /* Linux Specific */ | ||
241 | #define __NR_get_kernel_syms 223 /* Linux Specific */ | ||
242 | #define __NR_getpgid 224 /* Linux Specific */ | ||
243 | #define __NR_bdflush 225 /* Linux Specific */ | ||
244 | #define __NR_sysfs 226 /* Linux Specific */ | ||
245 | #define __NR_afs_syscall 227 /* Linux Specific */ | ||
246 | #define __NR_setfsuid 228 /* Linux Specific */ | ||
247 | #define __NR_setfsgid 229 /* Linux Specific */ | ||
248 | #define __NR__newselect 230 /* Linux Specific */ | ||
249 | #define __NR_time 231 /* Linux Specific */ | ||
250 | #define __NR_splice 232 /* Linux Specific */ | ||
251 | #define __NR_stime 233 /* Linux Specific */ | ||
252 | #define __NR_statfs64 234 /* Linux Specific */ | ||
253 | #define __NR_fstatfs64 235 /* Linux Specific */ | ||
254 | #define __NR__llseek 236 /* Linux Specific */ | ||
255 | #define __NR_mlock 237 | ||
256 | #define __NR_munlock 238 | ||
257 | #define __NR_mlockall 239 | ||
258 | #define __NR_munlockall 240 | ||
259 | #define __NR_sched_setparam 241 | ||
260 | #define __NR_sched_getparam 242 | ||
261 | #define __NR_sched_setscheduler 243 | ||
262 | #define __NR_sched_getscheduler 244 | ||
263 | #define __NR_sched_yield 245 | ||
264 | #define __NR_sched_get_priority_max 246 | ||
265 | #define __NR_sched_get_priority_min 247 | ||
266 | #define __NR_sched_rr_get_interval 248 | ||
267 | #define __NR_nanosleep 249 | ||
268 | #define __NR_mremap 250 | ||
269 | #define __NR__sysctl 251 | ||
270 | #define __NR_getsid 252 | ||
271 | #define __NR_fdatasync 253 | ||
272 | #define __NR_nfsservctl 254 | ||
273 | #define __NR_sync_file_range 255 | ||
274 | #define __NR_clock_settime 256 | ||
275 | #define __NR_clock_gettime 257 | ||
276 | #define __NR_clock_getres 258 | ||
277 | #define __NR_clock_nanosleep 259 | ||
278 | #define __NR_sched_getaffinity 260 | ||
279 | #define __NR_sched_setaffinity 261 | ||
280 | #define __NR_timer_settime 262 | ||
281 | #define __NR_timer_gettime 263 | ||
282 | #define __NR_timer_getoverrun 264 | ||
283 | #define __NR_timer_delete 265 | ||
284 | #define __NR_timer_create 266 | ||
285 | /* #define __NR_vserver 267 Reserved for VSERVER */ | ||
286 | #define __NR_io_setup 268 | ||
287 | #define __NR_io_destroy 269 | ||
288 | #define __NR_io_submit 270 | ||
289 | #define __NR_io_cancel 271 | ||
290 | #define __NR_io_getevents 272 | ||
291 | #define __NR_mq_open 273 | ||
292 | #define __NR_mq_unlink 274 | ||
293 | #define __NR_mq_timedsend 275 | ||
294 | #define __NR_mq_timedreceive 276 | ||
295 | #define __NR_mq_notify 277 | ||
296 | #define __NR_mq_getsetattr 278 | ||
297 | #define __NR_waitid 279 | ||
298 | #define __NR_tee 280 | ||
299 | #define __NR_add_key 281 | ||
300 | #define __NR_request_key 282 | ||
301 | #define __NR_keyctl 283 | ||
302 | #define __NR_openat 284 | ||
303 | #define __NR_mkdirat 285 | ||
304 | #define __NR_mknodat 286 | ||
305 | #define __NR_fchownat 287 | ||
306 | #define __NR_futimesat 288 | ||
307 | #define __NR_fstatat64 289 | ||
308 | #define __NR_unlinkat 290 | ||
309 | #define __NR_renameat 291 | ||
310 | #define __NR_linkat 292 | ||
311 | #define __NR_symlinkat 293 | ||
312 | #define __NR_readlinkat 294 | ||
313 | #define __NR_fchmodat 295 | ||
314 | #define __NR_faccessat 296 | ||
315 | #define __NR_pselect6 297 | ||
316 | #define __NR_ppoll 298 | ||
317 | #define __NR_unshare 299 | ||
318 | #define __NR_set_robust_list 300 | ||
319 | #define __NR_get_robust_list 301 | ||
320 | #define __NR_migrate_pages 302 | ||
321 | #define __NR_mbind 303 | ||
322 | #define __NR_get_mempolicy 304 | ||
323 | #define __NR_set_mempolicy 305 | ||
324 | #define __NR_kexec_load 306 | ||
325 | #define __NR_move_pages 307 | ||
326 | #define __NR_getcpu 308 | ||
327 | #define __NR_epoll_pwait 309 | ||
328 | #define __NR_utimensat 310 | ||
329 | #define __NR_signalfd 311 | ||
330 | #define __NR_timerfd_create 312 | ||
331 | #define __NR_eventfd 313 | ||
332 | #define __NR_fallocate 314 | ||
333 | #define __NR_timerfd_settime 315 | ||
334 | #define __NR_timerfd_gettime 316 | ||
335 | #define __NR_signalfd4 317 | ||
336 | #define __NR_eventfd2 318 | ||
337 | #define __NR_epoll_create1 319 | ||
338 | #define __NR_dup3 320 | ||
339 | #define __NR_pipe2 321 | ||
340 | #define __NR_inotify_init1 322 | ||
341 | #define __NR_accept4 323 | ||
342 | |||
343 | #define NR_SYSCALLS 324 | ||
344 | |||
345 | /* Sparc 32-bit only has the "setresuid32", "getresuid32" variants, | ||
346 | * it never had the plain ones and there is no value to adding those | ||
347 | * old versions into the syscall table. | ||
348 | */ | ||
349 | #define __IGNORE_setresuid | ||
350 | #define __IGNORE_getresuid | ||
351 | #define __IGNORE_setresgid | ||
352 | #define __IGNORE_getresgid | ||
353 | |||
354 | #ifdef __KERNEL__ | ||
355 | #define __ARCH_WANT_IPC_PARSE_VERSION | ||
356 | #define __ARCH_WANT_OLD_READDIR | ||
357 | #define __ARCH_WANT_STAT64 | ||
358 | #define __ARCH_WANT_SYS_ALARM | ||
359 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
360 | #define __ARCH_WANT_SYS_PAUSE | ||
361 | #define __ARCH_WANT_SYS_SGETMASK | ||
362 | #define __ARCH_WANT_SYS_SIGNAL | ||
363 | #define __ARCH_WANT_SYS_TIME | ||
364 | #define __ARCH_WANT_SYS_UTIME | ||
365 | #define __ARCH_WANT_SYS_WAITPID | ||
366 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
367 | #define __ARCH_WANT_SYS_FADVISE64 | ||
368 | #define __ARCH_WANT_SYS_GETPGRP | ||
369 | #define __ARCH_WANT_SYS_LLSEEK | ||
370 | #define __ARCH_WANT_SYS_NICE | ||
371 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
372 | #define __ARCH_WANT_SYS_SIGPENDING | ||
373 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
374 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | ||
375 | |||
376 | /* | ||
377 | * "Conditional" syscalls | ||
378 | * | ||
379 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
380 | * but it doesn't work on all toolchains, so we just do it by hand | ||
381 | */ | ||
382 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
383 | |||
384 | #endif /* __KERNEL__ */ | ||
385 | #endif /* _SPARC_UNISTD_H */ | ||
diff --git a/arch/sparc/include/asm/unistd_64.h b/arch/sparc/include/asm/unistd_64.h deleted file mode 100644 index fa5d3c0343c7..000000000000 --- a/arch/sparc/include/asm/unistd_64.h +++ /dev/null | |||
@@ -1,380 +0,0 @@ | |||
1 | #ifndef _SPARC64_UNISTD_H | ||
2 | #define _SPARC64_UNISTD_H | ||
3 | |||
4 | /* | ||
5 | * System calls under the Sparc. | ||
6 | * | ||
7 | * Don't be scared by the ugly clobbers, it is the only way I can | ||
8 | * think of right now to force the arguments into fixed registers | ||
9 | * before the trap into the system call with gcc 'asm' statements. | ||
10 | * | ||
11 | * Copyright (C) 1995, 2007 David S. Miller (davem@davemloft.net) | ||
12 | * | ||
13 | * SunOS compatibility based upon preliminary work which is: | ||
14 | * | ||
15 | * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) | ||
16 | */ | ||
17 | |||
18 | #define __NR_restart_syscall 0 /* Linux Specific */ | ||
19 | #define __NR_exit 1 /* Common */ | ||
20 | #define __NR_fork 2 /* Common */ | ||
21 | #define __NR_read 3 /* Common */ | ||
22 | #define __NR_write 4 /* Common */ | ||
23 | #define __NR_open 5 /* Common */ | ||
24 | #define __NR_close 6 /* Common */ | ||
25 | #define __NR_wait4 7 /* Common */ | ||
26 | #define __NR_creat 8 /* Common */ | ||
27 | #define __NR_link 9 /* Common */ | ||
28 | #define __NR_unlink 10 /* Common */ | ||
29 | #define __NR_execv 11 /* SunOS Specific */ | ||
30 | #define __NR_chdir 12 /* Common */ | ||
31 | #define __NR_chown 13 /* Common */ | ||
32 | #define __NR_mknod 14 /* Common */ | ||
33 | #define __NR_chmod 15 /* Common */ | ||
34 | #define __NR_lchown 16 /* Common */ | ||
35 | #define __NR_brk 17 /* Common */ | ||
36 | #define __NR_perfctr 18 /* Performance counter operations */ | ||
37 | #define __NR_lseek 19 /* Common */ | ||
38 | #define __NR_getpid 20 /* Common */ | ||
39 | #define __NR_capget 21 /* Linux Specific */ | ||
40 | #define __NR_capset 22 /* Linux Specific */ | ||
41 | #define __NR_setuid 23 /* Implemented via setreuid in SunOS */ | ||
42 | #define __NR_getuid 24 /* Common */ | ||
43 | #define __NR_vmsplice 25 /* ENOSYS under SunOS */ | ||
44 | #define __NR_ptrace 26 /* Common */ | ||
45 | #define __NR_alarm 27 /* Implemented via setitimer in SunOS */ | ||
46 | #define __NR_sigaltstack 28 /* Common */ | ||
47 | #define __NR_pause 29 /* Is sigblock(0)->sigpause() in SunOS */ | ||
48 | #define __NR_utime 30 /* Implemented via utimes() under SunOS */ | ||
49 | /* #define __NR_lchown32 31 Linux sparc32 specific */ | ||
50 | /* #define __NR_fchown32 32 Linux sparc32 specific */ | ||
51 | #define __NR_access 33 /* Common */ | ||
52 | #define __NR_nice 34 /* Implemented via get/setpriority() in SunOS */ | ||
53 | /* #define __NR_chown32 35 Linux sparc32 specific */ | ||
54 | #define __NR_sync 36 /* Common */ | ||
55 | #define __NR_kill 37 /* Common */ | ||
56 | #define __NR_stat 38 /* Common */ | ||
57 | #define __NR_sendfile 39 /* Linux Specific */ | ||
58 | #define __NR_lstat 40 /* Common */ | ||
59 | #define __NR_dup 41 /* Common */ | ||
60 | #define __NR_pipe 42 /* Common */ | ||
61 | #define __NR_times 43 /* Implemented via getrusage() in SunOS */ | ||
62 | /* #define __NR_getuid32 44 Linux sparc32 specific */ | ||
63 | #define __NR_umount2 45 /* Linux Specific */ | ||
64 | #define __NR_setgid 46 /* Implemented via setregid() in SunOS */ | ||
65 | #define __NR_getgid 47 /* Common */ | ||
66 | #define __NR_signal 48 /* Implemented via sigvec() in SunOS */ | ||
67 | #define __NR_geteuid 49 /* SunOS calls getuid() */ | ||
68 | #define __NR_getegid 50 /* SunOS calls getgid() */ | ||
69 | #define __NR_acct 51 /* Common */ | ||
70 | #define __NR_memory_ordering 52 /* Linux Specific */ | ||
71 | /* #define __NR_getgid32 53 Linux sparc32 specific */ | ||
72 | #define __NR_ioctl 54 /* Common */ | ||
73 | #define __NR_reboot 55 /* Common */ | ||
74 | /* #define __NR_mmap2 56 Linux sparc32 Specific */ | ||
75 | #define __NR_symlink 57 /* Common */ | ||
76 | #define __NR_readlink 58 /* Common */ | ||
77 | #define __NR_execve 59 /* Common */ | ||
78 | #define __NR_umask 60 /* Common */ | ||
79 | #define __NR_chroot 61 /* Common */ | ||
80 | #define __NR_fstat 62 /* Common */ | ||
81 | #define __NR_fstat64 63 /* Linux Specific */ | ||
82 | #define __NR_getpagesize 64 /* Common */ | ||
83 | #define __NR_msync 65 /* Common in newer 1.3.x revs... */ | ||
84 | #define __NR_vfork 66 /* Common */ | ||
85 | #define __NR_pread64 67 /* Linux Specific */ | ||
86 | #define __NR_pwrite64 68 /* Linux Specific */ | ||
87 | /* #define __NR_geteuid32 69 Linux sparc32, sbrk under SunOS */ | ||
88 | /* #define __NR_getegid32 70 Linux sparc32, sstk under SunOS */ | ||
89 | #define __NR_mmap 71 /* Common */ | ||
90 | /* #define __NR_setreuid32 72 Linux sparc32, vadvise under SunOS */ | ||
91 | #define __NR_munmap 73 /* Common */ | ||
92 | #define __NR_mprotect 74 /* Common */ | ||
93 | #define __NR_madvise 75 /* Common */ | ||
94 | #define __NR_vhangup 76 /* Common */ | ||
95 | /* #define __NR_truncate64 77 Linux sparc32 Specific */ | ||
96 | #define __NR_mincore 78 /* Common */ | ||
97 | #define __NR_getgroups 79 /* Common */ | ||
98 | #define __NR_setgroups 80 /* Common */ | ||
99 | #define __NR_getpgrp 81 /* Common */ | ||
100 | /* #define __NR_setgroups32 82 Linux sparc32, setpgrp under SunOS */ | ||
101 | #define __NR_setitimer 83 /* Common */ | ||
102 | /* #define __NR_ftruncate64 84 Linux sparc32 Specific */ | ||
103 | #define __NR_swapon 85 /* Common */ | ||
104 | #define __NR_getitimer 86 /* Common */ | ||
105 | /* #define __NR_setuid32 87 Linux sparc32, gethostname under SunOS */ | ||
106 | #define __NR_sethostname 88 /* Common */ | ||
107 | /* #define __NR_setgid32 89 Linux sparc32, getdtablesize under SunOS */ | ||
108 | #define __NR_dup2 90 /* Common */ | ||
109 | /* #define __NR_setfsuid32 91 Linux sparc32, getdopt under SunOS */ | ||
110 | #define __NR_fcntl 92 /* Common */ | ||
111 | #define __NR_select 93 /* Common */ | ||
112 | /* #define __NR_setfsgid32 94 Linux sparc32, setdopt under SunOS */ | ||
113 | #define __NR_fsync 95 /* Common */ | ||
114 | #define __NR_setpriority 96 /* Common */ | ||
115 | #define __NR_socket 97 /* Common */ | ||
116 | #define __NR_connect 98 /* Common */ | ||
117 | #define __NR_accept 99 /* Common */ | ||
118 | #define __NR_getpriority 100 /* Common */ | ||
119 | #define __NR_rt_sigreturn 101 /* Linux Specific */ | ||
120 | #define __NR_rt_sigaction 102 /* Linux Specific */ | ||
121 | #define __NR_rt_sigprocmask 103 /* Linux Specific */ | ||
122 | #define __NR_rt_sigpending 104 /* Linux Specific */ | ||
123 | #define __NR_rt_sigtimedwait 105 /* Linux Specific */ | ||
124 | #define __NR_rt_sigqueueinfo 106 /* Linux Specific */ | ||
125 | #define __NR_rt_sigsuspend 107 /* Linux Specific */ | ||
126 | #define __NR_setresuid 108 /* Linux Specific, sigvec under SunOS */ | ||
127 | #define __NR_getresuid 109 /* Linux Specific, sigblock under SunOS */ | ||
128 | #define __NR_setresgid 110 /* Linux Specific, sigsetmask under SunOS */ | ||
129 | #define __NR_getresgid 111 /* Linux Specific, sigpause under SunOS */ | ||
130 | /* #define __NR_setregid32 75 Linux sparc32, sigstack under SunOS */ | ||
131 | #define __NR_recvmsg 113 /* Common */ | ||
132 | #define __NR_sendmsg 114 /* Common */ | ||
133 | /* #define __NR_getgroups32 115 Linux sparc32, vtrace under SunOS */ | ||
134 | #define __NR_gettimeofday 116 /* Common */ | ||
135 | #define __NR_getrusage 117 /* Common */ | ||
136 | #define __NR_getsockopt 118 /* Common */ | ||
137 | #define __NR_getcwd 119 /* Linux Specific */ | ||
138 | #define __NR_readv 120 /* Common */ | ||
139 | #define __NR_writev 121 /* Common */ | ||
140 | #define __NR_settimeofday 122 /* Common */ | ||
141 | #define __NR_fchown 123 /* Common */ | ||
142 | #define __NR_fchmod 124 /* Common */ | ||
143 | #define __NR_recvfrom 125 /* Common */ | ||
144 | #define __NR_setreuid 126 /* Common */ | ||
145 | #define __NR_setregid 127 /* Common */ | ||
146 | #define __NR_rename 128 /* Common */ | ||
147 | #define __NR_truncate 129 /* Common */ | ||
148 | #define __NR_ftruncate 130 /* Common */ | ||
149 | #define __NR_flock 131 /* Common */ | ||
150 | #define __NR_lstat64 132 /* Linux Specific */ | ||
151 | #define __NR_sendto 133 /* Common */ | ||
152 | #define __NR_shutdown 134 /* Common */ | ||
153 | #define __NR_socketpair 135 /* Common */ | ||
154 | #define __NR_mkdir 136 /* Common */ | ||
155 | #define __NR_rmdir 137 /* Common */ | ||
156 | #define __NR_utimes 138 /* SunOS Specific */ | ||
157 | #define __NR_stat64 139 /* Linux Specific */ | ||
158 | #define __NR_sendfile64 140 /* adjtime under SunOS */ | ||
159 | #define __NR_getpeername 141 /* Common */ | ||
160 | #define __NR_futex 142 /* gethostid under SunOS */ | ||
161 | #define __NR_gettid 143 /* ENOSYS under SunOS */ | ||
162 | #define __NR_getrlimit 144 /* Common */ | ||
163 | #define __NR_setrlimit 145 /* Common */ | ||
164 | #define __NR_pivot_root 146 /* Linux Specific, killpg under SunOS */ | ||
165 | #define __NR_prctl 147 /* ENOSYS under SunOS */ | ||
166 | #define __NR_pciconfig_read 148 /* ENOSYS under SunOS */ | ||
167 | #define __NR_pciconfig_write 149 /* ENOSYS under SunOS */ | ||
168 | #define __NR_getsockname 150 /* Common */ | ||
169 | #define __NR_inotify_init 151 /* Linux specific */ | ||
170 | #define __NR_inotify_add_watch 152 /* Linux specific */ | ||
171 | #define __NR_poll 153 /* Common */ | ||
172 | #define __NR_getdents64 154 /* Linux specific */ | ||
173 | /* #define __NR_fcntl64 155 Linux sparc32 Specific */ | ||
174 | #define __NR_inotify_rm_watch 156 /* Linux specific */ | ||
175 | #define __NR_statfs 157 /* Common */ | ||
176 | #define __NR_fstatfs 158 /* Common */ | ||
177 | #define __NR_umount 159 /* Common */ | ||
178 | #define __NR_sched_set_affinity 160 /* Linux specific, async_daemon under SunOS */ | ||
179 | #define __NR_sched_get_affinity 161 /* Linux specific, getfh under SunOS */ | ||
180 | #define __NR_getdomainname 162 /* SunOS Specific */ | ||
181 | #define __NR_setdomainname 163 /* Common */ | ||
182 | #define __NR_utrap_install 164 /* SYSV ABI/v9 required */ | ||
183 | #define __NR_quotactl 165 /* Common */ | ||
184 | #define __NR_set_tid_address 166 /* Linux specific, exportfs under SunOS */ | ||
185 | #define __NR_mount 167 /* Common */ | ||
186 | #define __NR_ustat 168 /* Common */ | ||
187 | #define __NR_setxattr 169 /* SunOS: semsys */ | ||
188 | #define __NR_lsetxattr 170 /* SunOS: msgsys */ | ||
189 | #define __NR_fsetxattr 171 /* SunOS: shmsys */ | ||
190 | #define __NR_getxattr 172 /* SunOS: auditsys */ | ||
191 | #define __NR_lgetxattr 173 /* SunOS: rfssys */ | ||
192 | #define __NR_getdents 174 /* Common */ | ||
193 | #define __NR_setsid 175 /* Common */ | ||
194 | #define __NR_fchdir 176 /* Common */ | ||
195 | #define __NR_fgetxattr 177 /* SunOS: fchroot */ | ||
196 | #define __NR_listxattr 178 /* SunOS: vpixsys */ | ||
197 | #define __NR_llistxattr 179 /* SunOS: aioread */ | ||
198 | #define __NR_flistxattr 180 /* SunOS: aiowrite */ | ||
199 | #define __NR_removexattr 181 /* SunOS: aiowait */ | ||
200 | #define __NR_lremovexattr 182 /* SunOS: aiocancel */ | ||
201 | #define __NR_sigpending 183 /* Common */ | ||
202 | #define __NR_query_module 184 /* Linux Specific */ | ||
203 | #define __NR_setpgid 185 /* Common */ | ||
204 | #define __NR_fremovexattr 186 /* SunOS: pathconf */ | ||
205 | #define __NR_tkill 187 /* SunOS: fpathconf */ | ||
206 | #define __NR_exit_group 188 /* Linux specific, sysconf undef SunOS */ | ||
207 | #define __NR_uname 189 /* Linux Specific */ | ||
208 | #define __NR_init_module 190 /* Linux Specific */ | ||
209 | #define __NR_personality 191 /* Linux Specific */ | ||
210 | #define __NR_remap_file_pages 192 /* Linux Specific */ | ||
211 | #define __NR_epoll_create 193 /* Linux Specific */ | ||
212 | #define __NR_epoll_ctl 194 /* Linux Specific */ | ||
213 | #define __NR_epoll_wait 195 /* Linux Specific */ | ||
214 | #define __NR_ioprio_set 196 /* Linux Specific */ | ||
215 | #define __NR_getppid 197 /* Linux Specific */ | ||
216 | #define __NR_sigaction 198 /* Linux Specific */ | ||
217 | #define __NR_sgetmask 199 /* Linux Specific */ | ||
218 | #define __NR_ssetmask 200 /* Linux Specific */ | ||
219 | #define __NR_sigsuspend 201 /* Linux Specific */ | ||
220 | #define __NR_oldlstat 202 /* Linux Specific */ | ||
221 | #define __NR_uselib 203 /* Linux Specific */ | ||
222 | #define __NR_readdir 204 /* Linux Specific */ | ||
223 | #define __NR_readahead 205 /* Linux Specific */ | ||
224 | #define __NR_socketcall 206 /* Linux Specific */ | ||
225 | #define __NR_syslog 207 /* Linux Specific */ | ||
226 | #define __NR_lookup_dcookie 208 /* Linux Specific */ | ||
227 | #define __NR_fadvise64 209 /* Linux Specific */ | ||
228 | #define __NR_fadvise64_64 210 /* Linux Specific */ | ||
229 | #define __NR_tgkill 211 /* Linux Specific */ | ||
230 | #define __NR_waitpid 212 /* Linux Specific */ | ||
231 | #define __NR_swapoff 213 /* Linux Specific */ | ||
232 | #define __NR_sysinfo 214 /* Linux Specific */ | ||
233 | #define __NR_ipc 215 /* Linux Specific */ | ||
234 | #define __NR_sigreturn 216 /* Linux Specific */ | ||
235 | #define __NR_clone 217 /* Linux Specific */ | ||
236 | #define __NR_ioprio_get 218 /* Linux Specific */ | ||
237 | #define __NR_adjtimex 219 /* Linux Specific */ | ||
238 | #define __NR_sigprocmask 220 /* Linux Specific */ | ||
239 | #define __NR_create_module 221 /* Linux Specific */ | ||
240 | #define __NR_delete_module 222 /* Linux Specific */ | ||
241 | #define __NR_get_kernel_syms 223 /* Linux Specific */ | ||
242 | #define __NR_getpgid 224 /* Linux Specific */ | ||
243 | #define __NR_bdflush 225 /* Linux Specific */ | ||
244 | #define __NR_sysfs 226 /* Linux Specific */ | ||
245 | #define __NR_afs_syscall 227 /* Linux Specific */ | ||
246 | #define __NR_setfsuid 228 /* Linux Specific */ | ||
247 | #define __NR_setfsgid 229 /* Linux Specific */ | ||
248 | #define __NR__newselect 230 /* Linux Specific */ | ||
249 | #ifdef __KERNEL__ | ||
250 | #define __NR_time 231 /* Linux sparc32 */ | ||
251 | #endif | ||
252 | #define __NR_splice 232 /* Linux Specific */ | ||
253 | #define __NR_stime 233 /* Linux Specific */ | ||
254 | #define __NR_statfs64 234 /* Linux Specific */ | ||
255 | #define __NR_fstatfs64 235 /* Linux Specific */ | ||
256 | #define __NR__llseek 236 /* Linux Specific */ | ||
257 | #define __NR_mlock 237 | ||
258 | #define __NR_munlock 238 | ||
259 | #define __NR_mlockall 239 | ||
260 | #define __NR_munlockall 240 | ||
261 | #define __NR_sched_setparam 241 | ||
262 | #define __NR_sched_getparam 242 | ||
263 | #define __NR_sched_setscheduler 243 | ||
264 | #define __NR_sched_getscheduler 244 | ||
265 | #define __NR_sched_yield 245 | ||
266 | #define __NR_sched_get_priority_max 246 | ||
267 | #define __NR_sched_get_priority_min 247 | ||
268 | #define __NR_sched_rr_get_interval 248 | ||
269 | #define __NR_nanosleep 249 | ||
270 | #define __NR_mremap 250 | ||
271 | #define __NR__sysctl 251 | ||
272 | #define __NR_getsid 252 | ||
273 | #define __NR_fdatasync 253 | ||
274 | #define __NR_nfsservctl 254 | ||
275 | #define __NR_sync_file_range 255 | ||
276 | #define __NR_clock_settime 256 | ||
277 | #define __NR_clock_gettime 257 | ||
278 | #define __NR_clock_getres 258 | ||
279 | #define __NR_clock_nanosleep 259 | ||
280 | #define __NR_sched_getaffinity 260 | ||
281 | #define __NR_sched_setaffinity 261 | ||
282 | #define __NR_timer_settime 262 | ||
283 | #define __NR_timer_gettime 263 | ||
284 | #define __NR_timer_getoverrun 264 | ||
285 | #define __NR_timer_delete 265 | ||
286 | #define __NR_timer_create 266 | ||
287 | /* #define __NR_vserver 267 Reserved for VSERVER */ | ||
288 | #define __NR_io_setup 268 | ||
289 | #define __NR_io_destroy 269 | ||
290 | #define __NR_io_submit 270 | ||
291 | #define __NR_io_cancel 271 | ||
292 | #define __NR_io_getevents 272 | ||
293 | #define __NR_mq_open 273 | ||
294 | #define __NR_mq_unlink 274 | ||
295 | #define __NR_mq_timedsend 275 | ||
296 | #define __NR_mq_timedreceive 276 | ||
297 | #define __NR_mq_notify 277 | ||
298 | #define __NR_mq_getsetattr 278 | ||
299 | #define __NR_waitid 279 | ||
300 | #define __NR_tee 280 | ||
301 | #define __NR_add_key 281 | ||
302 | #define __NR_request_key 282 | ||
303 | #define __NR_keyctl 283 | ||
304 | #define __NR_openat 284 | ||
305 | #define __NR_mkdirat 285 | ||
306 | #define __NR_mknodat 286 | ||
307 | #define __NR_fchownat 287 | ||
308 | #define __NR_futimesat 288 | ||
309 | #define __NR_fstatat64 289 | ||
310 | #define __NR_unlinkat 290 | ||
311 | #define __NR_renameat 291 | ||
312 | #define __NR_linkat 292 | ||
313 | #define __NR_symlinkat 293 | ||
314 | #define __NR_readlinkat 294 | ||
315 | #define __NR_fchmodat 295 | ||
316 | #define __NR_faccessat 296 | ||
317 | #define __NR_pselect6 297 | ||
318 | #define __NR_ppoll 298 | ||
319 | #define __NR_unshare 299 | ||
320 | #define __NR_set_robust_list 300 | ||
321 | #define __NR_get_robust_list 301 | ||
322 | #define __NR_migrate_pages 302 | ||
323 | #define __NR_mbind 303 | ||
324 | #define __NR_get_mempolicy 304 | ||
325 | #define __NR_set_mempolicy 305 | ||
326 | #define __NR_kexec_load 306 | ||
327 | #define __NR_move_pages 307 | ||
328 | #define __NR_getcpu 308 | ||
329 | #define __NR_epoll_pwait 309 | ||
330 | #define __NR_utimensat 310 | ||
331 | #define __NR_signalfd 311 | ||
332 | #define __NR_timerfd_create 312 | ||
333 | #define __NR_eventfd 313 | ||
334 | #define __NR_fallocate 314 | ||
335 | #define __NR_timerfd_settime 315 | ||
336 | #define __NR_timerfd_gettime 316 | ||
337 | #define __NR_signalfd4 317 | ||
338 | #define __NR_eventfd2 318 | ||
339 | #define __NR_epoll_create1 319 | ||
340 | #define __NR_dup3 320 | ||
341 | #define __NR_pipe2 321 | ||
342 | #define __NR_inotify_init1 322 | ||
343 | #define __NR_accept4 323 | ||
344 | |||
345 | #define NR_SYSCALLS 324 | ||
346 | |||
347 | #ifdef __KERNEL__ | ||
348 | #define __ARCH_WANT_IPC_PARSE_VERSION | ||
349 | #define __ARCH_WANT_OLD_READDIR | ||
350 | #define __ARCH_WANT_STAT64 | ||
351 | #define __ARCH_WANT_SYS_ALARM | ||
352 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
353 | #define __ARCH_WANT_SYS_PAUSE | ||
354 | #define __ARCH_WANT_SYS_SGETMASK | ||
355 | #define __ARCH_WANT_SYS_SIGNAL | ||
356 | #define __ARCH_WANT_SYS_TIME | ||
357 | #define __ARCH_WANT_COMPAT_SYS_TIME | ||
358 | #define __ARCH_WANT_SYS_UTIME | ||
359 | #define __ARCH_WANT_SYS_WAITPID | ||
360 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
361 | #define __ARCH_WANT_SYS_FADVISE64 | ||
362 | #define __ARCH_WANT_SYS_GETPGRP | ||
363 | #define __ARCH_WANT_SYS_LLSEEK | ||
364 | #define __ARCH_WANT_SYS_NICE | ||
365 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
366 | #define __ARCH_WANT_SYS_SIGPENDING | ||
367 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
368 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | ||
369 | #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND | ||
370 | |||
371 | /* | ||
372 | * "Conditional" syscalls | ||
373 | * | ||
374 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
375 | * but it doesn't work on all toolchains, so we just do it by hand | ||
376 | */ | ||
377 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
378 | |||
379 | #endif /* __KERNEL__ */ | ||
380 | #endif /* _SPARC64_UNISTD_H */ | ||