diff options
Diffstat (limited to 'arch')
43 files changed, 1534 insertions, 2155 deletions
diff --git a/arch/m68k/include/asm/param.h b/arch/m68k/include/asm/param.h index 40d1112a4588..85c41b75aa78 100644 --- a/arch/m68k/include/asm/param.h +++ b/arch/m68k/include/asm/param.h | |||
@@ -1,5 +1,26 @@ | |||
1 | #ifndef _M68K_PARAM_H | ||
2 | #define _M68K_PARAM_H | ||
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | # define HZ CONFIG_HZ /* Internal kernel timer frequency */ | ||
6 | # define USER_HZ 100 /* .. some user interfaces are in "ticks" */ | ||
7 | # define CLOCKS_PER_SEC (USER_HZ) /* like times() */ | ||
8 | #endif | ||
9 | |||
10 | #ifndef HZ | ||
11 | #define HZ 100 | ||
12 | #endif | ||
13 | |||
1 | #ifdef __uClinux__ | 14 | #ifdef __uClinux__ |
2 | #include "param_no.h" | 15 | #define EXEC_PAGESIZE 4096 |
3 | #else | 16 | #else |
4 | #include "param_mm.h" | 17 | #define EXEC_PAGESIZE 8192 |
18 | #endif | ||
19 | |||
20 | #ifndef NOGROUP | ||
21 | #define NOGROUP (-1) | ||
5 | #endif | 22 | #endif |
23 | |||
24 | #define MAXHOSTNAMELEN 64 /* max length of hostname */ | ||
25 | |||
26 | #endif /* _M68K_PARAM_H */ | ||
diff --git a/arch/m68k/include/asm/param_mm.h b/arch/m68k/include/asm/param_mm.h deleted file mode 100644 index 536a27888358..000000000000 --- a/arch/m68k/include/asm/param_mm.h +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | #ifndef _M68K_PARAM_H | ||
2 | #define _M68K_PARAM_H | ||
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | # define HZ CONFIG_HZ /* Internal kernel timer frequency */ | ||
6 | # define USER_HZ 100 /* .. some user interfaces are in "ticks" */ | ||
7 | # define CLOCKS_PER_SEC (USER_HZ) /* like times() */ | ||
8 | #endif | ||
9 | |||
10 | #ifndef HZ | ||
11 | #define HZ 100 | ||
12 | #endif | ||
13 | |||
14 | #define EXEC_PAGESIZE 8192 | ||
15 | |||
16 | #ifndef NOGROUP | ||
17 | #define NOGROUP (-1) | ||
18 | #endif | ||
19 | |||
20 | #define MAXHOSTNAMELEN 64 /* max length of hostname */ | ||
21 | |||
22 | #endif /* _M68K_PARAM_H */ | ||
diff --git a/arch/m68k/include/asm/param_no.h b/arch/m68k/include/asm/param_no.h deleted file mode 100644 index 6044397adb64..000000000000 --- a/arch/m68k/include/asm/param_no.h +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | #ifndef _M68KNOMMU_PARAM_H | ||
2 | #define _M68KNOMMU_PARAM_H | ||
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | #define HZ CONFIG_HZ | ||
6 | #define USER_HZ HZ | ||
7 | #define CLOCKS_PER_SEC (USER_HZ) | ||
8 | #endif | ||
9 | |||
10 | #ifndef HZ | ||
11 | #define HZ 100 | ||
12 | #endif | ||
13 | |||
14 | #define EXEC_PAGESIZE 4096 | ||
15 | |||
16 | #ifndef NOGROUP | ||
17 | #define NOGROUP (-1) | ||
18 | #endif | ||
19 | |||
20 | #define MAXHOSTNAMELEN 64 /* max length of hostname */ | ||
21 | |||
22 | #endif /* _M68KNOMMU_PARAM_H */ | ||
diff --git a/arch/m68k/include/asm/ptrace.h b/arch/m68k/include/asm/ptrace.h index e83cd2f66101..8c9194b98548 100644 --- a/arch/m68k/include/asm/ptrace.h +++ b/arch/m68k/include/asm/ptrace.h | |||
@@ -1,5 +1,87 @@ | |||
1 | #ifdef __uClinux__ | 1 | #ifndef _M68K_PTRACE_H |
2 | #include "ptrace_no.h" | 2 | #define _M68K_PTRACE_H |
3 | |||
4 | #define PT_D1 0 | ||
5 | #define PT_D2 1 | ||
6 | #define PT_D3 2 | ||
7 | #define PT_D4 3 | ||
8 | #define PT_D5 4 | ||
9 | #define PT_D6 5 | ||
10 | #define PT_D7 6 | ||
11 | #define PT_A0 7 | ||
12 | #define PT_A1 8 | ||
13 | #define PT_A2 9 | ||
14 | #define PT_A3 10 | ||
15 | #define PT_A4 11 | ||
16 | #define PT_A5 12 | ||
17 | #define PT_A6 13 | ||
18 | #define PT_D0 14 | ||
19 | #define PT_USP 15 | ||
20 | #define PT_ORIG_D0 16 | ||
21 | #define PT_SR 17 | ||
22 | #define PT_PC 18 | ||
23 | |||
24 | #ifndef __ASSEMBLY__ | ||
25 | |||
26 | /* this struct defines the way the registers are stored on the | ||
27 | stack during a system call. */ | ||
28 | |||
29 | struct pt_regs { | ||
30 | long d1; | ||
31 | long d2; | ||
32 | long d3; | ||
33 | long d4; | ||
34 | long d5; | ||
35 | long a0; | ||
36 | long a1; | ||
37 | long a2; | ||
38 | long d0; | ||
39 | long orig_d0; | ||
40 | long stkadj; | ||
41 | #ifdef CONFIG_COLDFIRE | ||
42 | unsigned format : 4; /* frame format specifier */ | ||
43 | unsigned vector : 12; /* vector offset */ | ||
44 | unsigned short sr; | ||
45 | unsigned long pc; | ||
3 | #else | 46 | #else |
4 | #include "ptrace_mm.h" | 47 | unsigned short sr; |
48 | unsigned long pc; | ||
49 | unsigned format : 4; /* frame format specifier */ | ||
50 | unsigned vector : 12; /* vector offset */ | ||
5 | #endif | 51 | #endif |
52 | }; | ||
53 | |||
54 | /* | ||
55 | * This is the extended stack used by signal handlers and the context | ||
56 | * switcher: it's pushed after the normal "struct pt_regs". | ||
57 | */ | ||
58 | struct switch_stack { | ||
59 | unsigned long d6; | ||
60 | unsigned long d7; | ||
61 | unsigned long a3; | ||
62 | unsigned long a4; | ||
63 | unsigned long a5; | ||
64 | unsigned long a6; | ||
65 | unsigned long retpc; | ||
66 | }; | ||
67 | |||
68 | /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ | ||
69 | #define PTRACE_GETREGS 12 | ||
70 | #define PTRACE_SETREGS 13 | ||
71 | #define PTRACE_GETFPREGS 14 | ||
72 | #define PTRACE_SETFPREGS 15 | ||
73 | |||
74 | #ifdef __KERNEL__ | ||
75 | |||
76 | #ifndef PS_S | ||
77 | #define PS_S (0x2000) | ||
78 | #define PS_M (0x1000) | ||
79 | #endif | ||
80 | |||
81 | #define user_mode(regs) (!((regs)->sr & PS_S)) | ||
82 | #define instruction_pointer(regs) ((regs)->pc) | ||
83 | #define profile_pc(regs) instruction_pointer(regs) | ||
84 | extern void show_regs(struct pt_regs *); | ||
85 | #endif /* __KERNEL__ */ | ||
86 | #endif /* __ASSEMBLY__ */ | ||
87 | #endif /* _M68K_PTRACE_H */ | ||
diff --git a/arch/m68k/include/asm/ptrace_mm.h b/arch/m68k/include/asm/ptrace_mm.h deleted file mode 100644 index 57e763d79bf4..000000000000 --- a/arch/m68k/include/asm/ptrace_mm.h +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
1 | #ifndef _M68K_PTRACE_H | ||
2 | #define _M68K_PTRACE_H | ||
3 | |||
4 | #define PT_D1 0 | ||
5 | #define PT_D2 1 | ||
6 | #define PT_D3 2 | ||
7 | #define PT_D4 3 | ||
8 | #define PT_D5 4 | ||
9 | #define PT_D6 5 | ||
10 | #define PT_D7 6 | ||
11 | #define PT_A0 7 | ||
12 | #define PT_A1 8 | ||
13 | #define PT_A2 9 | ||
14 | #define PT_A3 10 | ||
15 | #define PT_A4 11 | ||
16 | #define PT_A5 12 | ||
17 | #define PT_A6 13 | ||
18 | #define PT_D0 14 | ||
19 | #define PT_USP 15 | ||
20 | #define PT_ORIG_D0 16 | ||
21 | #define PT_SR 17 | ||
22 | #define PT_PC 18 | ||
23 | |||
24 | #ifndef __ASSEMBLY__ | ||
25 | |||
26 | /* this struct defines the way the registers are stored on the | ||
27 | stack during a system call. */ | ||
28 | |||
29 | struct pt_regs { | ||
30 | long d1; | ||
31 | long d2; | ||
32 | long d3; | ||
33 | long d4; | ||
34 | long d5; | ||
35 | long a0; | ||
36 | long a1; | ||
37 | long a2; | ||
38 | long d0; | ||
39 | long orig_d0; | ||
40 | long stkadj; | ||
41 | unsigned short sr; | ||
42 | unsigned long pc; | ||
43 | unsigned format : 4; /* frame format specifier */ | ||
44 | unsigned vector : 12; /* vector offset */ | ||
45 | }; | ||
46 | |||
47 | /* | ||
48 | * This is the extended stack used by signal handlers and the context | ||
49 | * switcher: it's pushed after the normal "struct pt_regs". | ||
50 | */ | ||
51 | struct switch_stack { | ||
52 | unsigned long d6; | ||
53 | unsigned long d7; | ||
54 | unsigned long a3; | ||
55 | unsigned long a4; | ||
56 | unsigned long a5; | ||
57 | unsigned long a6; | ||
58 | unsigned long retpc; | ||
59 | }; | ||
60 | |||
61 | /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ | ||
62 | #define PTRACE_GETREGS 12 | ||
63 | #define PTRACE_SETREGS 13 | ||
64 | #define PTRACE_GETFPREGS 14 | ||
65 | #define PTRACE_SETFPREGS 15 | ||
66 | |||
67 | #ifdef __KERNEL__ | ||
68 | |||
69 | #ifndef PS_S | ||
70 | #define PS_S (0x2000) | ||
71 | #define PS_M (0x1000) | ||
72 | #endif | ||
73 | |||
74 | #define user_mode(regs) (!((regs)->sr & PS_S)) | ||
75 | #define instruction_pointer(regs) ((regs)->pc) | ||
76 | #define profile_pc(regs) instruction_pointer(regs) | ||
77 | extern void show_regs(struct pt_regs *); | ||
78 | #endif /* __KERNEL__ */ | ||
79 | #endif /* __ASSEMBLY__ */ | ||
80 | #endif /* _M68K_PTRACE_H */ | ||
diff --git a/arch/m68k/include/asm/ptrace_no.h b/arch/m68k/include/asm/ptrace_no.h deleted file mode 100644 index 8c9194b98548..000000000000 --- a/arch/m68k/include/asm/ptrace_no.h +++ /dev/null | |||
@@ -1,87 +0,0 @@ | |||
1 | #ifndef _M68K_PTRACE_H | ||
2 | #define _M68K_PTRACE_H | ||
3 | |||
4 | #define PT_D1 0 | ||
5 | #define PT_D2 1 | ||
6 | #define PT_D3 2 | ||
7 | #define PT_D4 3 | ||
8 | #define PT_D5 4 | ||
9 | #define PT_D6 5 | ||
10 | #define PT_D7 6 | ||
11 | #define PT_A0 7 | ||
12 | #define PT_A1 8 | ||
13 | #define PT_A2 9 | ||
14 | #define PT_A3 10 | ||
15 | #define PT_A4 11 | ||
16 | #define PT_A5 12 | ||
17 | #define PT_A6 13 | ||
18 | #define PT_D0 14 | ||
19 | #define PT_USP 15 | ||
20 | #define PT_ORIG_D0 16 | ||
21 | #define PT_SR 17 | ||
22 | #define PT_PC 18 | ||
23 | |||
24 | #ifndef __ASSEMBLY__ | ||
25 | |||
26 | /* this struct defines the way the registers are stored on the | ||
27 | stack during a system call. */ | ||
28 | |||
29 | struct pt_regs { | ||
30 | long d1; | ||
31 | long d2; | ||
32 | long d3; | ||
33 | long d4; | ||
34 | long d5; | ||
35 | long a0; | ||
36 | long a1; | ||
37 | long a2; | ||
38 | long d0; | ||
39 | long orig_d0; | ||
40 | long stkadj; | ||
41 | #ifdef CONFIG_COLDFIRE | ||
42 | unsigned format : 4; /* frame format specifier */ | ||
43 | unsigned vector : 12; /* vector offset */ | ||
44 | unsigned short sr; | ||
45 | unsigned long pc; | ||
46 | #else | ||
47 | unsigned short sr; | ||
48 | unsigned long pc; | ||
49 | unsigned format : 4; /* frame format specifier */ | ||
50 | unsigned vector : 12; /* vector offset */ | ||
51 | #endif | ||
52 | }; | ||
53 | |||
54 | /* | ||
55 | * This is the extended stack used by signal handlers and the context | ||
56 | * switcher: it's pushed after the normal "struct pt_regs". | ||
57 | */ | ||
58 | struct switch_stack { | ||
59 | unsigned long d6; | ||
60 | unsigned long d7; | ||
61 | unsigned long a3; | ||
62 | unsigned long a4; | ||
63 | unsigned long a5; | ||
64 | unsigned long a6; | ||
65 | unsigned long retpc; | ||
66 | }; | ||
67 | |||
68 | /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ | ||
69 | #define PTRACE_GETREGS 12 | ||
70 | #define PTRACE_SETREGS 13 | ||
71 | #define PTRACE_GETFPREGS 14 | ||
72 | #define PTRACE_SETFPREGS 15 | ||
73 | |||
74 | #ifdef __KERNEL__ | ||
75 | |||
76 | #ifndef PS_S | ||
77 | #define PS_S (0x2000) | ||
78 | #define PS_M (0x1000) | ||
79 | #endif | ||
80 | |||
81 | #define user_mode(regs) (!((regs)->sr & PS_S)) | ||
82 | #define instruction_pointer(regs) ((regs)->pc) | ||
83 | #define profile_pc(regs) instruction_pointer(regs) | ||
84 | extern void show_regs(struct pt_regs *); | ||
85 | #endif /* __KERNEL__ */ | ||
86 | #endif /* __ASSEMBLY__ */ | ||
87 | #endif /* _M68K_PTRACE_H */ | ||
diff --git a/arch/m68k/include/asm/setup.h b/arch/m68k/include/asm/setup.h index 842f86f75ccd..4dfb3952b375 100644 --- a/arch/m68k/include/asm/setup.h +++ b/arch/m68k/include/asm/setup.h | |||
@@ -1,5 +1,376 @@ | |||
1 | #ifdef __uClinux__ | 1 | /* |
2 | #include "setup_no.h" | 2 | ** asm/setup.h -- Definition of the Linux/m68k setup information |
3 | ** | ||
4 | ** Copyright 1992 by Greg Harp | ||
5 | ** | ||
6 | ** This file is subject to the terms and conditions of the GNU General Public | ||
7 | ** License. See the file COPYING in the main directory of this archive | ||
8 | ** for more details. | ||
9 | ** | ||
10 | ** Created 09/29/92 by Greg Harp | ||
11 | ** | ||
12 | ** 5/2/94 Roman Hodek: | ||
13 | ** Added bi_atari part of the machine dependent union bi_un; for now it | ||
14 | ** contains just a model field to distinguish between TT and Falcon. | ||
15 | ** 26/7/96 Roman Zippel: | ||
16 | ** Renamed to setup.h; added some useful macros to allow gcc some | ||
17 | ** optimizations if possible. | ||
18 | ** 5/10/96 Geert Uytterhoeven: | ||
19 | ** Redesign of the boot information structure; moved boot information | ||
20 | ** structure to bootinfo.h | ||
21 | */ | ||
22 | |||
23 | #ifndef _M68K_SETUP_H | ||
24 | #define _M68K_SETUP_H | ||
25 | |||
26 | |||
27 | |||
28 | /* | ||
29 | * Linux/m68k Architectures | ||
30 | */ | ||
31 | |||
32 | #define MACH_AMIGA 1 | ||
33 | #define MACH_ATARI 2 | ||
34 | #define MACH_MAC 3 | ||
35 | #define MACH_APOLLO 4 | ||
36 | #define MACH_SUN3 5 | ||
37 | #define MACH_MVME147 6 | ||
38 | #define MACH_MVME16x 7 | ||
39 | #define MACH_BVME6000 8 | ||
40 | #define MACH_HP300 9 | ||
41 | #define MACH_Q40 10 | ||
42 | #define MACH_SUN3X 11 | ||
43 | |||
44 | #define COMMAND_LINE_SIZE 256 | ||
45 | |||
46 | #ifdef __KERNEL__ | ||
47 | |||
48 | #define CL_SIZE COMMAND_LINE_SIZE | ||
49 | |||
50 | #ifndef __ASSEMBLY__ | ||
51 | extern unsigned long m68k_machtype; | ||
52 | #endif /* !__ASSEMBLY__ */ | ||
53 | |||
54 | #if !defined(CONFIG_AMIGA) | ||
55 | # define MACH_IS_AMIGA (0) | ||
56 | #elif defined(CONFIG_ATARI) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \ | ||
57 | || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ | ||
58 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
59 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
60 | # define MACH_IS_AMIGA (m68k_machtype == MACH_AMIGA) | ||
3 | #else | 61 | #else |
4 | #include "setup_mm.h" | 62 | # define MACH_AMIGA_ONLY |
63 | # define MACH_IS_AMIGA (1) | ||
64 | # define MACH_TYPE (MACH_AMIGA) | ||
5 | #endif | 65 | #endif |
66 | |||
67 | #if !defined(CONFIG_ATARI) | ||
68 | # define MACH_IS_ATARI (0) | ||
69 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \ | ||
70 | || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ | ||
71 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
72 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
73 | # define MACH_IS_ATARI (m68k_machtype == MACH_ATARI) | ||
74 | #else | ||
75 | # define MACH_ATARI_ONLY | ||
76 | # define MACH_IS_ATARI (1) | ||
77 | # define MACH_TYPE (MACH_ATARI) | ||
78 | #endif | ||
79 | |||
80 | #if !defined(CONFIG_MAC) | ||
81 | # define MACH_IS_MAC (0) | ||
82 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_ATARI) || defined(CONFIG_APOLLO) \ | ||
83 | || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ | ||
84 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
85 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
86 | # define MACH_IS_MAC (m68k_machtype == MACH_MAC) | ||
87 | #else | ||
88 | # define MACH_MAC_ONLY | ||
89 | # define MACH_IS_MAC (1) | ||
90 | # define MACH_TYPE (MACH_MAC) | ||
91 | #endif | ||
92 | |||
93 | #if defined(CONFIG_SUN3) | ||
94 | #define MACH_IS_SUN3 (1) | ||
95 | #define MACH_SUN3_ONLY (1) | ||
96 | #define MACH_TYPE (MACH_SUN3) | ||
97 | #else | ||
98 | #define MACH_IS_SUN3 (0) | ||
99 | #endif | ||
100 | |||
101 | #if !defined (CONFIG_APOLLO) | ||
102 | # define MACH_IS_APOLLO (0) | ||
103 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
104 | || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ | ||
105 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
106 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
107 | # define MACH_IS_APOLLO (m68k_machtype == MACH_APOLLO) | ||
108 | #else | ||
109 | # define MACH_APOLLO_ONLY | ||
110 | # define MACH_IS_APOLLO (1) | ||
111 | # define MACH_TYPE (MACH_APOLLO) | ||
112 | #endif | ||
113 | |||
114 | #if !defined (CONFIG_MVME147) | ||
115 | # define MACH_IS_MVME147 (0) | ||
116 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
117 | || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \ | ||
118 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
119 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME16x) | ||
120 | # define MACH_IS_MVME147 (m68k_machtype == MACH_MVME147) | ||
121 | #else | ||
122 | # define MACH_MVME147_ONLY | ||
123 | # define MACH_IS_MVME147 (1) | ||
124 | # define MACH_TYPE (MACH_MVME147) | ||
125 | #endif | ||
126 | |||
127 | #if !defined (CONFIG_MVME16x) | ||
128 | # define MACH_IS_MVME16x (0) | ||
129 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
130 | || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \ | ||
131 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
132 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
133 | # define MACH_IS_MVME16x (m68k_machtype == MACH_MVME16x) | ||
134 | #else | ||
135 | # define MACH_MVME16x_ONLY | ||
136 | # define MACH_IS_MVME16x (1) | ||
137 | # define MACH_TYPE (MACH_MVME16x) | ||
138 | #endif | ||
139 | |||
140 | #if !defined (CONFIG_BVME6000) | ||
141 | # define MACH_IS_BVME6000 (0) | ||
142 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
143 | || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ | ||
144 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
145 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
146 | # define MACH_IS_BVME6000 (m68k_machtype == MACH_BVME6000) | ||
147 | #else | ||
148 | # define MACH_BVME6000_ONLY | ||
149 | # define MACH_IS_BVME6000 (1) | ||
150 | # define MACH_TYPE (MACH_BVME6000) | ||
151 | #endif | ||
152 | |||
153 | #if !defined (CONFIG_HP300) | ||
154 | # define MACH_IS_HP300 (0) | ||
155 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
156 | || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ | ||
157 | || defined(CONFIG_BVME6000) || defined(CONFIG_Q40) \ | ||
158 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
159 | # define MACH_IS_HP300 (m68k_machtype == MACH_HP300) | ||
160 | #else | ||
161 | # define MACH_HP300_ONLY | ||
162 | # define MACH_IS_HP300 (1) | ||
163 | # define MACH_TYPE (MACH_HP300) | ||
164 | #endif | ||
165 | |||
166 | #if !defined (CONFIG_Q40) | ||
167 | # define MACH_IS_Q40 (0) | ||
168 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
169 | || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ | ||
170 | || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \ | ||
171 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
172 | # define MACH_IS_Q40 (m68k_machtype == MACH_Q40) | ||
173 | #else | ||
174 | # define MACH_Q40_ONLY | ||
175 | # define MACH_IS_Q40 (1) | ||
176 | # define MACH_TYPE (MACH_Q40) | ||
177 | #endif | ||
178 | |||
179 | #if !defined (CONFIG_SUN3X) | ||
180 | # define MACH_IS_SUN3X (0) | ||
181 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
182 | || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ | ||
183 | || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \ | ||
184 | || defined(CONFIG_Q40) || defined(CONFIG_MVME147) | ||
185 | # define MACH_IS_SUN3X (m68k_machtype == MACH_SUN3X) | ||
186 | #else | ||
187 | # define CONFIG_SUN3X_ONLY | ||
188 | # define MACH_IS_SUN3X (1) | ||
189 | # define MACH_TYPE (MACH_SUN3X) | ||
190 | #endif | ||
191 | |||
192 | #ifndef MACH_TYPE | ||
193 | # define MACH_TYPE (m68k_machtype) | ||
194 | #endif | ||
195 | |||
196 | #endif /* __KERNEL__ */ | ||
197 | |||
198 | |||
199 | /* | ||
200 | * CPU, FPU and MMU types | ||
201 | * | ||
202 | * Note: we may rely on the following equalities: | ||
203 | * | ||
204 | * CPU_68020 == MMU_68851 | ||
205 | * CPU_68030 == MMU_68030 | ||
206 | * CPU_68040 == FPU_68040 == MMU_68040 | ||
207 | * CPU_68060 == FPU_68060 == MMU_68060 | ||
208 | */ | ||
209 | |||
210 | #define CPUB_68020 0 | ||
211 | #define CPUB_68030 1 | ||
212 | #define CPUB_68040 2 | ||
213 | #define CPUB_68060 3 | ||
214 | |||
215 | #define CPU_68020 (1<<CPUB_68020) | ||
216 | #define CPU_68030 (1<<CPUB_68030) | ||
217 | #define CPU_68040 (1<<CPUB_68040) | ||
218 | #define CPU_68060 (1<<CPUB_68060) | ||
219 | |||
220 | #define FPUB_68881 0 | ||
221 | #define FPUB_68882 1 | ||
222 | #define FPUB_68040 2 /* Internal FPU */ | ||
223 | #define FPUB_68060 3 /* Internal FPU */ | ||
224 | #define FPUB_SUNFPA 4 /* Sun-3 FPA */ | ||
225 | |||
226 | #define FPU_68881 (1<<FPUB_68881) | ||
227 | #define FPU_68882 (1<<FPUB_68882) | ||
228 | #define FPU_68040 (1<<FPUB_68040) | ||
229 | #define FPU_68060 (1<<FPUB_68060) | ||
230 | #define FPU_SUNFPA (1<<FPUB_SUNFPA) | ||
231 | |||
232 | #define MMUB_68851 0 | ||
233 | #define MMUB_68030 1 /* Internal MMU */ | ||
234 | #define MMUB_68040 2 /* Internal MMU */ | ||
235 | #define MMUB_68060 3 /* Internal MMU */ | ||
236 | #define MMUB_APOLLO 4 /* Custom Apollo */ | ||
237 | #define MMUB_SUN3 5 /* Custom Sun-3 */ | ||
238 | |||
239 | #define MMU_68851 (1<<MMUB_68851) | ||
240 | #define MMU_68030 (1<<MMUB_68030) | ||
241 | #define MMU_68040 (1<<MMUB_68040) | ||
242 | #define MMU_68060 (1<<MMUB_68060) | ||
243 | #define MMU_SUN3 (1<<MMUB_SUN3) | ||
244 | #define MMU_APOLLO (1<<MMUB_APOLLO) | ||
245 | |||
246 | #ifdef __KERNEL__ | ||
247 | |||
248 | #ifndef __ASSEMBLY__ | ||
249 | extern unsigned long m68k_cputype; | ||
250 | extern unsigned long m68k_fputype; | ||
251 | extern unsigned long m68k_mmutype; | ||
252 | #ifdef CONFIG_VME | ||
253 | extern unsigned long vme_brdtype; | ||
254 | #endif | ||
255 | |||
256 | /* | ||
257 | * m68k_is040or060 is != 0 for a '040 or higher; | ||
258 | * used numbers are 4 for 68040 and 6 for 68060. | ||
259 | */ | ||
260 | |||
261 | extern int m68k_is040or060; | ||
262 | #endif /* !__ASSEMBLY__ */ | ||
263 | |||
264 | #if !defined(CONFIG_M68020) | ||
265 | # define CPU_IS_020 (0) | ||
266 | # define MMU_IS_851 (0) | ||
267 | # define MMU_IS_SUN3 (0) | ||
268 | #elif defined(CONFIG_M68030) || defined(CONFIG_M68040) || defined(CONFIG_M68060) | ||
269 | # define CPU_IS_020 (m68k_cputype & CPU_68020) | ||
270 | # define MMU_IS_851 (m68k_mmutype & MMU_68851) | ||
271 | # define MMU_IS_SUN3 (0) /* Sun3 not supported with other CPU enabled */ | ||
272 | #else | ||
273 | # define CPU_M68020_ONLY | ||
274 | # define CPU_IS_020 (1) | ||
275 | #ifdef MACH_SUN3_ONLY | ||
276 | # define MMU_IS_SUN3 (1) | ||
277 | # define MMU_IS_851 (0) | ||
278 | #else | ||
279 | # define MMU_IS_SUN3 (0) | ||
280 | # define MMU_IS_851 (1) | ||
281 | #endif | ||
282 | #endif | ||
283 | |||
284 | #if !defined(CONFIG_M68030) | ||
285 | # define CPU_IS_030 (0) | ||
286 | # define MMU_IS_030 (0) | ||
287 | #elif defined(CONFIG_M68020) || defined(CONFIG_M68040) || defined(CONFIG_M68060) | ||
288 | # define CPU_IS_030 (m68k_cputype & CPU_68030) | ||
289 | # define MMU_IS_030 (m68k_mmutype & MMU_68030) | ||
290 | #else | ||
291 | # define CPU_M68030_ONLY | ||
292 | # define CPU_IS_030 (1) | ||
293 | # define MMU_IS_030 (1) | ||
294 | #endif | ||
295 | |||
296 | #if !defined(CONFIG_M68040) | ||
297 | # define CPU_IS_040 (0) | ||
298 | # define MMU_IS_040 (0) | ||
299 | #elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68060) | ||
300 | # define CPU_IS_040 (m68k_cputype & CPU_68040) | ||
301 | # define MMU_IS_040 (m68k_mmutype & MMU_68040) | ||
302 | #else | ||
303 | # define CPU_M68040_ONLY | ||
304 | # define CPU_IS_040 (1) | ||
305 | # define MMU_IS_040 (1) | ||
306 | #endif | ||
307 | |||
308 | #if !defined(CONFIG_M68060) | ||
309 | # define CPU_IS_060 (0) | ||
310 | # define MMU_IS_060 (0) | ||
311 | #elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68040) | ||
312 | # define CPU_IS_060 (m68k_cputype & CPU_68060) | ||
313 | # define MMU_IS_060 (m68k_mmutype & MMU_68060) | ||
314 | #else | ||
315 | # define CPU_M68060_ONLY | ||
316 | # define CPU_IS_060 (1) | ||
317 | # define MMU_IS_060 (1) | ||
318 | #endif | ||
319 | |||
320 | #if !defined(CONFIG_M68020) && !defined(CONFIG_M68030) | ||
321 | # define CPU_IS_020_OR_030 (0) | ||
322 | #else | ||
323 | # define CPU_M68020_OR_M68030 | ||
324 | # if defined(CONFIG_M68040) || defined(CONFIG_M68060) | ||
325 | # define CPU_IS_020_OR_030 (!m68k_is040or060) | ||
326 | # else | ||
327 | # define CPU_M68020_OR_M68030_ONLY | ||
328 | # define CPU_IS_020_OR_030 (1) | ||
329 | # endif | ||
330 | #endif | ||
331 | |||
332 | #if !defined(CONFIG_M68040) && !defined(CONFIG_M68060) | ||
333 | # define CPU_IS_040_OR_060 (0) | ||
334 | #else | ||
335 | # define CPU_M68040_OR_M68060 | ||
336 | # if defined(CONFIG_M68020) || defined(CONFIG_M68030) | ||
337 | # define CPU_IS_040_OR_060 (m68k_is040or060) | ||
338 | # else | ||
339 | # define CPU_M68040_OR_M68060_ONLY | ||
340 | # define CPU_IS_040_OR_060 (1) | ||
341 | # endif | ||
342 | #endif | ||
343 | |||
344 | #define CPU_TYPE (m68k_cputype) | ||
345 | |||
346 | #ifdef CONFIG_M68KFPU_EMU | ||
347 | # ifdef CONFIG_M68KFPU_EMU_ONLY | ||
348 | # define FPU_IS_EMU (1) | ||
349 | # else | ||
350 | # define FPU_IS_EMU (!m68k_fputype) | ||
351 | # endif | ||
352 | #else | ||
353 | # define FPU_IS_EMU (0) | ||
354 | #endif | ||
355 | |||
356 | |||
357 | /* | ||
358 | * Miscellaneous | ||
359 | */ | ||
360 | |||
361 | #define NUM_MEMINFO 4 | ||
362 | |||
363 | #ifndef __ASSEMBLY__ | ||
364 | struct mem_info { | ||
365 | unsigned long addr; /* physical address of memory chunk */ | ||
366 | unsigned long size; /* length of memory chunk (in bytes) */ | ||
367 | }; | ||
368 | |||
369 | extern int m68k_num_memory; /* # of memory blocks found (and used) */ | ||
370 | extern int m68k_realnum_memory; /* real # of memory blocks found */ | ||
371 | extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */ | ||
372 | #endif | ||
373 | |||
374 | #endif /* __KERNEL__ */ | ||
375 | |||
376 | #endif /* _M68K_SETUP_H */ | ||
diff --git a/arch/m68k/include/asm/setup_mm.h b/arch/m68k/include/asm/setup_mm.h deleted file mode 100644 index 4dfb3952b375..000000000000 --- a/arch/m68k/include/asm/setup_mm.h +++ /dev/null | |||
@@ -1,376 +0,0 @@ | |||
1 | /* | ||
2 | ** asm/setup.h -- Definition of the Linux/m68k setup information | ||
3 | ** | ||
4 | ** Copyright 1992 by Greg Harp | ||
5 | ** | ||
6 | ** This file is subject to the terms and conditions of the GNU General Public | ||
7 | ** License. See the file COPYING in the main directory of this archive | ||
8 | ** for more details. | ||
9 | ** | ||
10 | ** Created 09/29/92 by Greg Harp | ||
11 | ** | ||
12 | ** 5/2/94 Roman Hodek: | ||
13 | ** Added bi_atari part of the machine dependent union bi_un; for now it | ||
14 | ** contains just a model field to distinguish between TT and Falcon. | ||
15 | ** 26/7/96 Roman Zippel: | ||
16 | ** Renamed to setup.h; added some useful macros to allow gcc some | ||
17 | ** optimizations if possible. | ||
18 | ** 5/10/96 Geert Uytterhoeven: | ||
19 | ** Redesign of the boot information structure; moved boot information | ||
20 | ** structure to bootinfo.h | ||
21 | */ | ||
22 | |||
23 | #ifndef _M68K_SETUP_H | ||
24 | #define _M68K_SETUP_H | ||
25 | |||
26 | |||
27 | |||
28 | /* | ||
29 | * Linux/m68k Architectures | ||
30 | */ | ||
31 | |||
32 | #define MACH_AMIGA 1 | ||
33 | #define MACH_ATARI 2 | ||
34 | #define MACH_MAC 3 | ||
35 | #define MACH_APOLLO 4 | ||
36 | #define MACH_SUN3 5 | ||
37 | #define MACH_MVME147 6 | ||
38 | #define MACH_MVME16x 7 | ||
39 | #define MACH_BVME6000 8 | ||
40 | #define MACH_HP300 9 | ||
41 | #define MACH_Q40 10 | ||
42 | #define MACH_SUN3X 11 | ||
43 | |||
44 | #define COMMAND_LINE_SIZE 256 | ||
45 | |||
46 | #ifdef __KERNEL__ | ||
47 | |||
48 | #define CL_SIZE COMMAND_LINE_SIZE | ||
49 | |||
50 | #ifndef __ASSEMBLY__ | ||
51 | extern unsigned long m68k_machtype; | ||
52 | #endif /* !__ASSEMBLY__ */ | ||
53 | |||
54 | #if !defined(CONFIG_AMIGA) | ||
55 | # define MACH_IS_AMIGA (0) | ||
56 | #elif defined(CONFIG_ATARI) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \ | ||
57 | || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ | ||
58 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
59 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
60 | # define MACH_IS_AMIGA (m68k_machtype == MACH_AMIGA) | ||
61 | #else | ||
62 | # define MACH_AMIGA_ONLY | ||
63 | # define MACH_IS_AMIGA (1) | ||
64 | # define MACH_TYPE (MACH_AMIGA) | ||
65 | #endif | ||
66 | |||
67 | #if !defined(CONFIG_ATARI) | ||
68 | # define MACH_IS_ATARI (0) | ||
69 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \ | ||
70 | || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ | ||
71 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
72 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
73 | # define MACH_IS_ATARI (m68k_machtype == MACH_ATARI) | ||
74 | #else | ||
75 | # define MACH_ATARI_ONLY | ||
76 | # define MACH_IS_ATARI (1) | ||
77 | # define MACH_TYPE (MACH_ATARI) | ||
78 | #endif | ||
79 | |||
80 | #if !defined(CONFIG_MAC) | ||
81 | # define MACH_IS_MAC (0) | ||
82 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_ATARI) || defined(CONFIG_APOLLO) \ | ||
83 | || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ | ||
84 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
85 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
86 | # define MACH_IS_MAC (m68k_machtype == MACH_MAC) | ||
87 | #else | ||
88 | # define MACH_MAC_ONLY | ||
89 | # define MACH_IS_MAC (1) | ||
90 | # define MACH_TYPE (MACH_MAC) | ||
91 | #endif | ||
92 | |||
93 | #if defined(CONFIG_SUN3) | ||
94 | #define MACH_IS_SUN3 (1) | ||
95 | #define MACH_SUN3_ONLY (1) | ||
96 | #define MACH_TYPE (MACH_SUN3) | ||
97 | #else | ||
98 | #define MACH_IS_SUN3 (0) | ||
99 | #endif | ||
100 | |||
101 | #if !defined (CONFIG_APOLLO) | ||
102 | # define MACH_IS_APOLLO (0) | ||
103 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
104 | || defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000) \ | ||
105 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
106 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
107 | # define MACH_IS_APOLLO (m68k_machtype == MACH_APOLLO) | ||
108 | #else | ||
109 | # define MACH_APOLLO_ONLY | ||
110 | # define MACH_IS_APOLLO (1) | ||
111 | # define MACH_TYPE (MACH_APOLLO) | ||
112 | #endif | ||
113 | |||
114 | #if !defined (CONFIG_MVME147) | ||
115 | # define MACH_IS_MVME147 (0) | ||
116 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
117 | || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \ | ||
118 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
119 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME16x) | ||
120 | # define MACH_IS_MVME147 (m68k_machtype == MACH_MVME147) | ||
121 | #else | ||
122 | # define MACH_MVME147_ONLY | ||
123 | # define MACH_IS_MVME147 (1) | ||
124 | # define MACH_TYPE (MACH_MVME147) | ||
125 | #endif | ||
126 | |||
127 | #if !defined (CONFIG_MVME16x) | ||
128 | # define MACH_IS_MVME16x (0) | ||
129 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
130 | || defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000) \ | ||
131 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
132 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
133 | # define MACH_IS_MVME16x (m68k_machtype == MACH_MVME16x) | ||
134 | #else | ||
135 | # define MACH_MVME16x_ONLY | ||
136 | # define MACH_IS_MVME16x (1) | ||
137 | # define MACH_TYPE (MACH_MVME16x) | ||
138 | #endif | ||
139 | |||
140 | #if !defined (CONFIG_BVME6000) | ||
141 | # define MACH_IS_BVME6000 (0) | ||
142 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
143 | || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ | ||
144 | || defined(CONFIG_HP300) || defined(CONFIG_Q40) \ | ||
145 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
146 | # define MACH_IS_BVME6000 (m68k_machtype == MACH_BVME6000) | ||
147 | #else | ||
148 | # define MACH_BVME6000_ONLY | ||
149 | # define MACH_IS_BVME6000 (1) | ||
150 | # define MACH_TYPE (MACH_BVME6000) | ||
151 | #endif | ||
152 | |||
153 | #if !defined (CONFIG_HP300) | ||
154 | # define MACH_IS_HP300 (0) | ||
155 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
156 | || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ | ||
157 | || defined(CONFIG_BVME6000) || defined(CONFIG_Q40) \ | ||
158 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
159 | # define MACH_IS_HP300 (m68k_machtype == MACH_HP300) | ||
160 | #else | ||
161 | # define MACH_HP300_ONLY | ||
162 | # define MACH_IS_HP300 (1) | ||
163 | # define MACH_TYPE (MACH_HP300) | ||
164 | #endif | ||
165 | |||
166 | #if !defined (CONFIG_Q40) | ||
167 | # define MACH_IS_Q40 (0) | ||
168 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
169 | || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ | ||
170 | || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \ | ||
171 | || defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) | ||
172 | # define MACH_IS_Q40 (m68k_machtype == MACH_Q40) | ||
173 | #else | ||
174 | # define MACH_Q40_ONLY | ||
175 | # define MACH_IS_Q40 (1) | ||
176 | # define MACH_TYPE (MACH_Q40) | ||
177 | #endif | ||
178 | |||
179 | #if !defined (CONFIG_SUN3X) | ||
180 | # define MACH_IS_SUN3X (0) | ||
181 | #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \ | ||
182 | || defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \ | ||
183 | || defined(CONFIG_BVME6000) || defined(CONFIG_HP300) \ | ||
184 | || defined(CONFIG_Q40) || defined(CONFIG_MVME147) | ||
185 | # define MACH_IS_SUN3X (m68k_machtype == MACH_SUN3X) | ||
186 | #else | ||
187 | # define CONFIG_SUN3X_ONLY | ||
188 | # define MACH_IS_SUN3X (1) | ||
189 | # define MACH_TYPE (MACH_SUN3X) | ||
190 | #endif | ||
191 | |||
192 | #ifndef MACH_TYPE | ||
193 | # define MACH_TYPE (m68k_machtype) | ||
194 | #endif | ||
195 | |||
196 | #endif /* __KERNEL__ */ | ||
197 | |||
198 | |||
199 | /* | ||
200 | * CPU, FPU and MMU types | ||
201 | * | ||
202 | * Note: we may rely on the following equalities: | ||
203 | * | ||
204 | * CPU_68020 == MMU_68851 | ||
205 | * CPU_68030 == MMU_68030 | ||
206 | * CPU_68040 == FPU_68040 == MMU_68040 | ||
207 | * CPU_68060 == FPU_68060 == MMU_68060 | ||
208 | */ | ||
209 | |||
210 | #define CPUB_68020 0 | ||
211 | #define CPUB_68030 1 | ||
212 | #define CPUB_68040 2 | ||
213 | #define CPUB_68060 3 | ||
214 | |||
215 | #define CPU_68020 (1<<CPUB_68020) | ||
216 | #define CPU_68030 (1<<CPUB_68030) | ||
217 | #define CPU_68040 (1<<CPUB_68040) | ||
218 | #define CPU_68060 (1<<CPUB_68060) | ||
219 | |||
220 | #define FPUB_68881 0 | ||
221 | #define FPUB_68882 1 | ||
222 | #define FPUB_68040 2 /* Internal FPU */ | ||
223 | #define FPUB_68060 3 /* Internal FPU */ | ||
224 | #define FPUB_SUNFPA 4 /* Sun-3 FPA */ | ||
225 | |||
226 | #define FPU_68881 (1<<FPUB_68881) | ||
227 | #define FPU_68882 (1<<FPUB_68882) | ||
228 | #define FPU_68040 (1<<FPUB_68040) | ||
229 | #define FPU_68060 (1<<FPUB_68060) | ||
230 | #define FPU_SUNFPA (1<<FPUB_SUNFPA) | ||
231 | |||
232 | #define MMUB_68851 0 | ||
233 | #define MMUB_68030 1 /* Internal MMU */ | ||
234 | #define MMUB_68040 2 /* Internal MMU */ | ||
235 | #define MMUB_68060 3 /* Internal MMU */ | ||
236 | #define MMUB_APOLLO 4 /* Custom Apollo */ | ||
237 | #define MMUB_SUN3 5 /* Custom Sun-3 */ | ||
238 | |||
239 | #define MMU_68851 (1<<MMUB_68851) | ||
240 | #define MMU_68030 (1<<MMUB_68030) | ||
241 | #define MMU_68040 (1<<MMUB_68040) | ||
242 | #define MMU_68060 (1<<MMUB_68060) | ||
243 | #define MMU_SUN3 (1<<MMUB_SUN3) | ||
244 | #define MMU_APOLLO (1<<MMUB_APOLLO) | ||
245 | |||
246 | #ifdef __KERNEL__ | ||
247 | |||
248 | #ifndef __ASSEMBLY__ | ||
249 | extern unsigned long m68k_cputype; | ||
250 | extern unsigned long m68k_fputype; | ||
251 | extern unsigned long m68k_mmutype; | ||
252 | #ifdef CONFIG_VME | ||
253 | extern unsigned long vme_brdtype; | ||
254 | #endif | ||
255 | |||
256 | /* | ||
257 | * m68k_is040or060 is != 0 for a '040 or higher; | ||
258 | * used numbers are 4 for 68040 and 6 for 68060. | ||
259 | */ | ||
260 | |||
261 | extern int m68k_is040or060; | ||
262 | #endif /* !__ASSEMBLY__ */ | ||
263 | |||
264 | #if !defined(CONFIG_M68020) | ||
265 | # define CPU_IS_020 (0) | ||
266 | # define MMU_IS_851 (0) | ||
267 | # define MMU_IS_SUN3 (0) | ||
268 | #elif defined(CONFIG_M68030) || defined(CONFIG_M68040) || defined(CONFIG_M68060) | ||
269 | # define CPU_IS_020 (m68k_cputype & CPU_68020) | ||
270 | # define MMU_IS_851 (m68k_mmutype & MMU_68851) | ||
271 | # define MMU_IS_SUN3 (0) /* Sun3 not supported with other CPU enabled */ | ||
272 | #else | ||
273 | # define CPU_M68020_ONLY | ||
274 | # define CPU_IS_020 (1) | ||
275 | #ifdef MACH_SUN3_ONLY | ||
276 | # define MMU_IS_SUN3 (1) | ||
277 | # define MMU_IS_851 (0) | ||
278 | #else | ||
279 | # define MMU_IS_SUN3 (0) | ||
280 | # define MMU_IS_851 (1) | ||
281 | #endif | ||
282 | #endif | ||
283 | |||
284 | #if !defined(CONFIG_M68030) | ||
285 | # define CPU_IS_030 (0) | ||
286 | # define MMU_IS_030 (0) | ||
287 | #elif defined(CONFIG_M68020) || defined(CONFIG_M68040) || defined(CONFIG_M68060) | ||
288 | # define CPU_IS_030 (m68k_cputype & CPU_68030) | ||
289 | # define MMU_IS_030 (m68k_mmutype & MMU_68030) | ||
290 | #else | ||
291 | # define CPU_M68030_ONLY | ||
292 | # define CPU_IS_030 (1) | ||
293 | # define MMU_IS_030 (1) | ||
294 | #endif | ||
295 | |||
296 | #if !defined(CONFIG_M68040) | ||
297 | # define CPU_IS_040 (0) | ||
298 | # define MMU_IS_040 (0) | ||
299 | #elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68060) | ||
300 | # define CPU_IS_040 (m68k_cputype & CPU_68040) | ||
301 | # define MMU_IS_040 (m68k_mmutype & MMU_68040) | ||
302 | #else | ||
303 | # define CPU_M68040_ONLY | ||
304 | # define CPU_IS_040 (1) | ||
305 | # define MMU_IS_040 (1) | ||
306 | #endif | ||
307 | |||
308 | #if !defined(CONFIG_M68060) | ||
309 | # define CPU_IS_060 (0) | ||
310 | # define MMU_IS_060 (0) | ||
311 | #elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68040) | ||
312 | # define CPU_IS_060 (m68k_cputype & CPU_68060) | ||
313 | # define MMU_IS_060 (m68k_mmutype & MMU_68060) | ||
314 | #else | ||
315 | # define CPU_M68060_ONLY | ||
316 | # define CPU_IS_060 (1) | ||
317 | # define MMU_IS_060 (1) | ||
318 | #endif | ||
319 | |||
320 | #if !defined(CONFIG_M68020) && !defined(CONFIG_M68030) | ||
321 | # define CPU_IS_020_OR_030 (0) | ||
322 | #else | ||
323 | # define CPU_M68020_OR_M68030 | ||
324 | # if defined(CONFIG_M68040) || defined(CONFIG_M68060) | ||
325 | # define CPU_IS_020_OR_030 (!m68k_is040or060) | ||
326 | # else | ||
327 | # define CPU_M68020_OR_M68030_ONLY | ||
328 | # define CPU_IS_020_OR_030 (1) | ||
329 | # endif | ||
330 | #endif | ||
331 | |||
332 | #if !defined(CONFIG_M68040) && !defined(CONFIG_M68060) | ||
333 | # define CPU_IS_040_OR_060 (0) | ||
334 | #else | ||
335 | # define CPU_M68040_OR_M68060 | ||
336 | # if defined(CONFIG_M68020) || defined(CONFIG_M68030) | ||
337 | # define CPU_IS_040_OR_060 (m68k_is040or060) | ||
338 | # else | ||
339 | # define CPU_M68040_OR_M68060_ONLY | ||
340 | # define CPU_IS_040_OR_060 (1) | ||
341 | # endif | ||
342 | #endif | ||
343 | |||
344 | #define CPU_TYPE (m68k_cputype) | ||
345 | |||
346 | #ifdef CONFIG_M68KFPU_EMU | ||
347 | # ifdef CONFIG_M68KFPU_EMU_ONLY | ||
348 | # define FPU_IS_EMU (1) | ||
349 | # else | ||
350 | # define FPU_IS_EMU (!m68k_fputype) | ||
351 | # endif | ||
352 | #else | ||
353 | # define FPU_IS_EMU (0) | ||
354 | #endif | ||
355 | |||
356 | |||
357 | /* | ||
358 | * Miscellaneous | ||
359 | */ | ||
360 | |||
361 | #define NUM_MEMINFO 4 | ||
362 | |||
363 | #ifndef __ASSEMBLY__ | ||
364 | struct mem_info { | ||
365 | unsigned long addr; /* physical address of memory chunk */ | ||
366 | unsigned long size; /* length of memory chunk (in bytes) */ | ||
367 | }; | ||
368 | |||
369 | extern int m68k_num_memory; /* # of memory blocks found (and used) */ | ||
370 | extern int m68k_realnum_memory; /* real # of memory blocks found */ | ||
371 | extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */ | ||
372 | #endif | ||
373 | |||
374 | #endif /* __KERNEL__ */ | ||
375 | |||
376 | #endif /* _M68K_SETUP_H */ | ||
diff --git a/arch/m68k/include/asm/setup_no.h b/arch/m68k/include/asm/setup_no.h deleted file mode 100644 index 45d286ce9398..000000000000 --- a/arch/m68k/include/asm/setup_no.h +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | #ifdef __KERNEL__ | ||
2 | |||
3 | #include <asm/setup_mm.h> | ||
4 | |||
5 | /* We have a bigger command line buffer. */ | ||
6 | #undef COMMAND_LINE_SIZE | ||
7 | |||
8 | #endif /* __KERNEL__ */ | ||
9 | |||
10 | #define COMMAND_LINE_SIZE 512 | ||
diff --git a/arch/m68k/include/asm/sigcontext.h b/arch/m68k/include/asm/sigcontext.h index bff6d40345a9..523db2a51cf3 100644 --- a/arch/m68k/include/asm/sigcontext.h +++ b/arch/m68k/include/asm/sigcontext.h | |||
@@ -1,5 +1,24 @@ | |||
1 | #ifndef _ASM_M68k_SIGCONTEXT_H | ||
2 | #define _ASM_M68k_SIGCONTEXT_H | ||
3 | |||
4 | struct sigcontext { | ||
5 | unsigned long sc_mask; /* old sigmask */ | ||
6 | unsigned long sc_usp; /* old user stack pointer */ | ||
7 | unsigned long sc_d0; | ||
8 | unsigned long sc_d1; | ||
9 | unsigned long sc_a0; | ||
10 | unsigned long sc_a1; | ||
1 | #ifdef __uClinux__ | 11 | #ifdef __uClinux__ |
2 | #include "sigcontext_no.h" | 12 | unsigned long sc_a5; |
3 | #else | 13 | #endif |
4 | #include "sigcontext_mm.h" | 14 | unsigned short sc_sr; |
15 | unsigned long sc_pc; | ||
16 | unsigned short sc_formatvec; | ||
17 | #ifndef __uClinux__ | ||
18 | unsigned long sc_fpregs[2*3]; /* room for two fp registers */ | ||
19 | unsigned long sc_fpcntl[3]; | ||
20 | unsigned char sc_fpstate[216]; | ||
21 | #endif | ||
22 | }; | ||
23 | |||
5 | #endif | 24 | #endif |
diff --git a/arch/m68k/include/asm/sigcontext_mm.h b/arch/m68k/include/asm/sigcontext_mm.h deleted file mode 100644 index 64fbe34cf26f..000000000000 --- a/arch/m68k/include/asm/sigcontext_mm.h +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | #ifndef _ASM_M68k_SIGCONTEXT_H | ||
2 | #define _ASM_M68k_SIGCONTEXT_H | ||
3 | |||
4 | struct sigcontext { | ||
5 | unsigned long sc_mask; /* old sigmask */ | ||
6 | unsigned long sc_usp; /* old user stack pointer */ | ||
7 | unsigned long sc_d0; | ||
8 | unsigned long sc_d1; | ||
9 | unsigned long sc_a0; | ||
10 | unsigned long sc_a1; | ||
11 | unsigned short sc_sr; | ||
12 | unsigned long sc_pc; | ||
13 | unsigned short sc_formatvec; | ||
14 | unsigned long sc_fpregs[2*3]; /* room for two fp registers */ | ||
15 | unsigned long sc_fpcntl[3]; | ||
16 | unsigned char sc_fpstate[216]; | ||
17 | }; | ||
18 | |||
19 | #endif | ||
diff --git a/arch/m68k/include/asm/sigcontext_no.h b/arch/m68k/include/asm/sigcontext_no.h deleted file mode 100644 index 36c293fc133d..000000000000 --- a/arch/m68k/include/asm/sigcontext_no.h +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | #ifndef _ASM_M68KNOMMU_SIGCONTEXT_H | ||
2 | #define _ASM_M68KNOMMU_SIGCONTEXT_H | ||
3 | |||
4 | struct sigcontext { | ||
5 | unsigned long sc_mask; /* old sigmask */ | ||
6 | unsigned long sc_usp; /* old user stack pointer */ | ||
7 | unsigned long sc_d0; | ||
8 | unsigned long sc_d1; | ||
9 | unsigned long sc_a0; | ||
10 | unsigned long sc_a1; | ||
11 | unsigned long sc_a5; | ||
12 | unsigned short sc_sr; | ||
13 | unsigned long sc_pc; | ||
14 | unsigned short sc_formatvec; | ||
15 | }; | ||
16 | |||
17 | #endif | ||
diff --git a/arch/m68k/include/asm/siginfo.h b/arch/m68k/include/asm/siginfo.h index 61219d7affc8..ca7dde8fd223 100644 --- a/arch/m68k/include/asm/siginfo.h +++ b/arch/m68k/include/asm/siginfo.h | |||
@@ -1,5 +1,97 @@ | |||
1 | #ifdef __uClinux__ | 1 | #ifndef _M68K_SIGINFO_H |
2 | #include "siginfo_no.h" | 2 | #define _M68K_SIGINFO_H |
3 | |||
4 | #ifndef __uClinux__ | ||
5 | #define HAVE_ARCH_SIGINFO_T | ||
6 | #define HAVE_ARCH_COPY_SIGINFO | ||
7 | #endif | ||
8 | |||
9 | #include <asm-generic/siginfo.h> | ||
10 | |||
11 | #ifndef __uClinux__ | ||
12 | |||
13 | typedef struct siginfo { | ||
14 | int si_signo; | ||
15 | int si_errno; | ||
16 | int si_code; | ||
17 | |||
18 | union { | ||
19 | int _pad[SI_PAD_SIZE]; | ||
20 | |||
21 | /* kill() */ | ||
22 | struct { | ||
23 | __kernel_pid_t _pid; /* sender's pid */ | ||
24 | __kernel_uid_t _uid; /* backwards compatibility */ | ||
25 | __kernel_uid32_t _uid32; /* sender's uid */ | ||
26 | } _kill; | ||
27 | |||
28 | /* POSIX.1b timers */ | ||
29 | struct { | ||
30 | timer_t _tid; /* timer id */ | ||
31 | int _overrun; /* overrun count */ | ||
32 | char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)]; | ||
33 | sigval_t _sigval; /* same as below */ | ||
34 | int _sys_private; /* not to be passed to user */ | ||
35 | } _timer; | ||
36 | |||
37 | /* POSIX.1b signals */ | ||
38 | struct { | ||
39 | __kernel_pid_t _pid; /* sender's pid */ | ||
40 | __kernel_uid_t _uid; /* backwards compatibility */ | ||
41 | sigval_t _sigval; | ||
42 | __kernel_uid32_t _uid32; /* sender's uid */ | ||
43 | } _rt; | ||
44 | |||
45 | /* SIGCHLD */ | ||
46 | struct { | ||
47 | __kernel_pid_t _pid; /* which child */ | ||
48 | __kernel_uid_t _uid; /* backwards compatibility */ | ||
49 | int _status; /* exit code */ | ||
50 | clock_t _utime; | ||
51 | clock_t _stime; | ||
52 | __kernel_uid32_t _uid32; /* sender's uid */ | ||
53 | } _sigchld; | ||
54 | |||
55 | /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ | ||
56 | struct { | ||
57 | void *_addr; /* faulting insn/memory ref. */ | ||
58 | } _sigfault; | ||
59 | |||
60 | /* SIGPOLL */ | ||
61 | struct { | ||
62 | int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ | ||
63 | int _fd; | ||
64 | } _sigpoll; | ||
65 | } _sifields; | ||
66 | } siginfo_t; | ||
67 | |||
68 | #define UID16_SIGINFO_COMPAT_NEEDED | ||
69 | |||
70 | /* | ||
71 | * How these fields are to be accessed. | ||
72 | */ | ||
73 | #undef si_uid | ||
74 | #ifdef __KERNEL__ | ||
75 | #define si_uid _sifields._kill._uid32 | ||
76 | #define si_uid16 _sifields._kill._uid | ||
3 | #else | 77 | #else |
4 | #include "siginfo_mm.h" | 78 | #define si_uid _sifields._kill._uid |
79 | #endif | ||
80 | |||
81 | #ifdef __KERNEL__ | ||
82 | |||
83 | #include <linux/string.h> | ||
84 | |||
85 | static inline void copy_siginfo(struct siginfo *to, struct siginfo *from) | ||
86 | { | ||
87 | if (from->si_code < 0) | ||
88 | memcpy(to, from, sizeof(*to)); | ||
89 | else | ||
90 | /* _sigchld is currently the largest know union member */ | ||
91 | memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld)); | ||
92 | } | ||
93 | |||
94 | #endif /* __KERNEL__ */ | ||
95 | #endif /* !__uClinux__ */ | ||
96 | |||
5 | #endif | 97 | #endif |
diff --git a/arch/m68k/include/asm/siginfo_mm.h b/arch/m68k/include/asm/siginfo_mm.h deleted file mode 100644 index 05a8d6d90b58..000000000000 --- a/arch/m68k/include/asm/siginfo_mm.h +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | #ifndef _M68K_SIGINFO_H | ||
2 | #define _M68K_SIGINFO_H | ||
3 | |||
4 | #define HAVE_ARCH_SIGINFO_T | ||
5 | #define HAVE_ARCH_COPY_SIGINFO | ||
6 | |||
7 | #include <asm-generic/siginfo.h> | ||
8 | |||
9 | typedef struct siginfo { | ||
10 | int si_signo; | ||
11 | int si_errno; | ||
12 | int si_code; | ||
13 | |||
14 | union { | ||
15 | int _pad[SI_PAD_SIZE]; | ||
16 | |||
17 | /* kill() */ | ||
18 | struct { | ||
19 | __kernel_pid_t _pid; /* sender's pid */ | ||
20 | __kernel_uid_t _uid; /* backwards compatibility */ | ||
21 | __kernel_uid32_t _uid32; /* sender's uid */ | ||
22 | } _kill; | ||
23 | |||
24 | /* POSIX.1b timers */ | ||
25 | struct { | ||
26 | timer_t _tid; /* timer id */ | ||
27 | int _overrun; /* overrun count */ | ||
28 | char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)]; | ||
29 | sigval_t _sigval; /* same as below */ | ||
30 | int _sys_private; /* not to be passed to user */ | ||
31 | } _timer; | ||
32 | |||
33 | /* POSIX.1b signals */ | ||
34 | struct { | ||
35 | __kernel_pid_t _pid; /* sender's pid */ | ||
36 | __kernel_uid_t _uid; /* backwards compatibility */ | ||
37 | sigval_t _sigval; | ||
38 | __kernel_uid32_t _uid32; /* sender's uid */ | ||
39 | } _rt; | ||
40 | |||
41 | /* SIGCHLD */ | ||
42 | struct { | ||
43 | __kernel_pid_t _pid; /* which child */ | ||
44 | __kernel_uid_t _uid; /* backwards compatibility */ | ||
45 | int _status; /* exit code */ | ||
46 | clock_t _utime; | ||
47 | clock_t _stime; | ||
48 | __kernel_uid32_t _uid32; /* sender's uid */ | ||
49 | } _sigchld; | ||
50 | |||
51 | /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ | ||
52 | struct { | ||
53 | void *_addr; /* faulting insn/memory ref. */ | ||
54 | } _sigfault; | ||
55 | |||
56 | /* SIGPOLL */ | ||
57 | struct { | ||
58 | int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ | ||
59 | int _fd; | ||
60 | } _sigpoll; | ||
61 | } _sifields; | ||
62 | } siginfo_t; | ||
63 | |||
64 | #define UID16_SIGINFO_COMPAT_NEEDED | ||
65 | |||
66 | /* | ||
67 | * How these fields are to be accessed. | ||
68 | */ | ||
69 | #undef si_uid | ||
70 | #ifdef __KERNEL__ | ||
71 | #define si_uid _sifields._kill._uid32 | ||
72 | #define si_uid16 _sifields._kill._uid | ||
73 | #else | ||
74 | #define si_uid _sifields._kill._uid | ||
75 | #endif | ||
76 | |||
77 | #ifdef __KERNEL__ | ||
78 | |||
79 | #include <linux/string.h> | ||
80 | |||
81 | static inline void copy_siginfo(struct siginfo *to, struct siginfo *from) | ||
82 | { | ||
83 | if (from->si_code < 0) | ||
84 | memcpy(to, from, sizeof(*to)); | ||
85 | else | ||
86 | /* _sigchld is currently the largest know union member */ | ||
87 | memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld)); | ||
88 | } | ||
89 | |||
90 | #endif /* __KERNEL__ */ | ||
91 | |||
92 | #endif | ||
diff --git a/arch/m68k/include/asm/siginfo_no.h b/arch/m68k/include/asm/siginfo_no.h deleted file mode 100644 index b18e5f4064ae..000000000000 --- a/arch/m68k/include/asm/siginfo_no.h +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #ifndef _M68KNOMMU_SIGINFO_H | ||
2 | #define _M68KNOMMU_SIGINFO_H | ||
3 | |||
4 | #include <asm-generic/siginfo.h> | ||
5 | |||
6 | #endif | ||
diff --git a/arch/m68k/include/asm/signal.h b/arch/m68k/include/asm/signal.h index 3c19988bd93c..08788fdefde0 100644 --- a/arch/m68k/include/asm/signal.h +++ b/arch/m68k/include/asm/signal.h | |||
@@ -1,5 +1,213 @@ | |||
1 | #ifdef __uClinux__ | 1 | #ifndef _M68K_SIGNAL_H |
2 | #include "signal_no.h" | 2 | #define _M68K_SIGNAL_H |
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | /* Avoid too many header ordering problems. */ | ||
7 | struct siginfo; | ||
8 | |||
9 | #ifdef __KERNEL__ | ||
10 | /* Most things should be clean enough to redefine this at will, if care | ||
11 | is taken to make libc match. */ | ||
12 | |||
13 | #define _NSIG 64 | ||
14 | #define _NSIG_BPW 32 | ||
15 | #define _NSIG_WORDS (_NSIG / _NSIG_BPW) | ||
16 | |||
17 | typedef unsigned long old_sigset_t; /* at least 32 bits */ | ||
18 | |||
19 | typedef struct { | ||
20 | unsigned long sig[_NSIG_WORDS]; | ||
21 | } sigset_t; | ||
22 | |||
3 | #else | 23 | #else |
4 | #include "signal_mm.h" | 24 | /* Here we must cater to libcs that poke about in kernel headers. */ |
5 | #endif | 25 | |
26 | #define NSIG 32 | ||
27 | typedef unsigned long sigset_t; | ||
28 | |||
29 | #endif /* __KERNEL__ */ | ||
30 | |||
31 | #define SIGHUP 1 | ||
32 | #define SIGINT 2 | ||
33 | #define SIGQUIT 3 | ||
34 | #define SIGILL 4 | ||
35 | #define SIGTRAP 5 | ||
36 | #define SIGABRT 6 | ||
37 | #define SIGIOT 6 | ||
38 | #define SIGBUS 7 | ||
39 | #define SIGFPE 8 | ||
40 | #define SIGKILL 9 | ||
41 | #define SIGUSR1 10 | ||
42 | #define SIGSEGV 11 | ||
43 | #define SIGUSR2 12 | ||
44 | #define SIGPIPE 13 | ||
45 | #define SIGALRM 14 | ||
46 | #define SIGTERM 15 | ||
47 | #define SIGSTKFLT 16 | ||
48 | #define SIGCHLD 17 | ||
49 | #define SIGCONT 18 | ||
50 | #define SIGSTOP 19 | ||
51 | #define SIGTSTP 20 | ||
52 | #define SIGTTIN 21 | ||
53 | #define SIGTTOU 22 | ||
54 | #define SIGURG 23 | ||
55 | #define SIGXCPU 24 | ||
56 | #define SIGXFSZ 25 | ||
57 | #define SIGVTALRM 26 | ||
58 | #define SIGPROF 27 | ||
59 | #define SIGWINCH 28 | ||
60 | #define SIGIO 29 | ||
61 | #define SIGPOLL SIGIO | ||
62 | /* | ||
63 | #define SIGLOST 29 | ||
64 | */ | ||
65 | #define SIGPWR 30 | ||
66 | #define SIGSYS 31 | ||
67 | #define SIGUNUSED 31 | ||
68 | |||
69 | /* These should not be considered constants from userland. */ | ||
70 | #define SIGRTMIN 32 | ||
71 | #define SIGRTMAX _NSIG | ||
72 | |||
73 | /* | ||
74 | * SA_FLAGS values: | ||
75 | * | ||
76 | * SA_ONSTACK indicates that a registered stack_t will be used. | ||
77 | * SA_RESTART flag to get restarting signals (which were the default long ago) | ||
78 | * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. | ||
79 | * SA_RESETHAND clears the handler when the signal is delivered. | ||
80 | * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. | ||
81 | * SA_NODEFER prevents the current signal from being masked in the handler. | ||
82 | * | ||
83 | * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single | ||
84 | * Unix names RESETHAND and NODEFER respectively. | ||
85 | */ | ||
86 | #define SA_NOCLDSTOP 0x00000001 | ||
87 | #define SA_NOCLDWAIT 0x00000002 | ||
88 | #define SA_SIGINFO 0x00000004 | ||
89 | #define SA_ONSTACK 0x08000000 | ||
90 | #define SA_RESTART 0x10000000 | ||
91 | #define SA_NODEFER 0x40000000 | ||
92 | #define SA_RESETHAND 0x80000000 | ||
93 | |||
94 | #define SA_NOMASK SA_NODEFER | ||
95 | #define SA_ONESHOT SA_RESETHAND | ||
96 | |||
97 | /* | ||
98 | * sigaltstack controls | ||
99 | */ | ||
100 | #define SS_ONSTACK 1 | ||
101 | #define SS_DISABLE 2 | ||
102 | |||
103 | #define MINSIGSTKSZ 2048 | ||
104 | #define SIGSTKSZ 8192 | ||
105 | |||
106 | #include <asm-generic/signal.h> | ||
107 | |||
108 | #ifdef __KERNEL__ | ||
109 | struct old_sigaction { | ||
110 | __sighandler_t sa_handler; | ||
111 | old_sigset_t sa_mask; | ||
112 | unsigned long sa_flags; | ||
113 | __sigrestore_t sa_restorer; | ||
114 | }; | ||
115 | |||
116 | struct sigaction { | ||
117 | __sighandler_t sa_handler; | ||
118 | unsigned long sa_flags; | ||
119 | __sigrestore_t sa_restorer; | ||
120 | sigset_t sa_mask; /* mask last for extensibility */ | ||
121 | }; | ||
122 | |||
123 | struct k_sigaction { | ||
124 | struct sigaction sa; | ||
125 | }; | ||
126 | #else | ||
127 | /* Here we must cater to libcs that poke about in kernel headers. */ | ||
128 | |||
129 | struct sigaction { | ||
130 | union { | ||
131 | __sighandler_t _sa_handler; | ||
132 | void (*_sa_sigaction)(int, struct siginfo *, void *); | ||
133 | } _u; | ||
134 | sigset_t sa_mask; | ||
135 | unsigned long sa_flags; | ||
136 | void (*sa_restorer)(void); | ||
137 | }; | ||
138 | |||
139 | #define sa_handler _u._sa_handler | ||
140 | #define sa_sigaction _u._sa_sigaction | ||
141 | |||
142 | #endif /* __KERNEL__ */ | ||
143 | |||
144 | typedef struct sigaltstack { | ||
145 | void __user *ss_sp; | ||
146 | int ss_flags; | ||
147 | size_t ss_size; | ||
148 | } stack_t; | ||
149 | |||
150 | #ifdef __KERNEL__ | ||
151 | #include <asm/sigcontext.h> | ||
152 | |||
153 | #ifndef __uClinux__ | ||
154 | #define __HAVE_ARCH_SIG_BITOPS | ||
155 | |||
156 | static inline void sigaddset(sigset_t *set, int _sig) | ||
157 | { | ||
158 | asm ("bfset %0{%1,#1}" | ||
159 | : "+od" (*set) | ||
160 | : "id" ((_sig - 1) ^ 31) | ||
161 | : "cc"); | ||
162 | } | ||
163 | |||
164 | static inline void sigdelset(sigset_t *set, int _sig) | ||
165 | { | ||
166 | asm ("bfclr %0{%1,#1}" | ||
167 | : "+od" (*set) | ||
168 | : "id" ((_sig - 1) ^ 31) | ||
169 | : "cc"); | ||
170 | } | ||
171 | |||
172 | static inline int __const_sigismember(sigset_t *set, int _sig) | ||
173 | { | ||
174 | unsigned long sig = _sig - 1; | ||
175 | return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW)); | ||
176 | } | ||
177 | |||
178 | static inline int __gen_sigismember(sigset_t *set, int _sig) | ||
179 | { | ||
180 | int ret; | ||
181 | asm ("bfextu %1{%2,#1},%0" | ||
182 | : "=d" (ret) | ||
183 | : "od" (*set), "id" ((_sig-1) ^ 31) | ||
184 | : "cc"); | ||
185 | return ret; | ||
186 | } | ||
187 | |||
188 | #define sigismember(set,sig) \ | ||
189 | (__builtin_constant_p(sig) ? \ | ||
190 | __const_sigismember(set,sig) : \ | ||
191 | __gen_sigismember(set,sig)) | ||
192 | |||
193 | static inline int sigfindinword(unsigned long word) | ||
194 | { | ||
195 | asm ("bfffo %1{#0,#0},%0" | ||
196 | : "=d" (word) | ||
197 | : "d" (word & -word) | ||
198 | : "cc"); | ||
199 | return word ^ 31; | ||
200 | } | ||
201 | |||
202 | struct pt_regs; | ||
203 | extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie); | ||
204 | |||
205 | #else | ||
206 | |||
207 | #undef __HAVE_ARCH_SIG_BITOPS | ||
208 | #define ptrace_signal_deliver(regs, cookie) do { } while (0) | ||
209 | |||
210 | #endif /* __uClinux__ */ | ||
211 | #endif /* __KERNEL__ */ | ||
212 | |||
213 | #endif /* _M68K_SIGNAL_H */ | ||
diff --git a/arch/m68k/include/asm/signal_mm.h b/arch/m68k/include/asm/signal_mm.h deleted file mode 100644 index 3db8a81942f1..000000000000 --- a/arch/m68k/include/asm/signal_mm.h +++ /dev/null | |||
@@ -1,206 +0,0 @@ | |||
1 | #ifndef _M68K_SIGNAL_H | ||
2 | #define _M68K_SIGNAL_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | /* Avoid too many header ordering problems. */ | ||
7 | struct siginfo; | ||
8 | |||
9 | #ifdef __KERNEL__ | ||
10 | /* Most things should be clean enough to redefine this at will, if care | ||
11 | is taken to make libc match. */ | ||
12 | |||
13 | #define _NSIG 64 | ||
14 | #define _NSIG_BPW 32 | ||
15 | #define _NSIG_WORDS (_NSIG / _NSIG_BPW) | ||
16 | |||
17 | typedef unsigned long old_sigset_t; /* at least 32 bits */ | ||
18 | |||
19 | typedef struct { | ||
20 | unsigned long sig[_NSIG_WORDS]; | ||
21 | } sigset_t; | ||
22 | |||
23 | #else | ||
24 | /* Here we must cater to libcs that poke about in kernel headers. */ | ||
25 | |||
26 | #define NSIG 32 | ||
27 | typedef unsigned long sigset_t; | ||
28 | |||
29 | #endif /* __KERNEL__ */ | ||
30 | |||
31 | #define SIGHUP 1 | ||
32 | #define SIGINT 2 | ||
33 | #define SIGQUIT 3 | ||
34 | #define SIGILL 4 | ||
35 | #define SIGTRAP 5 | ||
36 | #define SIGABRT 6 | ||
37 | #define SIGIOT 6 | ||
38 | #define SIGBUS 7 | ||
39 | #define SIGFPE 8 | ||
40 | #define SIGKILL 9 | ||
41 | #define SIGUSR1 10 | ||
42 | #define SIGSEGV 11 | ||
43 | #define SIGUSR2 12 | ||
44 | #define SIGPIPE 13 | ||
45 | #define SIGALRM 14 | ||
46 | #define SIGTERM 15 | ||
47 | #define SIGSTKFLT 16 | ||
48 | #define SIGCHLD 17 | ||
49 | #define SIGCONT 18 | ||
50 | #define SIGSTOP 19 | ||
51 | #define SIGTSTP 20 | ||
52 | #define SIGTTIN 21 | ||
53 | #define SIGTTOU 22 | ||
54 | #define SIGURG 23 | ||
55 | #define SIGXCPU 24 | ||
56 | #define SIGXFSZ 25 | ||
57 | #define SIGVTALRM 26 | ||
58 | #define SIGPROF 27 | ||
59 | #define SIGWINCH 28 | ||
60 | #define SIGIO 29 | ||
61 | #define SIGPOLL SIGIO | ||
62 | /* | ||
63 | #define SIGLOST 29 | ||
64 | */ | ||
65 | #define SIGPWR 30 | ||
66 | #define SIGSYS 31 | ||
67 | #define SIGUNUSED 31 | ||
68 | |||
69 | /* These should not be considered constants from userland. */ | ||
70 | #define SIGRTMIN 32 | ||
71 | #define SIGRTMAX _NSIG | ||
72 | |||
73 | /* | ||
74 | * SA_FLAGS values: | ||
75 | * | ||
76 | * SA_ONSTACK indicates that a registered stack_t will be used. | ||
77 | * SA_RESTART flag to get restarting signals (which were the default long ago) | ||
78 | * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. | ||
79 | * SA_RESETHAND clears the handler when the signal is delivered. | ||
80 | * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. | ||
81 | * SA_NODEFER prevents the current signal from being masked in the handler. | ||
82 | * | ||
83 | * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single | ||
84 | * Unix names RESETHAND and NODEFER respectively. | ||
85 | */ | ||
86 | #define SA_NOCLDSTOP 0x00000001 | ||
87 | #define SA_NOCLDWAIT 0x00000002 | ||
88 | #define SA_SIGINFO 0x00000004 | ||
89 | #define SA_ONSTACK 0x08000000 | ||
90 | #define SA_RESTART 0x10000000 | ||
91 | #define SA_NODEFER 0x40000000 | ||
92 | #define SA_RESETHAND 0x80000000 | ||
93 | |||
94 | #define SA_NOMASK SA_NODEFER | ||
95 | #define SA_ONESHOT SA_RESETHAND | ||
96 | |||
97 | /* | ||
98 | * sigaltstack controls | ||
99 | */ | ||
100 | #define SS_ONSTACK 1 | ||
101 | #define SS_DISABLE 2 | ||
102 | |||
103 | #define MINSIGSTKSZ 2048 | ||
104 | #define SIGSTKSZ 8192 | ||
105 | |||
106 | #include <asm-generic/signal.h> | ||
107 | |||
108 | #ifdef __KERNEL__ | ||
109 | struct old_sigaction { | ||
110 | __sighandler_t sa_handler; | ||
111 | old_sigset_t sa_mask; | ||
112 | unsigned long sa_flags; | ||
113 | __sigrestore_t sa_restorer; | ||
114 | }; | ||
115 | |||
116 | struct sigaction { | ||
117 | __sighandler_t sa_handler; | ||
118 | unsigned long sa_flags; | ||
119 | __sigrestore_t sa_restorer; | ||
120 | sigset_t sa_mask; /* mask last for extensibility */ | ||
121 | }; | ||
122 | |||
123 | struct k_sigaction { | ||
124 | struct sigaction sa; | ||
125 | }; | ||
126 | #else | ||
127 | /* Here we must cater to libcs that poke about in kernel headers. */ | ||
128 | |||
129 | struct sigaction { | ||
130 | union { | ||
131 | __sighandler_t _sa_handler; | ||
132 | void (*_sa_sigaction)(int, struct siginfo *, void *); | ||
133 | } _u; | ||
134 | sigset_t sa_mask; | ||
135 | unsigned long sa_flags; | ||
136 | void (*sa_restorer)(void); | ||
137 | }; | ||
138 | |||
139 | #define sa_handler _u._sa_handler | ||
140 | #define sa_sigaction _u._sa_sigaction | ||
141 | |||
142 | #endif /* __KERNEL__ */ | ||
143 | |||
144 | typedef struct sigaltstack { | ||
145 | void __user *ss_sp; | ||
146 | int ss_flags; | ||
147 | size_t ss_size; | ||
148 | } stack_t; | ||
149 | |||
150 | #ifdef __KERNEL__ | ||
151 | #include <asm/sigcontext.h> | ||
152 | |||
153 | #define __HAVE_ARCH_SIG_BITOPS | ||
154 | |||
155 | static inline void sigaddset(sigset_t *set, int _sig) | ||
156 | { | ||
157 | asm ("bfset %0{%1,#1}" | ||
158 | : "+od" (*set) | ||
159 | : "id" ((_sig - 1) ^ 31) | ||
160 | : "cc"); | ||
161 | } | ||
162 | |||
163 | static inline void sigdelset(sigset_t *set, int _sig) | ||
164 | { | ||
165 | asm ("bfclr %0{%1,#1}" | ||
166 | : "+od" (*set) | ||
167 | : "id" ((_sig - 1) ^ 31) | ||
168 | : "cc"); | ||
169 | } | ||
170 | |||
171 | static inline int __const_sigismember(sigset_t *set, int _sig) | ||
172 | { | ||
173 | unsigned long sig = _sig - 1; | ||
174 | return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW)); | ||
175 | } | ||
176 | |||
177 | static inline int __gen_sigismember(sigset_t *set, int _sig) | ||
178 | { | ||
179 | int ret; | ||
180 | asm ("bfextu %1{%2,#1},%0" | ||
181 | : "=d" (ret) | ||
182 | : "od" (*set), "id" ((_sig-1) ^ 31) | ||
183 | : "cc"); | ||
184 | return ret; | ||
185 | } | ||
186 | |||
187 | #define sigismember(set,sig) \ | ||
188 | (__builtin_constant_p(sig) ? \ | ||
189 | __const_sigismember(set,sig) : \ | ||
190 | __gen_sigismember(set,sig)) | ||
191 | |||
192 | static inline int sigfindinword(unsigned long word) | ||
193 | { | ||
194 | asm ("bfffo %1{#0,#0},%0" | ||
195 | : "=d" (word) | ||
196 | : "d" (word & -word) | ||
197 | : "cc"); | ||
198 | return word ^ 31; | ||
199 | } | ||
200 | |||
201 | struct pt_regs; | ||
202 | extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie); | ||
203 | |||
204 | #endif /* __KERNEL__ */ | ||
205 | |||
206 | #endif /* _M68K_SIGNAL_H */ | ||
diff --git a/arch/m68k/include/asm/signal_no.h b/arch/m68k/include/asm/signal_no.h deleted file mode 100644 index 216c08be54a0..000000000000 --- a/arch/m68k/include/asm/signal_no.h +++ /dev/null | |||
@@ -1,159 +0,0 @@ | |||
1 | #ifndef _M68KNOMMU_SIGNAL_H | ||
2 | #define _M68KNOMMU_SIGNAL_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | /* Avoid too many header ordering problems. */ | ||
7 | struct siginfo; | ||
8 | |||
9 | #ifdef __KERNEL__ | ||
10 | /* Most things should be clean enough to redefine this at will, if care | ||
11 | is taken to make libc match. */ | ||
12 | |||
13 | #define _NSIG 64 | ||
14 | #define _NSIG_BPW 32 | ||
15 | #define _NSIG_WORDS (_NSIG / _NSIG_BPW) | ||
16 | |||
17 | typedef unsigned long old_sigset_t; /* at least 32 bits */ | ||
18 | |||
19 | typedef struct { | ||
20 | unsigned long sig[_NSIG_WORDS]; | ||
21 | } sigset_t; | ||
22 | |||
23 | #else | ||
24 | /* Here we must cater to libcs that poke about in kernel headers. */ | ||
25 | |||
26 | #define NSIG 32 | ||
27 | typedef unsigned long sigset_t; | ||
28 | |||
29 | #endif /* __KERNEL__ */ | ||
30 | |||
31 | #define SIGHUP 1 | ||
32 | #define SIGINT 2 | ||
33 | #define SIGQUIT 3 | ||
34 | #define SIGILL 4 | ||
35 | #define SIGTRAP 5 | ||
36 | #define SIGABRT 6 | ||
37 | #define SIGIOT 6 | ||
38 | #define SIGBUS 7 | ||
39 | #define SIGFPE 8 | ||
40 | #define SIGKILL 9 | ||
41 | #define SIGUSR1 10 | ||
42 | #define SIGSEGV 11 | ||
43 | #define SIGUSR2 12 | ||
44 | #define SIGPIPE 13 | ||
45 | #define SIGALRM 14 | ||
46 | #define SIGTERM 15 | ||
47 | #define SIGSTKFLT 16 | ||
48 | #define SIGCHLD 17 | ||
49 | #define SIGCONT 18 | ||
50 | #define SIGSTOP 19 | ||
51 | #define SIGTSTP 20 | ||
52 | #define SIGTTIN 21 | ||
53 | #define SIGTTOU 22 | ||
54 | #define SIGURG 23 | ||
55 | #define SIGXCPU 24 | ||
56 | #define SIGXFSZ 25 | ||
57 | #define SIGVTALRM 26 | ||
58 | #define SIGPROF 27 | ||
59 | #define SIGWINCH 28 | ||
60 | #define SIGIO 29 | ||
61 | #define SIGPOLL SIGIO | ||
62 | /* | ||
63 | #define SIGLOST 29 | ||
64 | */ | ||
65 | #define SIGPWR 30 | ||
66 | #define SIGSYS 31 | ||
67 | #define SIGUNUSED 31 | ||
68 | |||
69 | /* These should not be considered constants from userland. */ | ||
70 | #define SIGRTMIN 32 | ||
71 | #define SIGRTMAX _NSIG | ||
72 | |||
73 | /* | ||
74 | * SA_FLAGS values: | ||
75 | * | ||
76 | * SA_ONSTACK indicates that a registered stack_t will be used. | ||
77 | * SA_RESTART flag to get restarting signals (which were the default long ago) | ||
78 | * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. | ||
79 | * SA_RESETHAND clears the handler when the signal is delivered. | ||
80 | * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. | ||
81 | * SA_NODEFER prevents the current signal from being masked in the handler. | ||
82 | * | ||
83 | * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single | ||
84 | * Unix names RESETHAND and NODEFER respectively. | ||
85 | */ | ||
86 | #define SA_NOCLDSTOP 0x00000001 | ||
87 | #define SA_NOCLDWAIT 0x00000002 | ||
88 | #define SA_SIGINFO 0x00000004 | ||
89 | #define SA_ONSTACK 0x08000000 | ||
90 | #define SA_RESTART 0x10000000 | ||
91 | #define SA_NODEFER 0x40000000 | ||
92 | #define SA_RESETHAND 0x80000000 | ||
93 | |||
94 | #define SA_NOMASK SA_NODEFER | ||
95 | #define SA_ONESHOT SA_RESETHAND | ||
96 | |||
97 | /* | ||
98 | * sigaltstack controls | ||
99 | */ | ||
100 | #define SS_ONSTACK 1 | ||
101 | #define SS_DISABLE 2 | ||
102 | |||
103 | #define MINSIGSTKSZ 2048 | ||
104 | #define SIGSTKSZ 8192 | ||
105 | |||
106 | #include <asm-generic/signal.h> | ||
107 | |||
108 | #ifdef __KERNEL__ | ||
109 | struct old_sigaction { | ||
110 | __sighandler_t sa_handler; | ||
111 | old_sigset_t sa_mask; | ||
112 | unsigned long sa_flags; | ||
113 | void (*sa_restorer)(void); | ||
114 | }; | ||
115 | |||
116 | struct sigaction { | ||
117 | __sighandler_t sa_handler; | ||
118 | unsigned long sa_flags; | ||
119 | void (*sa_restorer)(void); | ||
120 | sigset_t sa_mask; /* mask last for extensibility */ | ||
121 | }; | ||
122 | |||
123 | struct k_sigaction { | ||
124 | struct sigaction sa; | ||
125 | }; | ||
126 | #else | ||
127 | /* Here we must cater to libcs that poke about in kernel headers. */ | ||
128 | |||
129 | struct sigaction { | ||
130 | union { | ||
131 | __sighandler_t _sa_handler; | ||
132 | void (*_sa_sigaction)(int, struct siginfo *, void *); | ||
133 | } _u; | ||
134 | sigset_t sa_mask; | ||
135 | unsigned long sa_flags; | ||
136 | void (*sa_restorer)(void); | ||
137 | }; | ||
138 | |||
139 | #define sa_handler _u._sa_handler | ||
140 | #define sa_sigaction _u._sa_sigaction | ||
141 | |||
142 | #endif /* __KERNEL__ */ | ||
143 | |||
144 | typedef struct sigaltstack { | ||
145 | void *ss_sp; | ||
146 | int ss_flags; | ||
147 | size_t ss_size; | ||
148 | } stack_t; | ||
149 | |||
150 | #ifdef __KERNEL__ | ||
151 | |||
152 | #include <asm/sigcontext.h> | ||
153 | #undef __HAVE_ARCH_SIG_BITOPS | ||
154 | |||
155 | #define ptrace_signal_deliver(regs, cookie) do { } while (0) | ||
156 | |||
157 | #endif /* __KERNEL__ */ | ||
158 | |||
159 | #endif /* _M68KNOMMU_SIGNAL_H */ | ||
diff --git a/arch/m68k/include/asm/swab.h b/arch/m68k/include/asm/swab.h index 7d7dde1c73ec..9e3054ea59e9 100644 --- a/arch/m68k/include/asm/swab.h +++ b/arch/m68k/include/asm/swab.h | |||
@@ -1,5 +1,27 @@ | |||
1 | #ifdef __uClinux__ | 1 | #ifndef _M68K_SWAB_H |
2 | #include "swab_no.h" | 2 | #define _M68K_SWAB_H |
3 | #else | 3 | |
4 | #include "swab_mm.h" | 4 | #include <asm/types.h> |
5 | #include <linux/compiler.h> | ||
6 | |||
7 | #define __SWAB_64_THRU_32__ | ||
8 | |||
9 | #if defined (__mcfisaaplus__) || defined (__mcfisac__) | ||
10 | static inline __attribute_const__ __u32 __arch_swab32(__u32 val) | ||
11 | { | ||
12 | __asm__("byterev %0" : "=d" (val) : "0" (val)); | ||
13 | return val; | ||
14 | } | ||
15 | |||
16 | #define __arch_swab32 __arch_swab32 | ||
17 | #elif !defined(__uClinux__) | ||
18 | |||
19 | static inline __attribute_const__ __u32 __arch_swab32(__u32 val) | ||
20 | { | ||
21 | __asm__("rolw #8,%0; swap %0; rolw #8,%0" : "=d" (val) : "0" (val)); | ||
22 | return val; | ||
23 | } | ||
24 | #define __arch_swab32 __arch_swab32 | ||
5 | #endif | 25 | #endif |
26 | |||
27 | #endif /* _M68K_SWAB_H */ | ||
diff --git a/arch/m68k/include/asm/swab_mm.h b/arch/m68k/include/asm/swab_mm.h deleted file mode 100644 index 7221e3066825..000000000000 --- a/arch/m68k/include/asm/swab_mm.h +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | #ifndef _M68K_SWAB_H | ||
2 | #define _M68K_SWAB_H | ||
3 | |||
4 | #include <asm/types.h> | ||
5 | #include <linux/compiler.h> | ||
6 | |||
7 | #define __SWAB_64_THRU_32__ | ||
8 | |||
9 | static inline __attribute_const__ __u32 __arch_swab32(__u32 val) | ||
10 | { | ||
11 | __asm__("rolw #8,%0; swap %0; rolw #8,%0" : "=d" (val) : "0" (val)); | ||
12 | return val; | ||
13 | } | ||
14 | #define __arch_swab32 __arch_swab32 | ||
15 | |||
16 | #endif /* _M68K_SWAB_H */ | ||
diff --git a/arch/m68k/include/asm/swab_no.h b/arch/m68k/include/asm/swab_no.h deleted file mode 100644 index e582257db300..000000000000 --- a/arch/m68k/include/asm/swab_no.h +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | #ifndef _M68KNOMMU_SWAB_H | ||
2 | #define _M68KNOMMU_SWAB_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | #if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__) | ||
7 | # define __SWAB_64_THRU_32__ | ||
8 | #endif | ||
9 | |||
10 | #if defined (__mcfisaaplus__) || defined (__mcfisac__) | ||
11 | static inline __attribute_const__ __u32 __arch_swab32(__u32 val) | ||
12 | { | ||
13 | asm( | ||
14 | "byterev %0" | ||
15 | : "=d" (val) | ||
16 | : "0" (val) | ||
17 | ); | ||
18 | return val; | ||
19 | } | ||
20 | |||
21 | #define __arch_swab32 __arch_swab32 | ||
22 | #endif | ||
23 | |||
24 | #endif /* _M68KNOMMU_SWAB_H */ | ||
diff --git a/arch/m68k/include/asm/unistd.h b/arch/m68k/include/asm/unistd.h index df1d9d4cb1fd..3c19027331fa 100644 --- a/arch/m68k/include/asm/unistd.h +++ b/arch/m68k/include/asm/unistd.h | |||
@@ -1,5 +1,372 @@ | |||
1 | #ifdef __uClinux__ | 1 | #ifndef _ASM_M68K_UNISTD_H_ |
2 | #include "unistd_no.h" | 2 | #define _ASM_M68K_UNISTD_H_ |
3 | #else | 3 | |
4 | #include "unistd_mm.h" | 4 | /* |
5 | #endif | 5 | * This file contains the system call numbers. |
6 | */ | ||
7 | |||
8 | #define __NR_restart_syscall 0 | ||
9 | #define __NR_exit 1 | ||
10 | #define __NR_fork 2 | ||
11 | #define __NR_read 3 | ||
12 | #define __NR_write 4 | ||
13 | #define __NR_open 5 | ||
14 | #define __NR_close 6 | ||
15 | #define __NR_waitpid 7 | ||
16 | #define __NR_creat 8 | ||
17 | #define __NR_link 9 | ||
18 | #define __NR_unlink 10 | ||
19 | #define __NR_execve 11 | ||
20 | #define __NR_chdir 12 | ||
21 | #define __NR_time 13 | ||
22 | #define __NR_mknod 14 | ||
23 | #define __NR_chmod 15 | ||
24 | #define __NR_chown 16 | ||
25 | #define __NR_break 17 | ||
26 | #define __NR_oldstat 18 | ||
27 | #define __NR_lseek 19 | ||
28 | #define __NR_getpid 20 | ||
29 | #define __NR_mount 21 | ||
30 | #define __NR_umount 22 | ||
31 | #define __NR_setuid 23 | ||
32 | #define __NR_getuid 24 | ||
33 | #define __NR_stime 25 | ||
34 | #define __NR_ptrace 26 | ||
35 | #define __NR_alarm 27 | ||
36 | #define __NR_oldfstat 28 | ||
37 | #define __NR_pause 29 | ||
38 | #define __NR_utime 30 | ||
39 | #define __NR_stty 31 | ||
40 | #define __NR_gtty 32 | ||
41 | #define __NR_access 33 | ||
42 | #define __NR_nice 34 | ||
43 | #define __NR_ftime 35 | ||
44 | #define __NR_sync 36 | ||
45 | #define __NR_kill 37 | ||
46 | #define __NR_rename 38 | ||
47 | #define __NR_mkdir 39 | ||
48 | #define __NR_rmdir 40 | ||
49 | #define __NR_dup 41 | ||
50 | #define __NR_pipe 42 | ||
51 | #define __NR_times 43 | ||
52 | #define __NR_prof 44 | ||
53 | #define __NR_brk 45 | ||
54 | #define __NR_setgid 46 | ||
55 | #define __NR_getgid 47 | ||
56 | #define __NR_signal 48 | ||
57 | #define __NR_geteuid 49 | ||
58 | #define __NR_getegid 50 | ||
59 | #define __NR_acct 51 | ||
60 | #define __NR_umount2 52 | ||
61 | #define __NR_lock 53 | ||
62 | #define __NR_ioctl 54 | ||
63 | #define __NR_fcntl 55 | ||
64 | #define __NR_mpx 56 | ||
65 | #define __NR_setpgid 57 | ||
66 | #define __NR_ulimit 58 | ||
67 | #define __NR_oldolduname 59 | ||
68 | #define __NR_umask 60 | ||
69 | #define __NR_chroot 61 | ||
70 | #define __NR_ustat 62 | ||
71 | #define __NR_dup2 63 | ||
72 | #define __NR_getppid 64 | ||
73 | #define __NR_getpgrp 65 | ||
74 | #define __NR_setsid 66 | ||
75 | #define __NR_sigaction 67 | ||
76 | #define __NR_sgetmask 68 | ||
77 | #define __NR_ssetmask 69 | ||
78 | #define __NR_setreuid 70 | ||
79 | #define __NR_setregid 71 | ||
80 | #define __NR_sigsuspend 72 | ||
81 | #define __NR_sigpending 73 | ||
82 | #define __NR_sethostname 74 | ||
83 | #define __NR_setrlimit 75 | ||
84 | #define __NR_getrlimit 76 | ||
85 | #define __NR_getrusage 77 | ||
86 | #define __NR_gettimeofday 78 | ||
87 | #define __NR_settimeofday 79 | ||
88 | #define __NR_getgroups 80 | ||
89 | #define __NR_setgroups 81 | ||
90 | #define __NR_select 82 | ||
91 | #define __NR_symlink 83 | ||
92 | #define __NR_oldlstat 84 | ||
93 | #define __NR_readlink 85 | ||
94 | #define __NR_uselib 86 | ||
95 | #define __NR_swapon 87 | ||
96 | #define __NR_reboot 88 | ||
97 | #define __NR_readdir 89 | ||
98 | #define __NR_mmap 90 | ||
99 | #define __NR_munmap 91 | ||
100 | #define __NR_truncate 92 | ||
101 | #define __NR_ftruncate 93 | ||
102 | #define __NR_fchmod 94 | ||
103 | #define __NR_fchown 95 | ||
104 | #define __NR_getpriority 96 | ||
105 | #define __NR_setpriority 97 | ||
106 | #define __NR_profil 98 | ||
107 | #define __NR_statfs 99 | ||
108 | #define __NR_fstatfs 100 | ||
109 | #define __NR_ioperm 101 | ||
110 | #define __NR_socketcall 102 | ||
111 | #define __NR_syslog 103 | ||
112 | #define __NR_setitimer 104 | ||
113 | #define __NR_getitimer 105 | ||
114 | #define __NR_stat 106 | ||
115 | #define __NR_lstat 107 | ||
116 | #define __NR_fstat 108 | ||
117 | #define __NR_olduname 109 | ||
118 | #define __NR_iopl /* 110 */ not supported | ||
119 | #define __NR_vhangup 111 | ||
120 | #define __NR_idle /* 112 */ Obsolete | ||
121 | #define __NR_vm86 /* 113 */ not supported | ||
122 | #define __NR_wait4 114 | ||
123 | #define __NR_swapoff 115 | ||
124 | #define __NR_sysinfo 116 | ||
125 | #define __NR_ipc 117 | ||
126 | #define __NR_fsync 118 | ||
127 | #define __NR_sigreturn 119 | ||
128 | #define __NR_clone 120 | ||
129 | #define __NR_setdomainname 121 | ||
130 | #define __NR_uname 122 | ||
131 | #define __NR_cacheflush 123 | ||
132 | #define __NR_adjtimex 124 | ||
133 | #define __NR_mprotect 125 | ||
134 | #define __NR_sigprocmask 126 | ||
135 | #define __NR_create_module 127 | ||
136 | #define __NR_init_module 128 | ||
137 | #define __NR_delete_module 129 | ||
138 | #define __NR_get_kernel_syms 130 | ||
139 | #define __NR_quotactl 131 | ||
140 | #define __NR_getpgid 132 | ||
141 | #define __NR_fchdir 133 | ||
142 | #define __NR_bdflush 134 | ||
143 | #define __NR_sysfs 135 | ||
144 | #define __NR_personality 136 | ||
145 | #define __NR_afs_syscall 137 /* Syscall for Andrew File System */ | ||
146 | #define __NR_setfsuid 138 | ||
147 | #define __NR_setfsgid 139 | ||
148 | #define __NR__llseek 140 | ||
149 | #define __NR_getdents 141 | ||
150 | #define __NR__newselect 142 | ||
151 | #define __NR_flock 143 | ||
152 | #define __NR_msync 144 | ||
153 | #define __NR_readv 145 | ||
154 | #define __NR_writev 146 | ||
155 | #define __NR_getsid 147 | ||
156 | #define __NR_fdatasync 148 | ||
157 | #define __NR__sysctl 149 | ||
158 | #define __NR_mlock 150 | ||
159 | #define __NR_munlock 151 | ||
160 | #define __NR_mlockall 152 | ||
161 | #define __NR_munlockall 153 | ||
162 | #define __NR_sched_setparam 154 | ||
163 | #define __NR_sched_getparam 155 | ||
164 | #define __NR_sched_setscheduler 156 | ||
165 | #define __NR_sched_getscheduler 157 | ||
166 | #define __NR_sched_yield 158 | ||
167 | #define __NR_sched_get_priority_max 159 | ||
168 | #define __NR_sched_get_priority_min 160 | ||
169 | #define __NR_sched_rr_get_interval 161 | ||
170 | #define __NR_nanosleep 162 | ||
171 | #define __NR_mremap 163 | ||
172 | #define __NR_setresuid 164 | ||
173 | #define __NR_getresuid 165 | ||
174 | #define __NR_getpagesize 166 | ||
175 | #define __NR_query_module 167 | ||
176 | #define __NR_poll 168 | ||
177 | #define __NR_nfsservctl 169 | ||
178 | #define __NR_setresgid 170 | ||
179 | #define __NR_getresgid 171 | ||
180 | #define __NR_prctl 172 | ||
181 | #define __NR_rt_sigreturn 173 | ||
182 | #define __NR_rt_sigaction 174 | ||
183 | #define __NR_rt_sigprocmask 175 | ||
184 | #define __NR_rt_sigpending 176 | ||
185 | #define __NR_rt_sigtimedwait 177 | ||
186 | #define __NR_rt_sigqueueinfo 178 | ||
187 | #define __NR_rt_sigsuspend 179 | ||
188 | #define __NR_pread64 180 | ||
189 | #define __NR_pwrite64 181 | ||
190 | #define __NR_lchown 182 | ||
191 | #define __NR_getcwd 183 | ||
192 | #define __NR_capget 184 | ||
193 | #define __NR_capset 185 | ||
194 | #define __NR_sigaltstack 186 | ||
195 | #define __NR_sendfile 187 | ||
196 | #define __NR_getpmsg 188 /* some people actually want streams */ | ||
197 | #define __NR_putpmsg 189 /* some people actually want streams */ | ||
198 | #define __NR_vfork 190 | ||
199 | #define __NR_ugetrlimit 191 | ||
200 | #define __NR_mmap2 192 | ||
201 | #define __NR_truncate64 193 | ||
202 | #define __NR_ftruncate64 194 | ||
203 | #define __NR_stat64 195 | ||
204 | #define __NR_lstat64 196 | ||
205 | #define __NR_fstat64 197 | ||
206 | #define __NR_chown32 198 | ||
207 | #define __NR_getuid32 199 | ||
208 | #define __NR_getgid32 200 | ||
209 | #define __NR_geteuid32 201 | ||
210 | #define __NR_getegid32 202 | ||
211 | #define __NR_setreuid32 203 | ||
212 | #define __NR_setregid32 204 | ||
213 | #define __NR_getgroups32 205 | ||
214 | #define __NR_setgroups32 206 | ||
215 | #define __NR_fchown32 207 | ||
216 | #define __NR_setresuid32 208 | ||
217 | #define __NR_getresuid32 209 | ||
218 | #define __NR_setresgid32 210 | ||
219 | #define __NR_getresgid32 211 | ||
220 | #define __NR_lchown32 212 | ||
221 | #define __NR_setuid32 213 | ||
222 | #define __NR_setgid32 214 | ||
223 | #define __NR_setfsuid32 215 | ||
224 | #define __NR_setfsgid32 216 | ||
225 | #define __NR_pivot_root 217 | ||
226 | #define __NR_getdents64 220 | ||
227 | #define __NR_gettid 221 | ||
228 | #define __NR_tkill 222 | ||
229 | #define __NR_setxattr 223 | ||
230 | #define __NR_lsetxattr 224 | ||
231 | #define __NR_fsetxattr 225 | ||
232 | #define __NR_getxattr 226 | ||
233 | #define __NR_lgetxattr 227 | ||
234 | #define __NR_fgetxattr 228 | ||
235 | #define __NR_listxattr 229 | ||
236 | #define __NR_llistxattr 230 | ||
237 | #define __NR_flistxattr 231 | ||
238 | #define __NR_removexattr 232 | ||
239 | #define __NR_lremovexattr 233 | ||
240 | #define __NR_fremovexattr 234 | ||
241 | #define __NR_futex 235 | ||
242 | #define __NR_sendfile64 236 | ||
243 | #define __NR_mincore 237 | ||
244 | #define __NR_madvise 238 | ||
245 | #define __NR_fcntl64 239 | ||
246 | #define __NR_readahead 240 | ||
247 | #define __NR_io_setup 241 | ||
248 | #define __NR_io_destroy 242 | ||
249 | #define __NR_io_getevents 243 | ||
250 | #define __NR_io_submit 244 | ||
251 | #define __NR_io_cancel 245 | ||
252 | #define __NR_fadvise64 246 | ||
253 | #define __NR_exit_group 247 | ||
254 | #define __NR_lookup_dcookie 248 | ||
255 | #define __NR_epoll_create 249 | ||
256 | #define __NR_epoll_ctl 250 | ||
257 | #define __NR_epoll_wait 251 | ||
258 | #define __NR_remap_file_pages 252 | ||
259 | #define __NR_set_tid_address 253 | ||
260 | #define __NR_timer_create 254 | ||
261 | #define __NR_timer_settime 255 | ||
262 | #define __NR_timer_gettime 256 | ||
263 | #define __NR_timer_getoverrun 257 | ||
264 | #define __NR_timer_delete 258 | ||
265 | #define __NR_clock_settime 259 | ||
266 | #define __NR_clock_gettime 260 | ||
267 | #define __NR_clock_getres 261 | ||
268 | #define __NR_clock_nanosleep 262 | ||
269 | #define __NR_statfs64 263 | ||
270 | #define __NR_fstatfs64 264 | ||
271 | #define __NR_tgkill 265 | ||
272 | #define __NR_utimes 266 | ||
273 | #define __NR_fadvise64_64 267 | ||
274 | #define __NR_mbind 268 | ||
275 | #define __NR_get_mempolicy 269 | ||
276 | #define __NR_set_mempolicy 270 | ||
277 | #define __NR_mq_open 271 | ||
278 | #define __NR_mq_unlink 272 | ||
279 | #define __NR_mq_timedsend 273 | ||
280 | #define __NR_mq_timedreceive 274 | ||
281 | #define __NR_mq_notify 275 | ||
282 | #define __NR_mq_getsetattr 276 | ||
283 | #define __NR_waitid 277 | ||
284 | #define __NR_vserver 278 | ||
285 | #define __NR_add_key 279 | ||
286 | #define __NR_request_key 280 | ||
287 | #define __NR_keyctl 281 | ||
288 | #define __NR_ioprio_set 282 | ||
289 | #define __NR_ioprio_get 283 | ||
290 | #define __NR_inotify_init 284 | ||
291 | #define __NR_inotify_add_watch 285 | ||
292 | #define __NR_inotify_rm_watch 286 | ||
293 | #define __NR_migrate_pages 287 | ||
294 | #define __NR_openat 288 | ||
295 | #define __NR_mkdirat 289 | ||
296 | #define __NR_mknodat 290 | ||
297 | #define __NR_fchownat 291 | ||
298 | #define __NR_futimesat 292 | ||
299 | #define __NR_fstatat64 293 | ||
300 | #define __NR_unlinkat 294 | ||
301 | #define __NR_renameat 295 | ||
302 | #define __NR_linkat 296 | ||
303 | #define __NR_symlinkat 297 | ||
304 | #define __NR_readlinkat 298 | ||
305 | #define __NR_fchmodat 299 | ||
306 | #define __NR_faccessat 300 | ||
307 | #define __NR_pselect6 301 | ||
308 | #define __NR_ppoll 302 | ||
309 | #define __NR_unshare 303 | ||
310 | #define __NR_set_robust_list 304 | ||
311 | #define __NR_get_robust_list 305 | ||
312 | #define __NR_splice 306 | ||
313 | #define __NR_sync_file_range 307 | ||
314 | #define __NR_tee 308 | ||
315 | #define __NR_vmsplice 309 | ||
316 | #define __NR_move_pages 310 | ||
317 | #define __NR_sched_setaffinity 311 | ||
318 | #define __NR_sched_getaffinity 312 | ||
319 | #define __NR_kexec_load 313 | ||
320 | #define __NR_getcpu 314 | ||
321 | #define __NR_epoll_pwait 315 | ||
322 | #define __NR_utimensat 316 | ||
323 | #define __NR_signalfd 317 | ||
324 | #define __NR_timerfd_create 318 | ||
325 | #define __NR_eventfd 319 | ||
326 | #define __NR_fallocate 320 | ||
327 | #define __NR_timerfd_settime 321 | ||
328 | #define __NR_timerfd_gettime 322 | ||
329 | #define __NR_signalfd4 323 | ||
330 | #define __NR_eventfd2 324 | ||
331 | #define __NR_epoll_create1 325 | ||
332 | #define __NR_dup3 326 | ||
333 | #define __NR_pipe2 327 | ||
334 | #define __NR_inotify_init1 328 | ||
335 | |||
336 | #ifdef __KERNEL__ | ||
337 | |||
338 | #define NR_syscalls 329 | ||
339 | |||
340 | #define __ARCH_WANT_IPC_PARSE_VERSION | ||
341 | #define __ARCH_WANT_OLD_READDIR | ||
342 | #define __ARCH_WANT_OLD_STAT | ||
343 | #define __ARCH_WANT_STAT64 | ||
344 | #define __ARCH_WANT_SYS_ALARM | ||
345 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
346 | #define __ARCH_WANT_SYS_PAUSE | ||
347 | #define __ARCH_WANT_SYS_SGETMASK | ||
348 | #define __ARCH_WANT_SYS_SIGNAL | ||
349 | #define __ARCH_WANT_SYS_TIME | ||
350 | #define __ARCH_WANT_SYS_UTIME | ||
351 | #define __ARCH_WANT_SYS_WAITPID | ||
352 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
353 | #define __ARCH_WANT_SYS_FADVISE64 | ||
354 | #define __ARCH_WANT_SYS_GETPGRP | ||
355 | #define __ARCH_WANT_SYS_LLSEEK | ||
356 | #define __ARCH_WANT_SYS_NICE | ||
357 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT | ||
358 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
359 | #define __ARCH_WANT_SYS_SIGPENDING | ||
360 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
361 | #define __ARCH_WANT_SYS_RT_SIGACTION | ||
362 | |||
363 | /* | ||
364 | * "Conditional" syscalls | ||
365 | * | ||
366 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
367 | * but it doesn't work on all toolchains, so we just do it by hand | ||
368 | */ | ||
369 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
370 | |||
371 | #endif /* __KERNEL__ */ | ||
372 | #endif /* _ASM_M68K_UNISTD_H_ */ | ||
diff --git a/arch/m68k/include/asm/unistd_mm.h b/arch/m68k/include/asm/unistd_mm.h deleted file mode 100644 index 3c19027331fa..000000000000 --- a/arch/m68k/include/asm/unistd_mm.h +++ /dev/null | |||
@@ -1,372 +0,0 @@ | |||
1 | #ifndef _ASM_M68K_UNISTD_H_ | ||
2 | #define _ASM_M68K_UNISTD_H_ | ||
3 | |||
4 | /* | ||
5 | * This file contains the system call numbers. | ||
6 | */ | ||
7 | |||
8 | #define __NR_restart_syscall 0 | ||
9 | #define __NR_exit 1 | ||
10 | #define __NR_fork 2 | ||
11 | #define __NR_read 3 | ||
12 | #define __NR_write 4 | ||
13 | #define __NR_open 5 | ||
14 | #define __NR_close 6 | ||
15 | #define __NR_waitpid 7 | ||
16 | #define __NR_creat 8 | ||
17 | #define __NR_link 9 | ||
18 | #define __NR_unlink 10 | ||
19 | #define __NR_execve 11 | ||
20 | #define __NR_chdir 12 | ||
21 | #define __NR_time 13 | ||
22 | #define __NR_mknod 14 | ||
23 | #define __NR_chmod 15 | ||
24 | #define __NR_chown 16 | ||
25 | #define __NR_break 17 | ||
26 | #define __NR_oldstat 18 | ||
27 | #define __NR_lseek 19 | ||
28 | #define __NR_getpid 20 | ||
29 | #define __NR_mount 21 | ||
30 | #define __NR_umount 22 | ||
31 | #define __NR_setuid 23 | ||
32 | #define __NR_getuid 24 | ||
33 | #define __NR_stime 25 | ||
34 | #define __NR_ptrace 26 | ||
35 | #define __NR_alarm 27 | ||
36 | #define __NR_oldfstat 28 | ||
37 | #define __NR_pause 29 | ||
38 | #define __NR_utime 30 | ||
39 | #define __NR_stty 31 | ||
40 | #define __NR_gtty 32 | ||
41 | #define __NR_access 33 | ||
42 | #define __NR_nice 34 | ||
43 | #define __NR_ftime 35 | ||
44 | #define __NR_sync 36 | ||
45 | #define __NR_kill 37 | ||
46 | #define __NR_rename 38 | ||
47 | #define __NR_mkdir 39 | ||
48 | #define __NR_rmdir 40 | ||
49 | #define __NR_dup 41 | ||
50 | #define __NR_pipe 42 | ||
51 | #define __NR_times 43 | ||
52 | #define __NR_prof 44 | ||
53 | #define __NR_brk 45 | ||
54 | #define __NR_setgid 46 | ||
55 | #define __NR_getgid 47 | ||
56 | #define __NR_signal 48 | ||
57 | #define __NR_geteuid 49 | ||
58 | #define __NR_getegid 50 | ||
59 | #define __NR_acct 51 | ||
60 | #define __NR_umount2 52 | ||
61 | #define __NR_lock 53 | ||
62 | #define __NR_ioctl 54 | ||
63 | #define __NR_fcntl 55 | ||
64 | #define __NR_mpx 56 | ||
65 | #define __NR_setpgid 57 | ||
66 | #define __NR_ulimit 58 | ||
67 | #define __NR_oldolduname 59 | ||
68 | #define __NR_umask 60 | ||
69 | #define __NR_chroot 61 | ||
70 | #define __NR_ustat 62 | ||
71 | #define __NR_dup2 63 | ||
72 | #define __NR_getppid 64 | ||
73 | #define __NR_getpgrp 65 | ||
74 | #define __NR_setsid 66 | ||
75 | #define __NR_sigaction 67 | ||
76 | #define __NR_sgetmask 68 | ||
77 | #define __NR_ssetmask 69 | ||
78 | #define __NR_setreuid 70 | ||
79 | #define __NR_setregid 71 | ||
80 | #define __NR_sigsuspend 72 | ||
81 | #define __NR_sigpending 73 | ||
82 | #define __NR_sethostname 74 | ||
83 | #define __NR_setrlimit 75 | ||
84 | #define __NR_getrlimit 76 | ||
85 | #define __NR_getrusage 77 | ||
86 | #define __NR_gettimeofday 78 | ||
87 | #define __NR_settimeofday 79 | ||
88 | #define __NR_getgroups 80 | ||
89 | #define __NR_setgroups 81 | ||
90 | #define __NR_select 82 | ||
91 | #define __NR_symlink 83 | ||
92 | #define __NR_oldlstat 84 | ||
93 | #define __NR_readlink 85 | ||
94 | #define __NR_uselib 86 | ||
95 | #define __NR_swapon 87 | ||
96 | #define __NR_reboot 88 | ||
97 | #define __NR_readdir 89 | ||
98 | #define __NR_mmap 90 | ||
99 | #define __NR_munmap 91 | ||
100 | #define __NR_truncate 92 | ||
101 | #define __NR_ftruncate 93 | ||
102 | #define __NR_fchmod 94 | ||
103 | #define __NR_fchown 95 | ||
104 | #define __NR_getpriority 96 | ||
105 | #define __NR_setpriority 97 | ||
106 | #define __NR_profil 98 | ||
107 | #define __NR_statfs 99 | ||
108 | #define __NR_fstatfs 100 | ||
109 | #define __NR_ioperm 101 | ||
110 | #define __NR_socketcall 102 | ||
111 | #define __NR_syslog 103 | ||
112 | #define __NR_setitimer 104 | ||
113 | #define __NR_getitimer 105 | ||
114 | #define __NR_stat 106 | ||
115 | #define __NR_lstat 107 | ||
116 | #define __NR_fstat 108 | ||
117 | #define __NR_olduname 109 | ||
118 | #define __NR_iopl /* 110 */ not supported | ||
119 | #define __NR_vhangup 111 | ||
120 | #define __NR_idle /* 112 */ Obsolete | ||
121 | #define __NR_vm86 /* 113 */ not supported | ||
122 | #define __NR_wait4 114 | ||
123 | #define __NR_swapoff 115 | ||
124 | #define __NR_sysinfo 116 | ||
125 | #define __NR_ipc 117 | ||
126 | #define __NR_fsync 118 | ||
127 | #define __NR_sigreturn 119 | ||
128 | #define __NR_clone 120 | ||
129 | #define __NR_setdomainname 121 | ||
130 | #define __NR_uname 122 | ||
131 | #define __NR_cacheflush 123 | ||
132 | #define __NR_adjtimex 124 | ||
133 | #define __NR_mprotect 125 | ||
134 | #define __NR_sigprocmask 126 | ||
135 | #define __NR_create_module 127 | ||
136 | #define __NR_init_module 128 | ||
137 | #define __NR_delete_module 129 | ||
138 | #define __NR_get_kernel_syms 130 | ||
139 | #define __NR_quotactl 131 | ||
140 | #define __NR_getpgid 132 | ||
141 | #define __NR_fchdir 133 | ||
142 | #define __NR_bdflush 134 | ||
143 | #define __NR_sysfs 135 | ||
144 | #define __NR_personality 136 | ||
145 | #define __NR_afs_syscall 137 /* Syscall for Andrew File System */ | ||
146 | #define __NR_setfsuid 138 | ||
147 | #define __NR_setfsgid 139 | ||
148 | #define __NR__llseek 140 | ||
149 | #define __NR_getdents 141 | ||
150 | #define __NR__newselect 142 | ||
151 | #define __NR_flock 143 | ||
152 | #define __NR_msync 144 | ||
153 | #define __NR_readv 145 | ||
154 | #define __NR_writev 146 | ||
155 | #define __NR_getsid 147 | ||
156 | #define __NR_fdatasync 148 | ||
157 | #define __NR__sysctl 149 | ||
158 | #define __NR_mlock 150 | ||
159 | #define __NR_munlock 151 | ||
160 | #define __NR_mlockall 152 | ||
161 | #define __NR_munlockall 153 | ||
162 | #define __NR_sched_setparam 154 | ||
163 | #define __NR_sched_getparam 155 | ||
164 | #define __NR_sched_setscheduler 156 | ||
165 | #define __NR_sched_getscheduler 157 | ||
166 | #define __NR_sched_yield 158 | ||
167 | #define __NR_sched_get_priority_max 159 | ||
168 | #define __NR_sched_get_priority_min 160 | ||
169 | #define __NR_sched_rr_get_interval 161 | ||
170 | #define __NR_nanosleep 162 | ||
171 | #define __NR_mremap 163 | ||
172 | #define __NR_setresuid 164 | ||
173 | #define __NR_getresuid 165 | ||
174 | #define __NR_getpagesize 166 | ||
175 | #define __NR_query_module 167 | ||
176 | #define __NR_poll 168 | ||
177 | #define __NR_nfsservctl 169 | ||
178 | #define __NR_setresgid 170 | ||
179 | #define __NR_getresgid 171 | ||
180 | #define __NR_prctl 172 | ||
181 | #define __NR_rt_sigreturn 173 | ||
182 | #define __NR_rt_sigaction 174 | ||
183 | #define __NR_rt_sigprocmask 175 | ||
184 | #define __NR_rt_sigpending 176 | ||
185 | #define __NR_rt_sigtimedwait 177 | ||
186 | #define __NR_rt_sigqueueinfo 178 | ||
187 | #define __NR_rt_sigsuspend 179 | ||
188 | #define __NR_pread64 180 | ||
189 | #define __NR_pwrite64 181 | ||
190 | #define __NR_lchown 182 | ||
191 | #define __NR_getcwd 183 | ||
192 | #define __NR_capget 184 | ||
193 | #define __NR_capset 185 | ||
194 | #define __NR_sigaltstack 186 | ||
195 | #define __NR_sendfile 187 | ||
196 | #define __NR_getpmsg 188 /* some people actually want streams */ | ||
197 | #define __NR_putpmsg 189 /* some people actually want streams */ | ||
198 | #define __NR_vfork 190 | ||
199 | #define __NR_ugetrlimit 191 | ||
200 | #define __NR_mmap2 192 | ||
201 | #define __NR_truncate64 193 | ||
202 | #define __NR_ftruncate64 194 | ||
203 | #define __NR_stat64 195 | ||
204 | #define __NR_lstat64 196 | ||
205 | #define __NR_fstat64 197 | ||
206 | #define __NR_chown32 198 | ||
207 | #define __NR_getuid32 199 | ||
208 | #define __NR_getgid32 200 | ||
209 | #define __NR_geteuid32 201 | ||
210 | #define __NR_getegid32 202 | ||
211 | #define __NR_setreuid32 203 | ||
212 | #define __NR_setregid32 204 | ||
213 | #define __NR_getgroups32 205 | ||
214 | #define __NR_setgroups32 206 | ||
215 | #define __NR_fchown32 207 | ||
216 | #define __NR_setresuid32 208 | ||
217 | #define __NR_getresuid32 209 | ||
218 | #define __NR_setresgid32 210 | ||
219 | #define __NR_getresgid32 211 | ||
220 | #define __NR_lchown32 212 | ||
221 | #define __NR_setuid32 213 | ||
222 | #define __NR_setgid32 214 | ||
223 | #define __NR_setfsuid32 215 | ||
224 | #define __NR_setfsgid32 216 | ||
225 | #define __NR_pivot_root 217 | ||
226 | #define __NR_getdents64 220 | ||
227 | #define __NR_gettid 221 | ||
228 | #define __NR_tkill 222 | ||
229 | #define __NR_setxattr 223 | ||
230 | #define __NR_lsetxattr 224 | ||
231 | #define __NR_fsetxattr 225 | ||
232 | #define __NR_getxattr 226 | ||
233 | #define __NR_lgetxattr 227 | ||
234 | #define __NR_fgetxattr 228 | ||
235 | #define __NR_listxattr 229 | ||
236 | #define __NR_llistxattr 230 | ||
237 | #define __NR_flistxattr 231 | ||
238 | #define __NR_removexattr 232 | ||
239 | #define __NR_lremovexattr 233 | ||
240 | #define __NR_fremovexattr 234 | ||
241 | #define __NR_futex 235 | ||
242 | #define __NR_sendfile64 236 | ||
243 | #define __NR_mincore 237 | ||
244 | #define __NR_madvise 238 | ||
245 | #define __NR_fcntl64 239 | ||
246 | #define __NR_readahead 240 | ||
247 | #define __NR_io_setup 241 | ||
248 | #define __NR_io_destroy 242 | ||
249 | #define __NR_io_getevents 243 | ||
250 | #define __NR_io_submit 244 | ||
251 | #define __NR_io_cancel 245 | ||
252 | #define __NR_fadvise64 246 | ||
253 | #define __NR_exit_group 247 | ||
254 | #define __NR_lookup_dcookie 248 | ||
255 | #define __NR_epoll_create 249 | ||
256 | #define __NR_epoll_ctl 250 | ||
257 | #define __NR_epoll_wait 251 | ||
258 | #define __NR_remap_file_pages 252 | ||
259 | #define __NR_set_tid_address 253 | ||
260 | #define __NR_timer_create 254 | ||
261 | #define __NR_timer_settime 255 | ||
262 | #define __NR_timer_gettime 256 | ||
263 | #define __NR_timer_getoverrun 257 | ||
264 | #define __NR_timer_delete 258 | ||
265 | #define __NR_clock_settime 259 | ||
266 | #define __NR_clock_gettime 260 | ||
267 | #define __NR_clock_getres 261 | ||
268 | #define __NR_clock_nanosleep 262 | ||
269 | #define __NR_statfs64 263 | ||
270 | #define __NR_fstatfs64 264 | ||
271 | #define __NR_tgkill 265 | ||
272 | #define __NR_utimes 266 | ||
273 | #define __NR_fadvise64_64 267 | ||
274 | #define __NR_mbind 268 | ||
275 | #define __NR_get_mempolicy 269 | ||
276 | #define __NR_set_mempolicy 270 | ||
277 | #define __NR_mq_open 271 | ||
278 | #define __NR_mq_unlink 272 | ||
279 | #define __NR_mq_timedsend 273 | ||
280 | #define __NR_mq_timedreceive 274 | ||
281 | #define __NR_mq_notify 275 | ||
282 | #define __NR_mq_getsetattr 276 | ||
283 | #define __NR_waitid 277 | ||
284 | #define __NR_vserver 278 | ||
285 | #define __NR_add_key 279 | ||
286 | #define __NR_request_key 280 | ||
287 | #define __NR_keyctl 281 | ||
288 | #define __NR_ioprio_set 282 | ||
289 | #define __NR_ioprio_get 283 | ||
290 | #define __NR_inotify_init 284 | ||
291 | #define __NR_inotify_add_watch 285 | ||
292 | #define __NR_inotify_rm_watch 286 | ||
293 | #define __NR_migrate_pages 287 | ||
294 | #define __NR_openat 288 | ||
295 | #define __NR_mkdirat 289 | ||
296 | #define __NR_mknodat 290 | ||
297 | #define __NR_fchownat 291 | ||
298 | #define __NR_futimesat 292 | ||
299 | #define __NR_fstatat64 293 | ||
300 | #define __NR_unlinkat 294 | ||
301 | #define __NR_renameat 295 | ||
302 | #define __NR_linkat 296 | ||
303 | #define __NR_symlinkat 297 | ||
304 | #define __NR_readlinkat 298 | ||
305 | #define __NR_fchmodat 299 | ||
306 | #define __NR_faccessat 300 | ||
307 | #define __NR_pselect6 301 | ||
308 | #define __NR_ppoll 302 | ||
309 | #define __NR_unshare 303 | ||
310 | #define __NR_set_robust_list 304 | ||
311 | #define __NR_get_robust_list 305 | ||
312 | #define __NR_splice 306 | ||
313 | #define __NR_sync_file_range 307 | ||
314 | #define __NR_tee 308 | ||
315 | #define __NR_vmsplice 309 | ||
316 | #define __NR_move_pages 310 | ||
317 | #define __NR_sched_setaffinity 311 | ||
318 | #define __NR_sched_getaffinity 312 | ||
319 | #define __NR_kexec_load 313 | ||
320 | #define __NR_getcpu 314 | ||
321 | #define __NR_epoll_pwait 315 | ||
322 | #define __NR_utimensat 316 | ||
323 | #define __NR_signalfd 317 | ||
324 | #define __NR_timerfd_create 318 | ||
325 | #define __NR_eventfd 319 | ||
326 | #define __NR_fallocate 320 | ||
327 | #define __NR_timerfd_settime 321 | ||
328 | #define __NR_timerfd_gettime 322 | ||
329 | #define __NR_signalfd4 323 | ||
330 | #define __NR_eventfd2 324 | ||
331 | #define __NR_epoll_create1 325 | ||
332 | #define __NR_dup3 326 | ||
333 | #define __NR_pipe2 327 | ||
334 | #define __NR_inotify_init1 328 | ||
335 | |||
336 | #ifdef __KERNEL__ | ||
337 | |||
338 | #define NR_syscalls 329 | ||
339 | |||
340 | #define __ARCH_WANT_IPC_PARSE_VERSION | ||
341 | #define __ARCH_WANT_OLD_READDIR | ||
342 | #define __ARCH_WANT_OLD_STAT | ||
343 | #define __ARCH_WANT_STAT64 | ||
344 | #define __ARCH_WANT_SYS_ALARM | ||
345 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
346 | #define __ARCH_WANT_SYS_PAUSE | ||
347 | #define __ARCH_WANT_SYS_SGETMASK | ||
348 | #define __ARCH_WANT_SYS_SIGNAL | ||
349 | #define __ARCH_WANT_SYS_TIME | ||
350 | #define __ARCH_WANT_SYS_UTIME | ||
351 | #define __ARCH_WANT_SYS_WAITPID | ||
352 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
353 | #define __ARCH_WANT_SYS_FADVISE64 | ||
354 | #define __ARCH_WANT_SYS_GETPGRP | ||
355 | #define __ARCH_WANT_SYS_LLSEEK | ||
356 | #define __ARCH_WANT_SYS_NICE | ||
357 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT | ||
358 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
359 | #define __ARCH_WANT_SYS_SIGPENDING | ||
360 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
361 | #define __ARCH_WANT_SYS_RT_SIGACTION | ||
362 | |||
363 | /* | ||
364 | * "Conditional" syscalls | ||
365 | * | ||
366 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
367 | * but it doesn't work on all toolchains, so we just do it by hand | ||
368 | */ | ||
369 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
370 | |||
371 | #endif /* __KERNEL__ */ | ||
372 | #endif /* _ASM_M68K_UNISTD_H_ */ | ||
diff --git a/arch/m68k/include/asm/unistd_no.h b/arch/m68k/include/asm/unistd_no.h deleted file mode 100644 index b034a2f7b444..000000000000 --- a/arch/m68k/include/asm/unistd_no.h +++ /dev/null | |||
@@ -1,372 +0,0 @@ | |||
1 | #ifndef _ASM_M68K_UNISTD_H_ | ||
2 | #define _ASM_M68K_UNISTD_H_ | ||
3 | |||
4 | /* | ||
5 | * This file contains the system call numbers. | ||
6 | */ | ||
7 | |||
8 | #define __NR_restart_syscall 0 | ||
9 | #define __NR_exit 1 | ||
10 | #define __NR_fork 2 | ||
11 | #define __NR_read 3 | ||
12 | #define __NR_write 4 | ||
13 | #define __NR_open 5 | ||
14 | #define __NR_close 6 | ||
15 | #define __NR_waitpid 7 | ||
16 | #define __NR_creat 8 | ||
17 | #define __NR_link 9 | ||
18 | #define __NR_unlink 10 | ||
19 | #define __NR_execve 11 | ||
20 | #define __NR_chdir 12 | ||
21 | #define __NR_time 13 | ||
22 | #define __NR_mknod 14 | ||
23 | #define __NR_chmod 15 | ||
24 | #define __NR_chown 16 | ||
25 | #define __NR_break 17 | ||
26 | #define __NR_oldstat 18 | ||
27 | #define __NR_lseek 19 | ||
28 | #define __NR_getpid 20 | ||
29 | #define __NR_mount 21 | ||
30 | #define __NR_umount 22 | ||
31 | #define __NR_setuid 23 | ||
32 | #define __NR_getuid 24 | ||
33 | #define __NR_stime 25 | ||
34 | #define __NR_ptrace 26 | ||
35 | #define __NR_alarm 27 | ||
36 | #define __NR_oldfstat 28 | ||
37 | #define __NR_pause 29 | ||
38 | #define __NR_utime 30 | ||
39 | #define __NR_stty 31 | ||
40 | #define __NR_gtty 32 | ||
41 | #define __NR_access 33 | ||
42 | #define __NR_nice 34 | ||
43 | #define __NR_ftime 35 | ||
44 | #define __NR_sync 36 | ||
45 | #define __NR_kill 37 | ||
46 | #define __NR_rename 38 | ||
47 | #define __NR_mkdir 39 | ||
48 | #define __NR_rmdir 40 | ||
49 | #define __NR_dup 41 | ||
50 | #define __NR_pipe 42 | ||
51 | #define __NR_times 43 | ||
52 | #define __NR_prof 44 | ||
53 | #define __NR_brk 45 | ||
54 | #define __NR_setgid 46 | ||
55 | #define __NR_getgid 47 | ||
56 | #define __NR_signal 48 | ||
57 | #define __NR_geteuid 49 | ||
58 | #define __NR_getegid 50 | ||
59 | #define __NR_acct 51 | ||
60 | #define __NR_umount2 52 | ||
61 | #define __NR_lock 53 | ||
62 | #define __NR_ioctl 54 | ||
63 | #define __NR_fcntl 55 | ||
64 | #define __NR_mpx 56 | ||
65 | #define __NR_setpgid 57 | ||
66 | #define __NR_ulimit 58 | ||
67 | #define __NR_oldolduname 59 | ||
68 | #define __NR_umask 60 | ||
69 | #define __NR_chroot 61 | ||
70 | #define __NR_ustat 62 | ||
71 | #define __NR_dup2 63 | ||
72 | #define __NR_getppid 64 | ||
73 | #define __NR_getpgrp 65 | ||
74 | #define __NR_setsid 66 | ||
75 | #define __NR_sigaction 67 | ||
76 | #define __NR_sgetmask 68 | ||
77 | #define __NR_ssetmask 69 | ||
78 | #define __NR_setreuid 70 | ||
79 | #define __NR_setregid 71 | ||
80 | #define __NR_sigsuspend 72 | ||
81 | #define __NR_sigpending 73 | ||
82 | #define __NR_sethostname 74 | ||
83 | #define __NR_setrlimit 75 | ||
84 | #define __NR_getrlimit 76 | ||
85 | #define __NR_getrusage 77 | ||
86 | #define __NR_gettimeofday 78 | ||
87 | #define __NR_settimeofday 79 | ||
88 | #define __NR_getgroups 80 | ||
89 | #define __NR_setgroups 81 | ||
90 | #define __NR_select 82 | ||
91 | #define __NR_symlink 83 | ||
92 | #define __NR_oldlstat 84 | ||
93 | #define __NR_readlink 85 | ||
94 | #define __NR_uselib 86 | ||
95 | #define __NR_swapon 87 | ||
96 | #define __NR_reboot 88 | ||
97 | #define __NR_readdir 89 | ||
98 | #define __NR_mmap 90 | ||
99 | #define __NR_munmap 91 | ||
100 | #define __NR_truncate 92 | ||
101 | #define __NR_ftruncate 93 | ||
102 | #define __NR_fchmod 94 | ||
103 | #define __NR_fchown 95 | ||
104 | #define __NR_getpriority 96 | ||
105 | #define __NR_setpriority 97 | ||
106 | #define __NR_profil 98 | ||
107 | #define __NR_statfs 99 | ||
108 | #define __NR_fstatfs 100 | ||
109 | #define __NR_ioperm 101 | ||
110 | #define __NR_socketcall 102 | ||
111 | #define __NR_syslog 103 | ||
112 | #define __NR_setitimer 104 | ||
113 | #define __NR_getitimer 105 | ||
114 | #define __NR_stat 106 | ||
115 | #define __NR_lstat 107 | ||
116 | #define __NR_fstat 108 | ||
117 | #define __NR_olduname 109 | ||
118 | #define __NR_iopl /* 110 */ not supported | ||
119 | #define __NR_vhangup 111 | ||
120 | #define __NR_idle /* 112 */ Obsolete | ||
121 | #define __NR_vm86 /* 113 */ not supported | ||
122 | #define __NR_wait4 114 | ||
123 | #define __NR_swapoff 115 | ||
124 | #define __NR_sysinfo 116 | ||
125 | #define __NR_ipc 117 | ||
126 | #define __NR_fsync 118 | ||
127 | #define __NR_sigreturn 119 | ||
128 | #define __NR_clone 120 | ||
129 | #define __NR_setdomainname 121 | ||
130 | #define __NR_uname 122 | ||
131 | #define __NR_cacheflush 123 | ||
132 | #define __NR_adjtimex 124 | ||
133 | #define __NR_mprotect 125 | ||
134 | #define __NR_sigprocmask 126 | ||
135 | #define __NR_create_module 127 | ||
136 | #define __NR_init_module 128 | ||
137 | #define __NR_delete_module 129 | ||
138 | #define __NR_get_kernel_syms 130 | ||
139 | #define __NR_quotactl 131 | ||
140 | #define __NR_getpgid 132 | ||
141 | #define __NR_fchdir 133 | ||
142 | #define __NR_bdflush 134 | ||
143 | #define __NR_sysfs 135 | ||
144 | #define __NR_personality 136 | ||
145 | #define __NR_afs_syscall 137 /* Syscall for Andrew File System */ | ||
146 | #define __NR_setfsuid 138 | ||
147 | #define __NR_setfsgid 139 | ||
148 | #define __NR__llseek 140 | ||
149 | #define __NR_getdents 141 | ||
150 | #define __NR__newselect 142 | ||
151 | #define __NR_flock 143 | ||
152 | #define __NR_msync 144 | ||
153 | #define __NR_readv 145 | ||
154 | #define __NR_writev 146 | ||
155 | #define __NR_getsid 147 | ||
156 | #define __NR_fdatasync 148 | ||
157 | #define __NR__sysctl 149 | ||
158 | #define __NR_mlock 150 | ||
159 | #define __NR_munlock 151 | ||
160 | #define __NR_mlockall 152 | ||
161 | #define __NR_munlockall 153 | ||
162 | #define __NR_sched_setparam 154 | ||
163 | #define __NR_sched_getparam 155 | ||
164 | #define __NR_sched_setscheduler 156 | ||
165 | #define __NR_sched_getscheduler 157 | ||
166 | #define __NR_sched_yield 158 | ||
167 | #define __NR_sched_get_priority_max 159 | ||
168 | #define __NR_sched_get_priority_min 160 | ||
169 | #define __NR_sched_rr_get_interval 161 | ||
170 | #define __NR_nanosleep 162 | ||
171 | #define __NR_mremap 163 | ||
172 | #define __NR_setresuid 164 | ||
173 | #define __NR_getresuid 165 | ||
174 | #define __NR_getpagesize 166 | ||
175 | #define __NR_query_module 167 | ||
176 | #define __NR_poll 168 | ||
177 | #define __NR_nfsservctl 169 | ||
178 | #define __NR_setresgid 170 | ||
179 | #define __NR_getresgid 171 | ||
180 | #define __NR_prctl 172 | ||
181 | #define __NR_rt_sigreturn 173 | ||
182 | #define __NR_rt_sigaction 174 | ||
183 | #define __NR_rt_sigprocmask 175 | ||
184 | #define __NR_rt_sigpending 176 | ||
185 | #define __NR_rt_sigtimedwait 177 | ||
186 | #define __NR_rt_sigqueueinfo 178 | ||
187 | #define __NR_rt_sigsuspend 179 | ||
188 | #define __NR_pread64 180 | ||
189 | #define __NR_pwrite64 181 | ||
190 | #define __NR_lchown 182 | ||
191 | #define __NR_getcwd 183 | ||
192 | #define __NR_capget 184 | ||
193 | #define __NR_capset 185 | ||
194 | #define __NR_sigaltstack 186 | ||
195 | #define __NR_sendfile 187 | ||
196 | #define __NR_getpmsg 188 /* some people actually want streams */ | ||
197 | #define __NR_putpmsg 189 /* some people actually want streams */ | ||
198 | #define __NR_vfork 190 | ||
199 | #define __NR_ugetrlimit 191 | ||
200 | #define __NR_mmap2 192 | ||
201 | #define __NR_truncate64 193 | ||
202 | #define __NR_ftruncate64 194 | ||
203 | #define __NR_stat64 195 | ||
204 | #define __NR_lstat64 196 | ||
205 | #define __NR_fstat64 197 | ||
206 | #define __NR_chown32 198 | ||
207 | #define __NR_getuid32 199 | ||
208 | #define __NR_getgid32 200 | ||
209 | #define __NR_geteuid32 201 | ||
210 | #define __NR_getegid32 202 | ||
211 | #define __NR_setreuid32 203 | ||
212 | #define __NR_setregid32 204 | ||
213 | #define __NR_getgroups32 205 | ||
214 | #define __NR_setgroups32 206 | ||
215 | #define __NR_fchown32 207 | ||
216 | #define __NR_setresuid32 208 | ||
217 | #define __NR_getresuid32 209 | ||
218 | #define __NR_setresgid32 210 | ||
219 | #define __NR_getresgid32 211 | ||
220 | #define __NR_lchown32 212 | ||
221 | #define __NR_setuid32 213 | ||
222 | #define __NR_setgid32 214 | ||
223 | #define __NR_setfsuid32 215 | ||
224 | #define __NR_setfsgid32 216 | ||
225 | #define __NR_pivot_root 217 | ||
226 | #define __NR_getdents64 220 | ||
227 | #define __NR_gettid 221 | ||
228 | #define __NR_tkill 222 | ||
229 | #define __NR_setxattr 223 | ||
230 | #define __NR_lsetxattr 224 | ||
231 | #define __NR_fsetxattr 225 | ||
232 | #define __NR_getxattr 226 | ||
233 | #define __NR_lgetxattr 227 | ||
234 | #define __NR_fgetxattr 228 | ||
235 | #define __NR_listxattr 229 | ||
236 | #define __NR_llistxattr 230 | ||
237 | #define __NR_flistxattr 231 | ||
238 | #define __NR_removexattr 232 | ||
239 | #define __NR_lremovexattr 233 | ||
240 | #define __NR_fremovexattr 234 | ||
241 | #define __NR_futex 235 | ||
242 | #define __NR_sendfile64 236 | ||
243 | #define __NR_mincore 237 | ||
244 | #define __NR_madvise 238 | ||
245 | #define __NR_fcntl64 239 | ||
246 | #define __NR_readahead 240 | ||
247 | #define __NR_io_setup 241 | ||
248 | #define __NR_io_destroy 242 | ||
249 | #define __NR_io_getevents 243 | ||
250 | #define __NR_io_submit 244 | ||
251 | #define __NR_io_cancel 245 | ||
252 | #define __NR_fadvise64 246 | ||
253 | #define __NR_exit_group 247 | ||
254 | #define __NR_lookup_dcookie 248 | ||
255 | #define __NR_epoll_create 249 | ||
256 | #define __NR_epoll_ctl 250 | ||
257 | #define __NR_epoll_wait 251 | ||
258 | #define __NR_remap_file_pages 252 | ||
259 | #define __NR_set_tid_address 253 | ||
260 | #define __NR_timer_create 254 | ||
261 | #define __NR_timer_settime 255 | ||
262 | #define __NR_timer_gettime 256 | ||
263 | #define __NR_timer_getoverrun 257 | ||
264 | #define __NR_timer_delete 258 | ||
265 | #define __NR_clock_settime 259 | ||
266 | #define __NR_clock_gettime 260 | ||
267 | #define __NR_clock_getres 261 | ||
268 | #define __NR_clock_nanosleep 262 | ||
269 | #define __NR_statfs64 263 | ||
270 | #define __NR_fstatfs64 264 | ||
271 | #define __NR_tgkill 265 | ||
272 | #define __NR_utimes 266 | ||
273 | #define __NR_fadvise64_64 267 | ||
274 | #define __NR_mbind 268 | ||
275 | #define __NR_get_mempolicy 269 | ||
276 | #define __NR_set_mempolicy 270 | ||
277 | #define __NR_mq_open 271 | ||
278 | #define __NR_mq_unlink 272 | ||
279 | #define __NR_mq_timedsend 273 | ||
280 | #define __NR_mq_timedreceive 274 | ||
281 | #define __NR_mq_notify 275 | ||
282 | #define __NR_mq_getsetattr 276 | ||
283 | #define __NR_waitid 277 | ||
284 | #define __NR_vserver 278 | ||
285 | #define __NR_add_key 279 | ||
286 | #define __NR_request_key 280 | ||
287 | #define __NR_keyctl 281 | ||
288 | #define __NR_ioprio_set 282 | ||
289 | #define __NR_ioprio_get 283 | ||
290 | #define __NR_inotify_init 284 | ||
291 | #define __NR_inotify_add_watch 285 | ||
292 | #define __NR_inotify_rm_watch 286 | ||
293 | #define __NR_migrate_pages 287 | ||
294 | #define __NR_openat 288 | ||
295 | #define __NR_mkdirat 289 | ||
296 | #define __NR_mknodat 290 | ||
297 | #define __NR_fchownat 291 | ||
298 | #define __NR_futimesat 292 | ||
299 | #define __NR_fstatat64 293 | ||
300 | #define __NR_unlinkat 294 | ||
301 | #define __NR_renameat 295 | ||
302 | #define __NR_linkat 296 | ||
303 | #define __NR_symlinkat 297 | ||
304 | #define __NR_readlinkat 298 | ||
305 | #define __NR_fchmodat 299 | ||
306 | #define __NR_faccessat 300 | ||
307 | #define __NR_pselect6 301 | ||
308 | #define __NR_ppoll 302 | ||
309 | #define __NR_unshare 303 | ||
310 | #define __NR_set_robust_list 304 | ||
311 | #define __NR_get_robust_list 305 | ||
312 | #define __NR_splice 306 | ||
313 | #define __NR_sync_file_range 307 | ||
314 | #define __NR_tee 308 | ||
315 | #define __NR_vmsplice 309 | ||
316 | #define __NR_move_pages 310 | ||
317 | #define __NR_sched_setaffinity 311 | ||
318 | #define __NR_sched_getaffinity 312 | ||
319 | #define __NR_kexec_load 313 | ||
320 | #define __NR_getcpu 314 | ||
321 | #define __NR_epoll_pwait 315 | ||
322 | #define __NR_utimensat 316 | ||
323 | #define __NR_signalfd 317 | ||
324 | #define __NR_timerfd_create 318 | ||
325 | #define __NR_eventfd 319 | ||
326 | #define __NR_fallocate 320 | ||
327 | #define __NR_timerfd_settime 321 | ||
328 | #define __NR_timerfd_gettime 322 | ||
329 | #define __NR_signalfd4 323 | ||
330 | #define __NR_eventfd2 324 | ||
331 | #define __NR_epoll_create1 325 | ||
332 | #define __NR_dup3 326 | ||
333 | #define __NR_pipe2 327 | ||
334 | #define __NR_inotify_init1 328 | ||
335 | |||
336 | #ifdef __KERNEL__ | ||
337 | |||
338 | #define NR_syscalls 329 | ||
339 | |||
340 | #define __ARCH_WANT_IPC_PARSE_VERSION | ||
341 | #define __ARCH_WANT_OLD_READDIR | ||
342 | #define __ARCH_WANT_OLD_STAT | ||
343 | #define __ARCH_WANT_STAT64 | ||
344 | #define __ARCH_WANT_SYS_ALARM | ||
345 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
346 | #define __ARCH_WANT_SYS_PAUSE | ||
347 | #define __ARCH_WANT_SYS_SGETMASK | ||
348 | #define __ARCH_WANT_SYS_SIGNAL | ||
349 | #define __ARCH_WANT_SYS_TIME | ||
350 | #define __ARCH_WANT_SYS_UTIME | ||
351 | #define __ARCH_WANT_SYS_WAITPID | ||
352 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
353 | #define __ARCH_WANT_SYS_FADVISE64 | ||
354 | #define __ARCH_WANT_SYS_GETPGRP | ||
355 | #define __ARCH_WANT_SYS_LLSEEK | ||
356 | #define __ARCH_WANT_SYS_NICE | ||
357 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT | ||
358 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
359 | #define __ARCH_WANT_SYS_SIGPENDING | ||
360 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
361 | #define __ARCH_WANT_SYS_RT_SIGACTION | ||
362 | |||
363 | /* | ||
364 | * "Conditional" syscalls | ||
365 | * | ||
366 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
367 | * but it doesn't work on all toolchains, so we just do it by hand | ||
368 | */ | ||
369 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
370 | |||
371 | #endif /* __KERNEL__ */ | ||
372 | #endif /* _ASM_M68K_UNISTD_H_ */ | ||
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S index 7db2e42d97a2..d794a637e421 100644 --- a/arch/powerpc/kernel/head_32.S +++ b/arch/powerpc/kernel/head_32.S | |||
@@ -513,6 +513,9 @@ InstructionTLBMiss: | |||
513 | rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */ | 513 | rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */ |
514 | ori r1,r1,0xe04 /* clear out reserved bits */ | 514 | ori r1,r1,0xe04 /* clear out reserved bits */ |
515 | andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */ | 515 | andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */ |
516 | BEGIN_FTR_SECTION | ||
517 | rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */ | ||
518 | END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT) | ||
516 | mtspr SPRN_RPA,r1 | 519 | mtspr SPRN_RPA,r1 |
517 | mfspr r3,SPRN_IMISS | 520 | mfspr r3,SPRN_IMISS |
518 | tlbli r3 | 521 | tlbli r3 |
@@ -587,6 +590,9 @@ DataLoadTLBMiss: | |||
587 | rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */ | 590 | rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */ |
588 | ori r1,r1,0xe04 /* clear out reserved bits */ | 591 | ori r1,r1,0xe04 /* clear out reserved bits */ |
589 | andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */ | 592 | andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */ |
593 | BEGIN_FTR_SECTION | ||
594 | rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */ | ||
595 | END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT) | ||
590 | mtspr SPRN_RPA,r1 | 596 | mtspr SPRN_RPA,r1 |
591 | mfspr r3,SPRN_DMISS | 597 | mfspr r3,SPRN_DMISS |
592 | tlbld r3 | 598 | tlbld r3 |
@@ -655,6 +661,9 @@ DataStoreTLBMiss: | |||
655 | rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */ | 661 | rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */ |
656 | li r1,0xe05 /* clear out reserved bits & PP lsb */ | 662 | li r1,0xe05 /* clear out reserved bits & PP lsb */ |
657 | andc r1,r3,r1 /* PP = user? 2: 0 */ | 663 | andc r1,r3,r1 /* PP = user? 2: 0 */ |
664 | BEGIN_FTR_SECTION | ||
665 | rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */ | ||
666 | END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT) | ||
658 | mtspr SPRN_RPA,r1 | 667 | mtspr SPRN_RPA,r1 |
659 | mfspr r3,SPRN_DMISS | 668 | mfspr r3,SPRN_DMISS |
660 | tlbld r3 | 669 | tlbld r3 |
diff --git a/arch/sparc/include/asm/pil.h b/arch/sparc/include/asm/pil.h index 32a7efe76d00..266937030546 100644 --- a/arch/sparc/include/asm/pil.h +++ b/arch/sparc/include/asm/pil.h | |||
@@ -24,6 +24,7 @@ | |||
24 | #define PIL_DEVICE_IRQ 5 | 24 | #define PIL_DEVICE_IRQ 5 |
25 | #define PIL_SMP_CALL_FUNC_SNGL 6 | 25 | #define PIL_SMP_CALL_FUNC_SNGL 6 |
26 | #define PIL_DEFERRED_PCR_WORK 7 | 26 | #define PIL_DEFERRED_PCR_WORK 7 |
27 | #define PIL_KGDB_CAPTURE 8 | ||
27 | #define PIL_NORMAL_MAX 14 | 28 | #define PIL_NORMAL_MAX 14 |
28 | #define PIL_NMI 15 | 29 | #define PIL_NMI 15 |
29 | 30 | ||
diff --git a/arch/sparc/kernel/kgdb_64.c b/arch/sparc/kernel/kgdb_64.c index fefbe6dc51be..f5a0fd490b59 100644 --- a/arch/sparc/kernel/kgdb_64.c +++ b/arch/sparc/kernel/kgdb_64.c | |||
@@ -108,7 +108,7 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs) | |||
108 | } | 108 | } |
109 | 109 | ||
110 | #ifdef CONFIG_SMP | 110 | #ifdef CONFIG_SMP |
111 | void smp_kgdb_capture_client(struct pt_regs *regs) | 111 | void smp_kgdb_capture_client(int irq, struct pt_regs *regs) |
112 | { | 112 | { |
113 | unsigned long flags; | 113 | unsigned long flags; |
114 | 114 | ||
diff --git a/arch/sparc/kernel/pci_common.c b/arch/sparc/kernel/pci_common.c index 64e6edf17b9d..b775658a927d 100644 --- a/arch/sparc/kernel/pci_common.c +++ b/arch/sparc/kernel/pci_common.c | |||
@@ -368,7 +368,7 @@ static void pci_register_iommu_region(struct pci_pbm_info *pbm) | |||
368 | const u32 *vdma = of_get_property(pbm->op->node, "virtual-dma", NULL); | 368 | const u32 *vdma = of_get_property(pbm->op->node, "virtual-dma", NULL); |
369 | 369 | ||
370 | if (vdma) { | 370 | if (vdma) { |
371 | struct resource *rp = kmalloc(sizeof(*rp), GFP_KERNEL); | 371 | struct resource *rp = kzalloc(sizeof(*rp), GFP_KERNEL); |
372 | 372 | ||
373 | if (!rp) { | 373 | if (!rp) { |
374 | prom_printf("Cannot allocate IOMMU resource.\n"); | 374 | prom_printf("Cannot allocate IOMMU resource.\n"); |
diff --git a/arch/sparc/kernel/ttable.S b/arch/sparc/kernel/ttable.S index d9bdfb9d5c18..76d837fc47d3 100644 --- a/arch/sparc/kernel/ttable.S +++ b/arch/sparc/kernel/ttable.S | |||
@@ -64,7 +64,12 @@ tl0_irq6: TRAP_IRQ(smp_call_function_single_client, 6) | |||
64 | tl0_irq6: BTRAP(0x46) | 64 | tl0_irq6: BTRAP(0x46) |
65 | #endif | 65 | #endif |
66 | tl0_irq7: TRAP_IRQ(deferred_pcr_work_irq, 7) | 66 | tl0_irq7: TRAP_IRQ(deferred_pcr_work_irq, 7) |
67 | tl0_irq8: BTRAP(0x48) BTRAP(0x49) | 67 | #ifdef CONFIG_KGDB |
68 | tl0_irq8: TRAP_IRQ(smp_kgdb_capture_client, 8) | ||
69 | #else | ||
70 | tl0_irq8: BTRAP(0x48) | ||
71 | #endif | ||
72 | tl0_irq9: BTRAP(0x49) | ||
68 | tl0_irq10: BTRAP(0x4a) BTRAP(0x4b) BTRAP(0x4c) BTRAP(0x4d) | 73 | tl0_irq10: BTRAP(0x4a) BTRAP(0x4b) BTRAP(0x4c) BTRAP(0x4d) |
69 | tl0_irq14: TRAP_IRQ(timer_interrupt, 14) | 74 | tl0_irq14: TRAP_IRQ(timer_interrupt, 14) |
70 | tl0_irq15: TRAP_NMI_IRQ(perfctr_irq, 15) | 75 | tl0_irq15: TRAP_NMI_IRQ(perfctr_irq, 15) |
diff --git a/arch/sparc/mm/ultra.S b/arch/sparc/mm/ultra.S index 80c788ec7c32..b57a5942ba64 100644 --- a/arch/sparc/mm/ultra.S +++ b/arch/sparc/mm/ultra.S | |||
@@ -679,28 +679,8 @@ xcall_new_mmu_context_version: | |||
679 | #ifdef CONFIG_KGDB | 679 | #ifdef CONFIG_KGDB |
680 | .globl xcall_kgdb_capture | 680 | .globl xcall_kgdb_capture |
681 | xcall_kgdb_capture: | 681 | xcall_kgdb_capture: |
682 | 661: rdpr %pstate, %g2 | 682 | wr %g0, (1 << PIL_KGDB_CAPTURE), %set_softint |
683 | wrpr %g2, PSTATE_IG | PSTATE_AG, %pstate | 683 | retry |
684 | .section .sun4v_2insn_patch, "ax" | ||
685 | .word 661b | ||
686 | nop | ||
687 | nop | ||
688 | .previous | ||
689 | |||
690 | rdpr %pil, %g2 | ||
691 | wrpr %g0, PIL_NORMAL_MAX, %pil | ||
692 | sethi %hi(109f), %g7 | ||
693 | ba,pt %xcc, etrap_irq | ||
694 | 109: or %g7, %lo(109b), %g7 | ||
695 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
696 | call trace_hardirqs_off | ||
697 | nop | ||
698 | #endif | ||
699 | call smp_kgdb_capture_client | ||
700 | add %sp, PTREGS_OFF, %o0 | ||
701 | /* Has to be a non-v9 branch due to the large distance. */ | ||
702 | ba rtrap_xcall | ||
703 | ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1 | ||
704 | #endif | 684 | #endif |
705 | 685 | ||
706 | #endif /* CONFIG_SMP */ | 686 | #endif /* CONFIG_SMP */ |
diff --git a/arch/x86/include/asm/cacheflush.h b/arch/x86/include/asm/cacheflush.h index 5b301b7ff5f4..b3894bf52fcd 100644 --- a/arch/x86/include/asm/cacheflush.h +++ b/arch/x86/include/asm/cacheflush.h | |||
@@ -90,6 +90,9 @@ int set_memory_4k(unsigned long addr, int numpages); | |||
90 | int set_memory_array_uc(unsigned long *addr, int addrinarray); | 90 | int set_memory_array_uc(unsigned long *addr, int addrinarray); |
91 | int set_memory_array_wb(unsigned long *addr, int addrinarray); | 91 | int set_memory_array_wb(unsigned long *addr, int addrinarray); |
92 | 92 | ||
93 | int set_pages_array_uc(struct page **pages, int addrinarray); | ||
94 | int set_pages_array_wb(struct page **pages, int addrinarray); | ||
95 | |||
93 | /* | 96 | /* |
94 | * For legacy compatibility with the old APIs, a few functions | 97 | * For legacy compatibility with the old APIs, a few functions |
95 | * are provided that work on a "struct page". | 98 | * are provided that work on a "struct page". |
diff --git a/arch/x86/include/asm/dmi.h b/arch/x86/include/asm/dmi.h index aa32f7e6c197..fd8f9e2ca35f 100644 --- a/arch/x86/include/asm/dmi.h +++ b/arch/x86/include/asm/dmi.h | |||
@@ -1,10 +1,13 @@ | |||
1 | #ifndef _ASM_X86_DMI_H | 1 | #ifndef _ASM_X86_DMI_H |
2 | #define _ASM_X86_DMI_H | 2 | #define _ASM_X86_DMI_H |
3 | 3 | ||
4 | #include <linux/compiler.h> | ||
5 | #include <linux/init.h> | ||
6 | |||
4 | #include <asm/io.h> | 7 | #include <asm/io.h> |
5 | #include <asm/setup.h> | 8 | #include <asm/setup.h> |
6 | 9 | ||
7 | static inline void *dmi_alloc(unsigned len) | 10 | static __always_inline __init void *dmi_alloc(unsigned len) |
8 | { | 11 | { |
9 | return extend_brk(len, sizeof(int)); | 12 | return extend_brk(len, sizeof(int)); |
10 | } | 13 | } |
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 42cdc78427a2..86827d85488a 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c | |||
@@ -3464,7 +3464,7 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) | |||
3464 | int ret, sub_handle; | 3464 | int ret, sub_handle; |
3465 | struct msi_desc *msidesc; | 3465 | struct msi_desc *msidesc; |
3466 | unsigned int irq_want; | 3466 | unsigned int irq_want; |
3467 | struct intel_iommu *iommu = 0; | 3467 | struct intel_iommu *iommu = NULL; |
3468 | int index = 0; | 3468 | int index = 0; |
3469 | 3469 | ||
3470 | irq_want = nr_irqs_gsi; | 3470 | irq_want = nr_irqs_gsi; |
@@ -3599,7 +3599,7 @@ static void hpet_msi_set_affinity(unsigned int irq, const struct cpumask *mask) | |||
3599 | 3599 | ||
3600 | #endif /* CONFIG_SMP */ | 3600 | #endif /* CONFIG_SMP */ |
3601 | 3601 | ||
3602 | struct irq_chip hpet_msi_type = { | 3602 | static struct irq_chip hpet_msi_type = { |
3603 | .name = "HPET_MSI", | 3603 | .name = "HPET_MSI", |
3604 | .unmask = hpet_msi_unmask, | 3604 | .unmask = hpet_msi_unmask, |
3605 | .mask = hpet_msi_mask, | 3605 | .mask = hpet_msi_mask, |
@@ -4130,9 +4130,12 @@ static int __init ioapic_insert_resources(void) | |||
4130 | struct resource *r = ioapic_resources; | 4130 | struct resource *r = ioapic_resources; |
4131 | 4131 | ||
4132 | if (!r) { | 4132 | if (!r) { |
4133 | printk(KERN_ERR | 4133 | if (nr_ioapics > 0) { |
4134 | "IO APIC resources could be not be allocated.\n"); | 4134 | printk(KERN_ERR |
4135 | return -1; | 4135 | "IO APIC resources couldn't be allocated.\n"); |
4136 | return -1; | ||
4137 | } | ||
4138 | return 0; | ||
4136 | } | 4139 | } |
4137 | 4140 | ||
4138 | for (i = 0; i < nr_ioapics; i++) { | 4141 | for (i = 0; i < nr_ioapics; i++) { |
diff --git a/arch/x86/kernel/i8253.c b/arch/x86/kernel/i8253.c index 10f92fb532f3..3475440baa54 100644 --- a/arch/x86/kernel/i8253.c +++ b/arch/x86/kernel/i8253.c | |||
@@ -3,17 +3,17 @@ | |||
3 | * | 3 | * |
4 | */ | 4 | */ |
5 | #include <linux/clockchips.h> | 5 | #include <linux/clockchips.h> |
6 | #include <linux/init.h> | ||
7 | #include <linux/interrupt.h> | 6 | #include <linux/interrupt.h> |
7 | #include <linux/spinlock.h> | ||
8 | #include <linux/jiffies.h> | 8 | #include <linux/jiffies.h> |
9 | #include <linux/module.h> | 9 | #include <linux/module.h> |
10 | #include <linux/spinlock.h> | 10 | #include <linux/delay.h> |
11 | #include <linux/init.h> | ||
12 | #include <linux/io.h> | ||
11 | 13 | ||
12 | #include <asm/smp.h> | ||
13 | #include <asm/delay.h> | ||
14 | #include <asm/i8253.h> | 14 | #include <asm/i8253.h> |
15 | #include <asm/io.h> | ||
16 | #include <asm/hpet.h> | 15 | #include <asm/hpet.h> |
16 | #include <asm/smp.h> | ||
17 | 17 | ||
18 | DEFINE_SPINLOCK(i8253_lock); | 18 | DEFINE_SPINLOCK(i8253_lock); |
19 | EXPORT_SYMBOL(i8253_lock); | 19 | EXPORT_SYMBOL(i8253_lock); |
@@ -40,7 +40,7 @@ static void init_pit_timer(enum clock_event_mode mode, | |||
40 | { | 40 | { |
41 | spin_lock(&i8253_lock); | 41 | spin_lock(&i8253_lock); |
42 | 42 | ||
43 | switch(mode) { | 43 | switch (mode) { |
44 | case CLOCK_EVT_MODE_PERIODIC: | 44 | case CLOCK_EVT_MODE_PERIODIC: |
45 | /* binary, mode 2, LSB/MSB, ch 0 */ | 45 | /* binary, mode 2, LSB/MSB, ch 0 */ |
46 | outb_pit(0x34, PIT_MODE); | 46 | outb_pit(0x34, PIT_MODE); |
@@ -95,7 +95,7 @@ static int pit_next_event(unsigned long delta, struct clock_event_device *evt) | |||
95 | * registered. This mechanism replaces the previous #ifdef LOCAL_APIC - | 95 | * registered. This mechanism replaces the previous #ifdef LOCAL_APIC - |
96 | * !using_apic_timer decisions in do_timer_interrupt_hook() | 96 | * !using_apic_timer decisions in do_timer_interrupt_hook() |
97 | */ | 97 | */ |
98 | static struct clock_event_device pit_clockevent = { | 98 | static struct clock_event_device pit_ce = { |
99 | .name = "pit", | 99 | .name = "pit", |
100 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, | 100 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, |
101 | .set_mode = init_pit_timer, | 101 | .set_mode = init_pit_timer, |
@@ -114,15 +114,13 @@ void __init setup_pit_timer(void) | |||
114 | * Start pit with the boot cpu mask and make it global after the | 114 | * Start pit with the boot cpu mask and make it global after the |
115 | * IO_APIC has been initialized. | 115 | * IO_APIC has been initialized. |
116 | */ | 116 | */ |
117 | pit_clockevent.cpumask = cpumask_of(smp_processor_id()); | 117 | pit_ce.cpumask = cpumask_of(smp_processor_id()); |
118 | pit_clockevent.mult = div_sc(CLOCK_TICK_RATE, NSEC_PER_SEC, | 118 | pit_ce.mult = div_sc(CLOCK_TICK_RATE, NSEC_PER_SEC, pit_ce.shift); |
119 | pit_clockevent.shift); | 119 | pit_ce.max_delta_ns = clockevent_delta2ns(0x7FFF, &pit_ce); |
120 | pit_clockevent.max_delta_ns = | 120 | pit_ce.min_delta_ns = clockevent_delta2ns(0xF, &pit_ce); |
121 | clockevent_delta2ns(0x7FFF, &pit_clockevent); | 121 | |
122 | pit_clockevent.min_delta_ns = | 122 | clockevents_register_device(&pit_ce); |
123 | clockevent_delta2ns(0xF, &pit_clockevent); | 123 | global_clock_event = &pit_ce; |
124 | clockevents_register_device(&pit_clockevent); | ||
125 | global_clock_event = &pit_clockevent; | ||
126 | } | 124 | } |
127 | 125 | ||
128 | #ifndef CONFIG_X86_64 | 126 | #ifndef CONFIG_X86_64 |
@@ -133,11 +131,11 @@ void __init setup_pit_timer(void) | |||
133 | */ | 131 | */ |
134 | static cycle_t pit_read(void) | 132 | static cycle_t pit_read(void) |
135 | { | 133 | { |
134 | static int old_count; | ||
135 | static u32 old_jifs; | ||
136 | unsigned long flags; | 136 | unsigned long flags; |
137 | int count; | 137 | int count; |
138 | u32 jifs; | 138 | u32 jifs; |
139 | static int old_count; | ||
140 | static u32 old_jifs; | ||
141 | 139 | ||
142 | spin_lock_irqsave(&i8253_lock, flags); | 140 | spin_lock_irqsave(&i8253_lock, flags); |
143 | /* | 141 | /* |
@@ -179,9 +177,9 @@ static cycle_t pit_read(void) | |||
179 | * Previous attempts to handle these cases intelligently were | 177 | * Previous attempts to handle these cases intelligently were |
180 | * buggy, so we just do the simple thing now. | 178 | * buggy, so we just do the simple thing now. |
181 | */ | 179 | */ |
182 | if (count > old_count && jifs == old_jifs) { | 180 | if (count > old_count && jifs == old_jifs) |
183 | count = old_count; | 181 | count = old_count; |
184 | } | 182 | |
185 | old_count = count; | 183 | old_count = count; |
186 | old_jifs = jifs; | 184 | old_jifs = jifs; |
187 | 185 | ||
@@ -192,13 +190,13 @@ static cycle_t pit_read(void) | |||
192 | return (cycle_t)(jifs * LATCH) + count; | 190 | return (cycle_t)(jifs * LATCH) + count; |
193 | } | 191 | } |
194 | 192 | ||
195 | static struct clocksource clocksource_pit = { | 193 | static struct clocksource pit_cs = { |
196 | .name = "pit", | 194 | .name = "pit", |
197 | .rating = 110, | 195 | .rating = 110, |
198 | .read = pit_read, | 196 | .read = pit_read, |
199 | .mask = CLOCKSOURCE_MASK(32), | 197 | .mask = CLOCKSOURCE_MASK(32), |
200 | .mult = 0, | 198 | .mult = 0, |
201 | .shift = 20, | 199 | .shift = 20, |
202 | }; | 200 | }; |
203 | 201 | ||
204 | static void pit_disable_clocksource(void) | 202 | static void pit_disable_clocksource(void) |
@@ -206,9 +204,9 @@ static void pit_disable_clocksource(void) | |||
206 | /* | 204 | /* |
207 | * Use mult to check whether it is registered or not | 205 | * Use mult to check whether it is registered or not |
208 | */ | 206 | */ |
209 | if (clocksource_pit.mult) { | 207 | if (pit_cs.mult) { |
210 | clocksource_unregister(&clocksource_pit); | 208 | clocksource_unregister(&pit_cs); |
211 | clocksource_pit.mult = 0; | 209 | pit_cs.mult = 0; |
212 | } | 210 | } |
213 | } | 211 | } |
214 | 212 | ||
@@ -222,13 +220,13 @@ static int __init init_pit_clocksource(void) | |||
222 | * - when local APIC timer is active (PIT is switched off) | 220 | * - when local APIC timer is active (PIT is switched off) |
223 | */ | 221 | */ |
224 | if (num_possible_cpus() > 1 || is_hpet_enabled() || | 222 | if (num_possible_cpus() > 1 || is_hpet_enabled() || |
225 | pit_clockevent.mode != CLOCK_EVT_MODE_PERIODIC) | 223 | pit_ce.mode != CLOCK_EVT_MODE_PERIODIC) |
226 | return 0; | 224 | return 0; |
227 | 225 | ||
228 | clocksource_pit.mult = clocksource_hz2mult(CLOCK_TICK_RATE, | 226 | pit_cs.mult = clocksource_hz2mult(CLOCK_TICK_RATE, pit_cs.shift); |
229 | clocksource_pit.shift); | 227 | |
230 | return clocksource_register(&clocksource_pit); | 228 | return clocksource_register(&pit_cs); |
231 | } | 229 | } |
232 | arch_initcall(init_pit_clocksource); | 230 | arch_initcall(init_pit_clocksource); |
233 | 231 | ||
234 | #endif | 232 | #endif /* !CONFIG_X86_64 */ |
diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c index 720d2607aacb..a979b5bd2fc0 100644 --- a/arch/x86/kernel/io_delay.c +++ b/arch/x86/kernel/io_delay.c | |||
@@ -7,10 +7,10 @@ | |||
7 | */ | 7 | */ |
8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
9 | #include <linux/module.h> | 9 | #include <linux/module.h> |
10 | #include <linux/init.h> | ||
11 | #include <linux/delay.h> | 10 | #include <linux/delay.h> |
11 | #include <linux/init.h> | ||
12 | #include <linux/dmi.h> | 12 | #include <linux/dmi.h> |
13 | #include <asm/io.h> | 13 | #include <linux/io.h> |
14 | 14 | ||
15 | int io_delay_type __read_mostly = CONFIG_DEFAULT_IO_DELAY_TYPE; | 15 | int io_delay_type __read_mostly = CONFIG_DEFAULT_IO_DELAY_TYPE; |
16 | 16 | ||
@@ -47,8 +47,7 @@ EXPORT_SYMBOL(native_io_delay); | |||
47 | static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id) | 47 | static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id) |
48 | { | 48 | { |
49 | if (io_delay_type == CONFIG_IO_DELAY_TYPE_0X80) { | 49 | if (io_delay_type == CONFIG_IO_DELAY_TYPE_0X80) { |
50 | printk(KERN_NOTICE "%s: using 0xed I/O delay port\n", | 50 | pr_notice("%s: using 0xed I/O delay port\n", id->ident); |
51 | id->ident); | ||
52 | io_delay_type = CONFIG_IO_DELAY_TYPE_0XED; | 51 | io_delay_type = CONFIG_IO_DELAY_TYPE_0XED; |
53 | } | 52 | } |
54 | 53 | ||
@@ -64,40 +63,40 @@ static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = { | |||
64 | .callback = dmi_io_delay_0xed_port, | 63 | .callback = dmi_io_delay_0xed_port, |
65 | .ident = "Compaq Presario V6000", | 64 | .ident = "Compaq Presario V6000", |
66 | .matches = { | 65 | .matches = { |
67 | DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), | 66 | DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), |
68 | DMI_MATCH(DMI_BOARD_NAME, "30B7") | 67 | DMI_MATCH(DMI_BOARD_NAME, "30B7") |
69 | } | 68 | } |
70 | }, | 69 | }, |
71 | { | 70 | { |
72 | .callback = dmi_io_delay_0xed_port, | 71 | .callback = dmi_io_delay_0xed_port, |
73 | .ident = "HP Pavilion dv9000z", | 72 | .ident = "HP Pavilion dv9000z", |
74 | .matches = { | 73 | .matches = { |
75 | DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), | 74 | DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), |
76 | DMI_MATCH(DMI_BOARD_NAME, "30B9") | 75 | DMI_MATCH(DMI_BOARD_NAME, "30B9") |
77 | } | 76 | } |
78 | }, | 77 | }, |
79 | { | 78 | { |
80 | .callback = dmi_io_delay_0xed_port, | 79 | .callback = dmi_io_delay_0xed_port, |
81 | .ident = "HP Pavilion dv6000", | 80 | .ident = "HP Pavilion dv6000", |
82 | .matches = { | 81 | .matches = { |
83 | DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), | 82 | DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), |
84 | DMI_MATCH(DMI_BOARD_NAME, "30B8") | 83 | DMI_MATCH(DMI_BOARD_NAME, "30B8") |
85 | } | 84 | } |
86 | }, | 85 | }, |
87 | { | 86 | { |
88 | .callback = dmi_io_delay_0xed_port, | 87 | .callback = dmi_io_delay_0xed_port, |
89 | .ident = "HP Pavilion tx1000", | 88 | .ident = "HP Pavilion tx1000", |
90 | .matches = { | 89 | .matches = { |
91 | DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), | 90 | DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), |
92 | DMI_MATCH(DMI_BOARD_NAME, "30BF") | 91 | DMI_MATCH(DMI_BOARD_NAME, "30BF") |
93 | } | 92 | } |
94 | }, | 93 | }, |
95 | { | 94 | { |
96 | .callback = dmi_io_delay_0xed_port, | 95 | .callback = dmi_io_delay_0xed_port, |
97 | .ident = "Presario F700", | 96 | .ident = "Presario F700", |
98 | .matches = { | 97 | .matches = { |
99 | DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), | 98 | DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), |
100 | DMI_MATCH(DMI_BOARD_NAME, "30D3") | 99 | DMI_MATCH(DMI_BOARD_NAME, "30D3") |
101 | } | 100 | } |
102 | }, | 101 | }, |
103 | { } | 102 | { } |
diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c index ff7d3b0124f1..e444357375ce 100644 --- a/arch/x86/kernel/kdebugfs.c +++ b/arch/x86/kernel/kdebugfs.c | |||
@@ -8,11 +8,11 @@ | |||
8 | */ | 8 | */ |
9 | #include <linux/debugfs.h> | 9 | #include <linux/debugfs.h> |
10 | #include <linux/uaccess.h> | 10 | #include <linux/uaccess.h> |
11 | #include <linux/stat.h> | 11 | #include <linux/module.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/stat.h> | ||
13 | #include <linux/io.h> | 14 | #include <linux/io.h> |
14 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
15 | #include <linux/module.h> | ||
16 | 16 | ||
17 | #include <asm/setup.h> | 17 | #include <asm/setup.h> |
18 | 18 | ||
@@ -26,9 +26,8 @@ struct setup_data_node { | |||
26 | u32 len; | 26 | u32 len; |
27 | }; | 27 | }; |
28 | 28 | ||
29 | static ssize_t | 29 | static ssize_t setup_data_read(struct file *file, char __user *user_buf, |
30 | setup_data_read(struct file *file, char __user *user_buf, size_t count, | 30 | size_t count, loff_t *ppos) |
31 | loff_t *ppos) | ||
32 | { | 31 | { |
33 | struct setup_data_node *node = file->private_data; | 32 | struct setup_data_node *node = file->private_data; |
34 | unsigned long remain; | 33 | unsigned long remain; |
@@ -39,20 +38,21 @@ setup_data_read(struct file *file, char __user *user_buf, size_t count, | |||
39 | 38 | ||
40 | if (pos < 0) | 39 | if (pos < 0) |
41 | return -EINVAL; | 40 | return -EINVAL; |
41 | |||
42 | if (pos >= node->len) | 42 | if (pos >= node->len) |
43 | return 0; | 43 | return 0; |
44 | 44 | ||
45 | if (count > node->len - pos) | 45 | if (count > node->len - pos) |
46 | count = node->len - pos; | 46 | count = node->len - pos; |
47 | |||
47 | pa = node->paddr + sizeof(struct setup_data) + pos; | 48 | pa = node->paddr + sizeof(struct setup_data) + pos; |
48 | pg = pfn_to_page((pa + count - 1) >> PAGE_SHIFT); | 49 | pg = pfn_to_page((pa + count - 1) >> PAGE_SHIFT); |
49 | if (PageHighMem(pg)) { | 50 | if (PageHighMem(pg)) { |
50 | p = ioremap_cache(pa, count); | 51 | p = ioremap_cache(pa, count); |
51 | if (!p) | 52 | if (!p) |
52 | return -ENXIO; | 53 | return -ENXIO; |
53 | } else { | 54 | } else |
54 | p = __va(pa); | 55 | p = __va(pa); |
55 | } | ||
56 | 56 | ||
57 | remain = copy_to_user(user_buf, p, count); | 57 | remain = copy_to_user(user_buf, p, count); |
58 | 58 | ||
@@ -70,12 +70,13 @@ setup_data_read(struct file *file, char __user *user_buf, size_t count, | |||
70 | static int setup_data_open(struct inode *inode, struct file *file) | 70 | static int setup_data_open(struct inode *inode, struct file *file) |
71 | { | 71 | { |
72 | file->private_data = inode->i_private; | 72 | file->private_data = inode->i_private; |
73 | |||
73 | return 0; | 74 | return 0; |
74 | } | 75 | } |
75 | 76 | ||
76 | static const struct file_operations fops_setup_data = { | 77 | static const struct file_operations fops_setup_data = { |
77 | .read = setup_data_read, | 78 | .read = setup_data_read, |
78 | .open = setup_data_open, | 79 | .open = setup_data_open, |
79 | }; | 80 | }; |
80 | 81 | ||
81 | static int __init | 82 | static int __init |
@@ -84,57 +85,50 @@ create_setup_data_node(struct dentry *parent, int no, | |||
84 | { | 85 | { |
85 | struct dentry *d, *type, *data; | 86 | struct dentry *d, *type, *data; |
86 | char buf[16]; | 87 | char buf[16]; |
87 | int error; | ||
88 | 88 | ||
89 | sprintf(buf, "%d", no); | 89 | sprintf(buf, "%d", no); |
90 | d = debugfs_create_dir(buf, parent); | 90 | d = debugfs_create_dir(buf, parent); |
91 | if (!d) { | 91 | if (!d) |
92 | error = -ENOMEM; | 92 | return -ENOMEM; |
93 | goto err_return; | 93 | |
94 | } | ||
95 | type = debugfs_create_x32("type", S_IRUGO, d, &node->type); | 94 | type = debugfs_create_x32("type", S_IRUGO, d, &node->type); |
96 | if (!type) { | 95 | if (!type) |
97 | error = -ENOMEM; | ||
98 | goto err_dir; | 96 | goto err_dir; |
99 | } | 97 | |
100 | data = debugfs_create_file("data", S_IRUGO, d, node, &fops_setup_data); | 98 | data = debugfs_create_file("data", S_IRUGO, d, node, &fops_setup_data); |
101 | if (!data) { | 99 | if (!data) |
102 | error = -ENOMEM; | ||
103 | goto err_type; | 100 | goto err_type; |
104 | } | 101 | |
105 | return 0; | 102 | return 0; |
106 | 103 | ||
107 | err_type: | 104 | err_type: |
108 | debugfs_remove(type); | 105 | debugfs_remove(type); |
109 | err_dir: | 106 | err_dir: |
110 | debugfs_remove(d); | 107 | debugfs_remove(d); |
111 | err_return: | 108 | return -ENOMEM; |
112 | return error; | ||
113 | } | 109 | } |
114 | 110 | ||
115 | static int __init create_setup_data_nodes(struct dentry *parent) | 111 | static int __init create_setup_data_nodes(struct dentry *parent) |
116 | { | 112 | { |
117 | struct setup_data_node *node; | 113 | struct setup_data_node *node; |
118 | struct setup_data *data; | 114 | struct setup_data *data; |
119 | int error, no = 0; | 115 | int error = -ENOMEM; |
120 | struct dentry *d; | 116 | struct dentry *d; |
121 | struct page *pg; | 117 | struct page *pg; |
122 | u64 pa_data; | 118 | u64 pa_data; |
119 | int no = 0; | ||
123 | 120 | ||
124 | d = debugfs_create_dir("setup_data", parent); | 121 | d = debugfs_create_dir("setup_data", parent); |
125 | if (!d) { | 122 | if (!d) |
126 | error = -ENOMEM; | 123 | return -ENOMEM; |
127 | goto err_return; | ||
128 | } | ||
129 | 124 | ||
130 | pa_data = boot_params.hdr.setup_data; | 125 | pa_data = boot_params.hdr.setup_data; |
131 | 126 | ||
132 | while (pa_data) { | 127 | while (pa_data) { |
133 | node = kmalloc(sizeof(*node), GFP_KERNEL); | 128 | node = kmalloc(sizeof(*node), GFP_KERNEL); |
134 | if (!node) { | 129 | if (!node) |
135 | error = -ENOMEM; | ||
136 | goto err_dir; | 130 | goto err_dir; |
137 | } | 131 | |
138 | pg = pfn_to_page((pa_data+sizeof(*data)-1) >> PAGE_SHIFT); | 132 | pg = pfn_to_page((pa_data+sizeof(*data)-1) >> PAGE_SHIFT); |
139 | if (PageHighMem(pg)) { | 133 | if (PageHighMem(pg)) { |
140 | data = ioremap_cache(pa_data, sizeof(*data)); | 134 | data = ioremap_cache(pa_data, sizeof(*data)); |
@@ -143,9 +137,8 @@ static int __init create_setup_data_nodes(struct dentry *parent) | |||
143 | error = -ENXIO; | 137 | error = -ENXIO; |
144 | goto err_dir; | 138 | goto err_dir; |
145 | } | 139 | } |
146 | } else { | 140 | } else |
147 | data = __va(pa_data); | 141 | data = __va(pa_data); |
148 | } | ||
149 | 142 | ||
150 | node->paddr = pa_data; | 143 | node->paddr = pa_data; |
151 | node->type = data->type; | 144 | node->type = data->type; |
@@ -159,11 +152,11 @@ static int __init create_setup_data_nodes(struct dentry *parent) | |||
159 | goto err_dir; | 152 | goto err_dir; |
160 | no++; | 153 | no++; |
161 | } | 154 | } |
155 | |||
162 | return 0; | 156 | return 0; |
163 | 157 | ||
164 | err_dir: | 158 | err_dir: |
165 | debugfs_remove(d); | 159 | debugfs_remove(d); |
166 | err_return: | ||
167 | return error; | 160 | return error; |
168 | } | 161 | } |
169 | 162 | ||
@@ -175,28 +168,26 @@ static struct debugfs_blob_wrapper boot_params_blob = { | |||
175 | static int __init boot_params_kdebugfs_init(void) | 168 | static int __init boot_params_kdebugfs_init(void) |
176 | { | 169 | { |
177 | struct dentry *dbp, *version, *data; | 170 | struct dentry *dbp, *version, *data; |
178 | int error; | 171 | int error = -ENOMEM; |
179 | 172 | ||
180 | dbp = debugfs_create_dir("boot_params", NULL); | 173 | dbp = debugfs_create_dir("boot_params", NULL); |
181 | if (!dbp) { | 174 | if (!dbp) |
182 | error = -ENOMEM; | 175 | return -ENOMEM; |
183 | goto err_return; | 176 | |
184 | } | ||
185 | version = debugfs_create_x16("version", S_IRUGO, dbp, | 177 | version = debugfs_create_x16("version", S_IRUGO, dbp, |
186 | &boot_params.hdr.version); | 178 | &boot_params.hdr.version); |
187 | if (!version) { | 179 | if (!version) |
188 | error = -ENOMEM; | ||
189 | goto err_dir; | 180 | goto err_dir; |
190 | } | 181 | |
191 | data = debugfs_create_blob("data", S_IRUGO, dbp, | 182 | data = debugfs_create_blob("data", S_IRUGO, dbp, |
192 | &boot_params_blob); | 183 | &boot_params_blob); |
193 | if (!data) { | 184 | if (!data) |
194 | error = -ENOMEM; | ||
195 | goto err_version; | 185 | goto err_version; |
196 | } | 186 | |
197 | error = create_setup_data_nodes(dbp); | 187 | error = create_setup_data_nodes(dbp); |
198 | if (error) | 188 | if (error) |
199 | goto err_data; | 189 | goto err_data; |
190 | |||
200 | return 0; | 191 | return 0; |
201 | 192 | ||
202 | err_data: | 193 | err_data: |
@@ -205,10 +196,9 @@ err_version: | |||
205 | debugfs_remove(version); | 196 | debugfs_remove(version); |
206 | err_dir: | 197 | err_dir: |
207 | debugfs_remove(dbp); | 198 | debugfs_remove(dbp); |
208 | err_return: | ||
209 | return error; | 199 | return error; |
210 | } | 200 | } |
211 | #endif | 201 | #endif /* CONFIG_DEBUG_BOOT_PARAMS */ |
212 | 202 | ||
213 | static int __init arch_kdebugfs_init(void) | 203 | static int __init arch_kdebugfs_init(void) |
214 | { | 204 | { |
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index 290cb57f4697..dce99dca6cf8 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c | |||
@@ -282,6 +282,14 @@ static void skip_entry(unsigned char **ptr, int *count, int size) | |||
282 | *count += size; | 282 | *count += size; |
283 | } | 283 | } |
284 | 284 | ||
285 | static void __init smp_dump_mptable(struct mpc_table *mpc, unsigned char *mpt) | ||
286 | { | ||
287 | printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n" | ||
288 | "type %x\n", *mpt); | ||
289 | print_hex_dump(KERN_ERR, " ", DUMP_PREFIX_ADDRESS, 16, | ||
290 | 1, mpc, mpc->length, 1); | ||
291 | } | ||
292 | |||
285 | static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) | 293 | static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) |
286 | { | 294 | { |
287 | char str[16]; | 295 | char str[16]; |
@@ -340,10 +348,7 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) | |||
340 | break; | 348 | break; |
341 | default: | 349 | default: |
342 | /* wrong mptable */ | 350 | /* wrong mptable */ |
343 | printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n"); | 351 | smp_dump_mptable(mpc, mpt); |
344 | printk(KERN_ERR "type %x\n", *mpt); | ||
345 | print_hex_dump(KERN_ERR, " ", DUMP_PREFIX_ADDRESS, 16, | ||
346 | 1, mpc, mpc->length, 1); | ||
347 | count = mpc->length; | 352 | count = mpc->length; |
348 | break; | 353 | break; |
349 | } | 354 | } |
@@ -550,6 +555,55 @@ static unsigned long __init get_mpc_size(unsigned long physptr) | |||
550 | return size; | 555 | return size; |
551 | } | 556 | } |
552 | 557 | ||
558 | static int __init check_physptr(struct mpf_intel *mpf, unsigned int early) | ||
559 | { | ||
560 | struct mpc_table *mpc; | ||
561 | unsigned long size; | ||
562 | |||
563 | size = get_mpc_size(mpf->physptr); | ||
564 | mpc = early_ioremap(mpf->physptr, size); | ||
565 | /* | ||
566 | * Read the physical hardware table. Anything here will | ||
567 | * override the defaults. | ||
568 | */ | ||
569 | if (!smp_read_mpc(mpc, early)) { | ||
570 | #ifdef CONFIG_X86_LOCAL_APIC | ||
571 | smp_found_config = 0; | ||
572 | #endif | ||
573 | printk(KERN_ERR "BIOS bug, MP table errors detected!...\n" | ||
574 | "... disabling SMP support. (tell your hw vendor)\n"); | ||
575 | early_iounmap(mpc, size); | ||
576 | return -1; | ||
577 | } | ||
578 | early_iounmap(mpc, size); | ||
579 | |||
580 | if (early) | ||
581 | return -1; | ||
582 | |||
583 | #ifdef CONFIG_X86_IO_APIC | ||
584 | /* | ||
585 | * If there are no explicit MP IRQ entries, then we are | ||
586 | * broken. We set up most of the low 16 IO-APIC pins to | ||
587 | * ISA defaults and hope it will work. | ||
588 | */ | ||
589 | if (!mp_irq_entries) { | ||
590 | struct mpc_bus bus; | ||
591 | |||
592 | printk(KERN_ERR "BIOS bug, no explicit IRQ entries, " | ||
593 | "using default mptable. (tell your hw vendor)\n"); | ||
594 | |||
595 | bus.type = MP_BUS; | ||
596 | bus.busid = 0; | ||
597 | memcpy(bus.bustype, "ISA ", 6); | ||
598 | MP_bus_info(&bus); | ||
599 | |||
600 | construct_default_ioirq_mptable(0); | ||
601 | } | ||
602 | #endif | ||
603 | |||
604 | return 0; | ||
605 | } | ||
606 | |||
553 | /* | 607 | /* |
554 | * Scan the memory blocks for an SMP configuration block. | 608 | * Scan the memory blocks for an SMP configuration block. |
555 | */ | 609 | */ |
@@ -603,51 +657,8 @@ static void __init __get_smp_config(unsigned int early) | |||
603 | construct_default_ISA_mptable(mpf->feature1); | 657 | construct_default_ISA_mptable(mpf->feature1); |
604 | 658 | ||
605 | } else if (mpf->physptr) { | 659 | } else if (mpf->physptr) { |
606 | struct mpc_table *mpc; | 660 | if (check_physptr(mpf, early)) |
607 | unsigned long size; | ||
608 | |||
609 | size = get_mpc_size(mpf->physptr); | ||
610 | mpc = early_ioremap(mpf->physptr, size); | ||
611 | /* | ||
612 | * Read the physical hardware table. Anything here will | ||
613 | * override the defaults. | ||
614 | */ | ||
615 | if (!smp_read_mpc(mpc, early)) { | ||
616 | #ifdef CONFIG_X86_LOCAL_APIC | ||
617 | smp_found_config = 0; | ||
618 | #endif | ||
619 | printk(KERN_ERR | ||
620 | "BIOS bug, MP table errors detected!...\n"); | ||
621 | printk(KERN_ERR "... disabling SMP support. " | ||
622 | "(tell your hw vendor)\n"); | ||
623 | early_iounmap(mpc, size); | ||
624 | return; | 661 | return; |
625 | } | ||
626 | early_iounmap(mpc, size); | ||
627 | |||
628 | if (early) | ||
629 | return; | ||
630 | #ifdef CONFIG_X86_IO_APIC | ||
631 | /* | ||
632 | * If there are no explicit MP IRQ entries, then we are | ||
633 | * broken. We set up most of the low 16 IO-APIC pins to | ||
634 | * ISA defaults and hope it will work. | ||
635 | */ | ||
636 | if (!mp_irq_entries) { | ||
637 | struct mpc_bus bus; | ||
638 | |||
639 | printk(KERN_ERR "BIOS bug, no explicit IRQ entries, " | ||
640 | "using default mptable. " | ||
641 | "(tell your hw vendor)\n"); | ||
642 | |||
643 | bus.type = MP_BUS; | ||
644 | bus.busid = 0; | ||
645 | memcpy(bus.bustype, "ISA ", 6); | ||
646 | MP_bus_info(&bus); | ||
647 | |||
648 | construct_default_ioirq_mptable(0); | ||
649 | } | ||
650 | #endif | ||
651 | } else | 662 | } else |
652 | BUG(); | 663 | BUG(); |
653 | 664 | ||
@@ -910,10 +921,7 @@ static int __init replace_intsrc_all(struct mpc_table *mpc, | |||
910 | break; | 921 | break; |
911 | default: | 922 | default: |
912 | /* wrong mptable */ | 923 | /* wrong mptable */ |
913 | printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n"); | 924 | smp_dump_mptable(mpc, mpt); |
914 | printk(KERN_ERR "type %x\n", *mpt); | ||
915 | print_hex_dump(KERN_ERR, " ", DUMP_PREFIX_ADDRESS, 16, | ||
916 | 1, mpc, mpc->length, 1); | ||
917 | goto out; | 925 | goto out; |
918 | } | 926 | } |
919 | } | 927 | } |
diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c index c70ab5a5d4c8..8b02a3936d42 100644 --- a/arch/x86/kernel/pci-nommu.c +++ b/arch/x86/kernel/pci-nommu.c | |||
@@ -1,14 +1,14 @@ | |||
1 | /* Fallback functions when the main IOMMU code is not compiled in. This | 1 | /* Fallback functions when the main IOMMU code is not compiled in. This |
2 | code is roughly equivalent to i386. */ | 2 | code is roughly equivalent to i386. */ |
3 | #include <linux/mm.h> | ||
4 | #include <linux/init.h> | ||
5 | #include <linux/pci.h> | ||
6 | #include <linux/string.h> | ||
7 | #include <linux/dma-mapping.h> | 3 | #include <linux/dma-mapping.h> |
8 | #include <linux/scatterlist.h> | 4 | #include <linux/scatterlist.h> |
5 | #include <linux/string.h> | ||
6 | #include <linux/init.h> | ||
7 | #include <linux/pci.h> | ||
8 | #include <linux/mm.h> | ||
9 | 9 | ||
10 | #include <asm/iommu.h> | ||
11 | #include <asm/processor.h> | 10 | #include <asm/processor.h> |
11 | #include <asm/iommu.h> | ||
12 | #include <asm/dma.h> | 12 | #include <asm/dma.h> |
13 | 13 | ||
14 | static int | 14 | static int |
@@ -79,11 +79,11 @@ static void nommu_free_coherent(struct device *dev, size_t size, void *vaddr, | |||
79 | } | 79 | } |
80 | 80 | ||
81 | struct dma_mapping_ops nommu_dma_ops = { | 81 | struct dma_mapping_ops nommu_dma_ops = { |
82 | .alloc_coherent = dma_generic_alloc_coherent, | 82 | .alloc_coherent = dma_generic_alloc_coherent, |
83 | .free_coherent = nommu_free_coherent, | 83 | .free_coherent = nommu_free_coherent, |
84 | .map_single = nommu_map_single, | 84 | .map_single = nommu_map_single, |
85 | .map_sg = nommu_map_sg, | 85 | .map_sg = nommu_map_sg, |
86 | .is_phys = 1, | 86 | .is_phys = 1, |
87 | }; | 87 | }; |
88 | 88 | ||
89 | void __init no_iommu_init(void) | 89 | void __init no_iommu_init(void) |
diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c index dd6f2b71561b..5d465b207e72 100644 --- a/arch/x86/kernel/rtc.c +++ b/arch/x86/kernel/rtc.c | |||
@@ -1,14 +1,14 @@ | |||
1 | /* | 1 | /* |
2 | * RTC related functions | 2 | * RTC related functions |
3 | */ | 3 | */ |
4 | #include <linux/platform_device.h> | ||
5 | #include <linux/mc146818rtc.h> | ||
4 | #include <linux/acpi.h> | 6 | #include <linux/acpi.h> |
5 | #include <linux/bcd.h> | 7 | #include <linux/bcd.h> |
6 | #include <linux/mc146818rtc.h> | ||
7 | #include <linux/platform_device.h> | ||
8 | #include <linux/pnp.h> | 8 | #include <linux/pnp.h> |
9 | 9 | ||
10 | #include <asm/time.h> | ||
11 | #include <asm/vsyscall.h> | 10 | #include <asm/vsyscall.h> |
11 | #include <asm/time.h> | ||
12 | 12 | ||
13 | #ifdef CONFIG_X86_32 | 13 | #ifdef CONFIG_X86_32 |
14 | /* | 14 | /* |
@@ -16,9 +16,9 @@ | |||
16 | * register we are working with. It is required for NMI access to the | 16 | * register we are working with. It is required for NMI access to the |
17 | * CMOS/RTC registers. See include/asm-i386/mc146818rtc.h for details. | 17 | * CMOS/RTC registers. See include/asm-i386/mc146818rtc.h for details. |
18 | */ | 18 | */ |
19 | volatile unsigned long cmos_lock = 0; | 19 | volatile unsigned long cmos_lock; |
20 | EXPORT_SYMBOL(cmos_lock); | 20 | EXPORT_SYMBOL(cmos_lock); |
21 | #endif | 21 | #endif /* CONFIG_X86_32 */ |
22 | 22 | ||
23 | /* For two digit years assume time is always after that */ | 23 | /* For two digit years assume time is always after that */ |
24 | #define CMOS_YEARS_OFFS 2000 | 24 | #define CMOS_YEARS_OFFS 2000 |
@@ -38,9 +38,9 @@ EXPORT_SYMBOL(rtc_lock); | |||
38 | */ | 38 | */ |
39 | int mach_set_rtc_mmss(unsigned long nowtime) | 39 | int mach_set_rtc_mmss(unsigned long nowtime) |
40 | { | 40 | { |
41 | int retval = 0; | ||
42 | int real_seconds, real_minutes, cmos_minutes; | 41 | int real_seconds, real_minutes, cmos_minutes; |
43 | unsigned char save_control, save_freq_select; | 42 | unsigned char save_control, save_freq_select; |
43 | int retval = 0; | ||
44 | 44 | ||
45 | /* tell the clock it's being set */ | 45 | /* tell the clock it's being set */ |
46 | save_control = CMOS_READ(RTC_CONTROL); | 46 | save_control = CMOS_READ(RTC_CONTROL); |
@@ -72,8 +72,8 @@ int mach_set_rtc_mmss(unsigned long nowtime) | |||
72 | real_seconds = bin2bcd(real_seconds); | 72 | real_seconds = bin2bcd(real_seconds); |
73 | real_minutes = bin2bcd(real_minutes); | 73 | real_minutes = bin2bcd(real_minutes); |
74 | } | 74 | } |
75 | CMOS_WRITE(real_seconds,RTC_SECONDS); | 75 | CMOS_WRITE(real_seconds, RTC_SECONDS); |
76 | CMOS_WRITE(real_minutes,RTC_MINUTES); | 76 | CMOS_WRITE(real_minutes, RTC_MINUTES); |
77 | } else { | 77 | } else { |
78 | printk(KERN_WARNING | 78 | printk(KERN_WARNING |
79 | "set_rtc_mmss: can't update from %d to %d\n", | 79 | "set_rtc_mmss: can't update from %d to %d\n", |
@@ -151,6 +151,7 @@ unsigned char rtc_cmos_read(unsigned char addr) | |||
151 | outb(addr, RTC_PORT(0)); | 151 | outb(addr, RTC_PORT(0)); |
152 | val = inb(RTC_PORT(1)); | 152 | val = inb(RTC_PORT(1)); |
153 | lock_cmos_suffix(addr); | 153 | lock_cmos_suffix(addr); |
154 | |||
154 | return val; | 155 | return val; |
155 | } | 156 | } |
156 | EXPORT_SYMBOL(rtc_cmos_read); | 157 | EXPORT_SYMBOL(rtc_cmos_read); |
@@ -166,8 +167,8 @@ EXPORT_SYMBOL(rtc_cmos_write); | |||
166 | 167 | ||
167 | static int set_rtc_mmss(unsigned long nowtime) | 168 | static int set_rtc_mmss(unsigned long nowtime) |
168 | { | 169 | { |
169 | int retval; | ||
170 | unsigned long flags; | 170 | unsigned long flags; |
171 | int retval; | ||
171 | 172 | ||
172 | spin_lock_irqsave(&rtc_lock, flags); | 173 | spin_lock_irqsave(&rtc_lock, flags); |
173 | retval = set_wallclock(nowtime); | 174 | retval = set_wallclock(nowtime); |
@@ -242,6 +243,7 @@ static __init int add_rtc_cmos(void) | |||
242 | platform_device_register(&rtc_device); | 243 | platform_device_register(&rtc_device); |
243 | dev_info(&rtc_device.dev, | 244 | dev_info(&rtc_device.dev, |
244 | "registered platform RTC device (no PNP device found)\n"); | 245 | "registered platform RTC device (no PNP device found)\n"); |
246 | |||
245 | return 0; | 247 | return 0; |
246 | } | 248 | } |
247 | device_initcall(add_rtc_cmos); | 249 | device_initcall(add_rtc_cmos); |
diff --git a/arch/x86/kernel/topology.c b/arch/x86/kernel/topology.c index 0fcc95a354f7..7e4515957a1c 100644 --- a/arch/x86/kernel/topology.c +++ b/arch/x86/kernel/topology.c | |||
@@ -25,10 +25,10 @@ | |||
25 | * | 25 | * |
26 | * Send feedback to <colpatch@us.ibm.com> | 26 | * Send feedback to <colpatch@us.ibm.com> |
27 | */ | 27 | */ |
28 | #include <linux/init.h> | ||
29 | #include <linux/smp.h> | ||
30 | #include <linux/nodemask.h> | 28 | #include <linux/nodemask.h> |
31 | #include <linux/mmzone.h> | 29 | #include <linux/mmzone.h> |
30 | #include <linux/init.h> | ||
31 | #include <linux/smp.h> | ||
32 | #include <asm/cpu.h> | 32 | #include <asm/cpu.h> |
33 | 33 | ||
34 | static DEFINE_PER_CPU(struct x86_cpu, cpu_devices); | 34 | static DEFINE_PER_CPU(struct x86_cpu, cpu_devices); |
@@ -47,6 +47,7 @@ int __ref arch_register_cpu(int num) | |||
47 | */ | 47 | */ |
48 | if (num) | 48 | if (num) |
49 | per_cpu(cpu_devices, num).cpu.hotpluggable = 1; | 49 | per_cpu(cpu_devices, num).cpu.hotpluggable = 1; |
50 | |||
50 | return register_cpu(&per_cpu(cpu_devices, num).cpu, num); | 51 | return register_cpu(&per_cpu(cpu_devices, num).cpu, num); |
51 | } | 52 | } |
52 | EXPORT_SYMBOL(arch_register_cpu); | 53 | EXPORT_SYMBOL(arch_register_cpu); |
@@ -56,12 +57,13 @@ void arch_unregister_cpu(int num) | |||
56 | unregister_cpu(&per_cpu(cpu_devices, num).cpu); | 57 | unregister_cpu(&per_cpu(cpu_devices, num).cpu); |
57 | } | 58 | } |
58 | EXPORT_SYMBOL(arch_unregister_cpu); | 59 | EXPORT_SYMBOL(arch_unregister_cpu); |
59 | #else | 60 | #else /* CONFIG_HOTPLUG_CPU */ |
61 | |||
60 | static int __init arch_register_cpu(int num) | 62 | static int __init arch_register_cpu(int num) |
61 | { | 63 | { |
62 | return register_cpu(&per_cpu(cpu_devices, num).cpu, num); | 64 | return register_cpu(&per_cpu(cpu_devices, num).cpu, num); |
63 | } | 65 | } |
64 | #endif /*CONFIG_HOTPLUG_CPU*/ | 66 | #endif /* CONFIG_HOTPLUG_CPU */ |
65 | 67 | ||
66 | static int __init topology_init(void) | 68 | static int __init topology_init(void) |
67 | { | 69 | { |
@@ -70,11 +72,11 @@ static int __init topology_init(void) | |||
70 | #ifdef CONFIG_NUMA | 72 | #ifdef CONFIG_NUMA |
71 | for_each_online_node(i) | 73 | for_each_online_node(i) |
72 | register_one_node(i); | 74 | register_one_node(i); |
73 | #endif /* CONFIG_NUMA */ | 75 | #endif |
74 | 76 | ||
75 | for_each_present_cpu(i) | 77 | for_each_present_cpu(i) |
76 | arch_register_cpu(i); | 78 | arch_register_cpu(i); |
79 | |||
77 | return 0; | 80 | return 0; |
78 | } | 81 | } |
79 | |||
80 | subsys_initcall(topology_init); | 82 | subsys_initcall(topology_init); |
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index 55e127f71ed9..83ed74affba9 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c | |||
@@ -487,12 +487,7 @@ static int __init early_ioremap_debug_setup(char *str) | |||
487 | early_param("early_ioremap_debug", early_ioremap_debug_setup); | 487 | early_param("early_ioremap_debug", early_ioremap_debug_setup); |
488 | 488 | ||
489 | static __initdata int after_paging_init; | 489 | static __initdata int after_paging_init; |
490 | #define __FIXADDR_TOP (-PAGE_SIZE) | 490 | static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_bss; |
491 | static pte_t bm_pte[(__fix_to_virt(FIX_DBGP_BASE) | ||
492 | ^ __fix_to_virt(FIX_BTMAP_BEGIN)) >> PMD_SHIFT | ||
493 | ? PAGE_SIZE / sizeof(pte_t) : 0] __page_aligned_bss; | ||
494 | #undef __FIXADDR_TOP | ||
495 | static __initdata pte_t *bm_ptep; | ||
496 | 491 | ||
497 | static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) | 492 | static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) |
498 | { | 493 | { |
@@ -507,8 +502,6 @@ static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) | |||
507 | 502 | ||
508 | static inline pte_t * __init early_ioremap_pte(unsigned long addr) | 503 | static inline pte_t * __init early_ioremap_pte(unsigned long addr) |
509 | { | 504 | { |
510 | if (!sizeof(bm_pte)) | ||
511 | return &bm_ptep[pte_index(addr)]; | ||
512 | return &bm_pte[pte_index(addr)]; | 505 | return &bm_pte[pte_index(addr)]; |
513 | } | 506 | } |
514 | 507 | ||
@@ -526,14 +519,8 @@ void __init early_ioremap_init(void) | |||
526 | slot_virt[i] = fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i); | 519 | slot_virt[i] = fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i); |
527 | 520 | ||
528 | pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); | 521 | pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); |
529 | if (sizeof(bm_pte)) { | 522 | memset(bm_pte, 0, sizeof(bm_pte)); |
530 | memset(bm_pte, 0, sizeof(bm_pte)); | 523 | pmd_populate_kernel(&init_mm, pmd, bm_pte); |
531 | pmd_populate_kernel(&init_mm, pmd, bm_pte); | ||
532 | } else { | ||
533 | bm_ptep = pte_offset_kernel(pmd, 0); | ||
534 | if (early_ioremap_debug) | ||
535 | printk(KERN_INFO "bm_ptep=%p\n", bm_ptep); | ||
536 | } | ||
537 | 524 | ||
538 | /* | 525 | /* |
539 | * The boot-ioremap range spans multiple pmds, for which | 526 | * The boot-ioremap range spans multiple pmds, for which |
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index 1280565670e4..d71e1b636ce6 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c | |||
@@ -34,6 +34,7 @@ struct cpa_data { | |||
34 | unsigned long pfn; | 34 | unsigned long pfn; |
35 | unsigned force_split : 1; | 35 | unsigned force_split : 1; |
36 | int curpage; | 36 | int curpage; |
37 | struct page **pages; | ||
37 | }; | 38 | }; |
38 | 39 | ||
39 | /* | 40 | /* |
@@ -46,6 +47,7 @@ static DEFINE_SPINLOCK(cpa_lock); | |||
46 | 47 | ||
47 | #define CPA_FLUSHTLB 1 | 48 | #define CPA_FLUSHTLB 1 |
48 | #define CPA_ARRAY 2 | 49 | #define CPA_ARRAY 2 |
50 | #define CPA_PAGES_ARRAY 4 | ||
49 | 51 | ||
50 | #ifdef CONFIG_PROC_FS | 52 | #ifdef CONFIG_PROC_FS |
51 | static unsigned long direct_pages_count[PG_LEVEL_NUM]; | 53 | static unsigned long direct_pages_count[PG_LEVEL_NUM]; |
@@ -202,10 +204,10 @@ static void cpa_flush_range(unsigned long start, int numpages, int cache) | |||
202 | } | 204 | } |
203 | } | 205 | } |
204 | 206 | ||
205 | static void cpa_flush_array(unsigned long *start, int numpages, int cache) | 207 | static void cpa_flush_array(unsigned long *start, int numpages, int cache, |
208 | int in_flags, struct page **pages) | ||
206 | { | 209 | { |
207 | unsigned int i, level; | 210 | unsigned int i, level; |
208 | unsigned long *addr; | ||
209 | 211 | ||
210 | BUG_ON(irqs_disabled()); | 212 | BUG_ON(irqs_disabled()); |
211 | 213 | ||
@@ -226,14 +228,22 @@ static void cpa_flush_array(unsigned long *start, int numpages, int cache) | |||
226 | * will cause all other CPUs to flush the same | 228 | * will cause all other CPUs to flush the same |
227 | * cachelines: | 229 | * cachelines: |
228 | */ | 230 | */ |
229 | for (i = 0, addr = start; i < numpages; i++, addr++) { | 231 | for (i = 0; i < numpages; i++) { |
230 | pte_t *pte = lookup_address(*addr, &level); | 232 | unsigned long addr; |
233 | pte_t *pte; | ||
234 | |||
235 | if (in_flags & CPA_PAGES_ARRAY) | ||
236 | addr = (unsigned long)page_address(pages[i]); | ||
237 | else | ||
238 | addr = start[i]; | ||
239 | |||
240 | pte = lookup_address(addr, &level); | ||
231 | 241 | ||
232 | /* | 242 | /* |
233 | * Only flush present addresses: | 243 | * Only flush present addresses: |
234 | */ | 244 | */ |
235 | if (pte && (pte_val(*pte) & _PAGE_PRESENT)) | 245 | if (pte && (pte_val(*pte) & _PAGE_PRESENT)) |
236 | clflush_cache_range((void *) *addr, PAGE_SIZE); | 246 | clflush_cache_range((void *)addr, PAGE_SIZE); |
237 | } | 247 | } |
238 | } | 248 | } |
239 | 249 | ||
@@ -585,7 +595,9 @@ static int __change_page_attr(struct cpa_data *cpa, int primary) | |||
585 | unsigned int level; | 595 | unsigned int level; |
586 | pte_t *kpte, old_pte; | 596 | pte_t *kpte, old_pte; |
587 | 597 | ||
588 | if (cpa->flags & CPA_ARRAY) | 598 | if (cpa->flags & CPA_PAGES_ARRAY) |
599 | address = (unsigned long)page_address(cpa->pages[cpa->curpage]); | ||
600 | else if (cpa->flags & CPA_ARRAY) | ||
589 | address = cpa->vaddr[cpa->curpage]; | 601 | address = cpa->vaddr[cpa->curpage]; |
590 | else | 602 | else |
591 | address = *cpa->vaddr; | 603 | address = *cpa->vaddr; |
@@ -688,7 +700,9 @@ static int cpa_process_alias(struct cpa_data *cpa) | |||
688 | * No need to redo, when the primary call touched the direct | 700 | * No need to redo, when the primary call touched the direct |
689 | * mapping already: | 701 | * mapping already: |
690 | */ | 702 | */ |
691 | if (cpa->flags & CPA_ARRAY) | 703 | if (cpa->flags & CPA_PAGES_ARRAY) |
704 | vaddr = (unsigned long)page_address(cpa->pages[cpa->curpage]); | ||
705 | else if (cpa->flags & CPA_ARRAY) | ||
692 | vaddr = cpa->vaddr[cpa->curpage]; | 706 | vaddr = cpa->vaddr[cpa->curpage]; |
693 | else | 707 | else |
694 | vaddr = *cpa->vaddr; | 708 | vaddr = *cpa->vaddr; |
@@ -699,7 +713,7 @@ static int cpa_process_alias(struct cpa_data *cpa) | |||
699 | alias_cpa = *cpa; | 713 | alias_cpa = *cpa; |
700 | temp_cpa_vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT); | 714 | temp_cpa_vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT); |
701 | alias_cpa.vaddr = &temp_cpa_vaddr; | 715 | alias_cpa.vaddr = &temp_cpa_vaddr; |
702 | alias_cpa.flags &= ~CPA_ARRAY; | 716 | alias_cpa.flags &= ~(CPA_PAGES_ARRAY | CPA_ARRAY); |
703 | 717 | ||
704 | 718 | ||
705 | ret = __change_page_attr_set_clr(&alias_cpa, 0); | 719 | ret = __change_page_attr_set_clr(&alias_cpa, 0); |
@@ -725,7 +739,7 @@ static int cpa_process_alias(struct cpa_data *cpa) | |||
725 | alias_cpa = *cpa; | 739 | alias_cpa = *cpa; |
726 | temp_cpa_vaddr = (cpa->pfn << PAGE_SHIFT) + __START_KERNEL_map - phys_base; | 740 | temp_cpa_vaddr = (cpa->pfn << PAGE_SHIFT) + __START_KERNEL_map - phys_base; |
727 | alias_cpa.vaddr = &temp_cpa_vaddr; | 741 | alias_cpa.vaddr = &temp_cpa_vaddr; |
728 | alias_cpa.flags &= ~CPA_ARRAY; | 742 | alias_cpa.flags &= ~(CPA_PAGES_ARRAY | CPA_ARRAY); |
729 | 743 | ||
730 | /* | 744 | /* |
731 | * The high mapping range is imprecise, so ignore the return value. | 745 | * The high mapping range is imprecise, so ignore the return value. |
@@ -746,7 +760,7 @@ static int __change_page_attr_set_clr(struct cpa_data *cpa, int checkalias) | |||
746 | */ | 760 | */ |
747 | cpa->numpages = numpages; | 761 | cpa->numpages = numpages; |
748 | /* for array changes, we can't use large page */ | 762 | /* for array changes, we can't use large page */ |
749 | if (cpa->flags & CPA_ARRAY) | 763 | if (cpa->flags & (CPA_ARRAY | CPA_PAGES_ARRAY)) |
750 | cpa->numpages = 1; | 764 | cpa->numpages = 1; |
751 | 765 | ||
752 | if (!debug_pagealloc) | 766 | if (!debug_pagealloc) |
@@ -770,7 +784,7 @@ static int __change_page_attr_set_clr(struct cpa_data *cpa, int checkalias) | |||
770 | */ | 784 | */ |
771 | BUG_ON(cpa->numpages > numpages); | 785 | BUG_ON(cpa->numpages > numpages); |
772 | numpages -= cpa->numpages; | 786 | numpages -= cpa->numpages; |
773 | if (cpa->flags & CPA_ARRAY) | 787 | if (cpa->flags & (CPA_PAGES_ARRAY | CPA_ARRAY)) |
774 | cpa->curpage++; | 788 | cpa->curpage++; |
775 | else | 789 | else |
776 | *cpa->vaddr += cpa->numpages * PAGE_SIZE; | 790 | *cpa->vaddr += cpa->numpages * PAGE_SIZE; |
@@ -787,7 +801,8 @@ static inline int cache_attr(pgprot_t attr) | |||
787 | 801 | ||
788 | static int change_page_attr_set_clr(unsigned long *addr, int numpages, | 802 | static int change_page_attr_set_clr(unsigned long *addr, int numpages, |
789 | pgprot_t mask_set, pgprot_t mask_clr, | 803 | pgprot_t mask_set, pgprot_t mask_clr, |
790 | int force_split, int array) | 804 | int force_split, int in_flag, |
805 | struct page **pages) | ||
791 | { | 806 | { |
792 | struct cpa_data cpa; | 807 | struct cpa_data cpa; |
793 | int ret, cache, checkalias; | 808 | int ret, cache, checkalias; |
@@ -802,15 +817,7 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages, | |||
802 | return 0; | 817 | return 0; |
803 | 818 | ||
804 | /* Ensure we are PAGE_SIZE aligned */ | 819 | /* Ensure we are PAGE_SIZE aligned */ |
805 | if (!array) { | 820 | if (in_flag & CPA_ARRAY) { |
806 | if (*addr & ~PAGE_MASK) { | ||
807 | *addr &= PAGE_MASK; | ||
808 | /* | ||
809 | * People should not be passing in unaligned addresses: | ||
810 | */ | ||
811 | WARN_ON_ONCE(1); | ||
812 | } | ||
813 | } else { | ||
814 | int i; | 821 | int i; |
815 | for (i = 0; i < numpages; i++) { | 822 | for (i = 0; i < numpages; i++) { |
816 | if (addr[i] & ~PAGE_MASK) { | 823 | if (addr[i] & ~PAGE_MASK) { |
@@ -818,6 +825,18 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages, | |||
818 | WARN_ON_ONCE(1); | 825 | WARN_ON_ONCE(1); |
819 | } | 826 | } |
820 | } | 827 | } |
828 | } else if (!(in_flag & CPA_PAGES_ARRAY)) { | ||
829 | /* | ||
830 | * in_flag of CPA_PAGES_ARRAY implies it is aligned. | ||
831 | * No need to cehck in that case | ||
832 | */ | ||
833 | if (*addr & ~PAGE_MASK) { | ||
834 | *addr &= PAGE_MASK; | ||
835 | /* | ||
836 | * People should not be passing in unaligned addresses: | ||
837 | */ | ||
838 | WARN_ON_ONCE(1); | ||
839 | } | ||
821 | } | 840 | } |
822 | 841 | ||
823 | /* Must avoid aliasing mappings in the highmem code */ | 842 | /* Must avoid aliasing mappings in the highmem code */ |
@@ -833,6 +852,7 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages, | |||
833 | arch_flush_lazy_mmu_mode(); | 852 | arch_flush_lazy_mmu_mode(); |
834 | 853 | ||
835 | cpa.vaddr = addr; | 854 | cpa.vaddr = addr; |
855 | cpa.pages = pages; | ||
836 | cpa.numpages = numpages; | 856 | cpa.numpages = numpages; |
837 | cpa.mask_set = mask_set; | 857 | cpa.mask_set = mask_set; |
838 | cpa.mask_clr = mask_clr; | 858 | cpa.mask_clr = mask_clr; |
@@ -840,8 +860,8 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages, | |||
840 | cpa.curpage = 0; | 860 | cpa.curpage = 0; |
841 | cpa.force_split = force_split; | 861 | cpa.force_split = force_split; |
842 | 862 | ||
843 | if (array) | 863 | if (in_flag & (CPA_ARRAY | CPA_PAGES_ARRAY)) |
844 | cpa.flags |= CPA_ARRAY; | 864 | cpa.flags |= in_flag; |
845 | 865 | ||
846 | /* No alias checking for _NX bit modifications */ | 866 | /* No alias checking for _NX bit modifications */ |
847 | checkalias = (pgprot_val(mask_set) | pgprot_val(mask_clr)) != _PAGE_NX; | 867 | checkalias = (pgprot_val(mask_set) | pgprot_val(mask_clr)) != _PAGE_NX; |
@@ -867,9 +887,10 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages, | |||
867 | * wbindv): | 887 | * wbindv): |
868 | */ | 888 | */ |
869 | if (!ret && cpu_has_clflush) { | 889 | if (!ret && cpu_has_clflush) { |
870 | if (cpa.flags & CPA_ARRAY) | 890 | if (cpa.flags & (CPA_PAGES_ARRAY | CPA_ARRAY)) { |
871 | cpa_flush_array(addr, numpages, cache); | 891 | cpa_flush_array(addr, numpages, cache, |
872 | else | 892 | cpa.flags, pages); |
893 | } else | ||
873 | cpa_flush_range(*addr, numpages, cache); | 894 | cpa_flush_range(*addr, numpages, cache); |
874 | } else | 895 | } else |
875 | cpa_flush_all(cache); | 896 | cpa_flush_all(cache); |
@@ -889,14 +910,28 @@ static inline int change_page_attr_set(unsigned long *addr, int numpages, | |||
889 | pgprot_t mask, int array) | 910 | pgprot_t mask, int array) |
890 | { | 911 | { |
891 | return change_page_attr_set_clr(addr, numpages, mask, __pgprot(0), 0, | 912 | return change_page_attr_set_clr(addr, numpages, mask, __pgprot(0), 0, |
892 | array); | 913 | (array ? CPA_ARRAY : 0), NULL); |
893 | } | 914 | } |
894 | 915 | ||
895 | static inline int change_page_attr_clear(unsigned long *addr, int numpages, | 916 | static inline int change_page_attr_clear(unsigned long *addr, int numpages, |
896 | pgprot_t mask, int array) | 917 | pgprot_t mask, int array) |
897 | { | 918 | { |
898 | return change_page_attr_set_clr(addr, numpages, __pgprot(0), mask, 0, | 919 | return change_page_attr_set_clr(addr, numpages, __pgprot(0), mask, 0, |
899 | array); | 920 | (array ? CPA_ARRAY : 0), NULL); |
921 | } | ||
922 | |||
923 | static inline int cpa_set_pages_array(struct page **pages, int numpages, | ||
924 | pgprot_t mask) | ||
925 | { | ||
926 | return change_page_attr_set_clr(NULL, numpages, mask, __pgprot(0), 0, | ||
927 | CPA_PAGES_ARRAY, pages); | ||
928 | } | ||
929 | |||
930 | static inline int cpa_clear_pages_array(struct page **pages, int numpages, | ||
931 | pgprot_t mask) | ||
932 | { | ||
933 | return change_page_attr_set_clr(NULL, numpages, __pgprot(0), mask, 0, | ||
934 | CPA_PAGES_ARRAY, pages); | ||
900 | } | 935 | } |
901 | 936 | ||
902 | int _set_memory_uc(unsigned long addr, int numpages) | 937 | int _set_memory_uc(unsigned long addr, int numpages) |
@@ -1044,7 +1079,7 @@ int set_memory_np(unsigned long addr, int numpages) | |||
1044 | int set_memory_4k(unsigned long addr, int numpages) | 1079 | int set_memory_4k(unsigned long addr, int numpages) |
1045 | { | 1080 | { |
1046 | return change_page_attr_set_clr(&addr, numpages, __pgprot(0), | 1081 | return change_page_attr_set_clr(&addr, numpages, __pgprot(0), |
1047 | __pgprot(0), 1, 0); | 1082 | __pgprot(0), 1, 0, NULL); |
1048 | } | 1083 | } |
1049 | 1084 | ||
1050 | int set_pages_uc(struct page *page, int numpages) | 1085 | int set_pages_uc(struct page *page, int numpages) |
@@ -1055,6 +1090,35 @@ int set_pages_uc(struct page *page, int numpages) | |||
1055 | } | 1090 | } |
1056 | EXPORT_SYMBOL(set_pages_uc); | 1091 | EXPORT_SYMBOL(set_pages_uc); |
1057 | 1092 | ||
1093 | int set_pages_array_uc(struct page **pages, int addrinarray) | ||
1094 | { | ||
1095 | unsigned long start; | ||
1096 | unsigned long end; | ||
1097 | int i; | ||
1098 | int free_idx; | ||
1099 | |||
1100 | for (i = 0; i < addrinarray; i++) { | ||
1101 | start = (unsigned long)page_address(pages[i]); | ||
1102 | end = start + PAGE_SIZE; | ||
1103 | if (reserve_memtype(start, end, _PAGE_CACHE_UC_MINUS, NULL)) | ||
1104 | goto err_out; | ||
1105 | } | ||
1106 | |||
1107 | if (cpa_set_pages_array(pages, addrinarray, | ||
1108 | __pgprot(_PAGE_CACHE_UC_MINUS)) == 0) { | ||
1109 | return 0; /* Success */ | ||
1110 | } | ||
1111 | err_out: | ||
1112 | free_idx = i; | ||
1113 | for (i = 0; i < free_idx; i++) { | ||
1114 | start = (unsigned long)page_address(pages[i]); | ||
1115 | end = start + PAGE_SIZE; | ||
1116 | free_memtype(start, end); | ||
1117 | } | ||
1118 | return -EINVAL; | ||
1119 | } | ||
1120 | EXPORT_SYMBOL(set_pages_array_uc); | ||
1121 | |||
1058 | int set_pages_wb(struct page *page, int numpages) | 1122 | int set_pages_wb(struct page *page, int numpages) |
1059 | { | 1123 | { |
1060 | unsigned long addr = (unsigned long)page_address(page); | 1124 | unsigned long addr = (unsigned long)page_address(page); |
@@ -1063,6 +1127,26 @@ int set_pages_wb(struct page *page, int numpages) | |||
1063 | } | 1127 | } |
1064 | EXPORT_SYMBOL(set_pages_wb); | 1128 | EXPORT_SYMBOL(set_pages_wb); |
1065 | 1129 | ||
1130 | int set_pages_array_wb(struct page **pages, int addrinarray) | ||
1131 | { | ||
1132 | int retval; | ||
1133 | unsigned long start; | ||
1134 | unsigned long end; | ||
1135 | int i; | ||
1136 | |||
1137 | retval = cpa_clear_pages_array(pages, addrinarray, | ||
1138 | __pgprot(_PAGE_CACHE_MASK)); | ||
1139 | |||
1140 | for (i = 0; i < addrinarray; i++) { | ||
1141 | start = (unsigned long)page_address(pages[i]); | ||
1142 | end = start + PAGE_SIZE; | ||
1143 | free_memtype(start, end); | ||
1144 | } | ||
1145 | |||
1146 | return retval; | ||
1147 | } | ||
1148 | EXPORT_SYMBOL(set_pages_array_wb); | ||
1149 | |||
1066 | int set_pages_x(struct page *page, int numpages) | 1150 | int set_pages_x(struct page *page, int numpages) |
1067 | { | 1151 | { |
1068 | unsigned long addr = (unsigned long)page_address(page); | 1152 | unsigned long addr = (unsigned long)page_address(page); |
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c index 5ead808dd70c..f234a37bd428 100644 --- a/arch/x86/pci/i386.c +++ b/arch/x86/pci/i386.c | |||
@@ -319,6 +319,9 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
319 | return -EINVAL; | 319 | return -EINVAL; |
320 | } | 320 | } |
321 | flags = new_flags; | 321 | flags = new_flags; |
322 | vma->vm_page_prot = __pgprot( | ||
323 | (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK) | | ||
324 | flags); | ||
322 | } | 325 | } |
323 | 326 | ||
324 | if (((vma->vm_pgoff < max_low_pfn_mapped) || | 327 | if (((vma->vm_pgoff < max_low_pfn_mapped) || |