diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-15 19:06:15 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-15 19:06:15 -0500 |
commit | 66d466722c39f663b2bbeb44ba4f9419a548fa23 (patch) | |
tree | c88df3dac15b7ef03f58a553fc42f9324d43dac0 | |
parent | 991688bfc63550b8c7ab9fb1de2feb44e3071d29 (diff) | |
parent | ed141f2890cdb738fc7131367f5fb15632bc3e60 (diff) |
Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
Pull ARM updates from Russell King:
- an update for clkdev registration error detection to simplify users
- add cpu capacity parsing from DT
- support for larger cachelines found on UniPhier caches
- documentation for udelay constants
- properly tag assembly function declarations
- remove unnecessary indirection of asm/mach-types.h
- switch to syscall table based generation to simplify future additions
of system calls, along with correpsonding commit for pkey syscalls
- remove redundant sa1101 header file
- RONX protect modules when they're in the vmalloc region
* 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
ARM: mm: allow set_memory_*() to be used on the vmalloc region
ARM: mm: fix set_memory_*() bounds checks
ARM: 8631/1: clkdev: Detect errors in clk_hw_register_clkdev() for mass registration
ARM: 8629/1: vfp: properly tag assembly function declarations in C code
ARM: 8622/3: add sysfs cpu_capacity attribute
ARM: 8621/3: parse cpu capacity-dmips-mhz from DT
ARM: 8623/1: mm: add ARM_L1_CACHE_SHIFT_7 for UniPhier outer cache
ARM: Update mach-types
ARM: sa1100: remove SA-1101 header file
ARM: 8619/1: udelay: document the various constants
ARM: wire up new pkey syscalls
ARM: convert to generated system call tables
ARM: remove indirection of asm/mach-types.h
-rw-r--r-- | arch/arm/Makefile | 5 | ||||
-rw-r--r-- | arch/arm/include/asm/Kbuild | 3 | ||||
-rw-r--r-- | arch/arm/include/asm/delay.h | 27 | ||||
-rw-r--r-- | arch/arm/include/asm/mach-types.h | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/unistd.h | 26 | ||||
-rw-r--r-- | arch/arm/include/uapi/asm/Kbuild | 3 | ||||
-rw-r--r-- | arch/arm/include/uapi/asm/unistd.h | 424 | ||||
-rw-r--r-- | arch/arm/kernel/calls.S | 415 | ||||
-rw-r--r-- | arch/arm/kernel/entry-common.S | 76 | ||||
-rw-r--r-- | arch/arm/kernel/topology.c | 220 | ||||
-rw-r--r-- | arch/arm/lib/delay-loop.S | 15 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/include/mach/SA-1101.h | 925 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/include/mach/hardware.h | 4 | ||||
-rw-r--r-- | arch/arm/mm/Kconfig | 8 | ||||
-rw-r--r-- | arch/arm/mm/pageattr.c | 27 | ||||
-rw-r--r-- | arch/arm/tools/Makefile | 68 | ||||
-rw-r--r-- | arch/arm/tools/mach-types | 516 | ||||
-rw-r--r-- | arch/arm/tools/syscall.tbl | 413 | ||||
-rw-r--r-- | arch/arm/tools/syscallhdr.sh | 30 | ||||
-rw-r--r-- | arch/arm/tools/syscallnr.sh | 33 | ||||
-rw-r--r-- | arch/arm/tools/syscalltbl.sh | 21 | ||||
-rw-r--r-- | arch/arm/vfp/vfp.h | 10 | ||||
-rw-r--r-- | arch/arm/vfp/vfpmodule.c | 8 | ||||
-rw-r--r-- | drivers/clk/clkdev.c | 8 |
24 files changed, 986 insertions, 2300 deletions
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 68312a9f660a..ab30cc634d02 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -312,8 +312,11 @@ all: $(KBUILD_IMAGE) $(KBUILD_DTBS) | |||
312 | 312 | ||
313 | boot := arch/arm/boot | 313 | boot := arch/arm/boot |
314 | 314 | ||
315 | archheaders: | ||
316 | $(Q)$(MAKE) $(build)=arch/arm/tools uapi | ||
317 | |||
315 | archprepare: | 318 | archprepare: |
316 | $(Q)$(MAKE) $(build)=arch/arm/tools include/generated/mach-types.h | 319 | $(Q)$(MAKE) $(build)=arch/arm/tools kapi |
317 | 320 | ||
318 | # Convert bzImage to zImage | 321 | # Convert bzImage to zImage |
319 | bzImage: zImage | 322 | bzImage: zImage |
diff --git a/arch/arm/include/asm/Kbuild b/arch/arm/include/asm/Kbuild index 55e0e3ea9cb6..efb21757d41f 100644 --- a/arch/arm/include/asm/Kbuild +++ b/arch/arm/include/asm/Kbuild | |||
@@ -38,3 +38,6 @@ generic-y += termios.h | |||
38 | generic-y += timex.h | 38 | generic-y += timex.h |
39 | generic-y += trace_clock.h | 39 | generic-y += trace_clock.h |
40 | generic-y += unaligned.h | 40 | generic-y += unaligned.h |
41 | |||
42 | generated-y += mach-types.h | ||
43 | generated-y += unistd-nr.h | ||
diff --git a/arch/arm/include/asm/delay.h b/arch/arm/include/asm/delay.h index b1ce037e4380..e986b7f717c4 100644 --- a/arch/arm/include/asm/delay.h +++ b/arch/arm/include/asm/delay.h | |||
@@ -9,6 +9,33 @@ | |||
9 | #include <asm/memory.h> | 9 | #include <asm/memory.h> |
10 | #include <asm/param.h> /* HZ */ | 10 | #include <asm/param.h> /* HZ */ |
11 | 11 | ||
12 | /* | ||
13 | * Loop (or tick) based delay: | ||
14 | * | ||
15 | * loops = loops_per_jiffy * jiffies_per_sec * delay_us / us_per_sec | ||
16 | * | ||
17 | * where: | ||
18 | * | ||
19 | * jiffies_per_sec = HZ | ||
20 | * us_per_sec = 1000000 | ||
21 | * | ||
22 | * Therefore the constant part is HZ / 1000000 which is a small | ||
23 | * fractional number. To make this usable with integer math, we | ||
24 | * scale up this constant by 2^31, perform the actual multiplication, | ||
25 | * and scale the result back down by 2^31 with a simple shift: | ||
26 | * | ||
27 | * loops = (loops_per_jiffy * delay_us * UDELAY_MULT) >> 31 | ||
28 | * | ||
29 | * where: | ||
30 | * | ||
31 | * UDELAY_MULT = 2^31 * HZ / 1000000 | ||
32 | * = (2^31 / 1000000) * HZ | ||
33 | * = 2147.483648 * HZ | ||
34 | * = 2147 * HZ + 483648 * HZ / 1000000 | ||
35 | * | ||
36 | * 31 is the biggest scale shift value that won't overflow 32 bits for | ||
37 | * delay_us * UDELAY_MULT assuming HZ <= 1000 and delay_us <= 2000. | ||
38 | */ | ||
12 | #define MAX_UDELAY_MS 2 | 39 | #define MAX_UDELAY_MS 2 |
13 | #define UDELAY_MULT UL(2147 * HZ + 483648 * HZ / 1000000) | 40 | #define UDELAY_MULT UL(2147 * HZ + 483648 * HZ / 1000000) |
14 | #define UDELAY_SHIFT 31 | 41 | #define UDELAY_SHIFT 31 |
diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h deleted file mode 100644 index 948178cc6ba8..000000000000 --- a/arch/arm/include/asm/mach-types.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <generated/mach-types.h> | ||
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h index ada0d29a660f..076090d2dbf5 100644 --- a/arch/arm/include/asm/unistd.h +++ b/arch/arm/include/asm/unistd.h | |||
@@ -14,12 +14,7 @@ | |||
14 | #define __ASM_ARM_UNISTD_H | 14 | #define __ASM_ARM_UNISTD_H |
15 | 15 | ||
16 | #include <uapi/asm/unistd.h> | 16 | #include <uapi/asm/unistd.h> |
17 | 17 | #include <asm/unistd-nr.h> | |
18 | /* | ||
19 | * This may need to be greater than __NR_last_syscall+1 in order to | ||
20 | * account for the padding in the syscall table | ||
21 | */ | ||
22 | #define __NR_syscalls (400) | ||
23 | 18 | ||
24 | #define __ARCH_WANT_STAT64 | 19 | #define __ARCH_WANT_STAT64 |
25 | #define __ARCH_WANT_SYS_GETHOSTNAME | 20 | #define __ARCH_WANT_SYS_GETHOSTNAME |
@@ -52,4 +47,23 @@ | |||
52 | #define __IGNORE_fadvise64_64 | 47 | #define __IGNORE_fadvise64_64 |
53 | #define __IGNORE_migrate_pages | 48 | #define __IGNORE_migrate_pages |
54 | 49 | ||
50 | #ifdef __ARM_EABI__ | ||
51 | /* | ||
52 | * The following syscalls are obsolete and no longer available for EABI: | ||
53 | * __NR_time | ||
54 | * __NR_umount | ||
55 | * __NR_stime | ||
56 | * __NR_alarm | ||
57 | * __NR_utime | ||
58 | * __NR_getrlimit | ||
59 | * __NR_select | ||
60 | * __NR_readdir | ||
61 | * __NR_mmap | ||
62 | * __NR_socketcall | ||
63 | * __NR_syscall | ||
64 | * __NR_ipc | ||
65 | */ | ||
66 | #define __IGNORE_getrlimit | ||
67 | #endif | ||
68 | |||
55 | #endif /* __ASM_ARM_UNISTD_H */ | 69 | #endif /* __ASM_ARM_UNISTD_H */ |
diff --git a/arch/arm/include/uapi/asm/Kbuild b/arch/arm/include/uapi/asm/Kbuild index a1c05f93d920..46a76cd6acb6 100644 --- a/arch/arm/include/uapi/asm/Kbuild +++ b/arch/arm/include/uapi/asm/Kbuild | |||
@@ -18,3 +18,6 @@ header-y += stat.h | |||
18 | header-y += statfs.h | 18 | header-y += statfs.h |
19 | header-y += swab.h | 19 | header-y += swab.h |
20 | header-y += unistd.h | 20 | header-y += unistd.h |
21 | genhdr-y += unistd-common.h | ||
22 | genhdr-y += unistd-oabi.h | ||
23 | genhdr-y += unistd-eabi.h | ||
diff --git a/arch/arm/include/uapi/asm/unistd.h b/arch/arm/include/uapi/asm/unistd.h index 314100a06ccb..28bd456494a3 100644 --- a/arch/arm/include/uapi/asm/unistd.h +++ b/arch/arm/include/uapi/asm/unistd.h | |||
@@ -17,412 +17,14 @@ | |||
17 | 17 | ||
18 | #if defined(__thumb__) || defined(__ARM_EABI__) | 18 | #if defined(__thumb__) || defined(__ARM_EABI__) |
19 | #define __NR_SYSCALL_BASE 0 | 19 | #define __NR_SYSCALL_BASE 0 |
20 | #include <asm/unistd-eabi.h> | ||
20 | #else | 21 | #else |
21 | #define __NR_SYSCALL_BASE __NR_OABI_SYSCALL_BASE | 22 | #define __NR_SYSCALL_BASE __NR_OABI_SYSCALL_BASE |
23 | #include <asm/unistd-oabi.h> | ||
22 | #endif | 24 | #endif |
23 | 25 | ||
24 | /* | 26 | #include <asm/unistd-common.h> |
25 | * This file contains the system call numbers. | ||
26 | */ | ||
27 | |||
28 | #define __NR_restart_syscall (__NR_SYSCALL_BASE+ 0) | ||
29 | #define __NR_exit (__NR_SYSCALL_BASE+ 1) | ||
30 | #define __NR_fork (__NR_SYSCALL_BASE+ 2) | ||
31 | #define __NR_read (__NR_SYSCALL_BASE+ 3) | ||
32 | #define __NR_write (__NR_SYSCALL_BASE+ 4) | ||
33 | #define __NR_open (__NR_SYSCALL_BASE+ 5) | ||
34 | #define __NR_close (__NR_SYSCALL_BASE+ 6) | ||
35 | /* 7 was sys_waitpid */ | ||
36 | #define __NR_creat (__NR_SYSCALL_BASE+ 8) | ||
37 | #define __NR_link (__NR_SYSCALL_BASE+ 9) | ||
38 | #define __NR_unlink (__NR_SYSCALL_BASE+ 10) | ||
39 | #define __NR_execve (__NR_SYSCALL_BASE+ 11) | ||
40 | #define __NR_chdir (__NR_SYSCALL_BASE+ 12) | ||
41 | #define __NR_time (__NR_SYSCALL_BASE+ 13) | ||
42 | #define __NR_mknod (__NR_SYSCALL_BASE+ 14) | ||
43 | #define __NR_chmod (__NR_SYSCALL_BASE+ 15) | ||
44 | #define __NR_lchown (__NR_SYSCALL_BASE+ 16) | ||
45 | /* 17 was sys_break */ | ||
46 | /* 18 was sys_stat */ | ||
47 | #define __NR_lseek (__NR_SYSCALL_BASE+ 19) | ||
48 | #define __NR_getpid (__NR_SYSCALL_BASE+ 20) | ||
49 | #define __NR_mount (__NR_SYSCALL_BASE+ 21) | ||
50 | #define __NR_umount (__NR_SYSCALL_BASE+ 22) | ||
51 | #define __NR_setuid (__NR_SYSCALL_BASE+ 23) | ||
52 | #define __NR_getuid (__NR_SYSCALL_BASE+ 24) | ||
53 | #define __NR_stime (__NR_SYSCALL_BASE+ 25) | ||
54 | #define __NR_ptrace (__NR_SYSCALL_BASE+ 26) | ||
55 | #define __NR_alarm (__NR_SYSCALL_BASE+ 27) | ||
56 | /* 28 was sys_fstat */ | ||
57 | #define __NR_pause (__NR_SYSCALL_BASE+ 29) | ||
58 | #define __NR_utime (__NR_SYSCALL_BASE+ 30) | ||
59 | /* 31 was sys_stty */ | ||
60 | /* 32 was sys_gtty */ | ||
61 | #define __NR_access (__NR_SYSCALL_BASE+ 33) | ||
62 | #define __NR_nice (__NR_SYSCALL_BASE+ 34) | ||
63 | /* 35 was sys_ftime */ | ||
64 | #define __NR_sync (__NR_SYSCALL_BASE+ 36) | ||
65 | #define __NR_kill (__NR_SYSCALL_BASE+ 37) | ||
66 | #define __NR_rename (__NR_SYSCALL_BASE+ 38) | ||
67 | #define __NR_mkdir (__NR_SYSCALL_BASE+ 39) | ||
68 | #define __NR_rmdir (__NR_SYSCALL_BASE+ 40) | ||
69 | #define __NR_dup (__NR_SYSCALL_BASE+ 41) | ||
70 | #define __NR_pipe (__NR_SYSCALL_BASE+ 42) | ||
71 | #define __NR_times (__NR_SYSCALL_BASE+ 43) | ||
72 | /* 44 was sys_prof */ | ||
73 | #define __NR_brk (__NR_SYSCALL_BASE+ 45) | ||
74 | #define __NR_setgid (__NR_SYSCALL_BASE+ 46) | ||
75 | #define __NR_getgid (__NR_SYSCALL_BASE+ 47) | ||
76 | /* 48 was sys_signal */ | ||
77 | #define __NR_geteuid (__NR_SYSCALL_BASE+ 49) | ||
78 | #define __NR_getegid (__NR_SYSCALL_BASE+ 50) | ||
79 | #define __NR_acct (__NR_SYSCALL_BASE+ 51) | ||
80 | #define __NR_umount2 (__NR_SYSCALL_BASE+ 52) | ||
81 | /* 53 was sys_lock */ | ||
82 | #define __NR_ioctl (__NR_SYSCALL_BASE+ 54) | ||
83 | #define __NR_fcntl (__NR_SYSCALL_BASE+ 55) | ||
84 | /* 56 was sys_mpx */ | ||
85 | #define __NR_setpgid (__NR_SYSCALL_BASE+ 57) | ||
86 | /* 58 was sys_ulimit */ | ||
87 | /* 59 was sys_olduname */ | ||
88 | #define __NR_umask (__NR_SYSCALL_BASE+ 60) | ||
89 | #define __NR_chroot (__NR_SYSCALL_BASE+ 61) | ||
90 | #define __NR_ustat (__NR_SYSCALL_BASE+ 62) | ||
91 | #define __NR_dup2 (__NR_SYSCALL_BASE+ 63) | ||
92 | #define __NR_getppid (__NR_SYSCALL_BASE+ 64) | ||
93 | #define __NR_getpgrp (__NR_SYSCALL_BASE+ 65) | ||
94 | #define __NR_setsid (__NR_SYSCALL_BASE+ 66) | ||
95 | #define __NR_sigaction (__NR_SYSCALL_BASE+ 67) | ||
96 | /* 68 was sys_sgetmask */ | ||
97 | /* 69 was sys_ssetmask */ | ||
98 | #define __NR_setreuid (__NR_SYSCALL_BASE+ 70) | ||
99 | #define __NR_setregid (__NR_SYSCALL_BASE+ 71) | ||
100 | #define __NR_sigsuspend (__NR_SYSCALL_BASE+ 72) | ||
101 | #define __NR_sigpending (__NR_SYSCALL_BASE+ 73) | ||
102 | #define __NR_sethostname (__NR_SYSCALL_BASE+ 74) | ||
103 | #define __NR_setrlimit (__NR_SYSCALL_BASE+ 75) | ||
104 | #define __NR_getrlimit (__NR_SYSCALL_BASE+ 76) /* Back compat 2GB limited rlimit */ | ||
105 | #define __NR_getrusage (__NR_SYSCALL_BASE+ 77) | ||
106 | #define __NR_gettimeofday (__NR_SYSCALL_BASE+ 78) | ||
107 | #define __NR_settimeofday (__NR_SYSCALL_BASE+ 79) | ||
108 | #define __NR_getgroups (__NR_SYSCALL_BASE+ 80) | ||
109 | #define __NR_setgroups (__NR_SYSCALL_BASE+ 81) | ||
110 | #define __NR_select (__NR_SYSCALL_BASE+ 82) | ||
111 | #define __NR_symlink (__NR_SYSCALL_BASE+ 83) | ||
112 | /* 84 was sys_lstat */ | ||
113 | #define __NR_readlink (__NR_SYSCALL_BASE+ 85) | ||
114 | #define __NR_uselib (__NR_SYSCALL_BASE+ 86) | ||
115 | #define __NR_swapon (__NR_SYSCALL_BASE+ 87) | ||
116 | #define __NR_reboot (__NR_SYSCALL_BASE+ 88) | ||
117 | #define __NR_readdir (__NR_SYSCALL_BASE+ 89) | ||
118 | #define __NR_mmap (__NR_SYSCALL_BASE+ 90) | ||
119 | #define __NR_munmap (__NR_SYSCALL_BASE+ 91) | ||
120 | #define __NR_truncate (__NR_SYSCALL_BASE+ 92) | ||
121 | #define __NR_ftruncate (__NR_SYSCALL_BASE+ 93) | ||
122 | #define __NR_fchmod (__NR_SYSCALL_BASE+ 94) | ||
123 | #define __NR_fchown (__NR_SYSCALL_BASE+ 95) | ||
124 | #define __NR_getpriority (__NR_SYSCALL_BASE+ 96) | ||
125 | #define __NR_setpriority (__NR_SYSCALL_BASE+ 97) | ||
126 | /* 98 was sys_profil */ | ||
127 | #define __NR_statfs (__NR_SYSCALL_BASE+ 99) | ||
128 | #define __NR_fstatfs (__NR_SYSCALL_BASE+100) | ||
129 | /* 101 was sys_ioperm */ | ||
130 | #define __NR_socketcall (__NR_SYSCALL_BASE+102) | ||
131 | #define __NR_syslog (__NR_SYSCALL_BASE+103) | ||
132 | #define __NR_setitimer (__NR_SYSCALL_BASE+104) | ||
133 | #define __NR_getitimer (__NR_SYSCALL_BASE+105) | ||
134 | #define __NR_stat (__NR_SYSCALL_BASE+106) | ||
135 | #define __NR_lstat (__NR_SYSCALL_BASE+107) | ||
136 | #define __NR_fstat (__NR_SYSCALL_BASE+108) | ||
137 | /* 109 was sys_uname */ | ||
138 | /* 110 was sys_iopl */ | ||
139 | #define __NR_vhangup (__NR_SYSCALL_BASE+111) | ||
140 | /* 112 was sys_idle */ | ||
141 | #define __NR_syscall (__NR_SYSCALL_BASE+113) /* syscall to call a syscall! */ | ||
142 | #define __NR_wait4 (__NR_SYSCALL_BASE+114) | ||
143 | #define __NR_swapoff (__NR_SYSCALL_BASE+115) | ||
144 | #define __NR_sysinfo (__NR_SYSCALL_BASE+116) | ||
145 | #define __NR_ipc (__NR_SYSCALL_BASE+117) | ||
146 | #define __NR_fsync (__NR_SYSCALL_BASE+118) | ||
147 | #define __NR_sigreturn (__NR_SYSCALL_BASE+119) | ||
148 | #define __NR_clone (__NR_SYSCALL_BASE+120) | ||
149 | #define __NR_setdomainname (__NR_SYSCALL_BASE+121) | ||
150 | #define __NR_uname (__NR_SYSCALL_BASE+122) | ||
151 | /* 123 was sys_modify_ldt */ | ||
152 | #define __NR_adjtimex (__NR_SYSCALL_BASE+124) | ||
153 | #define __NR_mprotect (__NR_SYSCALL_BASE+125) | ||
154 | #define __NR_sigprocmask (__NR_SYSCALL_BASE+126) | ||
155 | /* 127 was sys_create_module */ | ||
156 | #define __NR_init_module (__NR_SYSCALL_BASE+128) | ||
157 | #define __NR_delete_module (__NR_SYSCALL_BASE+129) | ||
158 | /* 130 was sys_get_kernel_syms */ | ||
159 | #define __NR_quotactl (__NR_SYSCALL_BASE+131) | ||
160 | #define __NR_getpgid (__NR_SYSCALL_BASE+132) | ||
161 | #define __NR_fchdir (__NR_SYSCALL_BASE+133) | ||
162 | #define __NR_bdflush (__NR_SYSCALL_BASE+134) | ||
163 | #define __NR_sysfs (__NR_SYSCALL_BASE+135) | ||
164 | #define __NR_personality (__NR_SYSCALL_BASE+136) | ||
165 | /* 137 was sys_afs_syscall */ | ||
166 | #define __NR_setfsuid (__NR_SYSCALL_BASE+138) | ||
167 | #define __NR_setfsgid (__NR_SYSCALL_BASE+139) | ||
168 | #define __NR__llseek (__NR_SYSCALL_BASE+140) | ||
169 | #define __NR_getdents (__NR_SYSCALL_BASE+141) | ||
170 | #define __NR__newselect (__NR_SYSCALL_BASE+142) | ||
171 | #define __NR_flock (__NR_SYSCALL_BASE+143) | ||
172 | #define __NR_msync (__NR_SYSCALL_BASE+144) | ||
173 | #define __NR_readv (__NR_SYSCALL_BASE+145) | ||
174 | #define __NR_writev (__NR_SYSCALL_BASE+146) | ||
175 | #define __NR_getsid (__NR_SYSCALL_BASE+147) | ||
176 | #define __NR_fdatasync (__NR_SYSCALL_BASE+148) | ||
177 | #define __NR__sysctl (__NR_SYSCALL_BASE+149) | ||
178 | #define __NR_mlock (__NR_SYSCALL_BASE+150) | ||
179 | #define __NR_munlock (__NR_SYSCALL_BASE+151) | ||
180 | #define __NR_mlockall (__NR_SYSCALL_BASE+152) | ||
181 | #define __NR_munlockall (__NR_SYSCALL_BASE+153) | ||
182 | #define __NR_sched_setparam (__NR_SYSCALL_BASE+154) | ||
183 | #define __NR_sched_getparam (__NR_SYSCALL_BASE+155) | ||
184 | #define __NR_sched_setscheduler (__NR_SYSCALL_BASE+156) | ||
185 | #define __NR_sched_getscheduler (__NR_SYSCALL_BASE+157) | ||
186 | #define __NR_sched_yield (__NR_SYSCALL_BASE+158) | ||
187 | #define __NR_sched_get_priority_max (__NR_SYSCALL_BASE+159) | ||
188 | #define __NR_sched_get_priority_min (__NR_SYSCALL_BASE+160) | ||
189 | #define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE+161) | ||
190 | #define __NR_nanosleep (__NR_SYSCALL_BASE+162) | ||
191 | #define __NR_mremap (__NR_SYSCALL_BASE+163) | ||
192 | #define __NR_setresuid (__NR_SYSCALL_BASE+164) | ||
193 | #define __NR_getresuid (__NR_SYSCALL_BASE+165) | ||
194 | /* 166 was sys_vm86 */ | ||
195 | /* 167 was sys_query_module */ | ||
196 | #define __NR_poll (__NR_SYSCALL_BASE+168) | ||
197 | #define __NR_nfsservctl (__NR_SYSCALL_BASE+169) | ||
198 | #define __NR_setresgid (__NR_SYSCALL_BASE+170) | ||
199 | #define __NR_getresgid (__NR_SYSCALL_BASE+171) | ||
200 | #define __NR_prctl (__NR_SYSCALL_BASE+172) | ||
201 | #define __NR_rt_sigreturn (__NR_SYSCALL_BASE+173) | ||
202 | #define __NR_rt_sigaction (__NR_SYSCALL_BASE+174) | ||
203 | #define __NR_rt_sigprocmask (__NR_SYSCALL_BASE+175) | ||
204 | #define __NR_rt_sigpending (__NR_SYSCALL_BASE+176) | ||
205 | #define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE+177) | ||
206 | #define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE+178) | ||
207 | #define __NR_rt_sigsuspend (__NR_SYSCALL_BASE+179) | ||
208 | #define __NR_pread64 (__NR_SYSCALL_BASE+180) | ||
209 | #define __NR_pwrite64 (__NR_SYSCALL_BASE+181) | ||
210 | #define __NR_chown (__NR_SYSCALL_BASE+182) | ||
211 | #define __NR_getcwd (__NR_SYSCALL_BASE+183) | ||
212 | #define __NR_capget (__NR_SYSCALL_BASE+184) | ||
213 | #define __NR_capset (__NR_SYSCALL_BASE+185) | ||
214 | #define __NR_sigaltstack (__NR_SYSCALL_BASE+186) | ||
215 | #define __NR_sendfile (__NR_SYSCALL_BASE+187) | ||
216 | /* 188 reserved */ | ||
217 | /* 189 reserved */ | ||
218 | #define __NR_vfork (__NR_SYSCALL_BASE+190) | ||
219 | #define __NR_ugetrlimit (__NR_SYSCALL_BASE+191) /* SuS compliant getrlimit */ | ||
220 | #define __NR_mmap2 (__NR_SYSCALL_BASE+192) | ||
221 | #define __NR_truncate64 (__NR_SYSCALL_BASE+193) | ||
222 | #define __NR_ftruncate64 (__NR_SYSCALL_BASE+194) | ||
223 | #define __NR_stat64 (__NR_SYSCALL_BASE+195) | ||
224 | #define __NR_lstat64 (__NR_SYSCALL_BASE+196) | ||
225 | #define __NR_fstat64 (__NR_SYSCALL_BASE+197) | ||
226 | #define __NR_lchown32 (__NR_SYSCALL_BASE+198) | ||
227 | #define __NR_getuid32 (__NR_SYSCALL_BASE+199) | ||
228 | #define __NR_getgid32 (__NR_SYSCALL_BASE+200) | ||
229 | #define __NR_geteuid32 (__NR_SYSCALL_BASE+201) | ||
230 | #define __NR_getegid32 (__NR_SYSCALL_BASE+202) | ||
231 | #define __NR_setreuid32 (__NR_SYSCALL_BASE+203) | ||
232 | #define __NR_setregid32 (__NR_SYSCALL_BASE+204) | ||
233 | #define __NR_getgroups32 (__NR_SYSCALL_BASE+205) | ||
234 | #define __NR_setgroups32 (__NR_SYSCALL_BASE+206) | ||
235 | #define __NR_fchown32 (__NR_SYSCALL_BASE+207) | ||
236 | #define __NR_setresuid32 (__NR_SYSCALL_BASE+208) | ||
237 | #define __NR_getresuid32 (__NR_SYSCALL_BASE+209) | ||
238 | #define __NR_setresgid32 (__NR_SYSCALL_BASE+210) | ||
239 | #define __NR_getresgid32 (__NR_SYSCALL_BASE+211) | ||
240 | #define __NR_chown32 (__NR_SYSCALL_BASE+212) | ||
241 | #define __NR_setuid32 (__NR_SYSCALL_BASE+213) | ||
242 | #define __NR_setgid32 (__NR_SYSCALL_BASE+214) | ||
243 | #define __NR_setfsuid32 (__NR_SYSCALL_BASE+215) | ||
244 | #define __NR_setfsgid32 (__NR_SYSCALL_BASE+216) | ||
245 | #define __NR_getdents64 (__NR_SYSCALL_BASE+217) | ||
246 | #define __NR_pivot_root (__NR_SYSCALL_BASE+218) | ||
247 | #define __NR_mincore (__NR_SYSCALL_BASE+219) | ||
248 | #define __NR_madvise (__NR_SYSCALL_BASE+220) | ||
249 | #define __NR_fcntl64 (__NR_SYSCALL_BASE+221) | ||
250 | /* 222 for tux */ | ||
251 | /* 223 is unused */ | ||
252 | #define __NR_gettid (__NR_SYSCALL_BASE+224) | ||
253 | #define __NR_readahead (__NR_SYSCALL_BASE+225) | ||
254 | #define __NR_setxattr (__NR_SYSCALL_BASE+226) | ||
255 | #define __NR_lsetxattr (__NR_SYSCALL_BASE+227) | ||
256 | #define __NR_fsetxattr (__NR_SYSCALL_BASE+228) | ||
257 | #define __NR_getxattr (__NR_SYSCALL_BASE+229) | ||
258 | #define __NR_lgetxattr (__NR_SYSCALL_BASE+230) | ||
259 | #define __NR_fgetxattr (__NR_SYSCALL_BASE+231) | ||
260 | #define __NR_listxattr (__NR_SYSCALL_BASE+232) | ||
261 | #define __NR_llistxattr (__NR_SYSCALL_BASE+233) | ||
262 | #define __NR_flistxattr (__NR_SYSCALL_BASE+234) | ||
263 | #define __NR_removexattr (__NR_SYSCALL_BASE+235) | ||
264 | #define __NR_lremovexattr (__NR_SYSCALL_BASE+236) | ||
265 | #define __NR_fremovexattr (__NR_SYSCALL_BASE+237) | ||
266 | #define __NR_tkill (__NR_SYSCALL_BASE+238) | ||
267 | #define __NR_sendfile64 (__NR_SYSCALL_BASE+239) | ||
268 | #define __NR_futex (__NR_SYSCALL_BASE+240) | ||
269 | #define __NR_sched_setaffinity (__NR_SYSCALL_BASE+241) | ||
270 | #define __NR_sched_getaffinity (__NR_SYSCALL_BASE+242) | ||
271 | #define __NR_io_setup (__NR_SYSCALL_BASE+243) | ||
272 | #define __NR_io_destroy (__NR_SYSCALL_BASE+244) | ||
273 | #define __NR_io_getevents (__NR_SYSCALL_BASE+245) | ||
274 | #define __NR_io_submit (__NR_SYSCALL_BASE+246) | ||
275 | #define __NR_io_cancel (__NR_SYSCALL_BASE+247) | ||
276 | #define __NR_exit_group (__NR_SYSCALL_BASE+248) | ||
277 | #define __NR_lookup_dcookie (__NR_SYSCALL_BASE+249) | ||
278 | #define __NR_epoll_create (__NR_SYSCALL_BASE+250) | ||
279 | #define __NR_epoll_ctl (__NR_SYSCALL_BASE+251) | ||
280 | #define __NR_epoll_wait (__NR_SYSCALL_BASE+252) | ||
281 | #define __NR_remap_file_pages (__NR_SYSCALL_BASE+253) | ||
282 | /* 254 for set_thread_area */ | ||
283 | /* 255 for get_thread_area */ | ||
284 | #define __NR_set_tid_address (__NR_SYSCALL_BASE+256) | ||
285 | #define __NR_timer_create (__NR_SYSCALL_BASE+257) | ||
286 | #define __NR_timer_settime (__NR_SYSCALL_BASE+258) | ||
287 | #define __NR_timer_gettime (__NR_SYSCALL_BASE+259) | ||
288 | #define __NR_timer_getoverrun (__NR_SYSCALL_BASE+260) | ||
289 | #define __NR_timer_delete (__NR_SYSCALL_BASE+261) | ||
290 | #define __NR_clock_settime (__NR_SYSCALL_BASE+262) | ||
291 | #define __NR_clock_gettime (__NR_SYSCALL_BASE+263) | ||
292 | #define __NR_clock_getres (__NR_SYSCALL_BASE+264) | ||
293 | #define __NR_clock_nanosleep (__NR_SYSCALL_BASE+265) | ||
294 | #define __NR_statfs64 (__NR_SYSCALL_BASE+266) | ||
295 | #define __NR_fstatfs64 (__NR_SYSCALL_BASE+267) | ||
296 | #define __NR_tgkill (__NR_SYSCALL_BASE+268) | ||
297 | #define __NR_utimes (__NR_SYSCALL_BASE+269) | ||
298 | #define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE+270) | ||
299 | #define __NR_pciconfig_iobase (__NR_SYSCALL_BASE+271) | ||
300 | #define __NR_pciconfig_read (__NR_SYSCALL_BASE+272) | ||
301 | #define __NR_pciconfig_write (__NR_SYSCALL_BASE+273) | ||
302 | #define __NR_mq_open (__NR_SYSCALL_BASE+274) | ||
303 | #define __NR_mq_unlink (__NR_SYSCALL_BASE+275) | ||
304 | #define __NR_mq_timedsend (__NR_SYSCALL_BASE+276) | ||
305 | #define __NR_mq_timedreceive (__NR_SYSCALL_BASE+277) | ||
306 | #define __NR_mq_notify (__NR_SYSCALL_BASE+278) | ||
307 | #define __NR_mq_getsetattr (__NR_SYSCALL_BASE+279) | ||
308 | #define __NR_waitid (__NR_SYSCALL_BASE+280) | ||
309 | #define __NR_socket (__NR_SYSCALL_BASE+281) | ||
310 | #define __NR_bind (__NR_SYSCALL_BASE+282) | ||
311 | #define __NR_connect (__NR_SYSCALL_BASE+283) | ||
312 | #define __NR_listen (__NR_SYSCALL_BASE+284) | ||
313 | #define __NR_accept (__NR_SYSCALL_BASE+285) | ||
314 | #define __NR_getsockname (__NR_SYSCALL_BASE+286) | ||
315 | #define __NR_getpeername (__NR_SYSCALL_BASE+287) | ||
316 | #define __NR_socketpair (__NR_SYSCALL_BASE+288) | ||
317 | #define __NR_send (__NR_SYSCALL_BASE+289) | ||
318 | #define __NR_sendto (__NR_SYSCALL_BASE+290) | ||
319 | #define __NR_recv (__NR_SYSCALL_BASE+291) | ||
320 | #define __NR_recvfrom (__NR_SYSCALL_BASE+292) | ||
321 | #define __NR_shutdown (__NR_SYSCALL_BASE+293) | ||
322 | #define __NR_setsockopt (__NR_SYSCALL_BASE+294) | ||
323 | #define __NR_getsockopt (__NR_SYSCALL_BASE+295) | ||
324 | #define __NR_sendmsg (__NR_SYSCALL_BASE+296) | ||
325 | #define __NR_recvmsg (__NR_SYSCALL_BASE+297) | ||
326 | #define __NR_semop (__NR_SYSCALL_BASE+298) | ||
327 | #define __NR_semget (__NR_SYSCALL_BASE+299) | ||
328 | #define __NR_semctl (__NR_SYSCALL_BASE+300) | ||
329 | #define __NR_msgsnd (__NR_SYSCALL_BASE+301) | ||
330 | #define __NR_msgrcv (__NR_SYSCALL_BASE+302) | ||
331 | #define __NR_msgget (__NR_SYSCALL_BASE+303) | ||
332 | #define __NR_msgctl (__NR_SYSCALL_BASE+304) | ||
333 | #define __NR_shmat (__NR_SYSCALL_BASE+305) | ||
334 | #define __NR_shmdt (__NR_SYSCALL_BASE+306) | ||
335 | #define __NR_shmget (__NR_SYSCALL_BASE+307) | ||
336 | #define __NR_shmctl (__NR_SYSCALL_BASE+308) | ||
337 | #define __NR_add_key (__NR_SYSCALL_BASE+309) | ||
338 | #define __NR_request_key (__NR_SYSCALL_BASE+310) | ||
339 | #define __NR_keyctl (__NR_SYSCALL_BASE+311) | ||
340 | #define __NR_semtimedop (__NR_SYSCALL_BASE+312) | ||
341 | #define __NR_vserver (__NR_SYSCALL_BASE+313) | ||
342 | #define __NR_ioprio_set (__NR_SYSCALL_BASE+314) | ||
343 | #define __NR_ioprio_get (__NR_SYSCALL_BASE+315) | ||
344 | #define __NR_inotify_init (__NR_SYSCALL_BASE+316) | ||
345 | #define __NR_inotify_add_watch (__NR_SYSCALL_BASE+317) | ||
346 | #define __NR_inotify_rm_watch (__NR_SYSCALL_BASE+318) | ||
347 | #define __NR_mbind (__NR_SYSCALL_BASE+319) | ||
348 | #define __NR_get_mempolicy (__NR_SYSCALL_BASE+320) | ||
349 | #define __NR_set_mempolicy (__NR_SYSCALL_BASE+321) | ||
350 | #define __NR_openat (__NR_SYSCALL_BASE+322) | ||
351 | #define __NR_mkdirat (__NR_SYSCALL_BASE+323) | ||
352 | #define __NR_mknodat (__NR_SYSCALL_BASE+324) | ||
353 | #define __NR_fchownat (__NR_SYSCALL_BASE+325) | ||
354 | #define __NR_futimesat (__NR_SYSCALL_BASE+326) | ||
355 | #define __NR_fstatat64 (__NR_SYSCALL_BASE+327) | ||
356 | #define __NR_unlinkat (__NR_SYSCALL_BASE+328) | ||
357 | #define __NR_renameat (__NR_SYSCALL_BASE+329) | ||
358 | #define __NR_linkat (__NR_SYSCALL_BASE+330) | ||
359 | #define __NR_symlinkat (__NR_SYSCALL_BASE+331) | ||
360 | #define __NR_readlinkat (__NR_SYSCALL_BASE+332) | ||
361 | #define __NR_fchmodat (__NR_SYSCALL_BASE+333) | ||
362 | #define __NR_faccessat (__NR_SYSCALL_BASE+334) | ||
363 | #define __NR_pselect6 (__NR_SYSCALL_BASE+335) | ||
364 | #define __NR_ppoll (__NR_SYSCALL_BASE+336) | ||
365 | #define __NR_unshare (__NR_SYSCALL_BASE+337) | ||
366 | #define __NR_set_robust_list (__NR_SYSCALL_BASE+338) | ||
367 | #define __NR_get_robust_list (__NR_SYSCALL_BASE+339) | ||
368 | #define __NR_splice (__NR_SYSCALL_BASE+340) | ||
369 | #define __NR_arm_sync_file_range (__NR_SYSCALL_BASE+341) | ||
370 | #define __NR_sync_file_range2 __NR_arm_sync_file_range | 27 | #define __NR_sync_file_range2 __NR_arm_sync_file_range |
371 | #define __NR_tee (__NR_SYSCALL_BASE+342) | ||
372 | #define __NR_vmsplice (__NR_SYSCALL_BASE+343) | ||
373 | #define __NR_move_pages (__NR_SYSCALL_BASE+344) | ||
374 | #define __NR_getcpu (__NR_SYSCALL_BASE+345) | ||
375 | #define __NR_epoll_pwait (__NR_SYSCALL_BASE+346) | ||
376 | #define __NR_kexec_load (__NR_SYSCALL_BASE+347) | ||
377 | #define __NR_utimensat (__NR_SYSCALL_BASE+348) | ||
378 | #define __NR_signalfd (__NR_SYSCALL_BASE+349) | ||
379 | #define __NR_timerfd_create (__NR_SYSCALL_BASE+350) | ||
380 | #define __NR_eventfd (__NR_SYSCALL_BASE+351) | ||
381 | #define __NR_fallocate (__NR_SYSCALL_BASE+352) | ||
382 | #define __NR_timerfd_settime (__NR_SYSCALL_BASE+353) | ||
383 | #define __NR_timerfd_gettime (__NR_SYSCALL_BASE+354) | ||
384 | #define __NR_signalfd4 (__NR_SYSCALL_BASE+355) | ||
385 | #define __NR_eventfd2 (__NR_SYSCALL_BASE+356) | ||
386 | #define __NR_epoll_create1 (__NR_SYSCALL_BASE+357) | ||
387 | #define __NR_dup3 (__NR_SYSCALL_BASE+358) | ||
388 | #define __NR_pipe2 (__NR_SYSCALL_BASE+359) | ||
389 | #define __NR_inotify_init1 (__NR_SYSCALL_BASE+360) | ||
390 | #define __NR_preadv (__NR_SYSCALL_BASE+361) | ||
391 | #define __NR_pwritev (__NR_SYSCALL_BASE+362) | ||
392 | #define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE+363) | ||
393 | #define __NR_perf_event_open (__NR_SYSCALL_BASE+364) | ||
394 | #define __NR_recvmmsg (__NR_SYSCALL_BASE+365) | ||
395 | #define __NR_accept4 (__NR_SYSCALL_BASE+366) | ||
396 | #define __NR_fanotify_init (__NR_SYSCALL_BASE+367) | ||
397 | #define __NR_fanotify_mark (__NR_SYSCALL_BASE+368) | ||
398 | #define __NR_prlimit64 (__NR_SYSCALL_BASE+369) | ||
399 | #define __NR_name_to_handle_at (__NR_SYSCALL_BASE+370) | ||
400 | #define __NR_open_by_handle_at (__NR_SYSCALL_BASE+371) | ||
401 | #define __NR_clock_adjtime (__NR_SYSCALL_BASE+372) | ||
402 | #define __NR_syncfs (__NR_SYSCALL_BASE+373) | ||
403 | #define __NR_sendmmsg (__NR_SYSCALL_BASE+374) | ||
404 | #define __NR_setns (__NR_SYSCALL_BASE+375) | ||
405 | #define __NR_process_vm_readv (__NR_SYSCALL_BASE+376) | ||
406 | #define __NR_process_vm_writev (__NR_SYSCALL_BASE+377) | ||
407 | #define __NR_kcmp (__NR_SYSCALL_BASE+378) | ||
408 | #define __NR_finit_module (__NR_SYSCALL_BASE+379) | ||
409 | #define __NR_sched_setattr (__NR_SYSCALL_BASE+380) | ||
410 | #define __NR_sched_getattr (__NR_SYSCALL_BASE+381) | ||
411 | #define __NR_renameat2 (__NR_SYSCALL_BASE+382) | ||
412 | #define __NR_seccomp (__NR_SYSCALL_BASE+383) | ||
413 | #define __NR_getrandom (__NR_SYSCALL_BASE+384) | ||
414 | #define __NR_memfd_create (__NR_SYSCALL_BASE+385) | ||
415 | #define __NR_bpf (__NR_SYSCALL_BASE+386) | ||
416 | #define __NR_execveat (__NR_SYSCALL_BASE+387) | ||
417 | #define __NR_userfaultfd (__NR_SYSCALL_BASE+388) | ||
418 | #define __NR_membarrier (__NR_SYSCALL_BASE+389) | ||
419 | #define __NR_mlock2 (__NR_SYSCALL_BASE+390) | ||
420 | #define __NR_copy_file_range (__NR_SYSCALL_BASE+391) | ||
421 | #define __NR_preadv2 (__NR_SYSCALL_BASE+392) | ||
422 | #define __NR_pwritev2 (__NR_SYSCALL_BASE+393) | ||
423 | #define __NR_pkey_mprotect (__NR_SYSCALL_BASE+394) | ||
424 | #define __NR_pkey_alloc (__NR_SYSCALL_BASE+395) | ||
425 | #define __NR_pkey_free (__NR_SYSCALL_BASE+396) | ||
426 | 28 | ||
427 | /* | 29 | /* |
428 | * The following SWIs are ARM private. | 30 | * The following SWIs are ARM private. |
@@ -434,24 +36,4 @@ | |||
434 | #define __ARM_NR_usr32 (__ARM_NR_BASE+4) | 36 | #define __ARM_NR_usr32 (__ARM_NR_BASE+4) |
435 | #define __ARM_NR_set_tls (__ARM_NR_BASE+5) | 37 | #define __ARM_NR_set_tls (__ARM_NR_BASE+5) |
436 | 38 | ||
437 | /* | ||
438 | * The following syscalls are obsolete and no longer available for EABI. | ||
439 | */ | ||
440 | #if !defined(__KERNEL__) | ||
441 | #if defined(__ARM_EABI__) | ||
442 | #undef __NR_time | ||
443 | #undef __NR_umount | ||
444 | #undef __NR_stime | ||
445 | #undef __NR_alarm | ||
446 | #undef __NR_utime | ||
447 | #undef __NR_getrlimit | ||
448 | #undef __NR_select | ||
449 | #undef __NR_readdir | ||
450 | #undef __NR_mmap | ||
451 | #undef __NR_socketcall | ||
452 | #undef __NR_syscall | ||
453 | #undef __NR_ipc | ||
454 | #endif | ||
455 | #endif | ||
456 | |||
457 | #endif /* _UAPI__ASM_ARM_UNISTD_H */ | 39 | #endif /* _UAPI__ASM_ARM_UNISTD_H */ |
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S deleted file mode 100644 index 08030b18f10a..000000000000 --- a/arch/arm/kernel/calls.S +++ /dev/null | |||
@@ -1,415 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/kernel/calls.S | ||
3 | * | ||
4 | * Copyright (C) 1995-2005 Russell King | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * This file is included thrice in entry-common.S | ||
11 | */ | ||
12 | /* 0 */ CALL(sys_restart_syscall) | ||
13 | CALL(sys_exit) | ||
14 | CALL(sys_fork) | ||
15 | CALL(sys_read) | ||
16 | CALL(sys_write) | ||
17 | /* 5 */ CALL(sys_open) | ||
18 | CALL(sys_close) | ||
19 | CALL(sys_ni_syscall) /* was sys_waitpid */ | ||
20 | CALL(sys_creat) | ||
21 | CALL(sys_link) | ||
22 | /* 10 */ CALL(sys_unlink) | ||
23 | CALL(sys_execve) | ||
24 | CALL(sys_chdir) | ||
25 | CALL(OBSOLETE(sys_time)) /* used by libc4 */ | ||
26 | CALL(sys_mknod) | ||
27 | /* 15 */ CALL(sys_chmod) | ||
28 | CALL(sys_lchown16) | ||
29 | CALL(sys_ni_syscall) /* was sys_break */ | ||
30 | CALL(sys_ni_syscall) /* was sys_stat */ | ||
31 | CALL(sys_lseek) | ||
32 | /* 20 */ CALL(sys_getpid) | ||
33 | CALL(sys_mount) | ||
34 | CALL(OBSOLETE(sys_oldumount)) /* used by libc4 */ | ||
35 | CALL(sys_setuid16) | ||
36 | CALL(sys_getuid16) | ||
37 | /* 25 */ CALL(OBSOLETE(sys_stime)) | ||
38 | CALL(sys_ptrace) | ||
39 | CALL(OBSOLETE(sys_alarm)) /* used by libc4 */ | ||
40 | CALL(sys_ni_syscall) /* was sys_fstat */ | ||
41 | CALL(sys_pause) | ||
42 | /* 30 */ CALL(OBSOLETE(sys_utime)) /* used by libc4 */ | ||
43 | CALL(sys_ni_syscall) /* was sys_stty */ | ||
44 | CALL(sys_ni_syscall) /* was sys_getty */ | ||
45 | CALL(sys_access) | ||
46 | CALL(sys_nice) | ||
47 | /* 35 */ CALL(sys_ni_syscall) /* was sys_ftime */ | ||
48 | CALL(sys_sync) | ||
49 | CALL(sys_kill) | ||
50 | CALL(sys_rename) | ||
51 | CALL(sys_mkdir) | ||
52 | /* 40 */ CALL(sys_rmdir) | ||
53 | CALL(sys_dup) | ||
54 | CALL(sys_pipe) | ||
55 | CALL(sys_times) | ||
56 | CALL(sys_ni_syscall) /* was sys_prof */ | ||
57 | /* 45 */ CALL(sys_brk) | ||
58 | CALL(sys_setgid16) | ||
59 | CALL(sys_getgid16) | ||
60 | CALL(sys_ni_syscall) /* was sys_signal */ | ||
61 | CALL(sys_geteuid16) | ||
62 | /* 50 */ CALL(sys_getegid16) | ||
63 | CALL(sys_acct) | ||
64 | CALL(sys_umount) | ||
65 | CALL(sys_ni_syscall) /* was sys_lock */ | ||
66 | CALL(sys_ioctl) | ||
67 | /* 55 */ CALL(sys_fcntl) | ||
68 | CALL(sys_ni_syscall) /* was sys_mpx */ | ||
69 | CALL(sys_setpgid) | ||
70 | CALL(sys_ni_syscall) /* was sys_ulimit */ | ||
71 | CALL(sys_ni_syscall) /* was sys_olduname */ | ||
72 | /* 60 */ CALL(sys_umask) | ||
73 | CALL(sys_chroot) | ||
74 | CALL(sys_ustat) | ||
75 | CALL(sys_dup2) | ||
76 | CALL(sys_getppid) | ||
77 | /* 65 */ CALL(sys_getpgrp) | ||
78 | CALL(sys_setsid) | ||
79 | CALL(sys_sigaction) | ||
80 | CALL(sys_ni_syscall) /* was sys_sgetmask */ | ||
81 | CALL(sys_ni_syscall) /* was sys_ssetmask */ | ||
82 | /* 70 */ CALL(sys_setreuid16) | ||
83 | CALL(sys_setregid16) | ||
84 | CALL(sys_sigsuspend) | ||
85 | CALL(sys_sigpending) | ||
86 | CALL(sys_sethostname) | ||
87 | /* 75 */ CALL(sys_setrlimit) | ||
88 | CALL(OBSOLETE(sys_old_getrlimit)) /* used by libc4 */ | ||
89 | CALL(sys_getrusage) | ||
90 | CALL(sys_gettimeofday) | ||
91 | CALL(sys_settimeofday) | ||
92 | /* 80 */ CALL(sys_getgroups16) | ||
93 | CALL(sys_setgroups16) | ||
94 | CALL(OBSOLETE(sys_old_select)) /* used by libc4 */ | ||
95 | CALL(sys_symlink) | ||
96 | CALL(sys_ni_syscall) /* was sys_lstat */ | ||
97 | /* 85 */ CALL(sys_readlink) | ||
98 | CALL(sys_uselib) | ||
99 | CALL(sys_swapon) | ||
100 | CALL(sys_reboot) | ||
101 | CALL(OBSOLETE(sys_old_readdir)) /* used by libc4 */ | ||
102 | /* 90 */ CALL(OBSOLETE(sys_old_mmap)) /* used by libc4 */ | ||
103 | CALL(sys_munmap) | ||
104 | CALL(sys_truncate) | ||
105 | CALL(sys_ftruncate) | ||
106 | CALL(sys_fchmod) | ||
107 | /* 95 */ CALL(sys_fchown16) | ||
108 | CALL(sys_getpriority) | ||
109 | CALL(sys_setpriority) | ||
110 | CALL(sys_ni_syscall) /* was sys_profil */ | ||
111 | CALL(sys_statfs) | ||
112 | /* 100 */ CALL(sys_fstatfs) | ||
113 | CALL(sys_ni_syscall) /* sys_ioperm */ | ||
114 | CALL(OBSOLETE(ABI(sys_socketcall, sys_oabi_socketcall))) | ||
115 | CALL(sys_syslog) | ||
116 | CALL(sys_setitimer) | ||
117 | /* 105 */ CALL(sys_getitimer) | ||
118 | CALL(sys_newstat) | ||
119 | CALL(sys_newlstat) | ||
120 | CALL(sys_newfstat) | ||
121 | CALL(sys_ni_syscall) /* was sys_uname */ | ||
122 | /* 110 */ CALL(sys_ni_syscall) /* was sys_iopl */ | ||
123 | CALL(sys_vhangup) | ||
124 | CALL(sys_ni_syscall) | ||
125 | CALL(OBSOLETE(sys_syscall)) /* call a syscall */ | ||
126 | CALL(sys_wait4) | ||
127 | /* 115 */ CALL(sys_swapoff) | ||
128 | CALL(sys_sysinfo) | ||
129 | CALL(OBSOLETE(ABI(sys_ipc, sys_oabi_ipc))) | ||
130 | CALL(sys_fsync) | ||
131 | CALL(sys_sigreturn_wrapper) | ||
132 | /* 120 */ CALL(sys_clone) | ||
133 | CALL(sys_setdomainname) | ||
134 | CALL(sys_newuname) | ||
135 | CALL(sys_ni_syscall) /* modify_ldt */ | ||
136 | CALL(sys_adjtimex) | ||
137 | /* 125 */ CALL(sys_mprotect) | ||
138 | CALL(sys_sigprocmask) | ||
139 | CALL(sys_ni_syscall) /* was sys_create_module */ | ||
140 | CALL(sys_init_module) | ||
141 | CALL(sys_delete_module) | ||
142 | /* 130 */ CALL(sys_ni_syscall) /* was sys_get_kernel_syms */ | ||
143 | CALL(sys_quotactl) | ||
144 | CALL(sys_getpgid) | ||
145 | CALL(sys_fchdir) | ||
146 | CALL(sys_bdflush) | ||
147 | /* 135 */ CALL(sys_sysfs) | ||
148 | CALL(sys_personality) | ||
149 | CALL(sys_ni_syscall) /* reserved for afs_syscall */ | ||
150 | CALL(sys_setfsuid16) | ||
151 | CALL(sys_setfsgid16) | ||
152 | /* 140 */ CALL(sys_llseek) | ||
153 | CALL(sys_getdents) | ||
154 | CALL(sys_select) | ||
155 | CALL(sys_flock) | ||
156 | CALL(sys_msync) | ||
157 | /* 145 */ CALL(sys_readv) | ||
158 | CALL(sys_writev) | ||
159 | CALL(sys_getsid) | ||
160 | CALL(sys_fdatasync) | ||
161 | CALL(sys_sysctl) | ||
162 | /* 150 */ CALL(sys_mlock) | ||
163 | CALL(sys_munlock) | ||
164 | CALL(sys_mlockall) | ||
165 | CALL(sys_munlockall) | ||
166 | CALL(sys_sched_setparam) | ||
167 | /* 155 */ CALL(sys_sched_getparam) | ||
168 | CALL(sys_sched_setscheduler) | ||
169 | CALL(sys_sched_getscheduler) | ||
170 | CALL(sys_sched_yield) | ||
171 | CALL(sys_sched_get_priority_max) | ||
172 | /* 160 */ CALL(sys_sched_get_priority_min) | ||
173 | CALL(sys_sched_rr_get_interval) | ||
174 | CALL(sys_nanosleep) | ||
175 | CALL(sys_mremap) | ||
176 | CALL(sys_setresuid16) | ||
177 | /* 165 */ CALL(sys_getresuid16) | ||
178 | CALL(sys_ni_syscall) /* vm86 */ | ||
179 | CALL(sys_ni_syscall) /* was sys_query_module */ | ||
180 | CALL(sys_poll) | ||
181 | CALL(sys_ni_syscall) /* was nfsservctl */ | ||
182 | /* 170 */ CALL(sys_setresgid16) | ||
183 | CALL(sys_getresgid16) | ||
184 | CALL(sys_prctl) | ||
185 | CALL(sys_rt_sigreturn_wrapper) | ||
186 | CALL(sys_rt_sigaction) | ||
187 | /* 175 */ CALL(sys_rt_sigprocmask) | ||
188 | CALL(sys_rt_sigpending) | ||
189 | CALL(sys_rt_sigtimedwait) | ||
190 | CALL(sys_rt_sigqueueinfo) | ||
191 | CALL(sys_rt_sigsuspend) | ||
192 | /* 180 */ CALL(ABI(sys_pread64, sys_oabi_pread64)) | ||
193 | CALL(ABI(sys_pwrite64, sys_oabi_pwrite64)) | ||
194 | CALL(sys_chown16) | ||
195 | CALL(sys_getcwd) | ||
196 | CALL(sys_capget) | ||
197 | /* 185 */ CALL(sys_capset) | ||
198 | CALL(sys_sigaltstack) | ||
199 | CALL(sys_sendfile) | ||
200 | CALL(sys_ni_syscall) /* getpmsg */ | ||
201 | CALL(sys_ni_syscall) /* putpmsg */ | ||
202 | /* 190 */ CALL(sys_vfork) | ||
203 | CALL(sys_getrlimit) | ||
204 | CALL(sys_mmap2) | ||
205 | CALL(ABI(sys_truncate64, sys_oabi_truncate64)) | ||
206 | CALL(ABI(sys_ftruncate64, sys_oabi_ftruncate64)) | ||
207 | /* 195 */ CALL(ABI(sys_stat64, sys_oabi_stat64)) | ||
208 | CALL(ABI(sys_lstat64, sys_oabi_lstat64)) | ||
209 | CALL(ABI(sys_fstat64, sys_oabi_fstat64)) | ||
210 | CALL(sys_lchown) | ||
211 | CALL(sys_getuid) | ||
212 | /* 200 */ CALL(sys_getgid) | ||
213 | CALL(sys_geteuid) | ||
214 | CALL(sys_getegid) | ||
215 | CALL(sys_setreuid) | ||
216 | CALL(sys_setregid) | ||
217 | /* 205 */ CALL(sys_getgroups) | ||
218 | CALL(sys_setgroups) | ||
219 | CALL(sys_fchown) | ||
220 | CALL(sys_setresuid) | ||
221 | CALL(sys_getresuid) | ||
222 | /* 210 */ CALL(sys_setresgid) | ||
223 | CALL(sys_getresgid) | ||
224 | CALL(sys_chown) | ||
225 | CALL(sys_setuid) | ||
226 | CALL(sys_setgid) | ||
227 | /* 215 */ CALL(sys_setfsuid) | ||
228 | CALL(sys_setfsgid) | ||
229 | CALL(sys_getdents64) | ||
230 | CALL(sys_pivot_root) | ||
231 | CALL(sys_mincore) | ||
232 | /* 220 */ CALL(sys_madvise) | ||
233 | CALL(ABI(sys_fcntl64, sys_oabi_fcntl64)) | ||
234 | CALL(sys_ni_syscall) /* TUX */ | ||
235 | CALL(sys_ni_syscall) | ||
236 | CALL(sys_gettid) | ||
237 | /* 225 */ CALL(ABI(sys_readahead, sys_oabi_readahead)) | ||
238 | CALL(sys_setxattr) | ||
239 | CALL(sys_lsetxattr) | ||
240 | CALL(sys_fsetxattr) | ||
241 | CALL(sys_getxattr) | ||
242 | /* 230 */ CALL(sys_lgetxattr) | ||
243 | CALL(sys_fgetxattr) | ||
244 | CALL(sys_listxattr) | ||
245 | CALL(sys_llistxattr) | ||
246 | CALL(sys_flistxattr) | ||
247 | /* 235 */ CALL(sys_removexattr) | ||
248 | CALL(sys_lremovexattr) | ||
249 | CALL(sys_fremovexattr) | ||
250 | CALL(sys_tkill) | ||
251 | CALL(sys_sendfile64) | ||
252 | /* 240 */ CALL(sys_futex) | ||
253 | CALL(sys_sched_setaffinity) | ||
254 | CALL(sys_sched_getaffinity) | ||
255 | CALL(sys_io_setup) | ||
256 | CALL(sys_io_destroy) | ||
257 | /* 245 */ CALL(sys_io_getevents) | ||
258 | CALL(sys_io_submit) | ||
259 | CALL(sys_io_cancel) | ||
260 | CALL(sys_exit_group) | ||
261 | CALL(sys_lookup_dcookie) | ||
262 | /* 250 */ CALL(sys_epoll_create) | ||
263 | CALL(ABI(sys_epoll_ctl, sys_oabi_epoll_ctl)) | ||
264 | CALL(ABI(sys_epoll_wait, sys_oabi_epoll_wait)) | ||
265 | CALL(sys_remap_file_pages) | ||
266 | CALL(sys_ni_syscall) /* sys_set_thread_area */ | ||
267 | /* 255 */ CALL(sys_ni_syscall) /* sys_get_thread_area */ | ||
268 | CALL(sys_set_tid_address) | ||
269 | CALL(sys_timer_create) | ||
270 | CALL(sys_timer_settime) | ||
271 | CALL(sys_timer_gettime) | ||
272 | /* 260 */ CALL(sys_timer_getoverrun) | ||
273 | CALL(sys_timer_delete) | ||
274 | CALL(sys_clock_settime) | ||
275 | CALL(sys_clock_gettime) | ||
276 | CALL(sys_clock_getres) | ||
277 | /* 265 */ CALL(sys_clock_nanosleep) | ||
278 | CALL(sys_statfs64_wrapper) | ||
279 | CALL(sys_fstatfs64_wrapper) | ||
280 | CALL(sys_tgkill) | ||
281 | CALL(sys_utimes) | ||
282 | /* 270 */ CALL(sys_arm_fadvise64_64) | ||
283 | CALL(sys_pciconfig_iobase) | ||
284 | CALL(sys_pciconfig_read) | ||
285 | CALL(sys_pciconfig_write) | ||
286 | CALL(sys_mq_open) | ||
287 | /* 275 */ CALL(sys_mq_unlink) | ||
288 | CALL(sys_mq_timedsend) | ||
289 | CALL(sys_mq_timedreceive) | ||
290 | CALL(sys_mq_notify) | ||
291 | CALL(sys_mq_getsetattr) | ||
292 | /* 280 */ CALL(sys_waitid) | ||
293 | CALL(sys_socket) | ||
294 | CALL(ABI(sys_bind, sys_oabi_bind)) | ||
295 | CALL(ABI(sys_connect, sys_oabi_connect)) | ||
296 | CALL(sys_listen) | ||
297 | /* 285 */ CALL(sys_accept) | ||
298 | CALL(sys_getsockname) | ||
299 | CALL(sys_getpeername) | ||
300 | CALL(sys_socketpair) | ||
301 | CALL(sys_send) | ||
302 | /* 290 */ CALL(ABI(sys_sendto, sys_oabi_sendto)) | ||
303 | CALL(sys_recv) | ||
304 | CALL(sys_recvfrom) | ||
305 | CALL(sys_shutdown) | ||
306 | CALL(sys_setsockopt) | ||
307 | /* 295 */ CALL(sys_getsockopt) | ||
308 | CALL(ABI(sys_sendmsg, sys_oabi_sendmsg)) | ||
309 | CALL(sys_recvmsg) | ||
310 | CALL(ABI(sys_semop, sys_oabi_semop)) | ||
311 | CALL(sys_semget) | ||
312 | /* 300 */ CALL(sys_semctl) | ||
313 | CALL(sys_msgsnd) | ||
314 | CALL(sys_msgrcv) | ||
315 | CALL(sys_msgget) | ||
316 | CALL(sys_msgctl) | ||
317 | /* 305 */ CALL(sys_shmat) | ||
318 | CALL(sys_shmdt) | ||
319 | CALL(sys_shmget) | ||
320 | CALL(sys_shmctl) | ||
321 | CALL(sys_add_key) | ||
322 | /* 310 */ CALL(sys_request_key) | ||
323 | CALL(sys_keyctl) | ||
324 | CALL(ABI(sys_semtimedop, sys_oabi_semtimedop)) | ||
325 | /* vserver */ CALL(sys_ni_syscall) | ||
326 | CALL(sys_ioprio_set) | ||
327 | /* 315 */ CALL(sys_ioprio_get) | ||
328 | CALL(sys_inotify_init) | ||
329 | CALL(sys_inotify_add_watch) | ||
330 | CALL(sys_inotify_rm_watch) | ||
331 | CALL(sys_mbind) | ||
332 | /* 320 */ CALL(sys_get_mempolicy) | ||
333 | CALL(sys_set_mempolicy) | ||
334 | CALL(sys_openat) | ||
335 | CALL(sys_mkdirat) | ||
336 | CALL(sys_mknodat) | ||
337 | /* 325 */ CALL(sys_fchownat) | ||
338 | CALL(sys_futimesat) | ||
339 | CALL(ABI(sys_fstatat64, sys_oabi_fstatat64)) | ||
340 | CALL(sys_unlinkat) | ||
341 | CALL(sys_renameat) | ||
342 | /* 330 */ CALL(sys_linkat) | ||
343 | CALL(sys_symlinkat) | ||
344 | CALL(sys_readlinkat) | ||
345 | CALL(sys_fchmodat) | ||
346 | CALL(sys_faccessat) | ||
347 | /* 335 */ CALL(sys_pselect6) | ||
348 | CALL(sys_ppoll) | ||
349 | CALL(sys_unshare) | ||
350 | CALL(sys_set_robust_list) | ||
351 | CALL(sys_get_robust_list) | ||
352 | /* 340 */ CALL(sys_splice) | ||
353 | CALL(sys_sync_file_range2) | ||
354 | CALL(sys_tee) | ||
355 | CALL(sys_vmsplice) | ||
356 | CALL(sys_move_pages) | ||
357 | /* 345 */ CALL(sys_getcpu) | ||
358 | CALL(sys_epoll_pwait) | ||
359 | CALL(sys_kexec_load) | ||
360 | CALL(sys_utimensat) | ||
361 | CALL(sys_signalfd) | ||
362 | /* 350 */ CALL(sys_timerfd_create) | ||
363 | CALL(sys_eventfd) | ||
364 | CALL(sys_fallocate) | ||
365 | CALL(sys_timerfd_settime) | ||
366 | CALL(sys_timerfd_gettime) | ||
367 | /* 355 */ CALL(sys_signalfd4) | ||
368 | CALL(sys_eventfd2) | ||
369 | CALL(sys_epoll_create1) | ||
370 | CALL(sys_dup3) | ||
371 | CALL(sys_pipe2) | ||
372 | /* 360 */ CALL(sys_inotify_init1) | ||
373 | CALL(sys_preadv) | ||
374 | CALL(sys_pwritev) | ||
375 | CALL(sys_rt_tgsigqueueinfo) | ||
376 | CALL(sys_perf_event_open) | ||
377 | /* 365 */ CALL(sys_recvmmsg) | ||
378 | CALL(sys_accept4) | ||
379 | CALL(sys_fanotify_init) | ||
380 | CALL(sys_fanotify_mark) | ||
381 | CALL(sys_prlimit64) | ||
382 | /* 370 */ CALL(sys_name_to_handle_at) | ||
383 | CALL(sys_open_by_handle_at) | ||
384 | CALL(sys_clock_adjtime) | ||
385 | CALL(sys_syncfs) | ||
386 | CALL(sys_sendmmsg) | ||
387 | /* 375 */ CALL(sys_setns) | ||
388 | CALL(sys_process_vm_readv) | ||
389 | CALL(sys_process_vm_writev) | ||
390 | CALL(sys_kcmp) | ||
391 | CALL(sys_finit_module) | ||
392 | /* 380 */ CALL(sys_sched_setattr) | ||
393 | CALL(sys_sched_getattr) | ||
394 | CALL(sys_renameat2) | ||
395 | CALL(sys_seccomp) | ||
396 | CALL(sys_getrandom) | ||
397 | /* 385 */ CALL(sys_memfd_create) | ||
398 | CALL(sys_bpf) | ||
399 | CALL(sys_execveat) | ||
400 | CALL(sys_userfaultfd) | ||
401 | CALL(sys_membarrier) | ||
402 | /* 390 */ CALL(sys_mlock2) | ||
403 | CALL(sys_copy_file_range) | ||
404 | CALL(sys_preadv2) | ||
405 | CALL(sys_pwritev2) | ||
406 | CALL(sys_pkey_mprotect) | ||
407 | /* 395 */ CALL(sys_pkey_alloc) | ||
408 | CALL(sys_pkey_free) | ||
409 | #ifndef syscalls_counted | ||
410 | .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls | ||
411 | #define syscalls_counted | ||
412 | #endif | ||
413 | .rept syscalls_padding | ||
414 | CALL(sys_ni_syscall) | ||
415 | .endr | ||
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 10c3283d6c19..eb5cd77bf1d8 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
@@ -12,6 +12,11 @@ | |||
12 | #include <asm/unistd.h> | 12 | #include <asm/unistd.h> |
13 | #include <asm/ftrace.h> | 13 | #include <asm/ftrace.h> |
14 | #include <asm/unwind.h> | 14 | #include <asm/unwind.h> |
15 | #ifdef CONFIG_AEABI | ||
16 | #include <asm/unistd-oabi.h> | ||
17 | #endif | ||
18 | |||
19 | .equ NR_syscalls, __NR_syscalls | ||
15 | 20 | ||
16 | #ifdef CONFIG_NEED_RET_TO_USER | 21 | #ifdef CONFIG_NEED_RET_TO_USER |
17 | #include <mach/entry-macro.S> | 22 | #include <mach/entry-macro.S> |
@@ -120,21 +125,6 @@ ENTRY(ret_from_fork) | |||
120 | b ret_slow_syscall | 125 | b ret_slow_syscall |
121 | ENDPROC(ret_from_fork) | 126 | ENDPROC(ret_from_fork) |
122 | 127 | ||
123 | .equ NR_syscalls,0 | ||
124 | #define CALL(x) .equ NR_syscalls,NR_syscalls+1 | ||
125 | #include "calls.S" | ||
126 | |||
127 | /* | ||
128 | * Ensure that the system call table is equal to __NR_syscalls, | ||
129 | * which is the value the rest of the system sees | ||
130 | */ | ||
131 | .ifne NR_syscalls - __NR_syscalls | ||
132 | .error "__NR_syscalls is not equal to the size of the syscall table" | ||
133 | .endif | ||
134 | |||
135 | #undef CALL | ||
136 | #define CALL(x) .long x | ||
137 | |||
138 | /*============================================================================= | 128 | /*============================================================================= |
139 | * SWI handler | 129 | * SWI handler |
140 | *----------------------------------------------------------------------------- | 130 | *----------------------------------------------------------------------------- |
@@ -291,22 +281,48 @@ __cr_alignment: | |||
291 | #endif | 281 | #endif |
292 | .ltorg | 282 | .ltorg |
293 | 283 | ||
284 | .macro syscall_table_start, sym | ||
285 | .equ __sys_nr, 0 | ||
286 | .type \sym, #object | ||
287 | ENTRY(\sym) | ||
288 | .endm | ||
289 | |||
290 | .macro syscall, nr, func | ||
291 | .ifgt __sys_nr - \nr | ||
292 | .error "Duplicated/unorded system call entry" | ||
293 | .endif | ||
294 | .rept \nr - __sys_nr | ||
295 | .long sys_ni_syscall | ||
296 | .endr | ||
297 | .long \func | ||
298 | .equ __sys_nr, \nr + 1 | ||
299 | .endm | ||
300 | |||
301 | .macro syscall_table_end, sym | ||
302 | .ifgt __sys_nr - __NR_syscalls | ||
303 | .error "System call table too big" | ||
304 | .endif | ||
305 | .rept __NR_syscalls - __sys_nr | ||
306 | .long sys_ni_syscall | ||
307 | .endr | ||
308 | .size \sym, . - \sym | ||
309 | .endm | ||
310 | |||
311 | #define NATIVE(nr, func) syscall nr, func | ||
312 | |||
294 | /* | 313 | /* |
295 | * This is the syscall table declaration for native ABI syscalls. | 314 | * This is the syscall table declaration for native ABI syscalls. |
296 | * With EABI a couple syscalls are obsolete and defined as sys_ni_syscall. | 315 | * With EABI a couple syscalls are obsolete and defined as sys_ni_syscall. |
297 | */ | 316 | */ |
298 | #define ABI(native, compat) native | 317 | syscall_table_start sys_call_table |
318 | #define COMPAT(nr, native, compat) syscall nr, native | ||
299 | #ifdef CONFIG_AEABI | 319 | #ifdef CONFIG_AEABI |
300 | #define OBSOLETE(syscall) sys_ni_syscall | 320 | #include <calls-eabi.S> |
301 | #else | 321 | #else |
302 | #define OBSOLETE(syscall) syscall | 322 | #include <calls-oabi.S> |
303 | #endif | 323 | #endif |
304 | 324 | #undef COMPAT | |
305 | .type sys_call_table, #object | 325 | syscall_table_end sys_call_table |
306 | ENTRY(sys_call_table) | ||
307 | #include "calls.S" | ||
308 | #undef ABI | ||
309 | #undef OBSOLETE | ||
310 | 326 | ||
311 | /*============================================================================ | 327 | /*============================================================================ |
312 | * Special system call wrappers | 328 | * Special system call wrappers |
@@ -407,14 +423,10 @@ ENDPROC(sys_oabi_readahead) | |||
407 | * Let's declare a second syscall table for old ABI binaries | 423 | * Let's declare a second syscall table for old ABI binaries |
408 | * using the compatibility syscall entries. | 424 | * using the compatibility syscall entries. |
409 | */ | 425 | */ |
410 | #define ABI(native, compat) compat | 426 | syscall_table_start sys_oabi_call_table |
411 | #define OBSOLETE(syscall) syscall | 427 | #define COMPAT(nr, native, compat) syscall nr, compat |
412 | 428 | #include <calls-oabi.S> | |
413 | .type sys_oabi_call_table, #object | 429 | syscall_table_end sys_oabi_call_table |
414 | ENTRY(sys_oabi_call_table) | ||
415 | #include "calls.S" | ||
416 | #undef ABI | ||
417 | #undef OBSOLETE | ||
418 | 430 | ||
419 | #endif | 431 | #endif |
420 | 432 | ||
diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c index ec279d161b32..ebf47d91b804 100644 --- a/arch/arm/kernel/topology.c +++ b/arch/arm/kernel/topology.c | |||
@@ -12,6 +12,7 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/cpu.h> | 14 | #include <linux/cpu.h> |
15 | #include <linux/cpufreq.h> | ||
15 | #include <linux/cpumask.h> | 16 | #include <linux/cpumask.h> |
16 | #include <linux/export.h> | 17 | #include <linux/export.h> |
17 | #include <linux/init.h> | 18 | #include <linux/init.h> |
@@ -21,7 +22,9 @@ | |||
21 | #include <linux/of.h> | 22 | #include <linux/of.h> |
22 | #include <linux/sched.h> | 23 | #include <linux/sched.h> |
23 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
25 | #include <linux/string.h> | ||
24 | 26 | ||
27 | #include <asm/cpu.h> | ||
25 | #include <asm/cputype.h> | 28 | #include <asm/cputype.h> |
26 | #include <asm/topology.h> | 29 | #include <asm/topology.h> |
27 | 30 | ||
@@ -41,6 +44,7 @@ | |||
41 | * updated during this sequence. | 44 | * updated during this sequence. |
42 | */ | 45 | */ |
43 | static DEFINE_PER_CPU(unsigned long, cpu_scale) = SCHED_CAPACITY_SCALE; | 46 | static DEFINE_PER_CPU(unsigned long, cpu_scale) = SCHED_CAPACITY_SCALE; |
47 | static DEFINE_MUTEX(cpu_scale_mutex); | ||
44 | 48 | ||
45 | unsigned long arch_scale_cpu_capacity(struct sched_domain *sd, int cpu) | 49 | unsigned long arch_scale_cpu_capacity(struct sched_domain *sd, int cpu) |
46 | { | 50 | { |
@@ -52,6 +56,65 @@ static void set_capacity_scale(unsigned int cpu, unsigned long capacity) | |||
52 | per_cpu(cpu_scale, cpu) = capacity; | 56 | per_cpu(cpu_scale, cpu) = capacity; |
53 | } | 57 | } |
54 | 58 | ||
59 | #ifdef CONFIG_PROC_SYSCTL | ||
60 | static ssize_t cpu_capacity_show(struct device *dev, | ||
61 | struct device_attribute *attr, | ||
62 | char *buf) | ||
63 | { | ||
64 | struct cpu *cpu = container_of(dev, struct cpu, dev); | ||
65 | |||
66 | return sprintf(buf, "%lu\n", | ||
67 | arch_scale_cpu_capacity(NULL, cpu->dev.id)); | ||
68 | } | ||
69 | |||
70 | static ssize_t cpu_capacity_store(struct device *dev, | ||
71 | struct device_attribute *attr, | ||
72 | const char *buf, | ||
73 | size_t count) | ||
74 | { | ||
75 | struct cpu *cpu = container_of(dev, struct cpu, dev); | ||
76 | int this_cpu = cpu->dev.id, i; | ||
77 | unsigned long new_capacity; | ||
78 | ssize_t ret; | ||
79 | |||
80 | if (count) { | ||
81 | ret = kstrtoul(buf, 0, &new_capacity); | ||
82 | if (ret) | ||
83 | return ret; | ||
84 | if (new_capacity > SCHED_CAPACITY_SCALE) | ||
85 | return -EINVAL; | ||
86 | |||
87 | mutex_lock(&cpu_scale_mutex); | ||
88 | for_each_cpu(i, &cpu_topology[this_cpu].core_sibling) | ||
89 | set_capacity_scale(i, new_capacity); | ||
90 | mutex_unlock(&cpu_scale_mutex); | ||
91 | } | ||
92 | |||
93 | return count; | ||
94 | } | ||
95 | |||
96 | static DEVICE_ATTR_RW(cpu_capacity); | ||
97 | |||
98 | static int register_cpu_capacity_sysctl(void) | ||
99 | { | ||
100 | int i; | ||
101 | struct device *cpu; | ||
102 | |||
103 | for_each_possible_cpu(i) { | ||
104 | cpu = get_cpu_device(i); | ||
105 | if (!cpu) { | ||
106 | pr_err("%s: too early to get CPU%d device!\n", | ||
107 | __func__, i); | ||
108 | continue; | ||
109 | } | ||
110 | device_create_file(cpu, &dev_attr_cpu_capacity); | ||
111 | } | ||
112 | |||
113 | return 0; | ||
114 | } | ||
115 | subsys_initcall(register_cpu_capacity_sysctl); | ||
116 | #endif | ||
117 | |||
55 | #ifdef CONFIG_OF | 118 | #ifdef CONFIG_OF |
56 | struct cpu_efficiency { | 119 | struct cpu_efficiency { |
57 | const char *compatible; | 120 | const char *compatible; |
@@ -78,6 +141,146 @@ static unsigned long *__cpu_capacity; | |||
78 | #define cpu_capacity(cpu) __cpu_capacity[cpu] | 141 | #define cpu_capacity(cpu) __cpu_capacity[cpu] |
79 | 142 | ||
80 | static unsigned long middle_capacity = 1; | 143 | static unsigned long middle_capacity = 1; |
144 | static bool cap_from_dt = true; | ||
145 | static u32 *raw_capacity; | ||
146 | static bool cap_parsing_failed; | ||
147 | static u32 capacity_scale; | ||
148 | |||
149 | static int __init parse_cpu_capacity(struct device_node *cpu_node, int cpu) | ||
150 | { | ||
151 | int ret = 1; | ||
152 | u32 cpu_capacity; | ||
153 | |||
154 | if (cap_parsing_failed) | ||
155 | return !ret; | ||
156 | |||
157 | ret = of_property_read_u32(cpu_node, | ||
158 | "capacity-dmips-mhz", | ||
159 | &cpu_capacity); | ||
160 | if (!ret) { | ||
161 | if (!raw_capacity) { | ||
162 | raw_capacity = kcalloc(num_possible_cpus(), | ||
163 | sizeof(*raw_capacity), | ||
164 | GFP_KERNEL); | ||
165 | if (!raw_capacity) { | ||
166 | pr_err("cpu_capacity: failed to allocate memory for raw capacities\n"); | ||
167 | cap_parsing_failed = true; | ||
168 | return !ret; | ||
169 | } | ||
170 | } | ||
171 | capacity_scale = max(cpu_capacity, capacity_scale); | ||
172 | raw_capacity[cpu] = cpu_capacity; | ||
173 | pr_debug("cpu_capacity: %s cpu_capacity=%u (raw)\n", | ||
174 | cpu_node->full_name, raw_capacity[cpu]); | ||
175 | } else { | ||
176 | if (raw_capacity) { | ||
177 | pr_err("cpu_capacity: missing %s raw capacity\n", | ||
178 | cpu_node->full_name); | ||
179 | pr_err("cpu_capacity: partial information: fallback to 1024 for all CPUs\n"); | ||
180 | } | ||
181 | cap_parsing_failed = true; | ||
182 | kfree(raw_capacity); | ||
183 | } | ||
184 | |||
185 | return !ret; | ||
186 | } | ||
187 | |||
188 | static void normalize_cpu_capacity(void) | ||
189 | { | ||
190 | u64 capacity; | ||
191 | int cpu; | ||
192 | |||
193 | if (!raw_capacity || cap_parsing_failed) | ||
194 | return; | ||
195 | |||
196 | pr_debug("cpu_capacity: capacity_scale=%u\n", capacity_scale); | ||
197 | mutex_lock(&cpu_scale_mutex); | ||
198 | for_each_possible_cpu(cpu) { | ||
199 | capacity = (raw_capacity[cpu] << SCHED_CAPACITY_SHIFT) | ||
200 | / capacity_scale; | ||
201 | set_capacity_scale(cpu, capacity); | ||
202 | pr_debug("cpu_capacity: CPU%d cpu_capacity=%lu\n", | ||
203 | cpu, arch_scale_cpu_capacity(NULL, cpu)); | ||
204 | } | ||
205 | mutex_unlock(&cpu_scale_mutex); | ||
206 | } | ||
207 | |||
208 | #ifdef CONFIG_CPU_FREQ | ||
209 | static cpumask_var_t cpus_to_visit; | ||
210 | static bool cap_parsing_done; | ||
211 | static void parsing_done_workfn(struct work_struct *work); | ||
212 | static DECLARE_WORK(parsing_done_work, parsing_done_workfn); | ||
213 | |||
214 | static int | ||
215 | init_cpu_capacity_callback(struct notifier_block *nb, | ||
216 | unsigned long val, | ||
217 | void *data) | ||
218 | { | ||
219 | struct cpufreq_policy *policy = data; | ||
220 | int cpu; | ||
221 | |||
222 | if (cap_parsing_failed || cap_parsing_done) | ||
223 | return 0; | ||
224 | |||
225 | switch (val) { | ||
226 | case CPUFREQ_NOTIFY: | ||
227 | pr_debug("cpu_capacity: init cpu capacity for CPUs [%*pbl] (to_visit=%*pbl)\n", | ||
228 | cpumask_pr_args(policy->related_cpus), | ||
229 | cpumask_pr_args(cpus_to_visit)); | ||
230 | cpumask_andnot(cpus_to_visit, | ||
231 | cpus_to_visit, | ||
232 | policy->related_cpus); | ||
233 | for_each_cpu(cpu, policy->related_cpus) { | ||
234 | raw_capacity[cpu] = arch_scale_cpu_capacity(NULL, cpu) * | ||
235 | policy->cpuinfo.max_freq / 1000UL; | ||
236 | capacity_scale = max(raw_capacity[cpu], capacity_scale); | ||
237 | } | ||
238 | if (cpumask_empty(cpus_to_visit)) { | ||
239 | normalize_cpu_capacity(); | ||
240 | kfree(raw_capacity); | ||
241 | pr_debug("cpu_capacity: parsing done\n"); | ||
242 | cap_parsing_done = true; | ||
243 | schedule_work(&parsing_done_work); | ||
244 | } | ||
245 | } | ||
246 | return 0; | ||
247 | } | ||
248 | |||
249 | static struct notifier_block init_cpu_capacity_notifier = { | ||
250 | .notifier_call = init_cpu_capacity_callback, | ||
251 | }; | ||
252 | |||
253 | static int __init register_cpufreq_notifier(void) | ||
254 | { | ||
255 | if (cap_parsing_failed) | ||
256 | return -EINVAL; | ||
257 | |||
258 | if (!alloc_cpumask_var(&cpus_to_visit, GFP_KERNEL)) { | ||
259 | pr_err("cpu_capacity: failed to allocate memory for cpus_to_visit\n"); | ||
260 | return -ENOMEM; | ||
261 | } | ||
262 | cpumask_copy(cpus_to_visit, cpu_possible_mask); | ||
263 | |||
264 | return cpufreq_register_notifier(&init_cpu_capacity_notifier, | ||
265 | CPUFREQ_POLICY_NOTIFIER); | ||
266 | } | ||
267 | core_initcall(register_cpufreq_notifier); | ||
268 | |||
269 | static void parsing_done_workfn(struct work_struct *work) | ||
270 | { | ||
271 | cpufreq_unregister_notifier(&init_cpu_capacity_notifier, | ||
272 | CPUFREQ_POLICY_NOTIFIER); | ||
273 | } | ||
274 | |||
275 | #else | ||
276 | static int __init free_raw_capacity(void) | ||
277 | { | ||
278 | kfree(raw_capacity); | ||
279 | |||
280 | return 0; | ||
281 | } | ||
282 | core_initcall(free_raw_capacity); | ||
283 | #endif | ||
81 | 284 | ||
82 | /* | 285 | /* |
83 | * Iterate all CPUs' descriptor in DT and compute the efficiency | 286 | * Iterate all CPUs' descriptor in DT and compute the efficiency |
@@ -99,6 +302,12 @@ static void __init parse_dt_topology(void) | |||
99 | __cpu_capacity = kcalloc(nr_cpu_ids, sizeof(*__cpu_capacity), | 302 | __cpu_capacity = kcalloc(nr_cpu_ids, sizeof(*__cpu_capacity), |
100 | GFP_NOWAIT); | 303 | GFP_NOWAIT); |
101 | 304 | ||
305 | cn = of_find_node_by_path("/cpus"); | ||
306 | if (!cn) { | ||
307 | pr_err("No CPU information found in DT\n"); | ||
308 | return; | ||
309 | } | ||
310 | |||
102 | for_each_possible_cpu(cpu) { | 311 | for_each_possible_cpu(cpu) { |
103 | const u32 *rate; | 312 | const u32 *rate; |
104 | int len; | 313 | int len; |
@@ -110,6 +319,13 @@ static void __init parse_dt_topology(void) | |||
110 | continue; | 319 | continue; |
111 | } | 320 | } |
112 | 321 | ||
322 | if (parse_cpu_capacity(cn, cpu)) { | ||
323 | of_node_put(cn); | ||
324 | continue; | ||
325 | } | ||
326 | |||
327 | cap_from_dt = false; | ||
328 | |||
113 | for (cpu_eff = table_efficiency; cpu_eff->compatible; cpu_eff++) | 329 | for (cpu_eff = table_efficiency; cpu_eff->compatible; cpu_eff++) |
114 | if (of_device_is_compatible(cn, cpu_eff->compatible)) | 330 | if (of_device_is_compatible(cn, cpu_eff->compatible)) |
115 | break; | 331 | break; |
@@ -151,6 +367,8 @@ static void __init parse_dt_topology(void) | |||
151 | middle_capacity = ((max_capacity / 3) | 367 | middle_capacity = ((max_capacity / 3) |
152 | >> (SCHED_CAPACITY_SHIFT-1)) + 1; | 368 | >> (SCHED_CAPACITY_SHIFT-1)) + 1; |
153 | 369 | ||
370 | if (cap_from_dt && !cap_parsing_failed) | ||
371 | normalize_cpu_capacity(); | ||
154 | } | 372 | } |
155 | 373 | ||
156 | /* | 374 | /* |
@@ -160,7 +378,7 @@ static void __init parse_dt_topology(void) | |||
160 | */ | 378 | */ |
161 | static void update_cpu_capacity(unsigned int cpu) | 379 | static void update_cpu_capacity(unsigned int cpu) |
162 | { | 380 | { |
163 | if (!cpu_capacity(cpu)) | 381 | if (!cpu_capacity(cpu) || cap_from_dt) |
164 | return; | 382 | return; |
165 | 383 | ||
166 | set_capacity_scale(cpu, cpu_capacity(cpu) / middle_capacity); | 384 | set_capacity_scale(cpu, cpu_capacity(cpu) / middle_capacity); |
diff --git a/arch/arm/lib/delay-loop.S b/arch/arm/lib/delay-loop.S index 792c59d885bc..c766694e929c 100644 --- a/arch/arm/lib/delay-loop.S +++ b/arch/arm/lib/delay-loop.S | |||
@@ -17,24 +17,23 @@ | |||
17 | .LC1: .word UDELAY_MULT | 17 | .LC1: .word UDELAY_MULT |
18 | 18 | ||
19 | /* | 19 | /* |
20 | * loops = r0 * HZ * loops_per_jiffy / 1000000 | ||
21 | * | ||
20 | * r0 <= 2000 | 22 | * r0 <= 2000 |
21 | * HZ <= 1000 | 23 | * HZ <= 1000 |
22 | */ | 24 | */ |
23 | 25 | ||
24 | ENTRY(__loop_udelay) | 26 | ENTRY(__loop_udelay) |
25 | ldr r2, .LC1 | 27 | ldr r2, .LC1 |
26 | mul r0, r2, r0 | 28 | mul r0, r2, r0 @ r0 = delay_us * UDELAY_MULT |
27 | ENTRY(__loop_const_udelay) @ 0 <= r0 <= 0x7fffff06 | 29 | ENTRY(__loop_const_udelay) @ 0 <= r0 <= 0xfffffaf0 |
28 | ldr r2, .LC0 | 30 | ldr r2, .LC0 |
29 | ldr r2, [r2] | 31 | ldr r2, [r2] |
30 | umull r1, r0, r2, r0 | 32 | umull r1, r0, r2, r0 @ r0-r1 = r0 * loops_per_jiffy |
31 | adds r1, r1, #0xffffffff | 33 | adds r1, r1, #0xffffffff @ rounding up ... |
32 | adcs r0, r0, r0 | 34 | adcs r0, r0, r0 @ and right shift by 31 |
33 | reteq lr | 35 | reteq lr |
34 | 36 | ||
35 | /* | ||
36 | * loops = r0 * HZ * loops_per_jiffy / 1000000 | ||
37 | */ | ||
38 | .align 3 | 37 | .align 3 |
39 | 38 | ||
40 | @ Delay routine | 39 | @ Delay routine |
diff --git a/arch/arm/mach-sa1100/include/mach/SA-1101.h b/arch/arm/mach-sa1100/include/mach/SA-1101.h deleted file mode 100644 index 5d2ad7db991c..000000000000 --- a/arch/arm/mach-sa1100/include/mach/SA-1101.h +++ /dev/null | |||
@@ -1,925 +0,0 @@ | |||
1 | /* | ||
2 | * SA-1101.h | ||
3 | * | ||
4 | * Copyright (c) Peter Danielsson 1999 | ||
5 | * | ||
6 | * Definition of constants related to the sa1101 | ||
7 | * support chip for the sa1100 | ||
8 | * | ||
9 | */ | ||
10 | |||
11 | |||
12 | /* Be sure that virtual mapping is defined right */ | ||
13 | #ifndef __ASM_ARCH_HARDWARE_H | ||
14 | #error You must include hardware.h not SA-1101.h | ||
15 | #endif | ||
16 | |||
17 | #ifndef SA1101_BASE | ||
18 | #error You must define SA-1101 physical base address | ||
19 | #endif | ||
20 | |||
21 | #ifndef LANGUAGE | ||
22 | # ifdef __ASSEMBLY__ | ||
23 | # define LANGUAGE Assembly | ||
24 | # else | ||
25 | # define LANGUAGE C | ||
26 | # endif | ||
27 | #endif | ||
28 | |||
29 | /* | ||
30 | * We have mapped the sa1101 depending on the value of SA1101_BASE. | ||
31 | * It then appears from 0xf4000000. | ||
32 | */ | ||
33 | |||
34 | #define SA1101_p2v( x ) ((x) - SA1101_BASE + 0xf4000000) | ||
35 | #define SA1101_v2p( x ) ((x) - 0xf4000000 + SA1101_BASE) | ||
36 | |||
37 | #ifndef SA1101_p2v | ||
38 | #define SA1101_p2v(PhAdd) (PhAdd) | ||
39 | #endif | ||
40 | |||
41 | #include <mach/bitfield.h> | ||
42 | |||
43 | #define C 0 | ||
44 | #define Assembly 1 | ||
45 | |||
46 | |||
47 | /* | ||
48 | * Memory map | ||
49 | */ | ||
50 | |||
51 | #define __SHMEM_CONTROL0 0x00000000 | ||
52 | #define __SYSTEM_CONTROL1 0x00000400 | ||
53 | #define __ARBITER 0x00020000 | ||
54 | #define __SYSTEM_CONTROL2 0x00040000 | ||
55 | #define __SYSTEM_CONTROL3 0x00060000 | ||
56 | #define __PARALLEL_PORT 0x00080000 | ||
57 | #define __VIDMEM_CONTROL 0x00100000 | ||
58 | #define __UPDATE_FIFO 0x00120000 | ||
59 | #define __SHMEM_CONTROL1 0x00140000 | ||
60 | #define __INTERRUPT_CONTROL 0x00160000 | ||
61 | #define __USB_CONTROL 0x00180000 | ||
62 | #define __TRACK_INTERFACE 0x001a0000 | ||
63 | #define __MOUSE_INTERFACE 0x001b0000 | ||
64 | #define __KEYPAD_INTERFACE 0x001c0000 | ||
65 | #define __PCMCIA_INTERFACE 0x001e0000 | ||
66 | #define __VGA_CONTROL 0x00200000 | ||
67 | #define __GPIO_INTERFACE 0x00300000 | ||
68 | |||
69 | /* | ||
70 | * Macro that calculates real address for registers in the SA-1101 | ||
71 | */ | ||
72 | |||
73 | #define _SA1101( x ) ((x) + SA1101_BASE) | ||
74 | |||
75 | /* | ||
76 | * Interface and shared memory controller registers | ||
77 | * | ||
78 | * Registers | ||
79 | * SKCR SA-1101 control register (read/write) | ||
80 | * SMCR Shared Memory Controller Register | ||
81 | * SNPR Snoop Register | ||
82 | */ | ||
83 | |||
84 | #define _SKCR _SA1101( 0x00000000 ) /* SA-1101 Control Reg. */ | ||
85 | #define _SMCR _SA1101( 0x00140000 ) /* Shared Mem. Control Reg. */ | ||
86 | #define _SNPR _SA1101( 0x00140400 ) /* Snoop Reg. */ | ||
87 | |||
88 | #if LANGUAGE == C | ||
89 | #define SKCR (*((volatile Word *) SA1101_p2v (_SKCR))) | ||
90 | #define SMCR (*((volatile Word *) SA1101_p2v (_SMCR))) | ||
91 | #define SNPR (*((volatile Word *) SA1101_p2v (_SNPR))) | ||
92 | |||
93 | #define SKCR_PLLEn 0x0001 /* Enable On-Chip PLL */ | ||
94 | #define SKCR_BCLKEn 0x0002 /* Enables BCLK */ | ||
95 | #define SKCR_Sleep 0x0004 /* Sleep Mode */ | ||
96 | #define SKCR_IRefEn 0x0008 /* DAC Iref input enable */ | ||
97 | #define SKCR_VCOON 0x0010 /* VCO bias */ | ||
98 | #define SKCR_ScanTestEn 0x0020 /* Enables scan test */ | ||
99 | #define SKCR_ClockTestEn 0x0040 /* Enables clock test */ | ||
100 | |||
101 | #define SMCR_DCAC Fld(2,0) /* Number of column address bits */ | ||
102 | #define SMCR_DRAC Fld(2,2) /* Number of row address bits */ | ||
103 | #define SMCR_ArbiterBias 0x0008 /* favor video or USB */ | ||
104 | #define SMCR_TopVidMem Fld(4,5) /* Top 4 bits of vidmem addr. */ | ||
105 | |||
106 | #define SMCR_ColAdrBits( x ) /* col. addr bits 8..11 */ \ | ||
107 | (( (x) - 8 ) << FShft (SMCR_DCAC)) | ||
108 | #define SMCR_RowAdrBits( x ) /* row addr bits 9..12 */\ | ||
109 | (( (x) - 9 ) << FShft (SMCR_DRAC)) | ||
110 | |||
111 | #define SNPR_VFBstart Fld(12,0) /* Video frame buffer addr */ | ||
112 | #define SNPR_VFBsize Fld(11,12) /* Video frame buffer size */ | ||
113 | #define SNPR_WholeBank (1 << 23) /* Whole bank bit */ | ||
114 | #define SNPR_BankSelect Fld(2,27) /* Bank select */ | ||
115 | #define SNPR_SnoopEn (1 << 31) /* Enable snoop operation */ | ||
116 | |||
117 | #define SNPR_Set_VFBsize( x ) /* set frame buffer size (in kb) */ \ | ||
118 | ( (x) << FShft (SNPR_VFBsize)) | ||
119 | #define SNPR_Select_Bank(x) /* select bank 0 or 1 */ \ | ||
120 | (( (x) + 1 ) << FShft (SNPR_BankSelect )) | ||
121 | |||
122 | #endif /* LANGUAGE == C */ | ||
123 | |||
124 | /* | ||
125 | * Video Memory Controller | ||
126 | * | ||
127 | * Registers | ||
128 | * VMCCR Configuration register | ||
129 | * VMCAR VMC address register | ||
130 | * VMCDR VMC data register | ||
131 | * | ||
132 | */ | ||
133 | |||
134 | #define _VMCCR _SA1101( 0x00100000 ) /* Configuration register */ | ||
135 | #define _VMCAR _SA1101( 0x00101000 ) /* VMC address register */ | ||
136 | #define _VMCDR _SA1101( 0x00101400 ) /* VMC data register */ | ||
137 | |||
138 | #if LANGUAGE == C | ||
139 | #define VMCCR (*((volatile Word *) SA1101_p2v (_VMCCR))) | ||
140 | #define VMCAR (*((volatile Word *) SA1101_p2v (_VMCAR))) | ||
141 | #define VMCDR (*((volatile Word *) SA1101_p2v (_VMCDR))) | ||
142 | |||
143 | #define VMCCR_RefreshEn 0x0000 /* Enable memory refresh */ | ||
144 | #define VMCCR_Config 0x0001 /* DRAM size */ | ||
145 | #define VMCCR_RefPeriod Fld(2,3) /* Refresh period */ | ||
146 | #define VMCCR_StaleDataWait Fld(4,5) /* Stale FIFO data timeout counter */ | ||
147 | #define VMCCR_SleepState (1<<9) /* State of interface pins in sleep*/ | ||
148 | #define VMCCR_RefTest (1<<10) /* refresh test */ | ||
149 | #define VMCCR_RefLow Fld(6,11) /* refresh low counter */ | ||
150 | #define VMCCR_RefHigh Fld(7,17) /* refresh high counter */ | ||
151 | #define VMCCR_SDTCTest Fld(7,24) /* stale data timeout counter */ | ||
152 | #define VMCCR_ForceSelfRef (1<<31) /* Force self refresh */ | ||
153 | |||
154 | #endif LANGUAGE == C | ||
155 | |||
156 | |||
157 | /* Update FIFO | ||
158 | * | ||
159 | * Registers | ||
160 | * UFCR Update FIFO Control Register | ||
161 | * UFSR Update FIFO Status Register | ||
162 | * UFLVLR update FIFO level register | ||
163 | * UFDR update FIFO data register | ||
164 | */ | ||
165 | |||
166 | #define _UFCR _SA1101(0x00120000) /* Update FIFO Control Reg. */ | ||
167 | #define _UFSR _SA1101(0x00120400) /* Update FIFO Status Reg. */ | ||
168 | #define _UFLVLR _SA1101(0x00120800) /* Update FIFO level reg. */ | ||
169 | #define _UFDR _SA1101(0x00120c00) /* Update FIFO data reg. */ | ||
170 | |||
171 | #if LANGUAGE == C | ||
172 | |||
173 | #define UFCR (*((volatile Word *) SA1101_p2v (_UFCR))) | ||
174 | #define UFSR (*((volatile Word *) SA1101_p2v (_UFSR))) | ||
175 | #define UFLVLR (*((volatile Word *) SA1101_p2v (_UFLVLR))) | ||
176 | #define UFDR (*((volatile Word *) SA1101_p2v (_UFDR))) | ||
177 | |||
178 | |||
179 | #define UFCR_FifoThreshhold Fld(7,0) /* Level for FifoGTn flag */ | ||
180 | |||
181 | #define UFSR_FifoGTnFlag 0x01 /* FifoGTn flag */#define UFSR_FifoEmpty 0x80 /* FIFO is empty */ | ||
182 | |||
183 | #endif /* LANGUAGE == C */ | ||
184 | |||
185 | /* System Controller | ||
186 | * | ||
187 | * Registers | ||
188 | * SKPCR Power Control Register | ||
189 | * SKCDR Clock Divider Register | ||
190 | * DACDR1 DAC1 Data register | ||
191 | * DACDR2 DAC2 Data register | ||
192 | */ | ||
193 | |||
194 | #define _SKPCR _SA1101(0x00000400) | ||
195 | #define _SKCDR _SA1101(0x00040000) | ||
196 | #define _DACDR1 _SA1101(0x00060000) | ||
197 | #define _DACDR2 _SA1101(0x00060400) | ||
198 | |||
199 | #if LANGUAGE == C | ||
200 | #define SKPCR (*((volatile Word *) SA1101_p2v (_SKPCR))) | ||
201 | #define SKCDR (*((volatile Word *) SA1101_p2v (_SKCDR))) | ||
202 | #define DACDR1 (*((volatile Word *) SA1101_p2v (_DACDR1))) | ||
203 | #define DACDR2 (*((volatile Word *) SA1101_p2v (_DACDR2))) | ||
204 | |||
205 | #define SKPCR_UCLKEn 0x01 /* USB Enable */ | ||
206 | #define SKPCR_PCLKEn 0x02 /* PS/2 Enable */ | ||
207 | #define SKPCR_ICLKEn 0x04 /* Interrupt Controller Enable */ | ||
208 | #define SKPCR_VCLKEn 0x08 /* Video Controller Enable */ | ||
209 | #define SKPCR_PICLKEn 0x10 /* parallel port Enable */ | ||
210 | #define SKPCR_DCLKEn 0x20 /* DACs Enable */ | ||
211 | #define SKPCR_nKPADEn 0x40 /* Multiplexer */ | ||
212 | |||
213 | #define SKCDR_PLLMul Fld(7,0) /* PLL Multiplier */ | ||
214 | #define SKCDR_VCLKEn Fld(2,7) /* Video controller clock divider */ | ||
215 | #define SKDCR_BCLKEn (1<<9) /* BCLK Divider */ | ||
216 | #define SKDCR_UTESTCLKEn (1<<10) /* Route USB clock during test mode */ | ||
217 | #define SKDCR_DivRValue Fld(6,11) /* Input clock divider for PLL */ | ||
218 | #define SKDCR_DivNValue Fld(5,17) /* Output clock divider for PLL */ | ||
219 | #define SKDCR_PLLRSH Fld(3,22) /* PLL bandwidth control */ | ||
220 | #define SKDCR_ChargePump (1<<25) /* Charge pump control */ | ||
221 | #define SKDCR_ClkTestMode (1<<26) /* Clock output test mode */ | ||
222 | #define SKDCR_ClkTestEn (1<<27) /* Test clock generator */ | ||
223 | #define SKDCR_ClkJitterCntl Fld(3,28) /* video clock jitter compensation */ | ||
224 | |||
225 | #define DACDR_DACCount Fld(8,0) /* Count value */ | ||
226 | #define DACDR1_DACCount DACDR_DACCount | ||
227 | #define DACDR2_DACCount DACDR_DACCount | ||
228 | |||
229 | #endif /* LANGUAGE == C */ | ||
230 | |||
231 | /* | ||
232 | * Parallel Port Interface | ||
233 | * | ||
234 | * Registers | ||
235 | * IEEE_Config IEEE mode selection and programmable attributes | ||
236 | * IEEE_Control Controls the states of IEEE port control outputs | ||
237 | * IEEE_Data Forward transfer data register | ||
238 | * IEEE_Addr Forward transfer address register | ||
239 | * IEEE_Status Port IO signal status register | ||
240 | * IEEE_IntStatus Port interrupts status register | ||
241 | * IEEE_FifoLevels Rx and Tx FIFO interrupt generation levels | ||
242 | * IEEE_InitTime Forward timeout counter initial value | ||
243 | * IEEE_TimerStatus Forward timeout counter current value | ||
244 | * IEEE_FifoReset Reset forward transfer FIFO | ||
245 | * IEEE_ReloadValue Counter reload value | ||
246 | * IEEE_TestControl Control testmode | ||
247 | * IEEE_TestDataIn Test data register | ||
248 | * IEEE_TestDataInEn Enable test data | ||
249 | * IEEE_TestCtrlIn Test control signals | ||
250 | * IEEE_TestCtrlInEn Enable test control signals | ||
251 | * IEEE_TestDataStat Current data bus value | ||
252 | * | ||
253 | */ | ||
254 | |||
255 | /* | ||
256 | * The control registers are defined as offsets from a base address | ||
257 | */ | ||
258 | |||
259 | #define _IEEE( x ) _SA1101( (x) + __PARALLEL_PORT ) | ||
260 | |||
261 | #define _IEEE_Config _IEEE( 0x0000 ) | ||
262 | #define _IEEE_Control _IEEE( 0x0400 ) | ||
263 | #define _IEEE_Data _IEEE( 0x4000 ) | ||
264 | #define _IEEE_Addr _IEEE( 0x0800 ) | ||
265 | #define _IEEE_Status _IEEE( 0x0c00 ) | ||
266 | #define _IEEE_IntStatus _IEEE( 0x1000 ) | ||
267 | #define _IEEE_FifoLevels _IEEE( 0x1400 ) | ||
268 | #define _IEEE_InitTime _IEEE( 0x1800 ) | ||
269 | #define _IEEE_TimerStatus _IEEE( 0x1c00 ) | ||
270 | #define _IEEE_FifoReset _IEEE( 0x2000 ) | ||
271 | #define _IEEE_ReloadValue _IEEE( 0x3c00 ) | ||
272 | #define _IEEE_TestControl _IEEE( 0x2400 ) | ||
273 | #define _IEEE_TestDataIn _IEEE( 0x2800 ) | ||
274 | #define _IEEE_TestDataInEn _IEEE( 0x2c00 ) | ||
275 | #define _IEEE_TestCtrlIn _IEEE( 0x3000 ) | ||
276 | #define _IEEE_TestCtrlInEn _IEEE( 0x3400 ) | ||
277 | #define _IEEE_TestDataStat _IEEE( 0x3800 ) | ||
278 | |||
279 | |||
280 | #if LANGUAGE == C | ||
281 | #define IEEE_Config (*((volatile Word *) SA1101_p2v (_IEEE_Config))) | ||
282 | #define IEEE_Control (*((volatile Word *) SA1101_p2v (_IEEE_Control))) | ||
283 | #define IEEE_Data (*((volatile Word *) SA1101_p2v (_IEEE_Data))) | ||
284 | #define IEEE_Addr (*((volatile Word *) SA1101_p2v (_IEEE_Addr))) | ||
285 | #define IEEE_Status (*((volatile Word *) SA1101_p2v (_IEEE_Status))) | ||
286 | #define IEEE_IntStatus (*((volatile Word *) SA1101_p2v (_IEEE_IntStatus))) | ||
287 | #define IEEE_FifoLevels (*((volatile Word *) SA1101_p2v (_IEEE_FifoLevels))) | ||
288 | #define IEEE_InitTime (*((volatile Word *) SA1101_p2v (_IEEE_InitTime))) | ||
289 | #define IEEE_TimerStatus (*((volatile Word *) SA1101_p2v (_IEEE_TimerStatus))) | ||
290 | #define IEEE_FifoReset (*((volatile Word *) SA1101_p2v (_IEEE_FifoReset))) | ||
291 | #define IEEE_ReloadValue (*((volatile Word *) SA1101_p2v (_IEEE_ReloadValue))) | ||
292 | #define IEEE_TestControl (*((volatile Word *) SA1101_p2v (_IEEE_TestControl))) | ||
293 | #define IEEE_TestDataIn (*((volatile Word *) SA1101_p2v (_IEEE_TestDataIn))) | ||
294 | #define IEEE_TestDataInEn (*((volatile Word *) SA1101_p2v (_IEEE_TestDataInEn))) | ||
295 | #define IEEE_TestCtrlIn (*((volatile Word *) SA1101_p2v (_IEEE_TestCtrlIn))) | ||
296 | #define IEEE_TestCtrlInEn (*((volatile Word *) SA1101_p2v (_IEEE_TestCtrlInEn))) | ||
297 | #define IEEE_TestDataStat (*((volatile Word *) SA1101_p2v (_IEEE_TestDataStat))) | ||
298 | |||
299 | |||
300 | #define IEEE_Config_M Fld(3,0) /* Mode select */ | ||
301 | #define IEEE_Config_D 0x04 /* FIFO access enable */ | ||
302 | #define IEEE_Config_B 0x08 /* 9-bit word enable */ | ||
303 | #define IEEE_Config_T 0x10 /* Data transfer enable */ | ||
304 | #define IEEE_Config_A 0x20 /* Data transfer direction */ | ||
305 | #define IEEE_Config_E 0x40 /* Timer enable */ | ||
306 | #define IEEE_Control_A 0x08 /* AutoFd output */ | ||
307 | #define IEEE_Control_E 0x04 /* Selectin output */ | ||
308 | #define IEEE_Control_T 0x02 /* Strobe output */ | ||
309 | #define IEEE_Control_I 0x01 /* Port init output */ | ||
310 | #define IEEE_Data_C (1<<31) /* Byte count */ | ||
311 | #define IEEE_Data_Db Fld(9,16) /* Data byte 2 */ | ||
312 | #define IEEE_Data_Da Fld(9,0) /* Data byte 1 */ | ||
313 | #define IEEE_Addr_A Fld(8,0) /* forward address transfer byte */ | ||
314 | #define IEEE_Status_A 0x0100 /* nAutoFd port output status */ | ||
315 | #define IEEE_Status_E 0x0080 /* nSelectIn port output status */ | ||
316 | #define IEEE_Status_T 0x0040 /* nStrobe port output status */ | ||
317 | #define IEEE_Status_I 0x0020 /* nInit port output status */ | ||
318 | #define IEEE_Status_B 0x0010 /* Busy port inout status */ | ||
319 | #define IEEE_Status_S 0x0008 /* Select port input status */ | ||
320 | #define IEEE_Status_K 0x0004 /* nAck port input status */ | ||
321 | #define IEEE_Status_F 0x0002 /* nFault port input status */ | ||
322 | #define IEEE_Status_R 0x0001 /* pError port input status */ | ||
323 | |||
324 | #define IEEE_IntStatus_IntReqDat 0x0100 | ||
325 | #define IEEE_IntStatus_IntReqEmp 0x0080 | ||
326 | #define IEEE_IntStatus_IntReqInt 0x0040 | ||
327 | #define IEEE_IntStatus_IntReqRav 0x0020 | ||
328 | #define IEEE_IntStatus_IntReqTim 0x0010 | ||
329 | #define IEEE_IntStatus_RevAddrComp 0x0008 | ||
330 | #define IEEE_IntStatus_RevDataComp 0x0004 | ||
331 | #define IEEE_IntStatus_FwdAddrComp 0x0002 | ||
332 | #define IEEE_IntStatus_FwdDataComp 0x0001 | ||
333 | #define IEEE_FifoLevels_RevFifoLevel 2 | ||
334 | #define IEEE_FifoLevels_FwdFifoLevel 1 | ||
335 | #define IEEE_InitTime_TimValInit Fld(22,0) | ||
336 | #define IEEE_TimerStatus_TimValStat Fld(22,0) | ||
337 | #define IEEE_ReloadValue_Reload Fld(4,0) | ||
338 | |||
339 | #define IEEE_TestControl_RegClk 0x04 | ||
340 | #define IEEE_TestControl_ClockSelect Fld(2,1) | ||
341 | #define IEEE_TestControl_TimerTestModeEn 0x01 | ||
342 | #define IEEE_TestCtrlIn_PError 0x10 | ||
343 | #define IEEE_TestCtrlIn_nFault 0x08 | ||
344 | #define IEEE_TestCtrlIn_nAck 0x04 | ||
345 | #define IEEE_TestCtrlIn_PSel 0x02 | ||
346 | #define IEEE_TestCtrlIn_Busy 0x01 | ||
347 | |||
348 | #endif /* LANGUAGE == C */ | ||
349 | |||
350 | /* | ||
351 | * VGA Controller | ||
352 | * | ||
353 | * Registers | ||
354 | * VideoControl Video Control Register | ||
355 | * VgaTiming0 VGA Timing Register 0 | ||
356 | * VgaTiming1 VGA Timing Register 1 | ||
357 | * VgaTiming2 VGA Timing Register 2 | ||
358 | * VgaTiming3 VGA Timing Register 3 | ||
359 | * VgaBorder VGA Border Color Register | ||
360 | * VgaDBAR VGADMA Base Address Register | ||
361 | * VgaDCAR VGADMA Channel Current Address Register | ||
362 | * VgaStatus VGA Status Register | ||
363 | * VgaInterruptMask VGA Interrupt Mask Register | ||
364 | * VgaPalette VGA Palette Registers | ||
365 | * DacControl DAC Control Register | ||
366 | * VgaTest VGA Controller Test Register | ||
367 | */ | ||
368 | |||
369 | #define _VGA( x ) _SA1101( ( x ) + __VGA_CONTROL ) | ||
370 | |||
371 | #define _VideoControl _VGA( 0x0000 ) | ||
372 | #define _VgaTiming0 _VGA( 0x0400 ) | ||
373 | #define _VgaTiming1 _VGA( 0x0800 ) | ||
374 | #define _VgaTiming2 _VGA( 0x0c00 ) | ||
375 | #define _VgaTiming3 _VGA( 0x1000 ) | ||
376 | #define _VgaBorder _VGA( 0x1400 ) | ||
377 | #define _VgaDBAR _VGA( 0x1800 ) | ||
378 | #define _VgaDCAR _VGA( 0x1c00 ) | ||
379 | #define _VgaStatus _VGA( 0x2000 ) | ||
380 | #define _VgaInterruptMask _VGA( 0x2400 ) | ||
381 | #define _VgaPalette _VGA( 0x40000 ) | ||
382 | #define _DacControl _VGA( 0x3000 ) | ||
383 | #define _VgaTest _VGA( 0x2c00 ) | ||
384 | |||
385 | #if (LANGUAGE == C) | ||
386 | #define VideoControl (*((volatile Word *) SA1101_p2v (_VideoControl))) | ||
387 | #define VgaTiming0 (*((volatile Word *) SA1101_p2v (_VgaTiming0))) | ||
388 | #define VgaTiming1 (*((volatile Word *) SA1101_p2v (_VgaTiming1))) | ||
389 | #define VgaTiming2 (*((volatile Word *) SA1101_p2v (_VgaTiming2))) | ||
390 | #define VgaTiming3 (*((volatile Word *) SA1101_p2v (_VgaTiming3))) | ||
391 | #define VgaBorder (*((volatile Word *) SA1101_p2v (_VgaBorder))) | ||
392 | #define VgaDBAR (*((volatile Word *) SA1101_p2v (_VgaDBAR))) | ||
393 | #define VgaDCAR (*((volatile Word *) SA1101_p2v (_VgaDCAR))) | ||
394 | #define VgaStatus (*((volatile Word *) SA1101_p2v (_VgaStatus))) | ||
395 | #define VgaInterruptMask (*((volatile Word *) SA1101_p2v (_VgaInterruptMask))) | ||
396 | #define VgaPalette (*((volatile Word *) SA1101_p2v (_VgaPalette))) | ||
397 | #define DacControl (*((volatile Word *) SA1101_p2v (_DacControl))) | ||
398 | #define VgaTest (*((volatile Word *) SA1101_p2v (_VgaTest))) | ||
399 | |||
400 | #define VideoControl_VgaEn 0x00000000 | ||
401 | #define VideoControl_BGR 0x00000001 | ||
402 | #define VideoControl_VCompVal Fld(2,2) | ||
403 | #define VideoControl_VgaReq Fld(4,4) | ||
404 | #define VideoControl_VBurstL Fld(4,8) | ||
405 | #define VideoControl_VMode (1<<12) | ||
406 | #define VideoControl_PalRead (1<<13) | ||
407 | |||
408 | #define VgaTiming0_PPL Fld(6,2) | ||
409 | #define VgaTiming0_HSW Fld(8,8) | ||
410 | #define VgaTiming0_HFP Fld(8,16) | ||
411 | #define VgaTiming0_HBP Fld(8,24) | ||
412 | |||
413 | #define VgaTiming1_LPS Fld(10,0) | ||
414 | #define VgaTiming1_VSW Fld(6,10) | ||
415 | #define VgaTiming1_VFP Fld(8,16) | ||
416 | #define VgaTiming1_VBP Fld(8,24) | ||
417 | |||
418 | #define VgaTiming2_IVS 0x01 | ||
419 | #define VgaTiming2_IHS 0x02 | ||
420 | #define VgaTiming2_CVS 0x04 | ||
421 | #define VgaTiming2_CHS 0x08 | ||
422 | |||
423 | #define VgaTiming3_HBS Fld(8,0) | ||
424 | #define VgaTiming3_HBE Fld(8,8) | ||
425 | #define VgaTiming3_VBS Fld(8,16) | ||
426 | #define VgaTiming3_VBE Fld(8,24) | ||
427 | |||
428 | #define VgaBorder_BCOL Fld(24,0) | ||
429 | |||
430 | #define VgaStatus_VFUF 0x01 | ||
431 | #define VgaStatus_VNext 0x02 | ||
432 | #define VgaStatus_VComp 0x04 | ||
433 | |||
434 | #define VgaInterruptMask_VFUFMask 0x00 | ||
435 | #define VgaInterruptMask_VNextMask 0x01 | ||
436 | #define VgaInterruptMask_VCompMask 0x02 | ||
437 | |||
438 | #define VgaPalette_R Fld(8,0) | ||
439 | #define VgaPalette_G Fld(8,8) | ||
440 | #define VgaPalette_B Fld(8,16) | ||
441 | |||
442 | #define DacControl_DACON 0x0001 | ||
443 | #define DacControl_COMPON 0x0002 | ||
444 | #define DacControl_PEDON 0x0004 | ||
445 | #define DacControl_RTrim Fld(5,4) | ||
446 | #define DacControl_GTrim Fld(5,9) | ||
447 | #define DacControl_BTrim Fld(5,14) | ||
448 | |||
449 | #define VgaTest_TDAC 0x00 | ||
450 | #define VgaTest_Datatest Fld(4,1) | ||
451 | #define VgaTest_DACTESTDAC 0x10 | ||
452 | #define VgaTest_DACTESTOUT Fld(3,5) | ||
453 | |||
454 | #endif /* LANGUAGE == C */ | ||
455 | |||
456 | /* | ||
457 | * USB Host Interface Controller | ||
458 | * | ||
459 | * Registers | ||
460 | * Revision | ||
461 | * Control | ||
462 | * CommandStatus | ||
463 | * InterruptStatus | ||
464 | * InterruptEnable | ||
465 | * HCCA | ||
466 | * PeriodCurrentED | ||
467 | * ControlHeadED | ||
468 | * BulkHeadED | ||
469 | * BulkCurrentED | ||
470 | * DoneHead | ||
471 | * FmInterval | ||
472 | * FmRemaining | ||
473 | * FmNumber | ||
474 | * PeriodicStart | ||
475 | * LSThreshold | ||
476 | * RhDescriptorA | ||
477 | * RhDescriptorB | ||
478 | * RhStatus | ||
479 | * RhPortStatus | ||
480 | * USBStatus | ||
481 | * USBReset | ||
482 | * USTAR | ||
483 | * USWER | ||
484 | * USRFR | ||
485 | * USNFR | ||
486 | * USTCSR | ||
487 | * USSR | ||
488 | * | ||
489 | */ | ||
490 | |||
491 | #define _USB( x ) _SA1101( ( x ) + __USB_CONTROL ) | ||
492 | |||
493 | |||
494 | #define _Revision _USB( 0x0000 ) | ||
495 | #define _Control _USB( 0x0888 ) | ||
496 | #define _CommandStatus _USB( 0x0c00 ) | ||
497 | #define _InterruptStatus _USB( 0x1000 ) | ||
498 | #define _InterruptEnable _USB( 0x1400 ) | ||
499 | #define _HCCA _USB( 0x1800 ) | ||
500 | #define _PeriodCurrentED _USB( 0x1c00 ) | ||
501 | #define _ControlHeadED _USB( 0x2000 ) | ||
502 | #define _BulkHeadED _USB( 0x2800 ) | ||
503 | #define _BulkCurrentED _USB( 0x2c00 ) | ||
504 | #define _DoneHead _USB( 0x3000 ) | ||
505 | #define _FmInterval _USB( 0x3400 ) | ||
506 | #define _FmRemaining _USB( 0x3800 ) | ||
507 | #define _FmNumber _USB( 0x3c00 ) | ||
508 | #define _PeriodicStart _USB( 0x4000 ) | ||
509 | #define _LSThreshold _USB( 0x4400 ) | ||
510 | #define _RhDescriptorA _USB( 0x4800 ) | ||
511 | #define _RhDescriptorB _USB( 0x4c00 ) | ||
512 | #define _RhStatus _USB( 0x5000 ) | ||
513 | #define _RhPortStatus _USB( 0x5400 ) | ||
514 | #define _USBStatus _USB( 0x11800 ) | ||
515 | #define _USBReset _USB( 0x11c00 ) | ||
516 | |||
517 | #define _USTAR _USB( 0x10400 ) | ||
518 | #define _USWER _USB( 0x10800 ) | ||
519 | #define _USRFR _USB( 0x10c00 ) | ||
520 | #define _USNFR _USB( 0x11000 ) | ||
521 | #define _USTCSR _USB( 0x11400 ) | ||
522 | #define _USSR _USB( 0x11800 ) | ||
523 | |||
524 | |||
525 | #if (LANGUAGE == C) | ||
526 | |||
527 | #define Revision (*((volatile Word *) SA1101_p2v (_Revision))) | ||
528 | #define Control (*((volatile Word *) SA1101_p2v (_Control))) | ||
529 | #define CommandStatus (*((volatile Word *) SA1101_p2v (_CommandStatus))) | ||
530 | #define InterruptStatus (*((volatile Word *) SA1101_p2v (_InterruptStatus))) | ||
531 | #define InterruptEnable (*((volatile Word *) SA1101_p2v (_InterruptEnable))) | ||
532 | #define HCCA (*((volatile Word *) SA1101_p2v (_HCCA))) | ||
533 | #define PeriodCurrentED (*((volatile Word *) SA1101_p2v (_PeriodCurrentED))) | ||
534 | #define ControlHeadED (*((volatile Word *) SA1101_p2v (_ControlHeadED))) | ||
535 | #define BulkHeadED (*((volatile Word *) SA1101_p2v (_BulkHeadED))) | ||
536 | #define BulkCurrentED (*((volatile Word *) SA1101_p2v (_BulkCurrentED))) | ||
537 | #define DoneHead (*((volatile Word *) SA1101_p2v (_DoneHead))) | ||
538 | #define FmInterval (*((volatile Word *) SA1101_p2v (_FmInterval))) | ||
539 | #define FmRemaining (*((volatile Word *) SA1101_p2v (_FmRemaining))) | ||
540 | #define FmNumber (*((volatile Word *) SA1101_p2v (_FmNumber))) | ||
541 | #define PeriodicStart (*((volatile Word *) SA1101_p2v (_PeriodicStart))) | ||
542 | #define LSThreshold (*((volatile Word *) SA1101_p2v (_LSThreshold))) | ||
543 | #define RhDescriptorA (*((volatile Word *) SA1101_p2v (_RhDescriptorA))) | ||
544 | #define RhDescriptorB (*((volatile Word *) SA1101_p2v (_RhDescriptorB))) | ||
545 | #define RhStatus (*((volatile Word *) SA1101_p2v (_RhStatus))) | ||
546 | #define RhPortStatus (*((volatile Word *) SA1101_p2v (_RhPortStatus))) | ||
547 | #define USBStatus (*((volatile Word *) SA1101_p2v (_USBStatus))) | ||
548 | #define USBReset (*((volatile Word *) SA1101_p2v (_USBReset))) | ||
549 | #define USTAR (*((volatile Word *) SA1101_p2v (_USTAR))) | ||
550 | #define USWER (*((volatile Word *) SA1101_p2v (_USWER))) | ||
551 | #define USRFR (*((volatile Word *) SA1101_p2v (_USRFR))) | ||
552 | #define USNFR (*((volatile Word *) SA1101_p2v (_USNFR))) | ||
553 | #define USTCSR (*((volatile Word *) SA1101_p2v (_USTCSR))) | ||
554 | #define USSR (*((volatile Word *) SA1101_p2v (_USSR))) | ||
555 | |||
556 | |||
557 | #define USBStatus_IrqHciRmtWkp (1<<7) | ||
558 | #define USBStatus_IrqHciBuffAcc (1<<8) | ||
559 | #define USBStatus_nIrqHciM (1<<9) | ||
560 | #define USBStatus_nHciMFClr (1<<10) | ||
561 | |||
562 | #define USBReset_ForceIfReset 0x01 | ||
563 | #define USBReset_ForceHcReset 0x02 | ||
564 | #define USBReset_ClkGenReset 0x04 | ||
565 | |||
566 | #define USTCR_RdBstCntrl Fld(3,0) | ||
567 | #define USTCR_ByteEnable Fld(4,3) | ||
568 | #define USTCR_WriteEn (1<<7) | ||
569 | #define USTCR_FifoCir (1<<8) | ||
570 | #define USTCR_TestXferSel (1<<9) | ||
571 | #define USTCR_FifoCirAtEnd (1<<10) | ||
572 | #define USTCR_nSimScaleDownClk (1<<11) | ||
573 | |||
574 | #define USSR_nAppMDEmpty 0x01 | ||
575 | #define USSR_nAppMDFirst 0x02 | ||
576 | #define USSR_nAppMDLast 0x04 | ||
577 | #define USSR_nAppMDFull 0x08 | ||
578 | #define USSR_nAppMAFull 0x10 | ||
579 | #define USSR_XferReq 0x20 | ||
580 | #define USSR_XferEnd 0x40 | ||
581 | |||
582 | #endif /* LANGUAGE == C */ | ||
583 | |||
584 | |||
585 | /* | ||
586 | * Interrupt Controller | ||
587 | * | ||
588 | * Registers | ||
589 | * INTTEST0 Test register 0 | ||
590 | * INTTEST1 Test register 1 | ||
591 | * INTENABLE0 Interrupt Enable register 0 | ||
592 | * INTENABLE1 Interrupt Enable register 1 | ||
593 | * INTPOL0 Interrupt Polarity selection 0 | ||
594 | * INTPOL1 Interrupt Polarity selection 1 | ||
595 | * INTTSTSEL Interrupt source selection | ||
596 | * INTSTATCLR0 Interrupt Status 0 | ||
597 | * INTSTATCLR1 Interrupt Status 1 | ||
598 | * INTSET0 Interrupt Set 0 | ||
599 | * INTSET1 Interrupt Set 1 | ||
600 | */ | ||
601 | |||
602 | #define _INT( x ) _SA1101( ( x ) + __INTERRUPT_CONTROL) | ||
603 | |||
604 | #define _INTTEST0 _INT( 0x1000 ) | ||
605 | #define _INTTEST1 _INT( 0x1400 ) | ||
606 | #define _INTENABLE0 _INT( 0x2000 ) | ||
607 | #define _INTENABLE1 _INT( 0x2400 ) | ||
608 | #define _INTPOL0 _INT( 0x3000 ) | ||
609 | #define _INTPOL1 _INT( 0x3400 ) | ||
610 | #define _INTTSTSEL _INT( 0x5000 ) | ||
611 | #define _INTSTATCLR0 _INT( 0x6000 ) | ||
612 | #define _INTSTATCLR1 _INT( 0x6400 ) | ||
613 | #define _INTSET0 _INT( 0x7000 ) | ||
614 | #define _INTSET1 _INT( 0x7400 ) | ||
615 | |||
616 | #if ( LANGUAGE == C ) | ||
617 | #define INTTEST0 (*((volatile Word *) SA1101_p2v (_INTTEST0))) | ||
618 | #define INTTEST1 (*((volatile Word *) SA1101_p2v (_INTTEST1))) | ||
619 | #define INTENABLE0 (*((volatile Word *) SA1101_p2v (_INTENABLE0))) | ||
620 | #define INTENABLE1 (*((volatile Word *) SA1101_p2v (_INTENABLE1))) | ||
621 | #define INTPOL0 (*((volatile Word *) SA1101_p2v (_INTPOL0))) | ||
622 | #define INTPOL1 (*((volatile Word *) SA1101_p2v (_INTPOL1))) | ||
623 | #define INTTSTSEL (*((volatile Word *) SA1101_p2v (_INTTSTSEL))) | ||
624 | #define INTSTATCLR0 (*((volatile Word *) SA1101_p2v (_INTSTATCLR0))) | ||
625 | #define INTSTATCLR1 (*((volatile Word *) SA1101_p2v (_INTSTATCLR1))) | ||
626 | #define INTSET0 (*((volatile Word *) SA1101_p2v (_INTSET0))) | ||
627 | #define INTSET1 (*((volatile Word *) SA1101_p2v (_INTSET1))) | ||
628 | |||
629 | #endif /* LANGUAGE == C */ | ||
630 | |||
631 | /* | ||
632 | * PS/2 Trackpad and Mouse Interfaces | ||
633 | * | ||
634 | * Registers (prefix kbd applies to trackpad interface, mse to mouse) | ||
635 | * KBDCR Control Register | ||
636 | * KBDSTAT Status Register | ||
637 | * KBDDATA Transmit/Receive Data register | ||
638 | * KBDCLKDIV Clock Division Register | ||
639 | * KBDPRECNT Clock Precount Register | ||
640 | * KBDTEST1 Test register 1 | ||
641 | * KBDTEST2 Test register 2 | ||
642 | * KBDTEST3 Test register 3 | ||
643 | * KBDTEST4 Test register 4 | ||
644 | * MSECR | ||
645 | * MSESTAT | ||
646 | * MSEDATA | ||
647 | * MSECLKDIV | ||
648 | * MSEPRECNT | ||
649 | * MSETEST1 | ||
650 | * MSETEST2 | ||
651 | * MSETEST3 | ||
652 | * MSETEST4 | ||
653 | * | ||
654 | */ | ||
655 | |||
656 | #define _KBD( x ) _SA1101( ( x ) + __TRACK_INTERFACE ) | ||
657 | #define _MSE( x ) _SA1101( ( x ) + __MOUSE_INTERFACE ) | ||
658 | |||
659 | #define _KBDCR _KBD( 0x0000 ) | ||
660 | #define _KBDSTAT _KBD( 0x0400 ) | ||
661 | #define _KBDDATA _KBD( 0x0800 ) | ||
662 | #define _KBDCLKDIV _KBD( 0x0c00 ) | ||
663 | #define _KBDPRECNT _KBD( 0x1000 ) | ||
664 | #define _KBDTEST1 _KBD( 0x2000 ) | ||
665 | #define _KBDTEST2 _KBD( 0x2400 ) | ||
666 | #define _KBDTEST3 _KBD( 0x2800 ) | ||
667 | #define _KBDTEST4 _KBD( 0x2c00 ) | ||
668 | #define _MSECR _MSE( 0x0000 ) | ||
669 | #define _MSESTAT _MSE( 0x0400 ) | ||
670 | #define _MSEDATA _MSE( 0x0800 ) | ||
671 | #define _MSECLKDIV _MSE( 0x0c00 ) | ||
672 | #define _MSEPRECNT _MSE( 0x1000 ) | ||
673 | #define _MSETEST1 _MSE( 0x2000 ) | ||
674 | #define _MSETEST2 _MSE( 0x2400 ) | ||
675 | #define _MSETEST3 _MSE( 0x2800 ) | ||
676 | #define _MSETEST4 _MSE( 0x2c00 ) | ||
677 | |||
678 | #if ( LANGUAGE == C ) | ||
679 | |||
680 | #define KBDCR (*((volatile Word *) SA1101_p2v (_KBDCR))) | ||
681 | #define KBDSTAT (*((volatile Word *) SA1101_p2v (_KBDSTAT))) | ||
682 | #define KBDDATA (*((volatile Word *) SA1101_p2v (_KBDDATA))) | ||
683 | #define KBDCLKDIV (*((volatile Word *) SA1101_p2v (_KBDCLKDIV))) | ||
684 | #define KBDPRECNT (*((volatile Word *) SA1101_p2v (_KBDPRECNT))) | ||
685 | #define KBDTEST1 (*((volatile Word *) SA1101_p2v (_KBDTEST1))) | ||
686 | #define KBDTEST2 (*((volatile Word *) SA1101_p2v (_KBDTEST2))) | ||
687 | #define KBDTEST3 (*((volatile Word *) SA1101_p2v (_KBDTEST3))) | ||
688 | #define KBDTEST4 (*((volatile Word *) SA1101_p2v (_KBDTEST4))) | ||
689 | #define MSECR (*((volatile Word *) SA1101_p2v (_MSECR))) | ||
690 | #define MSESTAT (*((volatile Word *) SA1101_p2v (_MSESTAT))) | ||
691 | #define MSEDATA (*((volatile Word *) SA1101_p2v (_MSEDATA))) | ||
692 | #define MSECLKDIV (*((volatile Word *) SA1101_p2v (_MSECLKDIV))) | ||
693 | #define MSEPRECNT (*((volatile Word *) SA1101_p2v (_MSEPRECNT))) | ||
694 | #define MSETEST1 (*((volatile Word *) SA1101_p2v (_MSETEST1))) | ||
695 | #define MSETEST2 (*((volatile Word *) SA1101_p2v (_MSETEST2))) | ||
696 | #define MSETEST3 (*((volatile Word *) SA1101_p2v (_MSETEST3))) | ||
697 | #define MSETEST4 (*((volatile Word *) SA1101_p2v (_MSETEST4))) | ||
698 | |||
699 | |||
700 | #define KBDCR_ENA 0x08 | ||
701 | #define KBDCR_FKD 0x02 | ||
702 | #define KBDCR_FKC 0x01 | ||
703 | |||
704 | #define KBDSTAT_TXE 0x80 | ||
705 | #define KBDSTAT_TXB 0x40 | ||
706 | #define KBDSTAT_RXF 0x20 | ||
707 | #define KBDSTAT_RXB 0x10 | ||
708 | #define KBDSTAT_ENA 0x08 | ||
709 | #define KBDSTAT_RXP 0x04 | ||
710 | #define KBDSTAT_KBD 0x02 | ||
711 | #define KBDSTAT_KBC 0x01 | ||
712 | |||
713 | #define KBDCLKDIV_DivVal Fld(4,0) | ||
714 | |||
715 | #define MSECR_ENA 0x08 | ||
716 | #define MSECR_FKD 0x02 | ||
717 | #define MSECR_FKC 0x01 | ||
718 | |||
719 | #define MSESTAT_TXE 0x80 | ||
720 | #define MSESTAT_TXB 0x40 | ||
721 | #define MSESTAT_RXF 0x20 | ||
722 | #define MSESTAT_RXB 0x10 | ||
723 | #define MSESTAT_ENA 0x08 | ||
724 | #define MSESTAT_RXP 0x04 | ||
725 | #define MSESTAT_MSD 0x02 | ||
726 | #define MSESTAT_MSC 0x01 | ||
727 | |||
728 | #define MSECLKDIV_DivVal Fld(4,0) | ||
729 | |||
730 | #define KBDTEST1_CD 0x80 | ||
731 | #define KBDTEST1_RC1 0x40 | ||
732 | #define KBDTEST1_MC 0x20 | ||
733 | #define KBDTEST1_C Fld(2,3) | ||
734 | #define KBDTEST1_T2 0x40 | ||
735 | #define KBDTEST1_T1 0x20 | ||
736 | #define KBDTEST1_T0 0x10 | ||
737 | #define KBDTEST2_TICBnRES 0x08 | ||
738 | #define KBDTEST2_RKC 0x04 | ||
739 | #define KBDTEST2_RKD 0x02 | ||
740 | #define KBDTEST2_SEL 0x01 | ||
741 | #define KBDTEST3_ms_16 0x80 | ||
742 | #define KBDTEST3_us_64 0x40 | ||
743 | #define KBDTEST3_us_16 0x20 | ||
744 | #define KBDTEST3_DIV8 0x10 | ||
745 | #define KBDTEST3_DIn 0x08 | ||
746 | #define KBDTEST3_CIn 0x04 | ||
747 | #define KBDTEST3_KD 0x02 | ||
748 | #define KBDTEST3_KC 0x01 | ||
749 | #define KBDTEST4_BC12 0x80 | ||
750 | #define KBDTEST4_BC11 0x40 | ||
751 | #define KBDTEST4_TRES 0x20 | ||
752 | #define KBDTEST4_CLKOE 0x10 | ||
753 | #define KBDTEST4_CRES 0x08 | ||
754 | #define KBDTEST4_RXB 0x04 | ||
755 | #define KBDTEST4_TXB 0x02 | ||
756 | #define KBDTEST4_SRX 0x01 | ||
757 | |||
758 | #define MSETEST1_CD 0x80 | ||
759 | #define MSETEST1_RC1 0x40 | ||
760 | #define MSETEST1_MC 0x20 | ||
761 | #define MSETEST1_C Fld(2,3) | ||
762 | #define MSETEST1_T2 0x40 | ||
763 | #define MSETEST1_T1 0x20 | ||
764 | #define MSETEST1_T0 0x10 | ||
765 | #define MSETEST2_TICBnRES 0x08 | ||
766 | #define MSETEST2_RKC 0x04 | ||
767 | #define MSETEST2_RKD 0x02 | ||
768 | #define MSETEST2_SEL 0x01 | ||
769 | #define MSETEST3_ms_16 0x80 | ||
770 | #define MSETEST3_us_64 0x40 | ||
771 | #define MSETEST3_us_16 0x20 | ||
772 | #define MSETEST3_DIV8 0x10 | ||
773 | #define MSETEST3_DIn 0x08 | ||
774 | #define MSETEST3_CIn 0x04 | ||
775 | #define MSETEST3_KD 0x02 | ||
776 | #define MSETEST3_KC 0x01 | ||
777 | #define MSETEST4_BC12 0x80 | ||
778 | #define MSETEST4_BC11 0x40 | ||
779 | #define MSETEST4_TRES 0x20 | ||
780 | #define MSETEST4_CLKOE 0x10 | ||
781 | #define MSETEST4_CRES 0x08 | ||
782 | #define MSETEST4_RXB 0x04 | ||
783 | #define MSETEST4_TXB 0x02 | ||
784 | #define MSETEST4_SRX 0x01 | ||
785 | |||
786 | #endif /* LANGUAGE == C */ | ||
787 | |||
788 | |||
789 | /* | ||
790 | * General-Purpose I/O Interface | ||
791 | * | ||
792 | * Registers | ||
793 | * PADWR Port A Data Write Register | ||
794 | * PBDWR Port B Data Write Register | ||
795 | * PADRR Port A Data Read Register | ||
796 | * PBDRR Port B Data Read Register | ||
797 | * PADDR Port A Data Direction Register | ||
798 | * PBDDR Port B Data Direction Register | ||
799 | * PASSR Port A Sleep State Register | ||
800 | * PBSSR Port B Sleep State Register | ||
801 | * | ||
802 | */ | ||
803 | |||
804 | #define _PIO( x ) _SA1101( ( x ) + __GPIO_INTERFACE ) | ||
805 | |||
806 | #define _PADWR _PIO( 0x0000 ) | ||
807 | #define _PBDWR _PIO( 0x0400 ) | ||
808 | #define _PADRR _PIO( 0x0000 ) | ||
809 | #define _PBDRR _PIO( 0x0400 ) | ||
810 | #define _PADDR _PIO( 0x0800 ) | ||
811 | #define _PBDDR _PIO( 0x0c00 ) | ||
812 | #define _PASSR _PIO( 0x1000 ) | ||
813 | #define _PBSSR _PIO( 0x1400 ) | ||
814 | |||
815 | |||
816 | #if ( LANGUAGE == C ) | ||
817 | |||
818 | |||
819 | #define PADWR (*((volatile Word *) SA1101_p2v (_PADWR))) | ||
820 | #define PBDWR (*((volatile Word *) SA1101_p2v (_PBDWR))) | ||
821 | #define PADRR (*((volatile Word *) SA1101_p2v (_PADRR))) | ||
822 | #define PBDRR (*((volatile Word *) SA1101_p2v (_PBDRR))) | ||
823 | #define PADDR (*((volatile Word *) SA1101_p2v (_PADDR))) | ||
824 | #define PBDDR (*((volatile Word *) SA1101_p2v (_PBDDR))) | ||
825 | #define PASSR (*((volatile Word *) SA1101_p2v (_PASSR))) | ||
826 | #define PBSSR (*((volatile Word *) SA1101_p2v (_PBSSR))) | ||
827 | |||
828 | #endif | ||
829 | |||
830 | |||
831 | |||
832 | /* | ||
833 | * Keypad Interface | ||
834 | * | ||
835 | * Registers | ||
836 | * PXDWR | ||
837 | * PXDRR | ||
838 | * PYDWR | ||
839 | * PYDRR | ||
840 | * | ||
841 | */ | ||
842 | |||
843 | #define _KEYPAD( x ) _SA1101( ( x ) + __KEYPAD_INTERFACE ) | ||
844 | |||
845 | #define _PXDWR _KEYPAD( 0x0000 ) | ||
846 | #define _PXDRR _KEYPAD( 0x0000 ) | ||
847 | #define _PYDWR _KEYPAD( 0x0400 ) | ||
848 | #define _PYDRR _KEYPAD( 0x0400 ) | ||
849 | |||
850 | #if ( LANGUAGE == C ) | ||
851 | |||
852 | |||
853 | #define PXDWR (*((volatile Word *) SA1101_p2v (_PXDWR))) | ||
854 | #define PXDRR (*((volatile Word *) SA1101_p2v (_PXDRR))) | ||
855 | #define PYDWR (*((volatile Word *) SA1101_p2v (_PYDWR))) | ||
856 | #define PYDRR (*((volatile Word *) SA1101_p2v (_PYDRR))) | ||
857 | |||
858 | #endif | ||
859 | |||
860 | |||
861 | |||
862 | /* | ||
863 | * PCMCIA Interface | ||
864 | * | ||
865 | * Registers | ||
866 | * PCSR Status Register | ||
867 | * PCCR Control Register | ||
868 | * PCSSR Sleep State Register | ||
869 | * | ||
870 | */ | ||
871 | |||
872 | #define _CARD( x ) _SA1101( ( x ) + __PCMCIA_INTERFACE ) | ||
873 | |||
874 | #define _PCSR _CARD( 0x0000 ) | ||
875 | #define _PCCR _CARD( 0x0400 ) | ||
876 | #define _PCSSR _CARD( 0x0800 ) | ||
877 | |||
878 | #if ( LANGUAGE == C ) | ||
879 | #define PCSR (*((volatile Word *) SA1101_p2v (_PCSR))) | ||
880 | #define PCCR (*((volatile Word *) SA1101_p2v (_PCCR))) | ||
881 | #define PCSSR (*((volatile Word *) SA1101_p2v (_PCSSR))) | ||
882 | |||
883 | #define PCSR_S0_ready 0x0001 | ||
884 | #define PCSR_S1_ready 0x0002 | ||
885 | #define PCSR_S0_detected 0x0004 | ||
886 | #define PCSR_S1_detected 0x0008 | ||
887 | #define PCSR_S0_VS1 0x0010 | ||
888 | #define PCSR_S0_VS2 0x0020 | ||
889 | #define PCSR_S1_VS1 0x0040 | ||
890 | #define PCSR_S1_VS2 0x0080 | ||
891 | #define PCSR_S0_WP 0x0100 | ||
892 | #define PCSR_S1_WP 0x0200 | ||
893 | #define PCSR_S0_BVD1_nSTSCHG 0x0400 | ||
894 | #define PCSR_S0_BVD2_nSPKR 0x0800 | ||
895 | #define PCSR_S1_BVD1_nSTSCHG 0x1000 | ||
896 | #define PCSR_S1_BVD2_nSPKR 0x2000 | ||
897 | |||
898 | #define PCCR_S0_VPP0 0x0001 | ||
899 | #define PCCR_S0_VPP1 0x0002 | ||
900 | #define PCCR_S0_VCC0 0x0004 | ||
901 | #define PCCR_S0_VCC1 0x0008 | ||
902 | #define PCCR_S1_VPP0 0x0010 | ||
903 | #define PCCR_S1_VPP1 0x0020 | ||
904 | #define PCCR_S1_VCC0 0x0040 | ||
905 | #define PCCR_S1_VCC1 0x0080 | ||
906 | #define PCCR_S0_reset 0x0100 | ||
907 | #define PCCR_S1_reset 0x0200 | ||
908 | #define PCCR_S0_float 0x0400 | ||
909 | #define PCCR_S1_float 0x0800 | ||
910 | |||
911 | #define PCSSR_S0_VCC0 0x0001 | ||
912 | #define PCSSR_S0_VCC1 0x0002 | ||
913 | #define PCSSR_S0_VPP0 0x0004 | ||
914 | #define PCSSR_S0_VPP1 0x0008 | ||
915 | #define PCSSR_S0_control 0x0010 | ||
916 | #define PCSSR_S1_VCC0 0x0020 | ||
917 | #define PCSSR_S1_VCC1 0x0040 | ||
918 | #define PCSSR_S1_VPP0 0x0080 | ||
919 | #define PCSSR_S1_VPP1 0x0100 | ||
920 | #define PCSSR_S1_control 0x0200 | ||
921 | |||
922 | #endif | ||
923 | |||
924 | #undef C | ||
925 | #undef Assembly | ||
diff --git a/arch/arm/mach-sa1100/include/mach/hardware.h b/arch/arm/mach-sa1100/include/mach/hardware.h index 52b8f6d25bef..cc43f95f33cc 100644 --- a/arch/arm/mach-sa1100/include/mach/hardware.h +++ b/arch/arm/mach-sa1100/include/mach/hardware.h | |||
@@ -52,8 +52,4 @@ | |||
52 | 52 | ||
53 | #include "SA-1100.h" | 53 | #include "SA-1100.h" |
54 | 54 | ||
55 | #ifdef CONFIG_SA1101 | ||
56 | #include "SA-1101.h" | ||
57 | #endif | ||
58 | |||
59 | #endif /* _ASM_ARCH_HARDWARE_H */ | 55 | #endif /* _ASM_ARCH_HARDWARE_H */ |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index c1799dd1d0d9..f68e8ec29447 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -991,7 +991,7 @@ config CACHE_TAUROS2 | |||
991 | config CACHE_UNIPHIER | 991 | config CACHE_UNIPHIER |
992 | bool "Enable the UniPhier outer cache controller" | 992 | bool "Enable the UniPhier outer cache controller" |
993 | depends on ARCH_UNIPHIER | 993 | depends on ARCH_UNIPHIER |
994 | default y | 994 | select ARM_L1_CACHE_SHIFT_7 |
995 | select OUTER_CACHE | 995 | select OUTER_CACHE |
996 | select OUTER_CACHE_SYNC | 996 | select OUTER_CACHE_SYNC |
997 | help | 997 | help |
@@ -1012,8 +1012,14 @@ config ARM_L1_CACHE_SHIFT_6 | |||
1012 | help | 1012 | help |
1013 | Setting ARM L1 cache line size to 64 Bytes. | 1013 | Setting ARM L1 cache line size to 64 Bytes. |
1014 | 1014 | ||
1015 | config ARM_L1_CACHE_SHIFT_7 | ||
1016 | bool | ||
1017 | help | ||
1018 | Setting ARM L1 cache line size to 128 Bytes. | ||
1019 | |||
1015 | config ARM_L1_CACHE_SHIFT | 1020 | config ARM_L1_CACHE_SHIFT |
1016 | int | 1021 | int |
1022 | default 7 if ARM_L1_CACHE_SHIFT_7 | ||
1017 | default 6 if ARM_L1_CACHE_SHIFT_6 | 1023 | default 6 if ARM_L1_CACHE_SHIFT_6 |
1018 | default 5 | 1024 | default 5 |
1019 | 1025 | ||
diff --git a/arch/arm/mm/pageattr.c b/arch/arm/mm/pageattr.c index d19b1ad29b07..3b69f2642513 100644 --- a/arch/arm/mm/pageattr.c +++ b/arch/arm/mm/pageattr.c | |||
@@ -34,28 +34,29 @@ static int change_page_range(pte_t *ptep, pgtable_t token, unsigned long addr, | |||
34 | return 0; | 34 | return 0; |
35 | } | 35 | } |
36 | 36 | ||
37 | static bool in_range(unsigned long start, unsigned long size, | ||
38 | unsigned long range_start, unsigned long range_end) | ||
39 | { | ||
40 | return start >= range_start && start < range_end && | ||
41 | size <= range_end - start; | ||
42 | } | ||
43 | |||
37 | static int change_memory_common(unsigned long addr, int numpages, | 44 | static int change_memory_common(unsigned long addr, int numpages, |
38 | pgprot_t set_mask, pgprot_t clear_mask) | 45 | pgprot_t set_mask, pgprot_t clear_mask) |
39 | { | 46 | { |
40 | unsigned long start = addr; | 47 | unsigned long start = addr & PAGE_MASK; |
41 | unsigned long size = PAGE_SIZE*numpages; | 48 | unsigned long end = PAGE_ALIGN(addr) + numpages * PAGE_SIZE; |
42 | unsigned long end = start + size; | 49 | unsigned long size = end - start; |
43 | int ret; | 50 | int ret; |
44 | struct page_change_data data; | 51 | struct page_change_data data; |
45 | 52 | ||
46 | if (!IS_ALIGNED(addr, PAGE_SIZE)) { | 53 | WARN_ON_ONCE(start != addr); |
47 | start &= PAGE_MASK; | ||
48 | end = start + size; | ||
49 | WARN_ON_ONCE(1); | ||
50 | } | ||
51 | 54 | ||
52 | if (!numpages) | 55 | if (!size) |
53 | return 0; | 56 | return 0; |
54 | 57 | ||
55 | if (start < MODULES_VADDR || start >= MODULES_END) | 58 | if (!in_range(start, size, MODULES_VADDR, MODULES_END) && |
56 | return -EINVAL; | 59 | !in_range(start, size, VMALLOC_START, VMALLOC_END)) |
57 | |||
58 | if (end < MODULES_VADDR || start >= MODULES_END) | ||
59 | return -EINVAL; | 60 | return -EINVAL; |
60 | 61 | ||
61 | data.set_mask = set_mask; | 62 | data.set_mask = set_mask; |
diff --git a/arch/arm/tools/Makefile b/arch/arm/tools/Makefile index 6e4cd1867a9f..92eb5c3b486c 100644 --- a/arch/arm/tools/Makefile +++ b/arch/arm/tools/Makefile | |||
@@ -4,10 +4,76 @@ | |||
4 | # Copyright (C) 2001 Russell King | 4 | # Copyright (C) 2001 Russell King |
5 | # | 5 | # |
6 | 6 | ||
7 | gen := arch/$(ARCH)/include/generated | ||
8 | kapi := $(gen)/asm | ||
9 | uapi := $(gen)/uapi/asm | ||
10 | syshdr := $(srctree)/$(src)/syscallhdr.sh | ||
11 | sysnr := $(srctree)/$(src)/syscallnr.sh | ||
12 | systbl := $(srctree)/$(src)/syscalltbl.sh | ||
13 | syscall := $(srctree)/$(src)/syscall.tbl | ||
14 | |||
15 | gen-y := $(gen)/calls-oabi.S | ||
16 | gen-y += $(gen)/calls-eabi.S | ||
17 | kapi-hdrs-y := $(kapi)/unistd-nr.h | ||
18 | kapi-hdrs-y += $(kapi)/mach-types.h | ||
19 | uapi-hdrs-y := $(uapi)/unistd-common.h | ||
20 | uapi-hdrs-y += $(uapi)/unistd-oabi.h | ||
21 | uapi-hdrs-y += $(uapi)/unistd-eabi.h | ||
22 | |||
23 | targets += $(addprefix ../../../,$(gen-y) $(kapi-hdrs-y) $(uapi-hdrs-y)) | ||
24 | |||
25 | PHONY += kapi uapi | ||
26 | |||
27 | kapi: $(kapi-hdrs-y) $(gen-y) | ||
28 | |||
29 | uapi: $(uapi-hdrs-y) | ||
30 | |||
31 | # Create output directory if not already present | ||
32 | _dummy := $(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)') \ | ||
33 | $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') | ||
34 | |||
7 | quiet_cmd_gen_mach = GEN $@ | 35 | quiet_cmd_gen_mach = GEN $@ |
8 | cmd_gen_mach = mkdir -p $(dir $@) && \ | 36 | cmd_gen_mach = mkdir -p $(dir $@) && \ |
9 | $(AWK) -f $(filter-out $(PHONY),$^) > $@ || \ | 37 | $(AWK) -f $(filter-out $(PHONY),$^) > $@ || \ |
10 | { rm -f $@; /bin/false; } | 38 | { rm -f $@; /bin/false; } |
11 | 39 | ||
12 | include/generated/mach-types.h: $(src)/gen-mach-types $(src)/mach-types FORCE | 40 | $(kapi)/mach-types.h: $(src)/gen-mach-types $(src)/mach-types FORCE |
13 | $(call if_changed,gen_mach) | 41 | $(call if_changed,gen_mach) |
42 | |||
43 | quiet_cmd_syshdr = SYSHDR $@ | ||
44 | cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \ | ||
45 | '$(syshdr_abi_$(basetarget))' \ | ||
46 | '$(syshdr_pfx_$(basetarget))' \ | ||
47 | '__NR_SYSCALL_BASE' | ||
48 | |||
49 | quiet_cmd_systbl = SYSTBL $@ | ||
50 | cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \ | ||
51 | '$(systbl_abi_$(basetarget))' | ||
52 | |||
53 | quiet_cmd_sysnr = SYSNR $@ | ||
54 | cmd_sysnr = $(CONFIG_SHELL) '$(sysnr)' '$<' '$@' \ | ||
55 | '$(syshdr_abi_$(basetarget))' | ||
56 | |||
57 | syshdr_abi_unistd-common := common | ||
58 | $(uapi)/unistd-common.h: $(syscall) $(syshdr) FORCE | ||
59 | $(call if_changed,syshdr) | ||
60 | |||
61 | syshdr_abi_unistd-oabi := oabi | ||
62 | $(uapi)/unistd-oabi.h: $(syscall) $(syshdr) FORCE | ||
63 | $(call if_changed,syshdr) | ||
64 | |||
65 | syshdr_abi_unistd-eabi := eabi | ||
66 | $(uapi)/unistd-eabi.h: $(syscall) $(syshdr) FORCE | ||
67 | $(call if_changed,syshdr) | ||
68 | |||
69 | sysnr_abi_unistd-nr := common,oabi,eabi,compat | ||
70 | $(kapi)/unistd-nr.h: $(syscall) $(sysnr) FORCE | ||
71 | $(call if_changed,sysnr) | ||
72 | |||
73 | systbl_abi_calls-oabi := common,oabi | ||
74 | $(gen)/calls-oabi.S: $(syscall) $(systbl) FORCE | ||
75 | $(call if_changed,systbl) | ||
76 | |||
77 | systbl_abi_calls-eabi := common,eabi | ||
78 | $(gen)/calls-eabi.S: $(syscall) $(systbl) FORCE | ||
79 | $(call if_changed,systbl) | ||
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index 2ed1b8a922ed..a9313b66f770 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types | |||
@@ -16,7 +16,7 @@ | |||
16 | # are merged into mainline or have been edited in the machine database | 16 | # are merged into mainline or have been edited in the machine database |
17 | # within the last 12 months. References to machine_is_NAME() do not count! | 17 | # within the last 12 months. References to machine_is_NAME() do not count! |
18 | # | 18 | # |
19 | # Last update: Fri Mar 22 17:24:50 2013 | 19 | # Last update: Sun Oct 30 20:21:01 2016 |
20 | # | 20 | # |
21 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 21 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
22 | # | 22 | # |
@@ -152,7 +152,6 @@ colibri MACH_COLIBRI COLIBRI 729 | |||
152 | gateway7001 MACH_GATEWAY7001 GATEWAY7001 731 | 152 | gateway7001 MACH_GATEWAY7001 GATEWAY7001 731 |
153 | pcm027 MACH_PCM027 PCM027 732 | 153 | pcm027 MACH_PCM027 PCM027 732 |
154 | anubis MACH_ANUBIS ANUBIS 734 | 154 | anubis MACH_ANUBIS ANUBIS 734 |
155 | xboardgp8 MACH_XBOARDGP8 XBOARDGP8 742 | ||
156 | akita MACH_AKITA AKITA 744 | 155 | akita MACH_AKITA AKITA 744 |
157 | e330 MACH_E330 E330 753 | 156 | e330 MACH_E330 E330 753 |
158 | nokia770 MACH_NOKIA770 NOKIA770 755 | 157 | nokia770 MACH_NOKIA770 NOKIA770 755 |
@@ -393,7 +392,6 @@ anw6410 MACH_ANW6410 ANW6410 2183 | |||
393 | imx27_visstrim_m10 MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10 2187 | 392 | imx27_visstrim_m10 MACH_IMX27_VISSTRIM_M10 IMX27_VISSTRIM_M10 2187 |
394 | portuxg20 MACH_PORTUXG20 PORTUXG20 2191 | 393 | portuxg20 MACH_PORTUXG20 PORTUXG20 2191 |
395 | smdkc110 MACH_SMDKC110 SMDKC110 2193 | 394 | smdkc110 MACH_SMDKC110 SMDKC110 2193 |
396 | cabespresso MACH_CABESPRESSO CABESPRESSO 2194 | ||
397 | omap3517evm MACH_OMAP3517EVM OMAP3517EVM 2200 | 395 | omap3517evm MACH_OMAP3517EVM OMAP3517EVM 2200 |
398 | netspace_v2 MACH_NETSPACE_V2 NETSPACE_V2 2201 | 396 | netspace_v2 MACH_NETSPACE_V2 NETSPACE_V2 2201 |
399 | netspace_max_v2 MACH_NETSPACE_MAX_V2 NETSPACE_MAX_V2 2202 | 397 | netspace_max_v2 MACH_NETSPACE_MAX_V2 NETSPACE_MAX_V2 2202 |
@@ -412,7 +410,6 @@ bigdisk MACH_BIGDISK BIGDISK 2283 | |||
412 | at91sam9g20ek_2mmc MACH_AT91SAM9G20EK_2MMC AT91SAM9G20EK_2MMC 2288 | 410 | at91sam9g20ek_2mmc MACH_AT91SAM9G20EK_2MMC AT91SAM9G20EK_2MMC 2288 |
413 | bcmring MACH_BCMRING BCMRING 2289 | 411 | bcmring MACH_BCMRING BCMRING 2289 |
414 | mahimahi MACH_MAHIMAHI MAHIMAHI 2304 | 412 | mahimahi MACH_MAHIMAHI MAHIMAHI 2304 |
415 | cerebric MACH_CEREBRIC CEREBRIC 2311 | ||
416 | smdk6442 MACH_SMDK6442 SMDK6442 2324 | 413 | smdk6442 MACH_SMDK6442 SMDK6442 2324 |
417 | openrd_base MACH_OPENRD_BASE OPENRD_BASE 2325 | 414 | openrd_base MACH_OPENRD_BASE OPENRD_BASE 2325 |
418 | devkit8000 MACH_DEVKIT8000 DEVKIT8000 2330 | 415 | devkit8000 MACH_DEVKIT8000 DEVKIT8000 2330 |
@@ -435,9 +432,7 @@ tnetv107x MACH_TNETV107X TNETV107X 2418 | |||
435 | smdkv210 MACH_SMDKV210 SMDKV210 2456 | 432 | smdkv210 MACH_SMDKV210 SMDKV210 2456 |
436 | omap_zoom3 MACH_OMAP_ZOOM3 OMAP_ZOOM3 2464 | 433 | omap_zoom3 MACH_OMAP_ZOOM3 OMAP_ZOOM3 2464 |
437 | omap_3630sdp MACH_OMAP_3630SDP OMAP_3630SDP 2465 | 434 | omap_3630sdp MACH_OMAP_3630SDP OMAP_3630SDP 2465 |
438 | cybook2440 MACH_CYBOOK2440 CYBOOK2440 2466 | ||
439 | smartq7 MACH_SMARTQ7 SMARTQ7 2479 | 435 | smartq7 MACH_SMARTQ7 SMARTQ7 2479 |
440 | watson_efm_plugin MACH_WATSON_EFM_PLUGIN WATSON_EFM_PLUGIN 2491 | ||
441 | g4evm MACH_G4EVM G4EVM 2493 | 436 | g4evm MACH_G4EVM G4EVM 2493 |
442 | omapl138_hawkboard MACH_OMAPL138_HAWKBOARD OMAPL138_HAWKBOARD 2495 | 437 | omapl138_hawkboard MACH_OMAPL138_HAWKBOARD OMAPL138_HAWKBOARD 2495 |
443 | ts41x MACH_TS41X TS41X 2502 | 438 | ts41x MACH_TS41X TS41X 2502 |
@@ -472,7 +467,6 @@ igep0030 MACH_IGEP0030 IGEP0030 2717 | |||
472 | sbc3530 MACH_SBC3530 SBC3530 2722 | 467 | sbc3530 MACH_SBC3530 SBC3530 2722 |
473 | saarb MACH_SAARB SAARB 2727 | 468 | saarb MACH_SAARB SAARB 2727 |
474 | harmony MACH_HARMONY HARMONY 2731 | 469 | harmony MACH_HARMONY HARMONY 2731 |
475 | cybook_orizon MACH_CYBOOK_ORIZON CYBOOK_ORIZON 2733 | ||
476 | msm7x30_fluid MACH_MSM7X30_FLUID MSM7X30_FLUID 2741 | 470 | msm7x30_fluid MACH_MSM7X30_FLUID MSM7X30_FLUID 2741 |
477 | cm_t3517 MACH_CM_T3517 CM_T3517 2750 | 471 | cm_t3517 MACH_CM_T3517 CM_T3517 2750 |
478 | wbd222 MACH_WBD222 WBD222 2753 | 472 | wbd222 MACH_WBD222 WBD222 2753 |
@@ -490,6 +484,7 @@ eukrea_cpuimx51 MACH_EUKREA_CPUIMX51 EUKREA_CPUIMX51 2823 | |||
490 | smdkc210 MACH_SMDKC210 SMDKC210 2838 | 484 | smdkc210 MACH_SMDKC210 SMDKC210 2838 |
491 | t5325 MACH_T5325 T5325 2846 | 485 | t5325 MACH_T5325 T5325 2846 |
492 | income MACH_INCOME INCOME 2849 | 486 | income MACH_INCOME INCOME 2849 |
487 | meson MACH_MESON MESON 2853 | ||
493 | goni MACH_GONI GONI 2862 | 488 | goni MACH_GONI GONI 2862 |
494 | bv07 MACH_BV07 BV07 2882 | 489 | bv07 MACH_BV07 BV07 2882 |
495 | openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884 | 490 | openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884 |
@@ -523,9 +518,9 @@ prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103 | |||
523 | paz00 MACH_PAZ00 PAZ00 3128 | 518 | paz00 MACH_PAZ00 PAZ00 3128 |
524 | acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129 | 519 | acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129 |
525 | ag5evm MACH_AG5EVM AG5EVM 3189 | 520 | ag5evm MACH_AG5EVM AG5EVM 3189 |
526 | ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206 | ||
527 | wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207 | 521 | wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207 |
528 | trimslice MACH_TRIMSLICE TRIMSLICE 3209 | 522 | trimslice MACH_TRIMSLICE TRIMSLICE 3209 |
523 | mackerel MACH_MACKEREL MACKEREL 3211 | ||
529 | kaen MACH_KAEN KAEN 3217 | 524 | kaen MACH_KAEN KAEN 3217 |
530 | nokia_rm680 MACH_NOKIA_RM680 NOKIA_RM680 3220 | 525 | nokia_rm680 MACH_NOKIA_RM680 NOKIA_RM680 3220 |
531 | msm8960_sim MACH_MSM8960_SIM MSM8960_SIM 3230 | 526 | msm8960_sim MACH_MSM8960_SIM MSM8960_SIM 3230 |
@@ -540,469 +535,66 @@ snowball MACH_SNOWBALL SNOWBALL 3363 | |||
540 | xilinx_ep107 MACH_XILINX_EP107 XILINX_EP107 3378 | 535 | xilinx_ep107 MACH_XILINX_EP107 XILINX_EP107 3378 |
541 | nuri MACH_NURI NURI 3379 | 536 | nuri MACH_NURI NURI 3379 |
542 | origen MACH_ORIGEN ORIGEN 3455 | 537 | origen MACH_ORIGEN ORIGEN 3455 |
538 | xarina MACH_XARINA XARINA 3476 | ||
543 | nspire MACH_NSPIRE NSPIRE 3503 | 539 | nspire MACH_NSPIRE NSPIRE 3503 |
544 | nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522 | 540 | nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522 |
545 | mikrap_x168 MACH_MIKRAP_X168 MIKRAP_X168 3543 | ||
546 | deto_macarm9 MACH_DETO_MACARM9 DETO_MACARM9 3568 | ||
547 | m28evk MACH_M28EVK M28EVK 3613 | 541 | m28evk MACH_M28EVK M28EVK 3613 |
548 | kota2 MACH_KOTA2 KOTA2 3616 | 542 | kota2 MACH_KOTA2 KOTA2 3616 |
549 | bonito MACH_BONITO BONITO 3623 | 543 | bonito MACH_BONITO BONITO 3623 |
550 | omap3_egf MACH_OMAP3_EGF OMAP3_EGF 3637 | ||
551 | smdk4212 MACH_SMDK4212 SMDK4212 3638 | 544 | smdk4212 MACH_SMDK4212 SMDK4212 3638 |
552 | apx4devkit MACH_APX4DEVKIT APX4DEVKIT 3712 | 545 | apx4devkit MACH_APX4DEVKIT APX4DEVKIT 3712 |
553 | smdk4412 MACH_SMDK4412 SMDK4412 3765 | 546 | smdk4412 MACH_SMDK4412 SMDK4412 3765 |
554 | marzen MACH_MARZEN MARZEN 3790 | 547 | marzen MACH_MARZEN MARZEN 3790 |
555 | krome MACH_KROME KROME 3797 | 548 | empc_a500 MACH_EMPC_A500 EMPC_A500 3848 |
556 | armadillo800eva MACH_ARMADILLO800EVA ARMADILLO800EVA 3863 | ||
557 | mx53_umobo MACH_MX53_UMOBO MX53_UMOBO 3927 | ||
558 | mt4 MACH_MT4 MT4 3981 | ||
559 | u8520 MACH_U8520 U8520 3990 | 549 | u8520 MACH_U8520 U8520 3990 |
560 | chupacabra MACH_CHUPACABRA CHUPACABRA 4098 | ||
561 | scorpion MACH_SCORPION SCORPION 4099 | ||
562 | davinci_he_hmi10 MACH_DAVINCI_HE_HMI10 DAVINCI_HE_HMI10 4100 | ||
563 | topkick MACH_TOPKICK TOPKICK 4101 | ||
564 | m3_auguestrush MACH_M3_AUGUESTRUSH M3_AUGUESTRUSH 4102 | ||
565 | ipc335x MACH_IPC335X IPC335X 4103 | ||
566 | sun4i MACH_SUN4I SUN4I 4104 | ||
567 | imx233_olinuxino MACH_IMX233_OLINUXINO IMX233_OLINUXINO 4105 | ||
568 | k2_wl MACH_K2_WL K2_WL 4106 | ||
569 | k2_ul MACH_K2_UL K2_UL 4107 | ||
570 | k2_cl MACH_K2_CL K2_CL 4108 | ||
571 | minbari_w MACH_MINBARI_W MINBARI_W 4109 | ||
572 | minbari_m MACH_MINBARI_M MINBARI_M 4110 | ||
573 | k035 MACH_K035 K035 4111 | ||
574 | ariel MACH_ARIEL ARIEL 4112 | ||
575 | arielsaarc MACH_ARIELSAARC ARIELSAARC 4113 | ||
576 | arieldkb MACH_ARIELDKB ARIELDKB 4114 | ||
577 | armadillo810 MACH_ARMADILLO810 ARMADILLO810 4115 | ||
578 | tam335x MACH_TAM335X TAM335X 4116 | ||
579 | grouper MACH_GROUPER GROUPER 4117 | ||
580 | mpcsa21_9g20 MACH_MPCSA21_9G20 MPCSA21_9G20 4118 | ||
581 | m6u_cpu MACH_M6U_CPU M6U_CPU 4119 | ||
582 | ginkgo MACH_GINKGO GINKGO 4121 | ||
583 | cgt_qmx6 MACH_CGT_QMX6 CGT_QMX6 4122 | ||
584 | profpga MACH_PROFPGA PROFPGA 4123 | ||
585 | acfx100oc MACH_ACFX100OC ACFX100OC 4124 | ||
586 | acfx100nb MACH_ACFX100NB ACFX100NB 4125 | ||
587 | capricorn MACH_CAPRICORN CAPRICORN 4126 | ||
588 | pisces MACH_PISCES PISCES 4127 | ||
589 | aries MACH_ARIES ARIES 4128 | ||
590 | cancer MACH_CANCER CANCER 4129 | ||
591 | leo MACH_LEO LEO 4130 | ||
592 | virgo MACH_VIRGO VIRGO 4131 | ||
593 | sagittarius MACH_SAGITTARIUS SAGITTARIUS 4132 | ||
594 | devil MACH_DEVIL DEVIL 4133 | ||
595 | ballantines MACH_BALLANTINES BALLANTINES 4134 | ||
596 | omap3_procerusvpu MACH_OMAP3_PROCERUSVPU OMAP3_PROCERUSVPU 4135 | ||
597 | my27 MACH_MY27 MY27 4136 | ||
598 | sun6i MACH_SUN6I SUN6I 4137 | ||
599 | sun5i MACH_SUN5I SUN5I 4138 | ||
600 | mx512_mx MACH_MX512_MX MX512_MX 4139 | ||
601 | kzm9g MACH_KZM9G KZM9G 4140 | ||
602 | vdstbn MACH_VDSTBN VDSTBN 4141 | ||
603 | cfa10036 MACH_CFA10036 CFA10036 4142 | ||
604 | cfa10049 MACH_CFA10049 CFA10049 4143 | ||
605 | pcm051 MACH_PCM051 PCM051 4144 | ||
606 | vybrid_vf7xx MACH_VYBRID_VF7XX VYBRID_VF7XX 4145 | ||
607 | vybrid_vf6xx MACH_VYBRID_VF6XX VYBRID_VF6XX 4146 | ||
608 | vybrid_vf5xx MACH_VYBRID_VF5XX VYBRID_VF5XX 4147 | ||
609 | vybrid_vf4xx MACH_VYBRID_VF4XX VYBRID_VF4XX 4148 | ||
610 | aria_g25 MACH_ARIA_G25 ARIA_G25 4149 | ||
611 | bcm21553 MACH_BCM21553 BCM21553 4150 | ||
612 | smdk5410 MACH_SMDK5410 SMDK5410 4151 | ||
613 | lpc18xx MACH_LPC18XX LPC18XX 4152 | ||
614 | oratisparty MACH_ORATISPARTY ORATISPARTY 4153 | ||
615 | qseven MACH_QSEVEN QSEVEN 4154 | ||
616 | gmv_generic MACH_GMV_GENERIC GMV_GENERIC 4155 | ||
617 | th_link_eth MACH_TH_LINK_ETH TH_LINK_ETH 4156 | ||
618 | tn_muninn MACH_TN_MUNINN TN_MUNINN 4157 | ||
619 | rampage MACH_RAMPAGE RAMPAGE 4158 | ||
620 | visstrim_mv10 MACH_VISSTRIM_MV10 VISSTRIM_MV10 4159 | ||
621 | mx28_wilma MACH_MX28_WILMA MX28_WILMA 4164 | ||
622 | msm8625_ffa MACH_MSM8625_FFA MSM8625_FFA 4166 | ||
623 | vpu101 MACH_VPU101 VPU101 4167 | ||
624 | baileys MACH_BAILEYS BAILEYS 4169 | ||
625 | familybox MACH_FAMILYBOX FAMILYBOX 4170 | ||
626 | ensemble_mx35 MACH_ENSEMBLE_MX35 ENSEMBLE_MX35 4171 | ||
627 | sc_sps_1 MACH_SC_SPS_1 SC_SPS_1 4172 | ||
628 | ucsimply_sam9260 MACH_UCSIMPLY_SAM9260 UCSIMPLY_SAM9260 4173 | ||
629 | unicorn MACH_UNICORN UNICORN 4174 | ||
630 | m9g45a MACH_M9G45A M9G45A 4175 | ||
631 | mtwebif MACH_MTWEBIF MTWEBIF 4176 | ||
632 | playstone MACH_PLAYSTONE PLAYSTONE 4177 | ||
633 | chelsea MACH_CHELSEA CHELSEA 4178 | ||
634 | bayern MACH_BAYERN BAYERN 4179 | ||
635 | mitwo MACH_MITWO MITWO 4180 | ||
636 | mx25_noah MACH_MX25_NOAH MX25_NOAH 4181 | ||
637 | stm_b2020 MACH_STM_B2020 STM_B2020 4182 | ||
638 | annax_src MACH_ANNAX_SRC ANNAX_SRC 4183 | ||
639 | ionics_stratus MACH_IONICS_STRATUS IONICS_STRATUS 4184 | ||
640 | hugo MACH_HUGO HUGO 4185 | ||
641 | em300 MACH_EM300 EM300 4186 | ||
642 | mmp3_qseven MACH_MMP3_QSEVEN MMP3_QSEVEN 4187 | ||
643 | bosphorus2 MACH_BOSPHORUS2 BOSPHORUS2 4188 | ||
644 | tt2200 MACH_TT2200 TT2200 4189 | ||
645 | ocelot3 MACH_OCELOT3 OCELOT3 4190 | ||
646 | tek_cobra MACH_TEK_COBRA TEK_COBRA 4191 | ||
647 | protou MACH_PROTOU PROTOU 4192 | ||
648 | msm8625_evt MACH_MSM8625_EVT MSM8625_EVT 4193 | ||
649 | mx53_sellwood MACH_MX53_SELLWOOD MX53_SELLWOOD 4194 | ||
650 | somiq_am35 MACH_SOMIQ_AM35 SOMIQ_AM35 4195 | ||
651 | somiq_am37 MACH_SOMIQ_AM37 SOMIQ_AM37 4196 | ||
652 | k2_plc_cl MACH_K2_PLC_CL K2_PLC_CL 4197 | ||
653 | tc2 MACH_TC2 TC2 4198 | ||
654 | dulex_j MACH_DULEX_J DULEX_J 4199 | ||
655 | stm_b2044 MACH_STM_B2044 STM_B2044 4200 | ||
656 | deluxe_j MACH_DELUXE_J DELUXE_J 4201 | ||
657 | mango2443 MACH_MANGO2443 MANGO2443 4202 | ||
658 | cp2dcg MACH_CP2DCG CP2DCG 4203 | ||
659 | cp2dtg MACH_CP2DTG CP2DTG 4204 | ||
660 | cp2dug MACH_CP2DUG CP2DUG 4205 | ||
661 | var_som_am33 MACH_VAR_SOM_AM33 VAR_SOM_AM33 4206 | ||
662 | pepper MACH_PEPPER PEPPER 4207 | ||
663 | mango2450 MACH_MANGO2450 MANGO2450 4208 | ||
664 | valente_wx_c9 MACH_VALENTE_WX_C9 VALENTE_WX_C9 4209 | ||
665 | minitv MACH_MINITV MINITV 4210 | ||
666 | u8540 MACH_U8540 U8540 4211 | ||
667 | iv_atlas_i_z7e MACH_IV_ATLAS_I_Z7E IV_ATLAS_I_Z7E 4212 | ||
668 | mach_type_sky MACH_MACH_TYPE_SKY MACH_TYPE_SKY 4214 | ||
669 | bluesky MACH_BLUESKY BLUESKY 4215 | ||
670 | ngrouter MACH_NGROUTER NGROUTER 4216 | ||
671 | mx53_denetim MACH_MX53_DENETIM MX53_DENETIM 4217 | ||
672 | opal MACH_OPAL OPAL 4218 | ||
673 | gnet_us3gref MACH_GNET_US3GREF GNET_US3GREF 4219 | ||
674 | gnet_nc3g MACH_GNET_NC3G GNET_NC3G 4220 | ||
675 | gnet_ge3g MACH_GNET_GE3G GNET_GE3G 4221 | ||
676 | adp2 MACH_ADP2 ADP2 4222 | ||
677 | tqma28 MACH_TQMA28 TQMA28 4223 | ||
678 | kacom3 MACH_KACOM3 KACOM3 4224 | ||
679 | rrhdemo MACH_RRHDEMO RRHDEMO 4225 | ||
680 | protodug MACH_PROTODUG PROTODUG 4226 | ||
681 | lago MACH_LAGO LAGO 4227 | ||
682 | ktt30 MACH_KTT30 KTT30 4228 | ||
683 | ts43xx MACH_TS43XX TS43XX 4229 | ||
684 | mx6q_denso MACH_MX6Q_DENSO MX6Q_DENSO 4230 | ||
685 | comsat_gsmumts8 MACH_COMSAT_GSMUMTS8 COMSAT_GSMUMTS8 4231 | ||
686 | dreamx MACH_DREAMX DREAMX 4232 | ||
687 | thunderstonem MACH_THUNDERSTONEM THUNDERSTONEM 4233 | ||
688 | yoyopad MACH_YOYOPAD YOYOPAD 4234 | ||
689 | yoyopatient MACH_YOYOPATIENT YOYOPATIENT 4235 | ||
690 | a10l MACH_A10L A10L 4236 | ||
691 | mq60 MACH_MQ60 MQ60 4237 | ||
692 | linkstation_lsql MACH_LINKSTATION_LSQL LINKSTATION_LSQL 4238 | ||
693 | am3703gateway MACH_AM3703GATEWAY AM3703GATEWAY 4239 | ||
694 | accipiter MACH_ACCIPITER ACCIPITER 4240 | ||
695 | magnidug MACH_MAGNIDUG MAGNIDUG 4242 | ||
696 | hydra MACH_HYDRA HYDRA 4243 | ||
697 | sun3i MACH_SUN3I SUN3I 4244 | ||
698 | stm_b2078 MACH_STM_B2078 STM_B2078 4245 | ||
699 | at91sam9263deskv2 MACH_AT91SAM9263DESKV2 AT91SAM9263DESKV2 4246 | ||
700 | deluxe_r MACH_DELUXE_R DELUXE_R 4247 | ||
701 | p_98_v MACH_P_98_V P_98_V 4248 | ||
702 | p_98_c MACH_P_98_C P_98_C 4249 | ||
703 | davinci_am18xx_omn MACH_DAVINCI_AM18XX_OMN DAVINCI_AM18XX_OMN 4250 | ||
704 | socfpga_cyclone5 MACH_SOCFPGA_CYCLONE5 SOCFPGA_CYCLONE5 4251 | ||
705 | cabatuin MACH_CABATUIN CABATUIN 4252 | ||
706 | yoyopad_ft MACH_YOYOPAD_FT YOYOPAD_FT 4253 | ||
707 | dan2400evb MACH_DAN2400EVB DAN2400EVB 4254 | ||
708 | dan3400evb MACH_DAN3400EVB DAN3400EVB 4255 | ||
709 | edm_sf_imx6 MACH_EDM_SF_IMX6 EDM_SF_IMX6 4256 | ||
710 | edm_cf_imx6 MACH_EDM_CF_IMX6 EDM_CF_IMX6 4257 | ||
711 | vpos3xx MACH_VPOS3XX VPOS3XX 4258 | ||
712 | vulcano_9x5 MACH_VULCANO_9X5 VULCANO_9X5 4259 | ||
713 | spmp8000 MACH_SPMP8000 SPMP8000 4260 | ||
714 | catalina MACH_CATALINA CATALINA 4261 | ||
715 | rd88f5181l_fe MACH_RD88F5181L_FE RD88F5181L_FE 4262 | ||
716 | mx535_mx MACH_MX535_MX MX535_MX 4263 | ||
717 | armadillo840 MACH_ARMADILLO840 ARMADILLO840 4264 | ||
718 | spc9000baseboard MACH_SPC9000BASEBOARD SPC9000BASEBOARD 4265 | ||
719 | iris MACH_IRIS IRIS 4266 | ||
720 | protodcg MACH_PROTODCG PROTODCG 4267 | ||
721 | palmtree MACH_PALMTREE PALMTREE 4268 | ||
722 | novena MACH_NOVENA NOVENA 4269 | ||
723 | ma_um MACH_MA_UM MA_UM 4270 | ||
724 | ma_am MACH_MA_AM MA_AM 4271 | ||
725 | ems348 MACH_EMS348 EMS348 4272 | ||
726 | cm_fx6 MACH_CM_FX6 CM_FX6 4273 | ||
727 | arndale MACH_ARNDALE ARNDALE 4274 | ||
728 | q5xr5 MACH_Q5XR5 Q5XR5 4275 | ||
729 | willow MACH_WILLOW WILLOW 4276 | ||
730 | omap3621_odyv3 MACH_OMAP3621_ODYV3 OMAP3621_ODYV3 4277 | ||
731 | omapl138_presonus MACH_OMAPL138_PRESONUS OMAPL138_PRESONUS 4278 | ||
732 | dvf99 MACH_DVF99 DVF99 4279 | ||
733 | impression_j MACH_IMPRESSION_J IMPRESSION_J 4280 | ||
734 | qblissa9 MACH_QBLISSA9 QBLISSA9 4281 | ||
735 | robin_heliview10 MACH_ROBIN_HELIVIEW10 ROBIN_HELIVIEW10 4282 | ||
736 | sun7i MACH_SUN7I SUN7I 4283 | ||
737 | mx6q_hdmidongle MACH_MX6Q_HDMIDONGLE MX6Q_HDMIDONGLE 4284 | ||
738 | mx6_sid2 MACH_MX6_SID2 MX6_SID2 4285 | ||
739 | helios_v3 MACH_HELIOS_V3 HELIOS_V3 4286 | ||
740 | helios_v4 MACH_HELIOS_V4 HELIOS_V4 4287 | ||
741 | q7_imx6 MACH_Q7_IMX6 Q7_IMX6 4288 | ||
742 | odroidx MACH_ODROIDX ODROIDX 4289 | ||
743 | robpro MACH_ROBPRO ROBPRO 4290 | ||
744 | research59if_mk1 MACH_RESEARCH59IF_MK1 RESEARCH59IF_MK1 4291 | ||
745 | bobsleigh MACH_BOBSLEIGH BOBSLEIGH 4292 | ||
746 | dcshgwt3 MACH_DCSHGWT3 DCSHGWT3 4293 | ||
747 | gld1018 MACH_GLD1018 GLD1018 4294 | ||
748 | ev10 MACH_EV10 EV10 4295 | ||
749 | nitrogen6x MACH_NITROGEN6X NITROGEN6X 4296 | ||
750 | p_107_bb MACH_P_107_BB P_107_BB 4297 | ||
751 | evita_utl MACH_EVITA_UTL EVITA_UTL 4298 | ||
752 | falconwing MACH_FALCONWING FALCONWING 4299 | ||
753 | dct3 MACH_DCT3 DCT3 4300 | ||
754 | cpx2e_cell MACH_CPX2E_CELL CPX2E_CELL 4301 | ||
755 | amiro MACH_AMIRO AMIRO 4302 | ||
756 | mx6q_brassboard MACH_MX6Q_BRASSBOARD MX6Q_BRASSBOARD 4303 | ||
757 | dalmore MACH_DALMORE DALMORE 4304 | ||
758 | omap3_portal7cp MACH_OMAP3_PORTAL7CP OMAP3_PORTAL7CP 4305 | ||
759 | tegra_pluto MACH_TEGRA_PLUTO TEGRA_PLUTO 4306 | ||
760 | mx6sl_evk MACH_MX6SL_EVK MX6SL_EVK 4307 | ||
761 | m7 MACH_M7 M7 4308 | ||
762 | pxm2 MACH_PXM2 PXM2 4309 | ||
763 | haba_knx_lite MACH_HABA_KNX_LITE HABA_KNX_LITE 4310 | ||
764 | tai MACH_TAI TAI 4311 | ||
765 | prototd MACH_PROTOTD PROTOTD 4312 | ||
766 | dst_tonto MACH_DST_TONTO DST_TONTO 4313 | ||
767 | draco MACH_DRACO DRACO 4314 | ||
768 | dxr2 MACH_DXR2 DXR2 4315 | ||
769 | rut MACH_RUT RUT 4316 | ||
770 | am180x_wsc MACH_AM180X_WSC AM180X_WSC 4317 | ||
771 | deluxe_u MACH_DELUXE_U DELUXE_U 4318 | ||
772 | deluxe_ul MACH_DELUXE_UL DELUXE_UL 4319 | ||
773 | at91sam9260medths MACH_AT91SAM9260MEDTHS AT91SAM9260MEDTHS 4320 | ||
774 | matrix516 MACH_MATRIX516 MATRIX516 4321 | ||
775 | vid401x MACH_VID401X VID401X 4322 | ||
776 | helios_v5 MACH_HELIOS_V5 HELIOS_V5 4323 | ||
777 | playpaq2 MACH_PLAYPAQ2 PLAYPAQ2 4324 | ||
778 | igam MACH_IGAM IGAM 4325 | ||
779 | amico_i MACH_AMICO_I AMICO_I 4326 | ||
780 | amico_e MACH_AMICO_E AMICO_E 4327 | ||
781 | sentient_mm3_ck MACH_SENTIENT_MM3_CK SENTIENT_MM3_CK 4328 | ||
782 | smx6 MACH_SMX6 SMX6 4329 | ||
783 | pango MACH_PANGO PANGO 4330 | ||
784 | ns115_stick MACH_NS115_STICK NS115_STICK 4331 | ||
785 | bctrm3 MACH_BCTRM3 BCTRM3 4332 | ||
786 | doctorws MACH_DOCTORWS DOCTORWS 4333 | ||
787 | m2601 MACH_M2601 M2601 4334 | ||
788 | vgg1111 MACH_VGG1111 VGG1111 4337 | ||
789 | countach MACH_COUNTACH COUNTACH 4338 | ||
790 | visstrim_sm20 MACH_VISSTRIM_SM20 VISSTRIM_SM20 4339 | ||
791 | a639 MACH_A639 A639 4340 | ||
792 | spacemonkey MACH_SPACEMONKEY SPACEMONKEY 4341 | ||
793 | zpdu_stamp MACH_ZPDU_STAMP ZPDU_STAMP 4342 | ||
794 | htc_g7_clone MACH_HTC_G7_CLONE HTC_G7_CLONE 4343 | ||
795 | ft2080_corvus MACH_FT2080_CORVUS FT2080_CORVUS 4344 | ||
796 | fisland MACH_FISLAND FISLAND 4345 | ||
797 | zpdu MACH_ZPDU ZPDU 4346 | ||
798 | urt MACH_URT URT 4347 | 550 | urt MACH_URT URT 4347 |
799 | conti_ovip MACH_CONTI_OVIP CONTI_OVIP 4348 | ||
800 | omapl138_nagra MACH_OMAPL138_NAGRA OMAPL138_NAGRA 4349 | ||
801 | da850_at3kp1 MACH_DA850_AT3KP1 DA850_AT3KP1 4350 | ||
802 | da850_at3kp2 MACH_DA850_AT3KP2 DA850_AT3KP2 4351 | ||
803 | surma MACH_SURMA SURMA 4352 | ||
804 | stm_b2092 MACH_STM_B2092 STM_B2092 4353 | ||
805 | mx535_ycr MACH_MX535_YCR MX535_YCR 4354 | ||
806 | m7_wl MACH_M7_WL M7_WL 4355 | ||
807 | m7_u MACH_M7_U M7_U 4356 | ||
808 | omap3_stndt_evm MACH_OMAP3_STNDT_EVM OMAP3_STNDT_EVM 4357 | ||
809 | m7_wlv MACH_M7_WLV M7_WLV 4358 | ||
810 | xam3517 MACH_XAM3517 XAM3517 4359 | ||
811 | a220 MACH_A220 A220 4360 | ||
812 | aclima_odie MACH_ACLIMA_ODIE ACLIMA_ODIE 4361 | ||
813 | vibble MACH_VIBBLE VIBBLE 4362 | ||
814 | k2_u MACH_K2_U K2_U 4363 | ||
815 | mx53_egf MACH_MX53_EGF MX53_EGF 4364 | ||
816 | novpek_imx53 MACH_NOVPEK_IMX53 NOVPEK_IMX53 4365 | ||
817 | novpek_imx6x MACH_NOVPEK_IMX6X NOVPEK_IMX6X 4366 | ||
818 | mx25_smartbox MACH_MX25_SMARTBOX MX25_SMARTBOX 4367 | ||
819 | eicg6410 MACH_EICG6410 EICG6410 4368 | ||
820 | picasso_e3 MACH_PICASSO_E3 PICASSO_E3 4369 | ||
821 | motonavigator MACH_MOTONAVIGATOR MOTONAVIGATOR 4370 | ||
822 | varioconnect2 MACH_VARIOCONNECT2 VARIOCONNECT2 4371 | ||
823 | deluxe_tw MACH_DELUXE_TW DELUXE_TW 4372 | ||
824 | kore3 MACH_KORE3 KORE3 4374 | ||
825 | mx6s_drs MACH_MX6S_DRS MX6S_DRS 4375 | ||
826 | cmimx6 MACH_CMIMX6 CMIMX6 4376 | ||
827 | roth MACH_ROTH ROTH 4377 | ||
828 | eq4ux MACH_EQ4UX EQ4UX 4378 | ||
829 | x1plus MACH_X1PLUS X1PLUS 4379 | ||
830 | modimx27 MACH_MODIMX27 MODIMX27 4380 | ||
831 | videon_hduac MACH_VIDEON_HDUAC VIDEON_HDUAC 4381 | ||
832 | blackbird MACH_BLACKBIRD BLACKBIRD 4382 | ||
833 | runmaster MACH_RUNMASTER RUNMASTER 4383 | ||
834 | ceres MACH_CERES CERES 4384 | ||
835 | nad435 MACH_NAD435 NAD435 4385 | ||
836 | ns115_proto_type MACH_NS115_PROTO_TYPE NS115_PROTO_TYPE 4386 | ||
837 | fs20_vcc MACH_FS20_VCC FS20_VCC 4387 | ||
838 | meson6tv_skt MACH_MESON6TV_SKT MESON6TV_SKT 4389 | ||
839 | keystone MACH_KEYSTONE KEYSTONE 4390 | 551 | keystone MACH_KEYSTONE KEYSTONE 4390 |
840 | pcm052 MACH_PCM052 PCM052 4391 | 552 | ckb_rza1h MACH_CKB_RZA1H CKB_RZA1H 4780 |
841 | qrd_skud_prime MACH_QRD_SKUD_PRIME QRD_SKUD_PRIME 4393 | 553 | bcm2835 MACH_BCM2835 BCM2835 4828 |
842 | guf_santaro MACH_GUF_SANTARO GUF_SANTARO 4395 | 554 | cm_3g MACH_CM_3G CM_3G 4943 |
843 | sheepshead MACH_SHEEPSHEAD SHEEPSHEAD 4396 | 555 | empc_aimx6 MACH_EMPC_AIMX6 EMPC_AIMX6 4958 |
844 | mx6_iwg15m_mxm MACH_MX6_IWG15M_MXM MX6_IWG15M_MXM 4397 | 556 | diyefis6410 MACH_DIYEFIS6410 DIYEFIS6410 5063 |
845 | mx6_iwg15m_q7 MACH_MX6_IWG15M_Q7 MX6_IWG15M_Q7 4398 | 557 | mx53_turing MACH_MX53_TURING MX53_TURING 5064 |
846 | at91sam9263if8mic MACH_AT91SAM9263IF8MIC AT91SAM9263IF8MIC 4399 | 558 | mx6dl_turing MACH_MX6DL_TURING MX6DL_TURING 5066 |
847 | marcopolo MACH_MARCOPOLO MARCOPOLO 4401 | 559 | mx53_indash MACH_MX53_INDASH MX53_INDASH 5067 |
848 | mx535_sdcr MACH_MX535_SDCR MX535_SDCR 4402 | 560 | mx6q_indash MACH_MX6Q_INDASH MX6Q_INDASH 5068 |
849 | mx53_csb2733 MACH_MX53_CSB2733 MX53_CSB2733 4403 | 561 | mx6dl_indash MACH_MX6DL_INDASH MX6DL_INDASH 5069 |
850 | diva MACH_DIVA DIVA 4404 | 562 | rts_g6 MACH_RTS_G6 RTS_G6 5070 |
851 | ncr_7744 MACH_NCR_7744 NCR_7744 4405 | 563 | ka_titan MACH_KA_TITAN KA_TITAN 5071 |
852 | macallan MACH_MACALLAN MACALLAN 4406 | 564 | cl_som_imx7 MACH_CL_SOM_IMX7 CL_SOM_IMX7 5072 |
853 | wnr3500 MACH_WNR3500 WNR3500 4407 | 565 | vvdn_mgsi_vsis MACH_VVDN_MGSI_VSIS VVDN_MGSI_VSIS 5073 |
854 | pgavrf MACH_PGAVRF PGAVRF 4408 | 566 | mx6q_nano MACH_MX6Q_NANO MX6Q_NANO 5074 |
855 | helios_v6 MACH_HELIOS_V6 HELIOS_V6 4409 | 567 | pdu001 MACH_PDU001 PDU001 5075 |
856 | lcct MACH_LCCT LCCT 4410 | 568 | cab_proyk MACH_CAB_PROYK CAB_PROYK 5076 |
857 | csndug MACH_CSNDUG CSNDUG 4411 | 569 | klin MACH_KLIN KLIN 5077 |
858 | wandboard_imx6 MACH_WANDBOARD_IMX6 WANDBOARD_IMX6 4412 | 570 | enman_steuerbox MACH_ENMAN_STEUERBOX ENMAN_STEUERBOX 5078 |
859 | omap4_jet MACH_OMAP4_JET OMAP4_JET 4413 | 571 | ls_stingray MACH_LS_STINGRAY LS_STINGRAY 5079 |
860 | tegra_roth MACH_TEGRA_ROTH TEGRA_ROTH 4414 | 572 | ipdu MACH_IPDU IPDU 5080 |
861 | m7dcg MACH_M7DCG M7DCG 4415 | 573 | linda MACH_LINDA LINDA 5081 |
862 | m7dug MACH_M7DUG M7DUG 4416 | 574 | mx6q_openrex MACH_MX6Q_OPENREX MX6Q_OPENREX 5082 |
863 | m7dtg MACH_M7DTG M7DTG 4417 | 575 | on100 MACH_ON100 ON100 5083 |
864 | ap42x MACH_AP42X AP42X 4418 | 576 | eminds_rtu12 MACH_EMINDS_RTU12 EMINDS_RTU12 5084 |
865 | var_som_mx6 MACH_VAR_SOM_MX6 VAR_SOM_MX6 4419 | 577 | eminds_avl10 MACH_EMINDS_AVL10 EMINDS_AVL10 5085 |
866 | pdlu MACH_PDLU PDLU 4420 | 578 | main_plc_lme MACH_MAIN_PLC_LME MAIN_PLC_LME 5086 |
867 | hydrogen MACH_HYDROGEN HYDROGEN 4421 | 579 | mspx MACH_MSPX MSPX 5087 |
868 | npa211e MACH_NPA211E NPA211E 4422 | 580 | cgw_300 MACH_CGW_300 CGW_300 5088 |
869 | arcadia MACH_ARCADIA ARCADIA 4423 | 581 | mx7d_cicada MACH_MX7D_CICADA MX7D_CICADA 5089 |
870 | arcadia_l MACH_ARCADIA_L ARCADIA_L 4424 | 582 | virt2real_dm365 MACH_VIRT2REAL_DM365 VIRT2REAL_DM365 5090 |
871 | msm8930dt MACH_MSM8930DT MSM8930DT 4425 | 583 | dm365_virt2real MACH_DM365_VIRT2REAL DM365_VIRT2REAL 5091 |
872 | ktam3874 MACH_KTAM3874 KTAM3874 4426 | 584 | h6073 MACH_H6073 H6073 5092 |
873 | cec4 MACH_CEC4 CEC4 4427 | 585 | gtgateway MACH_GTGATEWAY GTGATEWAY 5093 |
874 | ape6evm MACH_APE6EVM APE6EVM 4428 | 586 | xarina_standard MACH_XARINA_STANDARD XARINA_STANDARD 5094 |
875 | tx6 MACH_TX6 TX6 4429 | 587 | novasoms MACH_NOVASOMS NOVASOMS 5095 |
876 | cfa10037 MACH_CFA10037 CFA10037 4431 | 588 | novasomp MACH_NOVASOMP NOVASOMP 5096 |
877 | ezp1000 MACH_EZP1000 EZP1000 4433 | 589 | novasomu MACH_NOVASOMU NOVASOMU 5097 |
878 | wgr826v MACH_WGR826V WGR826V 4434 | 590 | mx6q_mpbd MACH_MX6Q_MPBD MX6Q_MPBD 5098 |
879 | exuma MACH_EXUMA EXUMA 4435 | 591 | ncr_1930 MACH_NCR_1930 NCR_1930 5099 |
880 | fregate MACH_FREGATE FREGATE 4436 | 592 | uap301 MACH_UAP301 UAP301 5100 |
881 | osirisimx508 MACH_OSIRISIMX508 OSIRISIMX508 4437 | 593 | urt02 MACH_URT02 URT02 5101 |
882 | st_exigo MACH_ST_EXIGO ST_EXIGO 4438 | 594 | atc8 MACH_ATC8 ATC8 5102 |
883 | pismo MACH_PISMO PISMO 4439 | 595 | iot_gateway MACH_IOT_GATEWAY IOT_GATEWAY 5103 |
884 | atc7 MACH_ATC7 ATC7 4440 | 596 | hsm_phoenix MACH_HSM_PHOENIX HSM_PHOENIX 5104 |
885 | nspireclp MACH_NSPIRECLP NSPIRECLP 4441 | 597 | missouri MACH_MISSOURI MISSOURI 5105 |
886 | nspiretp MACH_NSPIRETP NSPIRETP 4442 | 598 | remarkable MACH_REMARKABLE REMARKABLE 5106 |
887 | nspirecx MACH_NSPIRECX NSPIRECX 4443 | 599 | fa0113 MACH_FA0113 FA0113 5107 |
888 | maya MACH_MAYA MAYA 4444 | 600 | innova_statnettawm MACH_INNOVA_STATNETTAWM INNOVA_STATNETTAWM 5108 |
889 | wecct MACH_WECCT WECCT 4445 | ||
890 | m2s MACH_M2S M2S 4446 | ||
891 | msm8625q_evbd MACH_MSM8625Q_EVBD MSM8625Q_EVBD 4447 | ||
892 | tiny210 MACH_TINY210 TINY210 4448 | ||
893 | g3 MACH_G3 G3 4449 | ||
894 | hurricane MACH_HURRICANE HURRICANE 4450 | ||
895 | mx6_pod MACH_MX6_POD MX6_POD 4451 | ||
896 | elondcn MACH_ELONDCN ELONDCN 4452 | ||
897 | cwmx535 MACH_CWMX535 CWMX535 4453 | ||
898 | m7_wlj MACH_M7_WLJ M7_WLJ 4454 | ||
899 | qsp_arm MACH_QSP_ARM QSP_ARM 4455 | ||
900 | msm8625q_skud MACH_MSM8625Q_SKUD MSM8625Q_SKUD 4456 | ||
901 | htcmondrian MACH_HTCMONDRIAN HTCMONDRIAN 4457 | ||
902 | watson_ead MACH_WATSON_EAD WATSON_EAD 4458 | ||
903 | mitwoa MACH_MITWOA MITWOA 4459 | ||
904 | omap3_wolverine MACH_OMAP3_WOLVERINE OMAP3_WOLVERINE 4460 | ||
905 | mapletree MACH_MAPLETREE MAPLETREE 4461 | ||
906 | msm8625_fih_sae MACH_MSM8625_FIH_SAE MSM8625_FIH_SAE 4462 | ||
907 | epc35 MACH_EPC35 EPC35 4463 | ||
908 | smartrtu MACH_SMARTRTU SMARTRTU 4464 | ||
909 | rcm101 MACH_RCM101 RCM101 4465 | ||
910 | amx_imx53_mxx MACH_AMX_IMX53_MXX AMX_IMX53_MXX 4466 | ||
911 | acer_a12 MACH_ACER_A12 ACER_A12 4470 | ||
912 | sbc6x MACH_SBC6X SBC6X 4471 | ||
913 | u2 MACH_U2 U2 4472 | ||
914 | smdk4270 MACH_SMDK4270 SMDK4270 4473 | ||
915 | priscillag MACH_PRISCILLAG PRISCILLAG 4474 | ||
916 | priscillac MACH_PRISCILLAC PRISCILLAC 4475 | ||
917 | priscilla MACH_PRISCILLA PRISCILLA 4476 | ||
918 | innova_shpu_v2 MACH_INNOVA_SHPU_V2 INNOVA_SHPU_V2 4477 | ||
919 | mach_type_dep2410 MACH_MACH_TYPE_DEP2410 MACH_TYPE_DEP2410 4479 | ||
920 | bctre3 MACH_BCTRE3 BCTRE3 4480 | ||
921 | omap_m100 MACH_OMAP_M100 OMAP_M100 4481 | ||
922 | flo MACH_FLO FLO 4482 | ||
923 | nanobone MACH_NANOBONE NANOBONE 4483 | ||
924 | stm_b2105 MACH_STM_B2105 STM_B2105 4484 | ||
925 | omap4_bsc_bap_v3 MACH_OMAP4_BSC_BAP_V3 OMAP4_BSC_BAP_V3 4485 | ||
926 | ss1pam MACH_SS1PAM SS1PAM 4486 | ||
927 | primominiu MACH_PRIMOMINIU PRIMOMINIU 4488 | ||
928 | mrt_35hd_dualnas_e MACH_MRT_35HD_DUALNAS_E MRT_35HD_DUALNAS_E 4489 | ||
929 | kiwi MACH_KIWI KIWI 4490 | ||
930 | hw90496 MACH_HW90496 HW90496 4491 | ||
931 | mep2440 MACH_MEP2440 MEP2440 4492 | ||
932 | colibri_t30 MACH_COLIBRI_T30 COLIBRI_T30 4493 | ||
933 | cwv1 MACH_CWV1 CWV1 4494 | ||
934 | nsa325 MACH_NSA325 NSA325 4495 | ||
935 | dpxmtc MACH_DPXMTC DPXMTC 4497 | ||
936 | tt_stuttgart MACH_TT_STUTTGART TT_STUTTGART 4498 | ||
937 | miranda_apcii MACH_MIRANDA_APCII MIRANDA_APCII 4499 | ||
938 | mx6q_moderox MACH_MX6Q_MODEROX MX6Q_MODEROX 4500 | ||
939 | mudskipper MACH_MUDSKIPPER MUDSKIPPER 4501 | ||
940 | urania MACH_URANIA URANIA 4502 | ||
941 | stm_b2112 MACH_STM_B2112 STM_B2112 4503 | ||
942 | mx6q_ats_phoenix MACH_MX6Q_ATS_PHOENIX MX6Q_ATS_PHOENIX 4505 | ||
943 | stm_b2116 MACH_STM_B2116 STM_B2116 4506 | ||
944 | mythology MACH_MYTHOLOGY MYTHOLOGY 4507 | ||
945 | fc360v1 MACH_FC360V1 FC360V1 4508 | ||
946 | gps_sensor MACH_GPS_SENSOR GPS_SENSOR 4509 | ||
947 | gazelle MACH_GAZELLE GAZELLE 4510 | ||
948 | mpq8064_dma MACH_MPQ8064_DMA MPQ8064_DMA 4511 | ||
949 | wems_asd01 MACH_WEMS_ASD01 WEMS_ASD01 4512 | ||
950 | apalis_t30 MACH_APALIS_T30 APALIS_T30 4513 | ||
951 | armstonea9 MACH_ARMSTONEA9 ARMSTONEA9 4515 | ||
952 | omap_blazetablet MACH_OMAP_BLAZETABLET OMAP_BLAZETABLET 4516 | ||
953 | ar6mxq MACH_AR6MXQ AR6MXQ 4517 | ||
954 | ar6mxs MACH_AR6MXS AR6MXS 4518 | ||
955 | gwventana MACH_GWVENTANA GWVENTANA 4520 | ||
956 | igep0033 MACH_IGEP0033 IGEP0033 4521 | ||
957 | h52c1_concerto MACH_H52C1_CONCERTO H52C1_CONCERTO 4524 | ||
958 | fcmbrd MACH_FCMBRD FCMBRD 4525 | ||
959 | pcaaxs1 MACH_PCAAXS1 PCAAXS1 4526 | ||
960 | ls_orca MACH_LS_ORCA LS_ORCA 4527 | ||
961 | pcm051lb MACH_PCM051LB PCM051LB 4528 | ||
962 | mx6s_lp507_gvci MACH_MX6S_LP507_GVCI MX6S_LP507_GVCI 4529 | ||
963 | dido MACH_DIDO DIDO 4530 | ||
964 | swarco_itc3_9g20 MACH_SWARCO_ITC3_9G20 SWARCO_ITC3_9G20 4531 | ||
965 | robo_roady MACH_ROBO_ROADY ROBO_ROADY 4532 | ||
966 | rskrza1 MACH_RSKRZA1 RSKRZA1 4533 | ||
967 | swarco_sid MACH_SWARCO_SID SWARCO_SID 4534 | ||
968 | mx6_iwg15s_sbc MACH_MX6_IWG15S_SBC MX6_IWG15S_SBC 4535 | ||
969 | mx6q_camaro MACH_MX6Q_CAMARO MX6Q_CAMARO 4536 | ||
970 | hb6mxs MACH_HB6MXS HB6MXS 4537 | ||
971 | lager MACH_LAGER LAGER 4538 | ||
972 | lp8x4x MACH_LP8X4X LP8X4X 4539 | ||
973 | tegratab7 MACH_TEGRATAB7 TEGRATAB7 4540 | ||
974 | andromeda MACH_ANDROMEDA ANDROMEDA 4541 | ||
975 | bootes MACH_BOOTES BOOTES 4542 | ||
976 | nethmi MACH_NETHMI NETHMI 4543 | ||
977 | tegratab MACH_TEGRATAB TEGRATAB 4544 | ||
978 | som5_evb MACH_SOM5_EVB SOM5_EVB 4545 | ||
979 | venaticorum MACH_VENATICORUM VENATICORUM 4546 | ||
980 | stm_b2110 MACH_STM_B2110 STM_B2110 4547 | ||
981 | elux_hathor MACH_ELUX_HATHOR ELUX_HATHOR 4548 | ||
982 | helios_v7 MACH_HELIOS_V7 HELIOS_V7 4549 | ||
983 | xc10v1 MACH_XC10V1 XC10V1 4550 | ||
984 | cp2u MACH_CP2U CP2U 4551 | ||
985 | iap_f MACH_IAP_F IAP_F 4552 | ||
986 | iap_g MACH_IAP_G IAP_G 4553 | ||
987 | aae MACH_AAE AAE 4554 | ||
988 | pegasus MACH_PEGASUS PEGASUS 4555 | ||
989 | cygnus MACH_CYGNUS CYGNUS 4556 | ||
990 | centaurus MACH_CENTAURUS CENTAURUS 4557 | ||
991 | msm8930_qrd8930 MACH_MSM8930_QRD8930 MSM8930_QRD8930 4558 | ||
992 | quby_tim MACH_QUBY_TIM QUBY_TIM 4559 | ||
993 | zedi3250a MACH_ZEDI3250A ZEDI3250A 4560 | ||
994 | grus MACH_GRUS GRUS 4561 | ||
995 | apollo3 MACH_APOLLO3 APOLLO3 4562 | ||
996 | cowon_r7 MACH_COWON_R7 COWON_R7 4563 | ||
997 | tonga3 MACH_TONGA3 TONGA3 4564 | ||
998 | p535 MACH_P535 P535 4565 | ||
999 | sa3874i MACH_SA3874I SA3874I 4566 | ||
1000 | mx6_navico_com MACH_MX6_NAVICO_COM MX6_NAVICO_COM 4567 | ||
1001 | proxmobil2 MACH_PROXMOBIL2 PROXMOBIL2 4568 | ||
1002 | ubinux1 MACH_UBINUX1 UBINUX1 4569 | ||
1003 | istos MACH_ISTOS ISTOS 4570 | ||
1004 | benvolio4 MACH_BENVOLIO4 BENVOLIO4 4571 | ||
1005 | eco5_bx2 MACH_ECO5_BX2 ECO5_BX2 4572 | ||
1006 | eukrea_cpuimx28sd MACH_EUKREA_CPUIMX28SD EUKREA_CPUIMX28SD 4573 | ||
1007 | domotab MACH_DOMOTAB DOMOTAB 4574 | ||
1008 | pfla03 MACH_PFLA03 PFLA03 4575 | ||
diff --git a/arch/arm/tools/syscall.tbl b/arch/arm/tools/syscall.tbl new file mode 100644 index 000000000000..3c2cb5d5adfa --- /dev/null +++ b/arch/arm/tools/syscall.tbl | |||
@@ -0,0 +1,413 @@ | |||
1 | # | ||
2 | # Linux system call numbers and entry vectors | ||
3 | # | ||
4 | # The format is: | ||
5 | # <num> <abi> <name> [<entry point> [<oabi compat entry point>]] | ||
6 | # | ||
7 | # Where abi is: | ||
8 | # common - for system calls shared between oabi and eabi (may have compat) | ||
9 | # oabi - for oabi-only system calls (may have compat) | ||
10 | # eabi - for eabi-only system calls | ||
11 | # | ||
12 | # For each syscall number, "common" is mutually exclusive with oabi and eabi | ||
13 | # | ||
14 | 0 common restart_syscall sys_restart_syscall | ||
15 | 1 common exit sys_exit | ||
16 | 2 common fork sys_fork | ||
17 | 3 common read sys_read | ||
18 | 4 common write sys_write | ||
19 | 5 common open sys_open | ||
20 | 6 common close sys_close | ||
21 | # 7 was sys_waitpid | ||
22 | 8 common creat sys_creat | ||
23 | 9 common link sys_link | ||
24 | 10 common unlink sys_unlink | ||
25 | 11 common execve sys_execve | ||
26 | 12 common chdir sys_chdir | ||
27 | 13 oabi time sys_time | ||
28 | 14 common mknod sys_mknod | ||
29 | 15 common chmod sys_chmod | ||
30 | 16 common lchown sys_lchown16 | ||
31 | # 17 was sys_break | ||
32 | # 18 was sys_stat | ||
33 | 19 common lseek sys_lseek | ||
34 | 20 common getpid sys_getpid | ||
35 | 21 common mount sys_mount | ||
36 | 22 oabi umount sys_oldumount | ||
37 | 23 common setuid sys_setuid16 | ||
38 | 24 common getuid sys_getuid16 | ||
39 | 25 oabi stime sys_stime | ||
40 | 26 common ptrace sys_ptrace | ||
41 | 27 oabi alarm sys_alarm | ||
42 | # 28 was sys_fstat | ||
43 | 29 common pause sys_pause | ||
44 | 30 oabi utime sys_utime | ||
45 | # 31 was sys_stty | ||
46 | # 32 was sys_gtty | ||
47 | 33 common access sys_access | ||
48 | 34 common nice sys_nice | ||
49 | # 35 was sys_ftime | ||
50 | 36 common sync sys_sync | ||
51 | 37 common kill sys_kill | ||
52 | 38 common rename sys_rename | ||
53 | 39 common mkdir sys_mkdir | ||
54 | 40 common rmdir sys_rmdir | ||
55 | 41 common dup sys_dup | ||
56 | 42 common pipe sys_pipe | ||
57 | 43 common times sys_times | ||
58 | # 44 was sys_prof | ||
59 | 45 common brk sys_brk | ||
60 | 46 common setgid sys_setgid16 | ||
61 | 47 common getgid sys_getgid16 | ||
62 | # 48 was sys_signal | ||
63 | 49 common geteuid sys_geteuid16 | ||
64 | 50 common getegid sys_getegid16 | ||
65 | 51 common acct sys_acct | ||
66 | 52 common umount2 sys_umount | ||
67 | # 53 was sys_lock | ||
68 | 54 common ioctl sys_ioctl | ||
69 | 55 common fcntl sys_fcntl | ||
70 | # 56 was sys_mpx | ||
71 | 57 common setpgid sys_setpgid | ||
72 | # 58 was sys_ulimit | ||
73 | # 59 was sys_olduname | ||
74 | 60 common umask sys_umask | ||
75 | 61 common chroot sys_chroot | ||
76 | 62 common ustat sys_ustat | ||
77 | 63 common dup2 sys_dup2 | ||
78 | 64 common getppid sys_getppid | ||
79 | 65 common getpgrp sys_getpgrp | ||
80 | 66 common setsid sys_setsid | ||
81 | 67 common sigaction sys_sigaction | ||
82 | # 68 was sys_sgetmask | ||
83 | # 69 was sys_ssetmask | ||
84 | 70 common setreuid sys_setreuid16 | ||
85 | 71 common setregid sys_setregid16 | ||
86 | 72 common sigsuspend sys_sigsuspend | ||
87 | 73 common sigpending sys_sigpending | ||
88 | 74 common sethostname sys_sethostname | ||
89 | 75 common setrlimit sys_setrlimit | ||
90 | # Back compat 2GB limited rlimit | ||
91 | 76 oabi getrlimit sys_old_getrlimit | ||
92 | 77 common getrusage sys_getrusage | ||
93 | 78 common gettimeofday sys_gettimeofday | ||
94 | 79 common settimeofday sys_settimeofday | ||
95 | 80 common getgroups sys_getgroups16 | ||
96 | 81 common setgroups sys_setgroups16 | ||
97 | 82 oabi select sys_old_select | ||
98 | 83 common symlink sys_symlink | ||
99 | # 84 was sys_lstat | ||
100 | 85 common readlink sys_readlink | ||
101 | 86 common uselib sys_uselib | ||
102 | 87 common swapon sys_swapon | ||
103 | 88 common reboot sys_reboot | ||
104 | 89 oabi readdir sys_old_readdir | ||
105 | 90 oabi mmap sys_old_mmap | ||
106 | 91 common munmap sys_munmap | ||
107 | 92 common truncate sys_truncate | ||
108 | 93 common ftruncate sys_ftruncate | ||
109 | 94 common fchmod sys_fchmod | ||
110 | 95 common fchown sys_fchown16 | ||
111 | 96 common getpriority sys_getpriority | ||
112 | 97 common setpriority sys_setpriority | ||
113 | # 98 was sys_profil | ||
114 | 99 common statfs sys_statfs | ||
115 | 100 common fstatfs sys_fstatfs | ||
116 | # 101 was sys_ioperm | ||
117 | 102 oabi socketcall sys_socketcall sys_oabi_socketcall | ||
118 | 103 common syslog sys_syslog | ||
119 | 104 common setitimer sys_setitimer | ||
120 | 105 common getitimer sys_getitimer | ||
121 | 106 common stat sys_newstat | ||
122 | 107 common lstat sys_newlstat | ||
123 | 108 common fstat sys_newfstat | ||
124 | # 109 was sys_uname | ||
125 | # 110 was sys_iopl | ||
126 | 111 common vhangup sys_vhangup | ||
127 | # 112 was sys_idle | ||
128 | # syscall to call a syscall! | ||
129 | 113 oabi syscall sys_syscall | ||
130 | 114 common wait4 sys_wait4 | ||
131 | 115 common swapoff sys_swapoff | ||
132 | 116 common sysinfo sys_sysinfo | ||
133 | 117 oabi ipc sys_ipc sys_oabi_ipc | ||
134 | 118 common fsync sys_fsync | ||
135 | 119 common sigreturn sys_sigreturn_wrapper | ||
136 | 120 common clone sys_clone | ||
137 | 121 common setdomainname sys_setdomainname | ||
138 | 122 common uname sys_newuname | ||
139 | # 123 was sys_modify_ldt | ||
140 | 124 common adjtimex sys_adjtimex | ||
141 | 125 common mprotect sys_mprotect | ||
142 | 126 common sigprocmask sys_sigprocmask | ||
143 | # 127 was sys_create_module | ||
144 | 128 common init_module sys_init_module | ||
145 | 129 common delete_module sys_delete_module | ||
146 | # 130 was sys_get_kernel_syms | ||
147 | 131 common quotactl sys_quotactl | ||
148 | 132 common getpgid sys_getpgid | ||
149 | 133 common fchdir sys_fchdir | ||
150 | 134 common bdflush sys_bdflush | ||
151 | 135 common sysfs sys_sysfs | ||
152 | 136 common personality sys_personality | ||
153 | # 137 was sys_afs_syscall | ||
154 | 138 common setfsuid sys_setfsuid16 | ||
155 | 139 common setfsgid sys_setfsgid16 | ||
156 | 140 common _llseek sys_llseek | ||
157 | 141 common getdents sys_getdents | ||
158 | 142 common _newselect sys_select | ||
159 | 143 common flock sys_flock | ||
160 | 144 common msync sys_msync | ||
161 | 145 common readv sys_readv | ||
162 | 146 common writev sys_writev | ||
163 | 147 common getsid sys_getsid | ||
164 | 148 common fdatasync sys_fdatasync | ||
165 | 149 common _sysctl sys_sysctl | ||
166 | 150 common mlock sys_mlock | ||
167 | 151 common munlock sys_munlock | ||
168 | 152 common mlockall sys_mlockall | ||
169 | 153 common munlockall sys_munlockall | ||
170 | 154 common sched_setparam sys_sched_setparam | ||
171 | 155 common sched_getparam sys_sched_getparam | ||
172 | 156 common sched_setscheduler sys_sched_setscheduler | ||
173 | 157 common sched_getscheduler sys_sched_getscheduler | ||
174 | 158 common sched_yield sys_sched_yield | ||
175 | 159 common sched_get_priority_max sys_sched_get_priority_max | ||
176 | 160 common sched_get_priority_min sys_sched_get_priority_min | ||
177 | 161 common sched_rr_get_interval sys_sched_rr_get_interval | ||
178 | 162 common nanosleep sys_nanosleep | ||
179 | 163 common mremap sys_mremap | ||
180 | 164 common setresuid sys_setresuid16 | ||
181 | 165 common getresuid sys_getresuid16 | ||
182 | # 166 was sys_vm86 | ||
183 | # 167 was sys_query_module | ||
184 | 168 common poll sys_poll | ||
185 | 169 common nfsservctl | ||
186 | 170 common setresgid sys_setresgid16 | ||
187 | 171 common getresgid sys_getresgid16 | ||
188 | 172 common prctl sys_prctl | ||
189 | 173 common rt_sigreturn sys_rt_sigreturn_wrapper | ||
190 | 174 common rt_sigaction sys_rt_sigaction | ||
191 | 175 common rt_sigprocmask sys_rt_sigprocmask | ||
192 | 176 common rt_sigpending sys_rt_sigpending | ||
193 | 177 common rt_sigtimedwait sys_rt_sigtimedwait | ||
194 | 178 common rt_sigqueueinfo sys_rt_sigqueueinfo | ||
195 | 179 common rt_sigsuspend sys_rt_sigsuspend | ||
196 | 180 common pread64 sys_pread64 sys_oabi_pread64 | ||
197 | 181 common pwrite64 sys_pwrite64 sys_oabi_pwrite64 | ||
198 | 182 common chown sys_chown16 | ||
199 | 183 common getcwd sys_getcwd | ||
200 | 184 common capget sys_capget | ||
201 | 185 common capset sys_capset | ||
202 | 186 common sigaltstack sys_sigaltstack | ||
203 | 187 common sendfile sys_sendfile | ||
204 | # 188 reserved | ||
205 | # 189 reserved | ||
206 | 190 common vfork sys_vfork | ||
207 | # SuS compliant getrlimit | ||
208 | 191 common ugetrlimit sys_getrlimit | ||
209 | 192 common mmap2 sys_mmap2 | ||
210 | 193 common truncate64 sys_truncate64 sys_oabi_truncate64 | ||
211 | 194 common ftruncate64 sys_ftruncate64 sys_oabi_ftruncate64 | ||
212 | 195 common stat64 sys_stat64 sys_oabi_stat64 | ||
213 | 196 common lstat64 sys_lstat64 sys_oabi_lstat64 | ||
214 | 197 common fstat64 sys_fstat64 sys_oabi_fstat64 | ||
215 | 198 common lchown32 sys_lchown | ||
216 | 199 common getuid32 sys_getuid | ||
217 | 200 common getgid32 sys_getgid | ||
218 | 201 common geteuid32 sys_geteuid | ||
219 | 202 common getegid32 sys_getegid | ||
220 | 203 common setreuid32 sys_setreuid | ||
221 | 204 common setregid32 sys_setregid | ||
222 | 205 common getgroups32 sys_getgroups | ||
223 | 206 common setgroups32 sys_setgroups | ||
224 | 207 common fchown32 sys_fchown | ||
225 | 208 common setresuid32 sys_setresuid | ||
226 | 209 common getresuid32 sys_getresuid | ||
227 | 210 common setresgid32 sys_setresgid | ||
228 | 211 common getresgid32 sys_getresgid | ||
229 | 212 common chown32 sys_chown | ||
230 | 213 common setuid32 sys_setuid | ||
231 | 214 common setgid32 sys_setgid | ||
232 | 215 common setfsuid32 sys_setfsuid | ||
233 | 216 common setfsgid32 sys_setfsgid | ||
234 | 217 common getdents64 sys_getdents64 | ||
235 | 218 common pivot_root sys_pivot_root | ||
236 | 219 common mincore sys_mincore | ||
237 | 220 common madvise sys_madvise | ||
238 | 221 common fcntl64 sys_fcntl64 sys_oabi_fcntl64 | ||
239 | # 222 for tux | ||
240 | # 223 is unused | ||
241 | 224 common gettid sys_gettid | ||
242 | 225 common readahead sys_readahead sys_oabi_readahead | ||
243 | 226 common setxattr sys_setxattr | ||
244 | 227 common lsetxattr sys_lsetxattr | ||
245 | 228 common fsetxattr sys_fsetxattr | ||
246 | 229 common getxattr sys_getxattr | ||
247 | 230 common lgetxattr sys_lgetxattr | ||
248 | 231 common fgetxattr sys_fgetxattr | ||
249 | 232 common listxattr sys_listxattr | ||
250 | 233 common llistxattr sys_llistxattr | ||
251 | 234 common flistxattr sys_flistxattr | ||
252 | 235 common removexattr sys_removexattr | ||
253 | 236 common lremovexattr sys_lremovexattr | ||
254 | 237 common fremovexattr sys_fremovexattr | ||
255 | 238 common tkill sys_tkill | ||
256 | 239 common sendfile64 sys_sendfile64 | ||
257 | 240 common futex sys_futex | ||
258 | 241 common sched_setaffinity sys_sched_setaffinity | ||
259 | 242 common sched_getaffinity sys_sched_getaffinity | ||
260 | 243 common io_setup sys_io_setup | ||
261 | 244 common io_destroy sys_io_destroy | ||
262 | 245 common io_getevents sys_io_getevents | ||
263 | 246 common io_submit sys_io_submit | ||
264 | 247 common io_cancel sys_io_cancel | ||
265 | 248 common exit_group sys_exit_group | ||
266 | 249 common lookup_dcookie sys_lookup_dcookie | ||
267 | 250 common epoll_create sys_epoll_create | ||
268 | 251 common epoll_ctl sys_epoll_ctl sys_oabi_epoll_ctl | ||
269 | 252 common epoll_wait sys_epoll_wait sys_oabi_epoll_wait | ||
270 | 253 common remap_file_pages sys_remap_file_pages | ||
271 | # 254 for set_thread_area | ||
272 | # 255 for get_thread_area | ||
273 | 256 common set_tid_address sys_set_tid_address | ||
274 | 257 common timer_create sys_timer_create | ||
275 | 258 common timer_settime sys_timer_settime | ||
276 | 259 common timer_gettime sys_timer_gettime | ||
277 | 260 common timer_getoverrun sys_timer_getoverrun | ||
278 | 261 common timer_delete sys_timer_delete | ||
279 | 262 common clock_settime sys_clock_settime | ||
280 | 263 common clock_gettime sys_clock_gettime | ||
281 | 264 common clock_getres sys_clock_getres | ||
282 | 265 common clock_nanosleep sys_clock_nanosleep | ||
283 | 266 common statfs64 sys_statfs64_wrapper | ||
284 | 267 common fstatfs64 sys_fstatfs64_wrapper | ||
285 | 268 common tgkill sys_tgkill | ||
286 | 269 common utimes sys_utimes | ||
287 | 270 common arm_fadvise64_64 sys_arm_fadvise64_64 | ||
288 | 271 common pciconfig_iobase sys_pciconfig_iobase | ||
289 | 272 common pciconfig_read sys_pciconfig_read | ||
290 | 273 common pciconfig_write sys_pciconfig_write | ||
291 | 274 common mq_open sys_mq_open | ||
292 | 275 common mq_unlink sys_mq_unlink | ||
293 | 276 common mq_timedsend sys_mq_timedsend | ||
294 | 277 common mq_timedreceive sys_mq_timedreceive | ||
295 | 278 common mq_notify sys_mq_notify | ||
296 | 279 common mq_getsetattr sys_mq_getsetattr | ||
297 | 280 common waitid sys_waitid | ||
298 | 281 common socket sys_socket | ||
299 | 282 common bind sys_bind sys_oabi_bind | ||
300 | 283 common connect sys_connect sys_oabi_connect | ||
301 | 284 common listen sys_listen | ||
302 | 285 common accept sys_accept | ||
303 | 286 common getsockname sys_getsockname | ||
304 | 287 common getpeername sys_getpeername | ||
305 | 288 common socketpair sys_socketpair | ||
306 | 289 common send sys_send | ||
307 | 290 common sendto sys_sendto sys_oabi_sendto | ||
308 | 291 common recv sys_recv | ||
309 | 292 common recvfrom sys_recvfrom | ||
310 | 293 common shutdown sys_shutdown | ||
311 | 294 common setsockopt sys_setsockopt | ||
312 | 295 common getsockopt sys_getsockopt | ||
313 | 296 common sendmsg sys_sendmsg sys_oabi_sendmsg | ||
314 | 297 common recvmsg sys_recvmsg | ||
315 | 298 common semop sys_semop sys_oabi_semop | ||
316 | 299 common semget sys_semget | ||
317 | 300 common semctl sys_semctl | ||
318 | 301 common msgsnd sys_msgsnd | ||
319 | 302 common msgrcv sys_msgrcv | ||
320 | 303 common msgget sys_msgget | ||
321 | 304 common msgctl sys_msgctl | ||
322 | 305 common shmat sys_shmat | ||
323 | 306 common shmdt sys_shmdt | ||
324 | 307 common shmget sys_shmget | ||
325 | 308 common shmctl sys_shmctl | ||
326 | 309 common add_key sys_add_key | ||
327 | 310 common request_key sys_request_key | ||
328 | 311 common keyctl sys_keyctl | ||
329 | 312 common semtimedop sys_semtimedop sys_oabi_semtimedop | ||
330 | 313 common vserver | ||
331 | 314 common ioprio_set sys_ioprio_set | ||
332 | 315 common ioprio_get sys_ioprio_get | ||
333 | 316 common inotify_init sys_inotify_init | ||
334 | 317 common inotify_add_watch sys_inotify_add_watch | ||
335 | 318 common inotify_rm_watch sys_inotify_rm_watch | ||
336 | 319 common mbind sys_mbind | ||
337 | 320 common get_mempolicy sys_get_mempolicy | ||
338 | 321 common set_mempolicy sys_set_mempolicy | ||
339 | 322 common openat sys_openat | ||
340 | 323 common mkdirat sys_mkdirat | ||
341 | 324 common mknodat sys_mknodat | ||
342 | 325 common fchownat sys_fchownat | ||
343 | 326 common futimesat sys_futimesat | ||
344 | 327 common fstatat64 sys_fstatat64 sys_oabi_fstatat64 | ||
345 | 328 common unlinkat sys_unlinkat | ||
346 | 329 common renameat sys_renameat | ||
347 | 330 common linkat sys_linkat | ||
348 | 331 common symlinkat sys_symlinkat | ||
349 | 332 common readlinkat sys_readlinkat | ||
350 | 333 common fchmodat sys_fchmodat | ||
351 | 334 common faccessat sys_faccessat | ||
352 | 335 common pselect6 sys_pselect6 | ||
353 | 336 common ppoll sys_ppoll | ||
354 | 337 common unshare sys_unshare | ||
355 | 338 common set_robust_list sys_set_robust_list | ||
356 | 339 common get_robust_list sys_get_robust_list | ||
357 | 340 common splice sys_splice | ||
358 | 341 common arm_sync_file_range sys_sync_file_range2 | ||
359 | 342 common tee sys_tee | ||
360 | 343 common vmsplice sys_vmsplice | ||
361 | 344 common move_pages sys_move_pages | ||
362 | 345 common getcpu sys_getcpu | ||
363 | 346 common epoll_pwait sys_epoll_pwait | ||
364 | 347 common kexec_load sys_kexec_load | ||
365 | 348 common utimensat sys_utimensat | ||
366 | 349 common signalfd sys_signalfd | ||
367 | 350 common timerfd_create sys_timerfd_create | ||
368 | 351 common eventfd sys_eventfd | ||
369 | 352 common fallocate sys_fallocate | ||
370 | 353 common timerfd_settime sys_timerfd_settime | ||
371 | 354 common timerfd_gettime sys_timerfd_gettime | ||
372 | 355 common signalfd4 sys_signalfd4 | ||
373 | 356 common eventfd2 sys_eventfd2 | ||
374 | 357 common epoll_create1 sys_epoll_create1 | ||
375 | 358 common dup3 sys_dup3 | ||
376 | 359 common pipe2 sys_pipe2 | ||
377 | 360 common inotify_init1 sys_inotify_init1 | ||
378 | 361 common preadv sys_preadv | ||
379 | 362 common pwritev sys_pwritev | ||
380 | 363 common rt_tgsigqueueinfo sys_rt_tgsigqueueinfo | ||
381 | 364 common perf_event_open sys_perf_event_open | ||
382 | 365 common recvmmsg sys_recvmmsg | ||
383 | 366 common accept4 sys_accept4 | ||
384 | 367 common fanotify_init sys_fanotify_init | ||
385 | 368 common fanotify_mark sys_fanotify_mark | ||
386 | 369 common prlimit64 sys_prlimit64 | ||
387 | 370 common name_to_handle_at sys_name_to_handle_at | ||
388 | 371 common open_by_handle_at sys_open_by_handle_at | ||
389 | 372 common clock_adjtime sys_clock_adjtime | ||
390 | 373 common syncfs sys_syncfs | ||
391 | 374 common sendmmsg sys_sendmmsg | ||
392 | 375 common setns sys_setns | ||
393 | 376 common process_vm_readv sys_process_vm_readv | ||
394 | 377 common process_vm_writev sys_process_vm_writev | ||
395 | 378 common kcmp sys_kcmp | ||
396 | 379 common finit_module sys_finit_module | ||
397 | 380 common sched_setattr sys_sched_setattr | ||
398 | 381 common sched_getattr sys_sched_getattr | ||
399 | 382 common renameat2 sys_renameat2 | ||
400 | 383 common seccomp sys_seccomp | ||
401 | 384 common getrandom sys_getrandom | ||
402 | 385 common memfd_create sys_memfd_create | ||
403 | 386 common bpf sys_bpf | ||
404 | 387 common execveat sys_execveat | ||
405 | 388 common userfaultfd sys_userfaultfd | ||
406 | 389 common membarrier sys_membarrier | ||
407 | 390 common mlock2 sys_mlock2 | ||
408 | 391 common copy_file_range sys_copy_file_range | ||
409 | 392 common preadv2 sys_preadv2 | ||
410 | 393 common pwritev2 sys_pwritev2 | ||
411 | 394 common pkey_mprotect sys_pkey_mprotect | ||
412 | 395 common pkey_alloc sys_pkey_alloc | ||
413 | 396 common pkey_free sys_pkey_free | ||
diff --git a/arch/arm/tools/syscallhdr.sh b/arch/arm/tools/syscallhdr.sh new file mode 100644 index 000000000000..72d4b2e3bdec --- /dev/null +++ b/arch/arm/tools/syscallhdr.sh | |||
@@ -0,0 +1,30 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | in="$1" | ||
4 | out="$2" | ||
5 | my_abis=`echo "($3)" | tr ',' '|'` | ||
6 | prefix="$4" | ||
7 | offset="$5" | ||
8 | |||
9 | fileguard=_ASM_ARM_`basename "$out" | sed \ | ||
10 | -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ | ||
11 | -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'` | ||
12 | if echo $out | grep -q uapi; then | ||
13 | fileguard="_UAPI$fileguard" | ||
14 | fi | ||
15 | grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( | ||
16 | echo "#ifndef ${fileguard}" | ||
17 | echo "#define ${fileguard} 1" | ||
18 | echo "" | ||
19 | |||
20 | while read nr abi name entry ; do | ||
21 | if [ -z "$offset" ]; then | ||
22 | echo "#define __NR_${prefix}${name} $nr" | ||
23 | else | ||
24 | echo "#define __NR_${prefix}${name} ($offset + $nr)" | ||
25 | fi | ||
26 | done | ||
27 | |||
28 | echo "" | ||
29 | echo "#endif /* ${fileguard} */" | ||
30 | ) > "$out" | ||
diff --git a/arch/arm/tools/syscallnr.sh b/arch/arm/tools/syscallnr.sh new file mode 100644 index 000000000000..d2971296469a --- /dev/null +++ b/arch/arm/tools/syscallnr.sh | |||
@@ -0,0 +1,33 @@ | |||
1 | #!/bin/sh | ||
2 | in="$1" | ||
3 | out="$2" | ||
4 | my_abis=`echo "($3)" | tr ',' '|'` | ||
5 | align=1 | ||
6 | |||
7 | fileguard=_ASM_ARM_`basename "$out" | sed \ | ||
8 | -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ | ||
9 | -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'` | ||
10 | |||
11 | grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | tail -n1 | ( | ||
12 | echo "#ifndef ${fileguard} | ||
13 | #define ${fileguard} 1 | ||
14 | |||
15 | /* | ||
16 | * This needs to be greater than __NR_last_syscall+1 in order to account | ||
17 | * for the padding in the syscall table. | ||
18 | */ | ||
19 | " | ||
20 | |||
21 | while read nr abi name entry; do | ||
22 | nr=$(($nr + 1)) | ||
23 | while [ "$(($nr / (256 * $align) ))" -gt 0 ]; do | ||
24 | align=$(( $align * 4 )) | ||
25 | done | ||
26 | nr=$(( ($nr + $align - 1) & ~($align - 1) )) | ||
27 | echo "/* aligned to $align */" | ||
28 | echo "#define __NR_syscalls $nr" | ||
29 | done | ||
30 | |||
31 | echo "" | ||
32 | echo "#endif /* ${fileguard} */" | ||
33 | ) > "$out" | ||
diff --git a/arch/arm/tools/syscalltbl.sh b/arch/arm/tools/syscalltbl.sh new file mode 100644 index 000000000000..5ca834545ed3 --- /dev/null +++ b/arch/arm/tools/syscalltbl.sh | |||
@@ -0,0 +1,21 @@ | |||
1 | #!/bin/sh | ||
2 | in="$1" | ||
3 | out="$2" | ||
4 | my_abis=`echo "($3)" | tr ',' '|'` | ||
5 | |||
6 | grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( | ||
7 | while read nr abi name entry compat; do | ||
8 | if [ "$abi" = "eabi" -a -n "$compat" ]; then | ||
9 | echo "$in: error: a compat entry for an EABI syscall ($name) makes no sense" >&2 | ||
10 | exit 1 | ||
11 | fi | ||
12 | |||
13 | if [ -n "$entry" ]; then | ||
14 | if [ -z "$compat" ]; then | ||
15 | echo "NATIVE($nr, $entry)" | ||
16 | else | ||
17 | echo "COMPAT($nr, $entry, $compat)" | ||
18 | fi | ||
19 | fi | ||
20 | done | ||
21 | ) > "$out" | ||
diff --git a/arch/arm/vfp/vfp.h b/arch/arm/vfp/vfp.h index c8c98dd44ad4..89773e5ddf35 100644 --- a/arch/arm/vfp/vfp.h +++ b/arch/arm/vfp/vfp.h | |||
@@ -155,8 +155,8 @@ struct vfp_single { | |||
155 | u32 significand; | 155 | u32 significand; |
156 | }; | 156 | }; |
157 | 157 | ||
158 | extern s32 vfp_get_float(unsigned int reg); | 158 | asmlinkage s32 vfp_get_float(unsigned int reg); |
159 | extern void vfp_put_float(s32 val, unsigned int reg); | 159 | asmlinkage void vfp_put_float(s32 val, unsigned int reg); |
160 | 160 | ||
161 | /* | 161 | /* |
162 | * VFP_SINGLE_MANTISSA_BITS - number of bits in the mantissa | 162 | * VFP_SINGLE_MANTISSA_BITS - number of bits in the mantissa |
@@ -270,8 +270,8 @@ struct vfp_double { | |||
270 | #else | 270 | #else |
271 | #define VFP_REG_ZERO 16 | 271 | #define VFP_REG_ZERO 16 |
272 | #endif | 272 | #endif |
273 | extern u64 vfp_get_double(unsigned int reg); | 273 | asmlinkage u64 vfp_get_double(unsigned int reg); |
274 | extern void vfp_put_double(u64 val, unsigned int reg); | 274 | asmlinkage void vfp_put_double(u64 val, unsigned int reg); |
275 | 275 | ||
276 | #define VFP_DOUBLE_MANTISSA_BITS (52) | 276 | #define VFP_DOUBLE_MANTISSA_BITS (52) |
277 | #define VFP_DOUBLE_EXPONENT_BITS (11) | 277 | #define VFP_DOUBLE_EXPONENT_BITS (11) |
@@ -377,4 +377,4 @@ struct op { | |||
377 | u32 flags; | 377 | u32 flags; |
378 | }; | 378 | }; |
379 | 379 | ||
380 | extern void vfp_save_state(void *location, u32 fpexc); | 380 | asmlinkage void vfp_save_state(void *location, u32 fpexc); |
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index da0b33deba6d..0351f5645fb1 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c | |||
@@ -34,11 +34,11 @@ | |||
34 | /* | 34 | /* |
35 | * Our undef handlers (in entry.S) | 35 | * Our undef handlers (in entry.S) |
36 | */ | 36 | */ |
37 | void vfp_testing_entry(void); | 37 | asmlinkage void vfp_testing_entry(void); |
38 | void vfp_support_entry(void); | 38 | asmlinkage void vfp_support_entry(void); |
39 | void vfp_null_entry(void); | 39 | asmlinkage void vfp_null_entry(void); |
40 | 40 | ||
41 | void (*vfp_vector)(void) = vfp_null_entry; | 41 | asmlinkage void (*vfp_vector)(void) = vfp_null_entry; |
42 | 42 | ||
43 | /* | 43 | /* |
44 | * Dual-use variable. | 44 | * Dual-use variable. |
diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c index 97ae60fa1584..bb8a77a5985f 100644 --- a/drivers/clk/clkdev.c +++ b/drivers/clk/clkdev.c | |||
@@ -448,12 +448,20 @@ EXPORT_SYMBOL(clk_register_clkdev); | |||
448 | * | 448 | * |
449 | * con_id or dev_id may be NULL as a wildcard, just as in the rest of | 449 | * con_id or dev_id may be NULL as a wildcard, just as in the rest of |
450 | * clkdev. | 450 | * clkdev. |
451 | * | ||
452 | * To make things easier for mass registration, we detect error clk_hws | ||
453 | * from a previous clk_hw_register_*() call, and return the error code for | ||
454 | * those. This is to permit this function to be called immediately | ||
455 | * after clk_hw_register_*(). | ||
451 | */ | 456 | */ |
452 | int clk_hw_register_clkdev(struct clk_hw *hw, const char *con_id, | 457 | int clk_hw_register_clkdev(struct clk_hw *hw, const char *con_id, |
453 | const char *dev_id) | 458 | const char *dev_id) |
454 | { | 459 | { |
455 | struct clk_lookup *cl; | 460 | struct clk_lookup *cl; |
456 | 461 | ||
462 | if (IS_ERR(hw)) | ||
463 | return PTR_ERR(hw); | ||
464 | |||
457 | /* | 465 | /* |
458 | * Since dev_id can be NULL, and NULL is handled specially, we must | 466 | * Since dev_id can be NULL, and NULL is handled specially, we must |
459 | * pass it as either a NULL format string, or with "%s". | 467 | * pass it as either a NULL format string, or with "%s". |