diff options
33 files changed, 1075 insertions, 1978 deletions
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt index f47cdefb4d1e..ab0a984530d8 100644 --- a/Documentation/kbuild/makefiles.txt +++ b/Documentation/kbuild/makefiles.txt | |||
@@ -33,14 +33,15 @@ This document describes the Linux kernel Makefiles. | |||
33 | 33 | ||
34 | === 6 Architecture Makefiles | 34 | === 6 Architecture Makefiles |
35 | --- 6.1 Set variables to tweak the build to the architecture | 35 | --- 6.1 Set variables to tweak the build to the architecture |
36 | --- 6.2 Add prerequisites to archprepare: | 36 | --- 6.2 Add prerequisites to archheaders: |
37 | --- 6.3 List directories to visit when descending | 37 | --- 6.3 Add prerequisites to archprepare: |
38 | --- 6.4 Architecture-specific boot images | 38 | --- 6.4 List directories to visit when descending |
39 | --- 6.5 Building non-kbuild targets | 39 | --- 6.5 Architecture-specific boot images |
40 | --- 6.6 Commands useful for building a boot image | 40 | --- 6.6 Building non-kbuild targets |
41 | --- 6.7 Custom kbuild commands | 41 | --- 6.7 Commands useful for building a boot image |
42 | --- 6.8 Preprocessing linker scripts | 42 | --- 6.8 Custom kbuild commands |
43 | --- 6.9 Generic header files | 43 | --- 6.9 Preprocessing linker scripts |
44 | --- 6.10 Generic header files | ||
44 | 45 | ||
45 | === 7 Kbuild syntax for exported headers | 46 | === 7 Kbuild syntax for exported headers |
46 | --- 7.1 header-y | 47 | --- 7.1 header-y |
@@ -252,7 +253,7 @@ more details, with real examples. | |||
252 | This will create a library lib.a based on delay.o. For kbuild to | 253 | This will create a library lib.a based on delay.o. For kbuild to |
253 | actually recognize that there is a lib.a being built, the directory | 254 | actually recognize that there is a lib.a being built, the directory |
254 | shall be listed in libs-y. | 255 | shall be listed in libs-y. |
255 | See also "6.3 List directories to visit when descending". | 256 | See also "6.4 List directories to visit when descending". |
256 | 257 | ||
257 | Use of lib-y is normally restricted to lib/ and arch/*/lib. | 258 | Use of lib-y is normally restricted to lib/ and arch/*/lib. |
258 | 259 | ||
@@ -974,7 +975,20 @@ When kbuild executes, the following steps are followed (roughly): | |||
974 | $(KBUILD_ARFLAGS) set by the top level Makefile to "D" (deterministic | 975 | $(KBUILD_ARFLAGS) set by the top level Makefile to "D" (deterministic |
975 | mode) if this option is supported by $(AR). | 976 | mode) if this option is supported by $(AR). |
976 | 977 | ||
977 | --- 6.2 Add prerequisites to archprepare: | 978 | --- 6.2 Add prerequisites to archheaders: |
979 | |||
980 | The archheaders: rule is used to generate header files that | ||
981 | may be installed into user space by "make header_install" or | ||
982 | "make headers_install_all". In order to support | ||
983 | "make headers_install_all", this target has to be able to run | ||
984 | on an unconfigured tree, or a tree configured for another | ||
985 | architecture. | ||
986 | |||
987 | It is run before "make archprepare" when run on the | ||
988 | architecture itself. | ||
989 | |||
990 | |||
991 | --- 6.3 Add prerequisites to archprepare: | ||
978 | 992 | ||
979 | The archprepare: rule is used to list prerequisites that need to be | 993 | The archprepare: rule is used to list prerequisites that need to be |
980 | built before starting to descend down in the subdirectories. | 994 | built before starting to descend down in the subdirectories. |
@@ -990,7 +1004,7 @@ When kbuild executes, the following steps are followed (roughly): | |||
990 | generating offset header files. | 1004 | generating offset header files. |
991 | 1005 | ||
992 | 1006 | ||
993 | --- 6.3 List directories to visit when descending | 1007 | --- 6.4 List directories to visit when descending |
994 | 1008 | ||
995 | An arch Makefile cooperates with the top Makefile to define variables | 1009 | An arch Makefile cooperates with the top Makefile to define variables |
996 | which specify how to build the vmlinux file. Note that there is no | 1010 | which specify how to build the vmlinux file. Note that there is no |
@@ -1019,7 +1033,7 @@ When kbuild executes, the following steps are followed (roughly): | |||
1019 | drivers-$(CONFIG_OPROFILE) += arch/sparc64/oprofile/ | 1033 | drivers-$(CONFIG_OPROFILE) += arch/sparc64/oprofile/ |
1020 | 1034 | ||
1021 | 1035 | ||
1022 | --- 6.4 Architecture-specific boot images | 1036 | --- 6.5 Architecture-specific boot images |
1023 | 1037 | ||
1024 | An arch Makefile specifies goals that take the vmlinux file, compress | 1038 | An arch Makefile specifies goals that take the vmlinux file, compress |
1025 | it, wrap it in bootstrapping code, and copy the resulting files | 1039 | it, wrap it in bootstrapping code, and copy the resulting files |
@@ -1070,7 +1084,7 @@ When kbuild executes, the following steps are followed (roughly): | |||
1070 | 1084 | ||
1071 | When "make" is executed without arguments, bzImage will be built. | 1085 | When "make" is executed without arguments, bzImage will be built. |
1072 | 1086 | ||
1073 | --- 6.5 Building non-kbuild targets | 1087 | --- 6.6 Building non-kbuild targets |
1074 | 1088 | ||
1075 | extra-y | 1089 | extra-y |
1076 | 1090 | ||
@@ -1090,7 +1104,7 @@ When kbuild executes, the following steps are followed (roughly): | |||
1090 | shall be built, but shall not be linked as part of built-in.o. | 1104 | shall be built, but shall not be linked as part of built-in.o. |
1091 | 1105 | ||
1092 | 1106 | ||
1093 | --- 6.6 Commands useful for building a boot image | 1107 | --- 6.7 Commands useful for building a boot image |
1094 | 1108 | ||
1095 | Kbuild provides a few macros that are useful when building a | 1109 | Kbuild provides a few macros that are useful when building a |
1096 | boot image. | 1110 | boot image. |
@@ -1112,7 +1126,7 @@ When kbuild executes, the following steps are followed (roughly): | |||
1112 | always be built. | 1126 | always be built. |
1113 | Assignments to $(targets) are without $(obj)/ prefix. | 1127 | Assignments to $(targets) are without $(obj)/ prefix. |
1114 | if_changed may be used in conjunction with custom commands as | 1128 | if_changed may be used in conjunction with custom commands as |
1115 | defined in 6.7 "Custom kbuild commands". | 1129 | defined in 6.8 "Custom kbuild commands". |
1116 | 1130 | ||
1117 | Note: It is a typical mistake to forget the FORCE prerequisite. | 1131 | Note: It is a typical mistake to forget the FORCE prerequisite. |
1118 | Another common pitfall is that whitespace is sometimes | 1132 | Another common pitfall is that whitespace is sometimes |
@@ -1171,7 +1185,7 @@ When kbuild executes, the following steps are followed (roughly): | |||
1171 | $(obj)/%.dtb: $(src)/%.dts | 1185 | $(obj)/%.dtb: $(src)/%.dts |
1172 | $(call cmd,dtc) | 1186 | $(call cmd,dtc) |
1173 | 1187 | ||
1174 | --- 6.7 Custom kbuild commands | 1188 | --- 6.8 Custom kbuild commands |
1175 | 1189 | ||
1176 | When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand | 1190 | When kbuild is executing with KBUILD_VERBOSE=0, then only a shorthand |
1177 | of a command is normally displayed. | 1191 | of a command is normally displayed. |
@@ -1198,7 +1212,7 @@ When kbuild executes, the following steps are followed (roughly): | |||
1198 | will be displayed with "make KBUILD_VERBOSE=0". | 1212 | will be displayed with "make KBUILD_VERBOSE=0". |
1199 | 1213 | ||
1200 | 1214 | ||
1201 | --- 6.8 Preprocessing linker scripts | 1215 | --- 6.9 Preprocessing linker scripts |
1202 | 1216 | ||
1203 | When the vmlinux image is built, the linker script | 1217 | When the vmlinux image is built, the linker script |
1204 | arch/$(ARCH)/kernel/vmlinux.lds is used. | 1218 | arch/$(ARCH)/kernel/vmlinux.lds is used. |
@@ -1228,7 +1242,7 @@ When kbuild executes, the following steps are followed (roughly): | |||
1228 | The kbuild infrastructure for *lds file are used in several | 1242 | The kbuild infrastructure for *lds file are used in several |
1229 | architecture-specific files. | 1243 | architecture-specific files. |
1230 | 1244 | ||
1231 | --- 6.9 Generic header files | 1245 | --- 6.10 Generic header files |
1232 | 1246 | ||
1233 | The directory include/asm-generic contains the header files | 1247 | The directory include/asm-generic contains the header files |
1234 | that may be shared between individual architectures. | 1248 | that may be shared between individual architectures. |
@@ -442,7 +442,7 @@ asm-generic: | |||
442 | 442 | ||
443 | no-dot-config-targets := clean mrproper distclean \ | 443 | no-dot-config-targets := clean mrproper distclean \ |
444 | cscope gtags TAGS tags help %docs check% coccicheck \ | 444 | cscope gtags TAGS tags help %docs check% coccicheck \ |
445 | include/linux/version.h headers_% \ | 445 | include/linux/version.h headers_% archheaders \ |
446 | kernelversion %src-pkg | 446 | kernelversion %src-pkg |
447 | 447 | ||
448 | config-targets := 0 | 448 | config-targets := 0 |
@@ -979,7 +979,7 @@ prepare1: prepare2 include/linux/version.h include/generated/utsrelease.h \ | |||
979 | include/config/auto.conf | 979 | include/config/auto.conf |
980 | $(cmd_crmodverdir) | 980 | $(cmd_crmodverdir) |
981 | 981 | ||
982 | archprepare: prepare1 scripts_basic | 982 | archprepare: archheaders prepare1 scripts_basic |
983 | 983 | ||
984 | prepare0: archprepare FORCE | 984 | prepare0: archprepare FORCE |
985 | $(Q)$(MAKE) $(build)=. | 985 | $(Q)$(MAKE) $(build)=. |
@@ -1046,8 +1046,11 @@ hdr-inst := -rR -f $(srctree)/scripts/Makefile.headersinst obj | |||
1046 | # If we do an all arch process set dst to asm-$(hdr-arch) | 1046 | # If we do an all arch process set dst to asm-$(hdr-arch) |
1047 | hdr-dst = $(if $(KBUILD_HEADERS), dst=include/asm-$(hdr-arch), dst=include/asm) | 1047 | hdr-dst = $(if $(KBUILD_HEADERS), dst=include/asm-$(hdr-arch), dst=include/asm) |
1048 | 1048 | ||
1049 | PHONY += archheaders | ||
1050 | archheaders: | ||
1051 | |||
1049 | PHONY += __headers | 1052 | PHONY += __headers |
1050 | __headers: include/linux/version.h scripts_basic asm-generic FORCE | 1053 | __headers: include/linux/version.h scripts_basic asm-generic archheaders FORCE |
1051 | $(Q)$(MAKE) $(build)=scripts build_unifdef | 1054 | $(Q)$(MAKE) $(build)=scripts build_unifdef |
1052 | 1055 | ||
1053 | PHONY += headers_install_all | 1056 | PHONY += headers_install_all |
diff --git a/arch/um/Makefile b/arch/um/Makefile index 7730af6ec13f..28688e6d96d7 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
@@ -64,7 +64,8 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -D__KERNEL__,,\ | |||
64 | #This will adjust *FLAGS accordingly to the platform. | 64 | #This will adjust *FLAGS accordingly to the platform. |
65 | include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS) | 65 | include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS) |
66 | 66 | ||
67 | KBUILD_CPPFLAGS += -I$(srctree)/$(HOST_DIR)/include | 67 | KBUILD_CPPFLAGS += -I$(srctree)/$(HOST_DIR)/include \ |
68 | -I$(HOST_DIR)/include/generated | ||
68 | 69 | ||
69 | # -Derrno=kernel_errno - This turns all kernel references to errno into | 70 | # -Derrno=kernel_errno - This turns all kernel references to errno into |
70 | # kernel_errno to separate them from the libc errno. This allows -fno-common | 71 | # kernel_errno to separate them from the libc errno. This allows -fno-common |
@@ -96,6 +97,10 @@ endef | |||
96 | 97 | ||
97 | KBUILD_KCONFIG := $(HOST_DIR)/um/Kconfig | 98 | KBUILD_KCONFIG := $(HOST_DIR)/um/Kconfig |
98 | 99 | ||
100 | archheaders: | ||
101 | $(Q)$(MAKE) -C '$(srctree)' KBUILD_SRC= \ | ||
102 | ARCH=$(SUBARCH) O='$(objtree)' archheaders | ||
103 | |||
99 | archprepare: include/generated/user_constants.h | 104 | archprepare: include/generated/user_constants.h |
100 | 105 | ||
101 | LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static | 106 | LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static |
@@ -135,7 +140,7 @@ archclean: | |||
135 | 140 | ||
136 | # Generated files | 141 | # Generated files |
137 | 142 | ||
138 | $(HOST_DIR)/um/user-offsets.s: FORCE | 143 | $(HOST_DIR)/um/user-offsets.s: __headers FORCE |
139 | $(Q)$(MAKE) $(build)=$(HOST_DIR)/um $@ | 144 | $(Q)$(MAKE) $(build)=$(HOST_DIR)/um $@ |
140 | 145 | ||
141 | define filechk_gen-asm-offsets | 146 | define filechk_gen-asm-offsets |
diff --git a/arch/x86/Makefile b/arch/x86/Makefile index b02e509072a7..209ba1294592 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile | |||
@@ -118,6 +118,12 @@ KBUILD_CFLAGS += $(mflags-y) | |||
118 | KBUILD_AFLAGS += $(mflags-y) | 118 | KBUILD_AFLAGS += $(mflags-y) |
119 | 119 | ||
120 | ### | 120 | ### |
121 | # Syscall table generation | ||
122 | |||
123 | archheaders: | ||
124 | $(Q)$(MAKE) $(build)=arch/x86/syscalls all | ||
125 | |||
126 | ### | ||
121 | # Kernel objects | 127 | # Kernel objects |
122 | 128 | ||
123 | head-y := arch/x86/kernel/head_$(BITS).o | 129 | head-y := arch/x86/kernel/head_$(BITS).o |
diff --git a/arch/x86/ia32/Makefile b/arch/x86/ia32/Makefile index 52d0ccfcf6ea..455646e0e532 100644 --- a/arch/x86/ia32/Makefile +++ b/arch/x86/ia32/Makefile | |||
@@ -3,6 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o | 5 | obj-$(CONFIG_IA32_EMULATION) := ia32entry.o sys_ia32.o ia32_signal.o |
6 | obj-$(CONFIG_IA32_EMULATION) += nosyscall.o syscall_ia32.o | ||
6 | 7 | ||
7 | sysv-$(CONFIG_SYSVIPC) := ipc32.o | 8 | sysv-$(CONFIG_SYSVIPC) := ipc32.o |
8 | obj-$(CONFIG_IA32_EMULATION) += $(sysv-y) | 9 | obj-$(CONFIG_IA32_EMULATION) += $(sysv-y) |
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S index 3e274564f6bf..1106261856c8 100644 --- a/arch/x86/ia32/ia32entry.S +++ b/arch/x86/ia32/ia32entry.S | |||
@@ -27,8 +27,6 @@ | |||
27 | 27 | ||
28 | .section .entry.text, "ax" | 28 | .section .entry.text, "ax" |
29 | 29 | ||
30 | #define IA32_NR_syscalls ((ia32_syscall_end - ia32_sys_call_table)/8) | ||
31 | |||
32 | .macro IA32_ARG_FIXUP noebp=0 | 30 | .macro IA32_ARG_FIXUP noebp=0 |
33 | movl %edi,%r8d | 31 | movl %edi,%r8d |
34 | .if \noebp | 32 | .if \noebp |
@@ -447,9 +445,6 @@ ia32_badsys: | |||
447 | movq $-ENOSYS,%rax | 445 | movq $-ENOSYS,%rax |
448 | jmp ia32_sysret | 446 | jmp ia32_sysret |
449 | 447 | ||
450 | quiet_ni_syscall: | ||
451 | movq $-ENOSYS,%rax | ||
452 | ret | ||
453 | CFI_ENDPROC | 448 | CFI_ENDPROC |
454 | 449 | ||
455 | .macro PTREGSCALL label, func, arg | 450 | .macro PTREGSCALL label, func, arg |
@@ -494,357 +489,3 @@ ia32_ptregs_common: | |||
494 | jmp ia32_sysret /* misbalances the return cache */ | 489 | jmp ia32_sysret /* misbalances the return cache */ |
495 | CFI_ENDPROC | 490 | CFI_ENDPROC |
496 | END(ia32_ptregs_common) | 491 | END(ia32_ptregs_common) |
497 | |||
498 | .section .rodata,"a" | ||
499 | .align 8 | ||
500 | ia32_sys_call_table: | ||
501 | .quad sys_restart_syscall | ||
502 | .quad sys_exit | ||
503 | .quad stub32_fork | ||
504 | .quad sys_read | ||
505 | .quad sys_write | ||
506 | .quad compat_sys_open /* 5 */ | ||
507 | .quad sys_close | ||
508 | .quad sys32_waitpid | ||
509 | .quad sys_creat | ||
510 | .quad sys_link | ||
511 | .quad sys_unlink /* 10 */ | ||
512 | .quad stub32_execve | ||
513 | .quad sys_chdir | ||
514 | .quad compat_sys_time | ||
515 | .quad sys_mknod | ||
516 | .quad sys_chmod /* 15 */ | ||
517 | .quad sys_lchown16 | ||
518 | .quad quiet_ni_syscall /* old break syscall holder */ | ||
519 | .quad sys_stat | ||
520 | .quad sys32_lseek | ||
521 | .quad sys_getpid /* 20 */ | ||
522 | .quad compat_sys_mount /* mount */ | ||
523 | .quad sys_oldumount /* old_umount */ | ||
524 | .quad sys_setuid16 | ||
525 | .quad sys_getuid16 | ||
526 | .quad compat_sys_stime /* stime */ /* 25 */ | ||
527 | .quad compat_sys_ptrace /* ptrace */ | ||
528 | .quad sys_alarm | ||
529 | .quad sys_fstat /* (old)fstat */ | ||
530 | .quad sys_pause | ||
531 | .quad compat_sys_utime /* 30 */ | ||
532 | .quad quiet_ni_syscall /* old stty syscall holder */ | ||
533 | .quad quiet_ni_syscall /* old gtty syscall holder */ | ||
534 | .quad sys_access | ||
535 | .quad sys_nice | ||
536 | .quad quiet_ni_syscall /* 35 */ /* old ftime syscall holder */ | ||
537 | .quad sys_sync | ||
538 | .quad sys32_kill | ||
539 | .quad sys_rename | ||
540 | .quad sys_mkdir | ||
541 | .quad sys_rmdir /* 40 */ | ||
542 | .quad sys_dup | ||
543 | .quad sys_pipe | ||
544 | .quad compat_sys_times | ||
545 | .quad quiet_ni_syscall /* old prof syscall holder */ | ||
546 | .quad sys_brk /* 45 */ | ||
547 | .quad sys_setgid16 | ||
548 | .quad sys_getgid16 | ||
549 | .quad sys_signal | ||
550 | .quad sys_geteuid16 | ||
551 | .quad sys_getegid16 /* 50 */ | ||
552 | .quad sys_acct | ||
553 | .quad sys_umount /* new_umount */ | ||
554 | .quad quiet_ni_syscall /* old lock syscall holder */ | ||
555 | .quad compat_sys_ioctl | ||
556 | .quad compat_sys_fcntl64 /* 55 */ | ||
557 | .quad quiet_ni_syscall /* old mpx syscall holder */ | ||
558 | .quad sys_setpgid | ||
559 | .quad quiet_ni_syscall /* old ulimit syscall holder */ | ||
560 | .quad sys_olduname | ||
561 | .quad sys_umask /* 60 */ | ||
562 | .quad sys_chroot | ||
563 | .quad compat_sys_ustat | ||
564 | .quad sys_dup2 | ||
565 | .quad sys_getppid | ||
566 | .quad sys_getpgrp /* 65 */ | ||
567 | .quad sys_setsid | ||
568 | .quad sys32_sigaction | ||
569 | .quad sys_sgetmask | ||
570 | .quad sys_ssetmask | ||
571 | .quad sys_setreuid16 /* 70 */ | ||
572 | .quad sys_setregid16 | ||
573 | .quad sys32_sigsuspend | ||
574 | .quad compat_sys_sigpending | ||
575 | .quad sys_sethostname | ||
576 | .quad compat_sys_setrlimit /* 75 */ | ||
577 | .quad compat_sys_old_getrlimit /* old_getrlimit */ | ||
578 | .quad compat_sys_getrusage | ||
579 | .quad compat_sys_gettimeofday | ||
580 | .quad compat_sys_settimeofday | ||
581 | .quad sys_getgroups16 /* 80 */ | ||
582 | .quad sys_setgroups16 | ||
583 | .quad compat_sys_old_select | ||
584 | .quad sys_symlink | ||
585 | .quad sys_lstat | ||
586 | .quad sys_readlink /* 85 */ | ||
587 | .quad sys_uselib | ||
588 | .quad sys_swapon | ||
589 | .quad sys_reboot | ||
590 | .quad compat_sys_old_readdir | ||
591 | .quad sys32_mmap /* 90 */ | ||
592 | .quad sys_munmap | ||
593 | .quad sys_truncate | ||
594 | .quad sys_ftruncate | ||
595 | .quad sys_fchmod | ||
596 | .quad sys_fchown16 /* 95 */ | ||
597 | .quad sys_getpriority | ||
598 | .quad sys_setpriority | ||
599 | .quad quiet_ni_syscall /* old profil syscall holder */ | ||
600 | .quad compat_sys_statfs | ||
601 | .quad compat_sys_fstatfs /* 100 */ | ||
602 | .quad sys_ioperm | ||
603 | .quad compat_sys_socketcall | ||
604 | .quad sys_syslog | ||
605 | .quad compat_sys_setitimer | ||
606 | .quad compat_sys_getitimer /* 105 */ | ||
607 | .quad compat_sys_newstat | ||
608 | .quad compat_sys_newlstat | ||
609 | .quad compat_sys_newfstat | ||
610 | .quad sys_uname | ||
611 | .quad stub32_iopl /* 110 */ | ||
612 | .quad sys_vhangup | ||
613 | .quad quiet_ni_syscall /* old "idle" system call */ | ||
614 | .quad sys32_vm86_warning /* vm86old */ | ||
615 | .quad compat_sys_wait4 | ||
616 | .quad sys_swapoff /* 115 */ | ||
617 | .quad compat_sys_sysinfo | ||
618 | .quad sys32_ipc | ||
619 | .quad sys_fsync | ||
620 | .quad stub32_sigreturn | ||
621 | .quad stub32_clone /* 120 */ | ||
622 | .quad sys_setdomainname | ||
623 | .quad sys_newuname | ||
624 | .quad sys_modify_ldt | ||
625 | .quad compat_sys_adjtimex | ||
626 | .quad sys32_mprotect /* 125 */ | ||
627 | .quad compat_sys_sigprocmask | ||
628 | .quad quiet_ni_syscall /* create_module */ | ||
629 | .quad sys_init_module | ||
630 | .quad sys_delete_module | ||
631 | .quad quiet_ni_syscall /* 130 get_kernel_syms */ | ||
632 | .quad sys32_quotactl | ||
633 | .quad sys_getpgid | ||
634 | .quad sys_fchdir | ||
635 | .quad quiet_ni_syscall /* bdflush */ | ||
636 | .quad sys_sysfs /* 135 */ | ||
637 | .quad sys_personality | ||
638 | .quad quiet_ni_syscall /* for afs_syscall */ | ||
639 | .quad sys_setfsuid16 | ||
640 | .quad sys_setfsgid16 | ||
641 | .quad sys_llseek /* 140 */ | ||
642 | .quad compat_sys_getdents | ||
643 | .quad compat_sys_select | ||
644 | .quad sys_flock | ||
645 | .quad sys_msync | ||
646 | .quad compat_sys_readv /* 145 */ | ||
647 | .quad compat_sys_writev | ||
648 | .quad sys_getsid | ||
649 | .quad sys_fdatasync | ||
650 | .quad compat_sys_sysctl /* sysctl */ | ||
651 | .quad sys_mlock /* 150 */ | ||
652 | .quad sys_munlock | ||
653 | .quad sys_mlockall | ||
654 | .quad sys_munlockall | ||
655 | .quad sys_sched_setparam | ||
656 | .quad sys_sched_getparam /* 155 */ | ||
657 | .quad sys_sched_setscheduler | ||
658 | .quad sys_sched_getscheduler | ||
659 | .quad sys_sched_yield | ||
660 | .quad sys_sched_get_priority_max | ||
661 | .quad sys_sched_get_priority_min /* 160 */ | ||
662 | .quad sys32_sched_rr_get_interval | ||
663 | .quad compat_sys_nanosleep | ||
664 | .quad sys_mremap | ||
665 | .quad sys_setresuid16 | ||
666 | .quad sys_getresuid16 /* 165 */ | ||
667 | .quad sys32_vm86_warning /* vm86 */ | ||
668 | .quad quiet_ni_syscall /* query_module */ | ||
669 | .quad sys_poll | ||
670 | .quad quiet_ni_syscall /* old nfsservctl */ | ||
671 | .quad sys_setresgid16 /* 170 */ | ||
672 | .quad sys_getresgid16 | ||
673 | .quad sys_prctl | ||
674 | .quad stub32_rt_sigreturn | ||
675 | .quad sys32_rt_sigaction | ||
676 | .quad sys32_rt_sigprocmask /* 175 */ | ||
677 | .quad sys32_rt_sigpending | ||
678 | .quad compat_sys_rt_sigtimedwait | ||
679 | .quad sys32_rt_sigqueueinfo | ||
680 | .quad sys_rt_sigsuspend | ||
681 | .quad sys32_pread /* 180 */ | ||
682 | .quad sys32_pwrite | ||
683 | .quad sys_chown16 | ||
684 | .quad sys_getcwd | ||
685 | .quad sys_capget | ||
686 | .quad sys_capset | ||
687 | .quad stub32_sigaltstack | ||
688 | .quad sys32_sendfile | ||
689 | .quad quiet_ni_syscall /* streams1 */ | ||
690 | .quad quiet_ni_syscall /* streams2 */ | ||
691 | .quad stub32_vfork /* 190 */ | ||
692 | .quad compat_sys_getrlimit | ||
693 | .quad sys_mmap_pgoff | ||
694 | .quad sys32_truncate64 | ||
695 | .quad sys32_ftruncate64 | ||
696 | .quad sys32_stat64 /* 195 */ | ||
697 | .quad sys32_lstat64 | ||
698 | .quad sys32_fstat64 | ||
699 | .quad sys_lchown | ||
700 | .quad sys_getuid | ||
701 | .quad sys_getgid /* 200 */ | ||
702 | .quad sys_geteuid | ||
703 | .quad sys_getegid | ||
704 | .quad sys_setreuid | ||
705 | .quad sys_setregid | ||
706 | .quad sys_getgroups /* 205 */ | ||
707 | .quad sys_setgroups | ||
708 | .quad sys_fchown | ||
709 | .quad sys_setresuid | ||
710 | .quad sys_getresuid | ||
711 | .quad sys_setresgid /* 210 */ | ||
712 | .quad sys_getresgid | ||
713 | .quad sys_chown | ||
714 | .quad sys_setuid | ||
715 | .quad sys_setgid | ||
716 | .quad sys_setfsuid /* 215 */ | ||
717 | .quad sys_setfsgid | ||
718 | .quad sys_pivot_root | ||
719 | .quad sys_mincore | ||
720 | .quad sys_madvise | ||
721 | .quad compat_sys_getdents64 /* 220 getdents64 */ | ||
722 | .quad compat_sys_fcntl64 | ||
723 | .quad quiet_ni_syscall /* tux */ | ||
724 | .quad quiet_ni_syscall /* security */ | ||
725 | .quad sys_gettid | ||
726 | .quad sys32_readahead /* 225 */ | ||
727 | .quad sys_setxattr | ||
728 | .quad sys_lsetxattr | ||
729 | .quad sys_fsetxattr | ||
730 | .quad sys_getxattr | ||
731 | .quad sys_lgetxattr /* 230 */ | ||
732 | .quad sys_fgetxattr | ||
733 | .quad sys_listxattr | ||
734 | .quad sys_llistxattr | ||
735 | .quad sys_flistxattr | ||
736 | .quad sys_removexattr /* 235 */ | ||
737 | .quad sys_lremovexattr | ||
738 | .quad sys_fremovexattr | ||
739 | .quad sys_tkill | ||
740 | .quad sys_sendfile64 | ||
741 | .quad compat_sys_futex /* 240 */ | ||
742 | .quad compat_sys_sched_setaffinity | ||
743 | .quad compat_sys_sched_getaffinity | ||
744 | .quad sys_set_thread_area | ||
745 | .quad sys_get_thread_area | ||
746 | .quad compat_sys_io_setup /* 245 */ | ||
747 | .quad sys_io_destroy | ||
748 | .quad compat_sys_io_getevents | ||
749 | .quad compat_sys_io_submit | ||
750 | .quad sys_io_cancel | ||
751 | .quad sys32_fadvise64 /* 250 */ | ||
752 | .quad quiet_ni_syscall /* free_huge_pages */ | ||
753 | .quad sys_exit_group | ||
754 | .quad sys32_lookup_dcookie | ||
755 | .quad sys_epoll_create | ||
756 | .quad sys_epoll_ctl /* 255 */ | ||
757 | .quad sys_epoll_wait | ||
758 | .quad sys_remap_file_pages | ||
759 | .quad sys_set_tid_address | ||
760 | .quad compat_sys_timer_create | ||
761 | .quad compat_sys_timer_settime /* 260 */ | ||
762 | .quad compat_sys_timer_gettime | ||
763 | .quad sys_timer_getoverrun | ||
764 | .quad sys_timer_delete | ||
765 | .quad compat_sys_clock_settime | ||
766 | .quad compat_sys_clock_gettime /* 265 */ | ||
767 | .quad compat_sys_clock_getres | ||
768 | .quad compat_sys_clock_nanosleep | ||
769 | .quad compat_sys_statfs64 | ||
770 | .quad compat_sys_fstatfs64 | ||
771 | .quad sys_tgkill /* 270 */ | ||
772 | .quad compat_sys_utimes | ||
773 | .quad sys32_fadvise64_64 | ||
774 | .quad quiet_ni_syscall /* sys_vserver */ | ||
775 | .quad sys_mbind | ||
776 | .quad compat_sys_get_mempolicy /* 275 */ | ||
777 | .quad sys_set_mempolicy | ||
778 | .quad compat_sys_mq_open | ||
779 | .quad sys_mq_unlink | ||
780 | .quad compat_sys_mq_timedsend | ||
781 | .quad compat_sys_mq_timedreceive /* 280 */ | ||
782 | .quad compat_sys_mq_notify | ||
783 | .quad compat_sys_mq_getsetattr | ||
784 | .quad compat_sys_kexec_load /* reserved for kexec */ | ||
785 | .quad compat_sys_waitid | ||
786 | .quad quiet_ni_syscall /* 285: sys_altroot */ | ||
787 | .quad sys_add_key | ||
788 | .quad sys_request_key | ||
789 | .quad sys_keyctl | ||
790 | .quad sys_ioprio_set | ||
791 | .quad sys_ioprio_get /* 290 */ | ||
792 | .quad sys_inotify_init | ||
793 | .quad sys_inotify_add_watch | ||
794 | .quad sys_inotify_rm_watch | ||
795 | .quad sys_migrate_pages | ||
796 | .quad compat_sys_openat /* 295 */ | ||
797 | .quad sys_mkdirat | ||
798 | .quad sys_mknodat | ||
799 | .quad sys_fchownat | ||
800 | .quad compat_sys_futimesat | ||
801 | .quad sys32_fstatat /* 300 */ | ||
802 | .quad sys_unlinkat | ||
803 | .quad sys_renameat | ||
804 | .quad sys_linkat | ||
805 | .quad sys_symlinkat | ||
806 | .quad sys_readlinkat /* 305 */ | ||
807 | .quad sys_fchmodat | ||
808 | .quad sys_faccessat | ||
809 | .quad compat_sys_pselect6 | ||
810 | .quad compat_sys_ppoll | ||
811 | .quad sys_unshare /* 310 */ | ||
812 | .quad compat_sys_set_robust_list | ||
813 | .quad compat_sys_get_robust_list | ||
814 | .quad sys_splice | ||
815 | .quad sys32_sync_file_range | ||
816 | .quad sys_tee /* 315 */ | ||
817 | .quad compat_sys_vmsplice | ||
818 | .quad compat_sys_move_pages | ||
819 | .quad sys_getcpu | ||
820 | .quad sys_epoll_pwait | ||
821 | .quad compat_sys_utimensat /* 320 */ | ||
822 | .quad compat_sys_signalfd | ||
823 | .quad sys_timerfd_create | ||
824 | .quad sys_eventfd | ||
825 | .quad sys32_fallocate | ||
826 | .quad compat_sys_timerfd_settime /* 325 */ | ||
827 | .quad compat_sys_timerfd_gettime | ||
828 | .quad compat_sys_signalfd4 | ||
829 | .quad sys_eventfd2 | ||
830 | .quad sys_epoll_create1 | ||
831 | .quad sys_dup3 /* 330 */ | ||
832 | .quad sys_pipe2 | ||
833 | .quad sys_inotify_init1 | ||
834 | .quad compat_sys_preadv | ||
835 | .quad compat_sys_pwritev | ||
836 | .quad compat_sys_rt_tgsigqueueinfo /* 335 */ | ||
837 | .quad sys_perf_event_open | ||
838 | .quad compat_sys_recvmmsg | ||
839 | .quad sys_fanotify_init | ||
840 | .quad sys32_fanotify_mark | ||
841 | .quad sys_prlimit64 /* 340 */ | ||
842 | .quad sys_name_to_handle_at | ||
843 | .quad compat_sys_open_by_handle_at | ||
844 | .quad compat_sys_clock_adjtime | ||
845 | .quad sys_syncfs | ||
846 | .quad compat_sys_sendmmsg /* 345 */ | ||
847 | .quad sys_setns | ||
848 | .quad compat_sys_process_vm_readv | ||
849 | .quad compat_sys_process_vm_writev | ||
850 | ia32_syscall_end: | ||
diff --git a/arch/x86/ia32/nosyscall.c b/arch/x86/ia32/nosyscall.c new file mode 100644 index 000000000000..51ecd5b4e787 --- /dev/null +++ b/arch/x86/ia32/nosyscall.c | |||
@@ -0,0 +1,7 @@ | |||
1 | #include <linux/kernel.h> | ||
2 | #include <linux/errno.h> | ||
3 | |||
4 | long compat_ni_syscall(void) | ||
5 | { | ||
6 | return -ENOSYS; | ||
7 | } | ||
diff --git a/arch/x86/ia32/syscall_ia32.c b/arch/x86/ia32/syscall_ia32.c new file mode 100644 index 000000000000..4754ba0f5d9f --- /dev/null +++ b/arch/x86/ia32/syscall_ia32.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* System call table for ia32 emulation. */ | ||
2 | |||
3 | #include <linux/linkage.h> | ||
4 | #include <linux/sys.h> | ||
5 | #include <linux/cache.h> | ||
6 | #include <asm/asm-offsets.h> | ||
7 | |||
8 | #define __SYSCALL_I386(nr, sym, compat) extern asmlinkage void compat(void) ; | ||
9 | #include <asm/syscalls_32.h> | ||
10 | #undef __SYSCALL_I386 | ||
11 | |||
12 | #define __SYSCALL_I386(nr, sym, compat) [nr] = compat, | ||
13 | |||
14 | typedef void (*sys_call_ptr_t)(void); | ||
15 | |||
16 | extern void compat_ni_syscall(void); | ||
17 | |||
18 | const sys_call_ptr_t ia32_sys_call_table[__NR_ia32_syscall_max+1] = { | ||
19 | /* | ||
20 | * Smells like a compiler bug -- it doesn't work | ||
21 | * when the & below is removed. | ||
22 | */ | ||
23 | [0 ... __NR_ia32_syscall_max] = &compat_ni_syscall, | ||
24 | #include <asm/syscalls_32.h> | ||
25 | }; | ||
diff --git a/arch/x86/include/asm/Kbuild b/arch/x86/include/asm/Kbuild index 6fa90a845e4c..b57e6a43a37a 100644 --- a/arch/x86/include/asm/Kbuild +++ b/arch/x86/include/asm/Kbuild | |||
@@ -19,7 +19,8 @@ header-y += processor-flags.h | |||
19 | header-y += ptrace-abi.h | 19 | header-y += ptrace-abi.h |
20 | header-y += sigcontext32.h | 20 | header-y += sigcontext32.h |
21 | header-y += ucontext.h | 21 | header-y += ucontext.h |
22 | header-y += unistd_32.h | ||
23 | header-y += unistd_64.h | ||
24 | header-y += vm86.h | 22 | header-y += vm86.h |
25 | header-y += vsyscall.h | 23 | header-y += vsyscall.h |
24 | |||
25 | genhdr-y += unistd_32.h | ||
26 | genhdr-y += unistd_64.h | ||
diff --git a/arch/x86/include/asm/ia32_unistd.h b/arch/x86/include/asm/ia32_unistd.h index 976f6ecd2ce6..b0d5716ca1e4 100644 --- a/arch/x86/include/asm/ia32_unistd.h +++ b/arch/x86/include/asm/ia32_unistd.h | |||
@@ -2,17 +2,10 @@ | |||
2 | #define _ASM_X86_IA32_UNISTD_H | 2 | #define _ASM_X86_IA32_UNISTD_H |
3 | 3 | ||
4 | /* | 4 | /* |
5 | * This file contains the system call numbers of the ia32 port, | 5 | * This file contains the system call numbers of the ia32 compat ABI, |
6 | * this is for the kernel only. | 6 | * this is for the kernel only. |
7 | * Only add syscalls here where some part of the kernel needs to know | ||
8 | * the number. This should be otherwise in sync with asm-x86/unistd_32.h. -AK | ||
9 | */ | 7 | */ |
10 | 8 | #define __SYSCALL_ia32_NR(x) (x) | |
11 | #define __NR_ia32_restart_syscall 0 | 9 | #include <asm/unistd_32_ia32.h> |
12 | #define __NR_ia32_exit 1 | ||
13 | #define __NR_ia32_read 3 | ||
14 | #define __NR_ia32_write 4 | ||
15 | #define __NR_ia32_sigreturn 119 | ||
16 | #define __NR_ia32_rt_sigreturn 173 | ||
17 | 10 | ||
18 | #endif /* _ASM_X86_IA32_UNISTD_H */ | 11 | #endif /* _ASM_X86_IA32_UNISTD_H */ |
diff --git a/arch/x86/include/asm/syscall.h b/arch/x86/include/asm/syscall.h index c4a348f7bd43..d962e5652a73 100644 --- a/arch/x86/include/asm/syscall.h +++ b/arch/x86/include/asm/syscall.h | |||
@@ -15,6 +15,7 @@ | |||
15 | 15 | ||
16 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
17 | #include <linux/err.h> | 17 | #include <linux/err.h> |
18 | #include <asm/asm-offsets.h> /* For NR_syscalls */ | ||
18 | 19 | ||
19 | extern const unsigned long sys_call_table[]; | 20 | extern const unsigned long sys_call_table[]; |
20 | 21 | ||
diff --git a/arch/x86/include/asm/unistd.h b/arch/x86/include/asm/unistd.h index 2a58ed3e51d8..b4a3db7ce140 100644 --- a/arch/x86/include/asm/unistd.h +++ b/arch/x86/include/asm/unistd.h | |||
@@ -1,13 +1,59 @@ | |||
1 | #ifndef _ASM_X86_UNISTD_H | ||
2 | #define _ASM_X86_UNISTD_H 1 | ||
3 | |||
1 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
2 | # ifdef CONFIG_X86_32 | 5 | # ifdef CONFIG_X86_32 |
3 | # include "unistd_32.h" | 6 | |
7 | # include <asm/unistd_32.h> | ||
8 | # define __ARCH_WANT_IPC_PARSE_VERSION | ||
9 | # define __ARCH_WANT_STAT64 | ||
10 | # define __ARCH_WANT_SYS_OLD_MMAP | ||
11 | # define __ARCH_WANT_SYS_OLD_SELECT | ||
12 | |||
4 | # else | 13 | # else |
5 | # include "unistd_64.h" | 14 | |
15 | # include <asm/unistd_64.h> | ||
16 | # define __ARCH_WANT_COMPAT_SYS_TIME | ||
17 | |||
6 | # endif | 18 | # endif |
19 | |||
20 | # define __ARCH_WANT_OLD_READDIR | ||
21 | # define __ARCH_WANT_OLD_STAT | ||
22 | # define __ARCH_WANT_SYS_ALARM | ||
23 | # define __ARCH_WANT_SYS_FADVISE64 | ||
24 | # define __ARCH_WANT_SYS_GETHOSTNAME | ||
25 | # define __ARCH_WANT_SYS_GETPGRP | ||
26 | # define __ARCH_WANT_SYS_LLSEEK | ||
27 | # define __ARCH_WANT_SYS_NICE | ||
28 | # define __ARCH_WANT_SYS_OLDUMOUNT | ||
29 | # define __ARCH_WANT_SYS_OLD_GETRLIMIT | ||
30 | # define __ARCH_WANT_SYS_OLD_UNAME | ||
31 | # define __ARCH_WANT_SYS_PAUSE | ||
32 | # define __ARCH_WANT_SYS_RT_SIGACTION | ||
33 | # define __ARCH_WANT_SYS_RT_SIGSUSPEND | ||
34 | # define __ARCH_WANT_SYS_SGETMASK | ||
35 | # define __ARCH_WANT_SYS_SIGNAL | ||
36 | # define __ARCH_WANT_SYS_SIGPENDING | ||
37 | # define __ARCH_WANT_SYS_SIGPROCMASK | ||
38 | # define __ARCH_WANT_SYS_SOCKETCALL | ||
39 | # define __ARCH_WANT_SYS_TIME | ||
40 | # define __ARCH_WANT_SYS_UTIME | ||
41 | # define __ARCH_WANT_SYS_WAITPID | ||
42 | |||
43 | /* | ||
44 | * "Conditional" syscalls | ||
45 | * | ||
46 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
47 | * but it doesn't work on all toolchains, so we just do it by hand | ||
48 | */ | ||
49 | # define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
50 | |||
7 | #else | 51 | #else |
8 | # ifdef __i386__ | 52 | # ifdef __i386__ |
9 | # include "unistd_32.h" | 53 | # include <asm/unistd_32.h> |
10 | # else | 54 | # else |
11 | # include "unistd_64.h" | 55 | # include <asm/unistd_64.h> |
12 | # endif | 56 | # endif |
13 | #endif | 57 | #endif |
58 | |||
59 | #endif /* _ASM_X86_UNISTD_H */ | ||
diff --git a/arch/x86/include/asm/unistd_32.h b/arch/x86/include/asm/unistd_32.h deleted file mode 100644 index 599c77d38f33..000000000000 --- a/arch/x86/include/asm/unistd_32.h +++ /dev/null | |||
@@ -1,401 +0,0 @@ | |||
1 | #ifndef _ASM_X86_UNISTD_32_H | ||
2 | #define _ASM_X86_UNISTD_32_H | ||
3 | |||
4 | /* | ||
5 | * This file contains the system call numbers. | ||
6 | */ | ||
7 | |||
8 | #define __NR_restart_syscall 0 | ||
9 | #define __NR_exit 1 | ||
10 | #define __NR_fork 2 | ||
11 | #define __NR_read 3 | ||
12 | #define __NR_write 4 | ||
13 | #define __NR_open 5 | ||
14 | #define __NR_close 6 | ||
15 | #define __NR_waitpid 7 | ||
16 | #define __NR_creat 8 | ||
17 | #define __NR_link 9 | ||
18 | #define __NR_unlink 10 | ||
19 | #define __NR_execve 11 | ||
20 | #define __NR_chdir 12 | ||
21 | #define __NR_time 13 | ||
22 | #define __NR_mknod 14 | ||
23 | #define __NR_chmod 15 | ||
24 | #define __NR_lchown 16 | ||
25 | #define __NR_break 17 | ||
26 | #define __NR_oldstat 18 | ||
27 | #define __NR_lseek 19 | ||
28 | #define __NR_getpid 20 | ||
29 | #define __NR_mount 21 | ||
30 | #define __NR_umount 22 | ||
31 | #define __NR_setuid 23 | ||
32 | #define __NR_getuid 24 | ||
33 | #define __NR_stime 25 | ||
34 | #define __NR_ptrace 26 | ||
35 | #define __NR_alarm 27 | ||
36 | #define __NR_oldfstat 28 | ||
37 | #define __NR_pause 29 | ||
38 | #define __NR_utime 30 | ||
39 | #define __NR_stty 31 | ||
40 | #define __NR_gtty 32 | ||
41 | #define __NR_access 33 | ||
42 | #define __NR_nice 34 | ||
43 | #define __NR_ftime 35 | ||
44 | #define __NR_sync 36 | ||
45 | #define __NR_kill 37 | ||
46 | #define __NR_rename 38 | ||
47 | #define __NR_mkdir 39 | ||
48 | #define __NR_rmdir 40 | ||
49 | #define __NR_dup 41 | ||
50 | #define __NR_pipe 42 | ||
51 | #define __NR_times 43 | ||
52 | #define __NR_prof 44 | ||
53 | #define __NR_brk 45 | ||
54 | #define __NR_setgid 46 | ||
55 | #define __NR_getgid 47 | ||
56 | #define __NR_signal 48 | ||
57 | #define __NR_geteuid 49 | ||
58 | #define __NR_getegid 50 | ||
59 | #define __NR_acct 51 | ||
60 | #define __NR_umount2 52 | ||
61 | #define __NR_lock 53 | ||
62 | #define __NR_ioctl 54 | ||
63 | #define __NR_fcntl 55 | ||
64 | #define __NR_mpx 56 | ||
65 | #define __NR_setpgid 57 | ||
66 | #define __NR_ulimit 58 | ||
67 | #define __NR_oldolduname 59 | ||
68 | #define __NR_umask 60 | ||
69 | #define __NR_chroot 61 | ||
70 | #define __NR_ustat 62 | ||
71 | #define __NR_dup2 63 | ||
72 | #define __NR_getppid 64 | ||
73 | #define __NR_getpgrp 65 | ||
74 | #define __NR_setsid 66 | ||
75 | #define __NR_sigaction 67 | ||
76 | #define __NR_sgetmask 68 | ||
77 | #define __NR_ssetmask 69 | ||
78 | #define __NR_setreuid 70 | ||
79 | #define __NR_setregid 71 | ||
80 | #define __NR_sigsuspend 72 | ||
81 | #define __NR_sigpending 73 | ||
82 | #define __NR_sethostname 74 | ||
83 | #define __NR_setrlimit 75 | ||
84 | #define __NR_getrlimit 76 /* Back compatible 2Gig limited rlimit */ | ||
85 | #define __NR_getrusage 77 | ||
86 | #define __NR_gettimeofday 78 | ||
87 | #define __NR_settimeofday 79 | ||
88 | #define __NR_getgroups 80 | ||
89 | #define __NR_setgroups 81 | ||
90 | #define __NR_select 82 | ||
91 | #define __NR_symlink 83 | ||
92 | #define __NR_oldlstat 84 | ||
93 | #define __NR_readlink 85 | ||
94 | #define __NR_uselib 86 | ||
95 | #define __NR_swapon 87 | ||
96 | #define __NR_reboot 88 | ||
97 | #define __NR_readdir 89 | ||
98 | #define __NR_mmap 90 | ||
99 | #define __NR_munmap 91 | ||
100 | #define __NR_truncate 92 | ||
101 | #define __NR_ftruncate 93 | ||
102 | #define __NR_fchmod 94 | ||
103 | #define __NR_fchown 95 | ||
104 | #define __NR_getpriority 96 | ||
105 | #define __NR_setpriority 97 | ||
106 | #define __NR_profil 98 | ||
107 | #define __NR_statfs 99 | ||
108 | #define __NR_fstatfs 100 | ||
109 | #define __NR_ioperm 101 | ||
110 | #define __NR_socketcall 102 | ||
111 | #define __NR_syslog 103 | ||
112 | #define __NR_setitimer 104 | ||
113 | #define __NR_getitimer 105 | ||
114 | #define __NR_stat 106 | ||
115 | #define __NR_lstat 107 | ||
116 | #define __NR_fstat 108 | ||
117 | #define __NR_olduname 109 | ||
118 | #define __NR_iopl 110 | ||
119 | #define __NR_vhangup 111 | ||
120 | #define __NR_idle 112 | ||
121 | #define __NR_vm86old 113 | ||
122 | #define __NR_wait4 114 | ||
123 | #define __NR_swapoff 115 | ||
124 | #define __NR_sysinfo 116 | ||
125 | #define __NR_ipc 117 | ||
126 | #define __NR_fsync 118 | ||
127 | #define __NR_sigreturn 119 | ||
128 | #define __NR_clone 120 | ||
129 | #define __NR_setdomainname 121 | ||
130 | #define __NR_uname 122 | ||
131 | #define __NR_modify_ldt 123 | ||
132 | #define __NR_adjtimex 124 | ||
133 | #define __NR_mprotect 125 | ||
134 | #define __NR_sigprocmask 126 | ||
135 | #define __NR_create_module 127 | ||
136 | #define __NR_init_module 128 | ||
137 | #define __NR_delete_module 129 | ||
138 | #define __NR_get_kernel_syms 130 | ||
139 | #define __NR_quotactl 131 | ||
140 | #define __NR_getpgid 132 | ||
141 | #define __NR_fchdir 133 | ||
142 | #define __NR_bdflush 134 | ||
143 | #define __NR_sysfs 135 | ||
144 | #define __NR_personality 136 | ||
145 | #define __NR_afs_syscall 137 /* Syscall for Andrew File System */ | ||
146 | #define __NR_setfsuid 138 | ||
147 | #define __NR_setfsgid 139 | ||
148 | #define __NR__llseek 140 | ||
149 | #define __NR_getdents 141 | ||
150 | #define __NR__newselect 142 | ||
151 | #define __NR_flock 143 | ||
152 | #define __NR_msync 144 | ||
153 | #define __NR_readv 145 | ||
154 | #define __NR_writev 146 | ||
155 | #define __NR_getsid 147 | ||
156 | #define __NR_fdatasync 148 | ||
157 | #define __NR__sysctl 149 | ||
158 | #define __NR_mlock 150 | ||
159 | #define __NR_munlock 151 | ||
160 | #define __NR_mlockall 152 | ||
161 | #define __NR_munlockall 153 | ||
162 | #define __NR_sched_setparam 154 | ||
163 | #define __NR_sched_getparam 155 | ||
164 | #define __NR_sched_setscheduler 156 | ||
165 | #define __NR_sched_getscheduler 157 | ||
166 | #define __NR_sched_yield 158 | ||
167 | #define __NR_sched_get_priority_max 159 | ||
168 | #define __NR_sched_get_priority_min 160 | ||
169 | #define __NR_sched_rr_get_interval 161 | ||
170 | #define __NR_nanosleep 162 | ||
171 | #define __NR_mremap 163 | ||
172 | #define __NR_setresuid 164 | ||
173 | #define __NR_getresuid 165 | ||
174 | #define __NR_vm86 166 | ||
175 | #define __NR_query_module 167 | ||
176 | #define __NR_poll 168 | ||
177 | #define __NR_nfsservctl 169 | ||
178 | #define __NR_setresgid 170 | ||
179 | #define __NR_getresgid 171 | ||
180 | #define __NR_prctl 172 | ||
181 | #define __NR_rt_sigreturn 173 | ||
182 | #define __NR_rt_sigaction 174 | ||
183 | #define __NR_rt_sigprocmask 175 | ||
184 | #define __NR_rt_sigpending 176 | ||
185 | #define __NR_rt_sigtimedwait 177 | ||
186 | #define __NR_rt_sigqueueinfo 178 | ||
187 | #define __NR_rt_sigsuspend 179 | ||
188 | #define __NR_pread64 180 | ||
189 | #define __NR_pwrite64 181 | ||
190 | #define __NR_chown 182 | ||
191 | #define __NR_getcwd 183 | ||
192 | #define __NR_capget 184 | ||
193 | #define __NR_capset 185 | ||
194 | #define __NR_sigaltstack 186 | ||
195 | #define __NR_sendfile 187 | ||
196 | #define __NR_getpmsg 188 /* some people actually want streams */ | ||
197 | #define __NR_putpmsg 189 /* some people actually want streams */ | ||
198 | #define __NR_vfork 190 | ||
199 | #define __NR_ugetrlimit 191 /* SuS compliant getrlimit */ | ||
200 | #define __NR_mmap2 192 | ||
201 | #define __NR_truncate64 193 | ||
202 | #define __NR_ftruncate64 194 | ||
203 | #define __NR_stat64 195 | ||
204 | #define __NR_lstat64 196 | ||
205 | #define __NR_fstat64 197 | ||
206 | #define __NR_lchown32 198 | ||
207 | #define __NR_getuid32 199 | ||
208 | #define __NR_getgid32 200 | ||
209 | #define __NR_geteuid32 201 | ||
210 | #define __NR_getegid32 202 | ||
211 | #define __NR_setreuid32 203 | ||
212 | #define __NR_setregid32 204 | ||
213 | #define __NR_getgroups32 205 | ||
214 | #define __NR_setgroups32 206 | ||
215 | #define __NR_fchown32 207 | ||
216 | #define __NR_setresuid32 208 | ||
217 | #define __NR_getresuid32 209 | ||
218 | #define __NR_setresgid32 210 | ||
219 | #define __NR_getresgid32 211 | ||
220 | #define __NR_chown32 212 | ||
221 | #define __NR_setuid32 213 | ||
222 | #define __NR_setgid32 214 | ||
223 | #define __NR_setfsuid32 215 | ||
224 | #define __NR_setfsgid32 216 | ||
225 | #define __NR_pivot_root 217 | ||
226 | #define __NR_mincore 218 | ||
227 | #define __NR_madvise 219 | ||
228 | #define __NR_madvise1 219 /* delete when C lib stub is removed */ | ||
229 | #define __NR_getdents64 220 | ||
230 | #define __NR_fcntl64 221 | ||
231 | /* 223 is unused */ | ||
232 | #define __NR_gettid 224 | ||
233 | #define __NR_readahead 225 | ||
234 | #define __NR_setxattr 226 | ||
235 | #define __NR_lsetxattr 227 | ||
236 | #define __NR_fsetxattr 228 | ||
237 | #define __NR_getxattr 229 | ||
238 | #define __NR_lgetxattr 230 | ||
239 | #define __NR_fgetxattr 231 | ||
240 | #define __NR_listxattr 232 | ||
241 | #define __NR_llistxattr 233 | ||
242 | #define __NR_flistxattr 234 | ||
243 | #define __NR_removexattr 235 | ||
244 | #define __NR_lremovexattr 236 | ||
245 | #define __NR_fremovexattr 237 | ||
246 | #define __NR_tkill 238 | ||
247 | #define __NR_sendfile64 239 | ||
248 | #define __NR_futex 240 | ||
249 | #define __NR_sched_setaffinity 241 | ||
250 | #define __NR_sched_getaffinity 242 | ||
251 | #define __NR_set_thread_area 243 | ||
252 | #define __NR_get_thread_area 244 | ||
253 | #define __NR_io_setup 245 | ||
254 | #define __NR_io_destroy 246 | ||
255 | #define __NR_io_getevents 247 | ||
256 | #define __NR_io_submit 248 | ||
257 | #define __NR_io_cancel 249 | ||
258 | #define __NR_fadvise64 250 | ||
259 | /* 251 is available for reuse (was briefly sys_set_zone_reclaim) */ | ||
260 | #define __NR_exit_group 252 | ||
261 | #define __NR_lookup_dcookie 253 | ||
262 | #define __NR_epoll_create 254 | ||
263 | #define __NR_epoll_ctl 255 | ||
264 | #define __NR_epoll_wait 256 | ||
265 | #define __NR_remap_file_pages 257 | ||
266 | #define __NR_set_tid_address 258 | ||
267 | #define __NR_timer_create 259 | ||
268 | #define __NR_timer_settime (__NR_timer_create+1) | ||
269 | #define __NR_timer_gettime (__NR_timer_create+2) | ||
270 | #define __NR_timer_getoverrun (__NR_timer_create+3) | ||
271 | #define __NR_timer_delete (__NR_timer_create+4) | ||
272 | #define __NR_clock_settime (__NR_timer_create+5) | ||
273 | #define __NR_clock_gettime (__NR_timer_create+6) | ||
274 | #define __NR_clock_getres (__NR_timer_create+7) | ||
275 | #define __NR_clock_nanosleep (__NR_timer_create+8) | ||
276 | #define __NR_statfs64 268 | ||
277 | #define __NR_fstatfs64 269 | ||
278 | #define __NR_tgkill 270 | ||
279 | #define __NR_utimes 271 | ||
280 | #define __NR_fadvise64_64 272 | ||
281 | #define __NR_vserver 273 | ||
282 | #define __NR_mbind 274 | ||
283 | #define __NR_get_mempolicy 275 | ||
284 | #define __NR_set_mempolicy 276 | ||
285 | #define __NR_mq_open 277 | ||
286 | #define __NR_mq_unlink (__NR_mq_open+1) | ||
287 | #define __NR_mq_timedsend (__NR_mq_open+2) | ||
288 | #define __NR_mq_timedreceive (__NR_mq_open+3) | ||
289 | #define __NR_mq_notify (__NR_mq_open+4) | ||
290 | #define __NR_mq_getsetattr (__NR_mq_open+5) | ||
291 | #define __NR_kexec_load 283 | ||
292 | #define __NR_waitid 284 | ||
293 | /* #define __NR_sys_setaltroot 285 */ | ||
294 | #define __NR_add_key 286 | ||
295 | #define __NR_request_key 287 | ||
296 | #define __NR_keyctl 288 | ||
297 | #define __NR_ioprio_set 289 | ||
298 | #define __NR_ioprio_get 290 | ||
299 | #define __NR_inotify_init 291 | ||
300 | #define __NR_inotify_add_watch 292 | ||
301 | #define __NR_inotify_rm_watch 293 | ||
302 | #define __NR_migrate_pages 294 | ||
303 | #define __NR_openat 295 | ||
304 | #define __NR_mkdirat 296 | ||
305 | #define __NR_mknodat 297 | ||
306 | #define __NR_fchownat 298 | ||
307 | #define __NR_futimesat 299 | ||
308 | #define __NR_fstatat64 300 | ||
309 | #define __NR_unlinkat 301 | ||
310 | #define __NR_renameat 302 | ||
311 | #define __NR_linkat 303 | ||
312 | #define __NR_symlinkat 304 | ||
313 | #define __NR_readlinkat 305 | ||
314 | #define __NR_fchmodat 306 | ||
315 | #define __NR_faccessat 307 | ||
316 | #define __NR_pselect6 308 | ||
317 | #define __NR_ppoll 309 | ||
318 | #define __NR_unshare 310 | ||
319 | #define __NR_set_robust_list 311 | ||
320 | #define __NR_get_robust_list 312 | ||
321 | #define __NR_splice 313 | ||
322 | #define __NR_sync_file_range 314 | ||
323 | #define __NR_tee 315 | ||
324 | #define __NR_vmsplice 316 | ||
325 | #define __NR_move_pages 317 | ||
326 | #define __NR_getcpu 318 | ||
327 | #define __NR_epoll_pwait 319 | ||
328 | #define __NR_utimensat 320 | ||
329 | #define __NR_signalfd 321 | ||
330 | #define __NR_timerfd_create 322 | ||
331 | #define __NR_eventfd 323 | ||
332 | #define __NR_fallocate 324 | ||
333 | #define __NR_timerfd_settime 325 | ||
334 | #define __NR_timerfd_gettime 326 | ||
335 | #define __NR_signalfd4 327 | ||
336 | #define __NR_eventfd2 328 | ||
337 | #define __NR_epoll_create1 329 | ||
338 | #define __NR_dup3 330 | ||
339 | #define __NR_pipe2 331 | ||
340 | #define __NR_inotify_init1 332 | ||
341 | #define __NR_preadv 333 | ||
342 | #define __NR_pwritev 334 | ||
343 | #define __NR_rt_tgsigqueueinfo 335 | ||
344 | #define __NR_perf_event_open 336 | ||
345 | #define __NR_recvmmsg 337 | ||
346 | #define __NR_fanotify_init 338 | ||
347 | #define __NR_fanotify_mark 339 | ||
348 | #define __NR_prlimit64 340 | ||
349 | #define __NR_name_to_handle_at 341 | ||
350 | #define __NR_open_by_handle_at 342 | ||
351 | #define __NR_clock_adjtime 343 | ||
352 | #define __NR_syncfs 344 | ||
353 | #define __NR_sendmmsg 345 | ||
354 | #define __NR_setns 346 | ||
355 | #define __NR_process_vm_readv 347 | ||
356 | #define __NR_process_vm_writev 348 | ||
357 | |||
358 | #ifdef __KERNEL__ | ||
359 | |||
360 | #define NR_syscalls 349 | ||
361 | |||
362 | #define __ARCH_WANT_IPC_PARSE_VERSION | ||
363 | #define __ARCH_WANT_OLD_READDIR | ||
364 | #define __ARCH_WANT_OLD_STAT | ||
365 | #define __ARCH_WANT_STAT64 | ||
366 | #define __ARCH_WANT_SYS_ALARM | ||
367 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
368 | #define __ARCH_WANT_SYS_IPC | ||
369 | #define __ARCH_WANT_SYS_PAUSE | ||
370 | #define __ARCH_WANT_SYS_SGETMASK | ||
371 | #define __ARCH_WANT_SYS_SIGNAL | ||
372 | #define __ARCH_WANT_SYS_TIME | ||
373 | #define __ARCH_WANT_SYS_UTIME | ||
374 | #define __ARCH_WANT_SYS_WAITPID | ||
375 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
376 | #define __ARCH_WANT_SYS_FADVISE64 | ||
377 | #define __ARCH_WANT_SYS_GETPGRP | ||
378 | #define __ARCH_WANT_SYS_LLSEEK | ||
379 | #define __ARCH_WANT_SYS_NICE | ||
380 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT | ||
381 | #define __ARCH_WANT_SYS_OLD_UNAME | ||
382 | #define __ARCH_WANT_SYS_OLD_MMAP | ||
383 | #define __ARCH_WANT_SYS_OLD_SELECT | ||
384 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
385 | #define __ARCH_WANT_SYS_SIGPENDING | ||
386 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
387 | #define __ARCH_WANT_SYS_RT_SIGACTION | ||
388 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | ||
389 | |||
390 | /* | ||
391 | * "Conditional" syscalls | ||
392 | * | ||
393 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
394 | * but it doesn't work on all toolchains, so we just do it by hand | ||
395 | */ | ||
396 | #ifndef cond_syscall | ||
397 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
398 | #endif | ||
399 | |||
400 | #endif /* __KERNEL__ */ | ||
401 | #endif /* _ASM_X86_UNISTD_32_H */ | ||
diff --git a/arch/x86/include/asm/unistd_64.h b/arch/x86/include/asm/unistd_64.h deleted file mode 100644 index 0431f193c3f2..000000000000 --- a/arch/x86/include/asm/unistd_64.h +++ /dev/null | |||
@@ -1,732 +0,0 @@ | |||
1 | #ifndef _ASM_X86_UNISTD_64_H | ||
2 | #define _ASM_X86_UNISTD_64_H | ||
3 | |||
4 | #ifndef __SYSCALL | ||
5 | #define __SYSCALL(a, b) | ||
6 | #endif | ||
7 | |||
8 | /* | ||
9 | * This file contains the system call numbers. | ||
10 | * | ||
11 | * Note: holes are not allowed. | ||
12 | */ | ||
13 | |||
14 | /* at least 8 syscall per cacheline */ | ||
15 | #define __NR_read 0 | ||
16 | __SYSCALL(__NR_read, sys_read) | ||
17 | #define __NR_write 1 | ||
18 | __SYSCALL(__NR_write, sys_write) | ||
19 | #define __NR_open 2 | ||
20 | __SYSCALL(__NR_open, sys_open) | ||
21 | #define __NR_close 3 | ||
22 | __SYSCALL(__NR_close, sys_close) | ||
23 | #define __NR_stat 4 | ||
24 | __SYSCALL(__NR_stat, sys_newstat) | ||
25 | #define __NR_fstat 5 | ||
26 | __SYSCALL(__NR_fstat, sys_newfstat) | ||
27 | #define __NR_lstat 6 | ||
28 | __SYSCALL(__NR_lstat, sys_newlstat) | ||
29 | #define __NR_poll 7 | ||
30 | __SYSCALL(__NR_poll, sys_poll) | ||
31 | |||
32 | #define __NR_lseek 8 | ||
33 | __SYSCALL(__NR_lseek, sys_lseek) | ||
34 | #define __NR_mmap 9 | ||
35 | __SYSCALL(__NR_mmap, sys_mmap) | ||
36 | #define __NR_mprotect 10 | ||
37 | __SYSCALL(__NR_mprotect, sys_mprotect) | ||
38 | #define __NR_munmap 11 | ||
39 | __SYSCALL(__NR_munmap, sys_munmap) | ||
40 | #define __NR_brk 12 | ||
41 | __SYSCALL(__NR_brk, sys_brk) | ||
42 | #define __NR_rt_sigaction 13 | ||
43 | __SYSCALL(__NR_rt_sigaction, sys_rt_sigaction) | ||
44 | #define __NR_rt_sigprocmask 14 | ||
45 | __SYSCALL(__NR_rt_sigprocmask, sys_rt_sigprocmask) | ||
46 | #define __NR_rt_sigreturn 15 | ||
47 | __SYSCALL(__NR_rt_sigreturn, stub_rt_sigreturn) | ||
48 | |||
49 | #define __NR_ioctl 16 | ||
50 | __SYSCALL(__NR_ioctl, sys_ioctl) | ||
51 | #define __NR_pread64 17 | ||
52 | __SYSCALL(__NR_pread64, sys_pread64) | ||
53 | #define __NR_pwrite64 18 | ||
54 | __SYSCALL(__NR_pwrite64, sys_pwrite64) | ||
55 | #define __NR_readv 19 | ||
56 | __SYSCALL(__NR_readv, sys_readv) | ||
57 | #define __NR_writev 20 | ||
58 | __SYSCALL(__NR_writev, sys_writev) | ||
59 | #define __NR_access 21 | ||
60 | __SYSCALL(__NR_access, sys_access) | ||
61 | #define __NR_pipe 22 | ||
62 | __SYSCALL(__NR_pipe, sys_pipe) | ||
63 | #define __NR_select 23 | ||
64 | __SYSCALL(__NR_select, sys_select) | ||
65 | |||
66 | #define __NR_sched_yield 24 | ||
67 | __SYSCALL(__NR_sched_yield, sys_sched_yield) | ||
68 | #define __NR_mremap 25 | ||
69 | __SYSCALL(__NR_mremap, sys_mremap) | ||
70 | #define __NR_msync 26 | ||
71 | __SYSCALL(__NR_msync, sys_msync) | ||
72 | #define __NR_mincore 27 | ||
73 | __SYSCALL(__NR_mincore, sys_mincore) | ||
74 | #define __NR_madvise 28 | ||
75 | __SYSCALL(__NR_madvise, sys_madvise) | ||
76 | #define __NR_shmget 29 | ||
77 | __SYSCALL(__NR_shmget, sys_shmget) | ||
78 | #define __NR_shmat 30 | ||
79 | __SYSCALL(__NR_shmat, sys_shmat) | ||
80 | #define __NR_shmctl 31 | ||
81 | __SYSCALL(__NR_shmctl, sys_shmctl) | ||
82 | |||
83 | #define __NR_dup 32 | ||
84 | __SYSCALL(__NR_dup, sys_dup) | ||
85 | #define __NR_dup2 33 | ||
86 | __SYSCALL(__NR_dup2, sys_dup2) | ||
87 | #define __NR_pause 34 | ||
88 | __SYSCALL(__NR_pause, sys_pause) | ||
89 | #define __NR_nanosleep 35 | ||
90 | __SYSCALL(__NR_nanosleep, sys_nanosleep) | ||
91 | #define __NR_getitimer 36 | ||
92 | __SYSCALL(__NR_getitimer, sys_getitimer) | ||
93 | #define __NR_alarm 37 | ||
94 | __SYSCALL(__NR_alarm, sys_alarm) | ||
95 | #define __NR_setitimer 38 | ||
96 | __SYSCALL(__NR_setitimer, sys_setitimer) | ||
97 | #define __NR_getpid 39 | ||
98 | __SYSCALL(__NR_getpid, sys_getpid) | ||
99 | |||
100 | #define __NR_sendfile 40 | ||
101 | __SYSCALL(__NR_sendfile, sys_sendfile64) | ||
102 | #define __NR_socket 41 | ||
103 | __SYSCALL(__NR_socket, sys_socket) | ||
104 | #define __NR_connect 42 | ||
105 | __SYSCALL(__NR_connect, sys_connect) | ||
106 | #define __NR_accept 43 | ||
107 | __SYSCALL(__NR_accept, sys_accept) | ||
108 | #define __NR_sendto 44 | ||
109 | __SYSCALL(__NR_sendto, sys_sendto) | ||
110 | #define __NR_recvfrom 45 | ||
111 | __SYSCALL(__NR_recvfrom, sys_recvfrom) | ||
112 | #define __NR_sendmsg 46 | ||
113 | __SYSCALL(__NR_sendmsg, sys_sendmsg) | ||
114 | #define __NR_recvmsg 47 | ||
115 | __SYSCALL(__NR_recvmsg, sys_recvmsg) | ||
116 | |||
117 | #define __NR_shutdown 48 | ||
118 | __SYSCALL(__NR_shutdown, sys_shutdown) | ||
119 | #define __NR_bind 49 | ||
120 | __SYSCALL(__NR_bind, sys_bind) | ||
121 | #define __NR_listen 50 | ||
122 | __SYSCALL(__NR_listen, sys_listen) | ||
123 | #define __NR_getsockname 51 | ||
124 | __SYSCALL(__NR_getsockname, sys_getsockname) | ||
125 | #define __NR_getpeername 52 | ||
126 | __SYSCALL(__NR_getpeername, sys_getpeername) | ||
127 | #define __NR_socketpair 53 | ||
128 | __SYSCALL(__NR_socketpair, sys_socketpair) | ||
129 | #define __NR_setsockopt 54 | ||
130 | __SYSCALL(__NR_setsockopt, sys_setsockopt) | ||
131 | #define __NR_getsockopt 55 | ||
132 | __SYSCALL(__NR_getsockopt, sys_getsockopt) | ||
133 | |||
134 | #define __NR_clone 56 | ||
135 | __SYSCALL(__NR_clone, stub_clone) | ||
136 | #define __NR_fork 57 | ||
137 | __SYSCALL(__NR_fork, stub_fork) | ||
138 | #define __NR_vfork 58 | ||
139 | __SYSCALL(__NR_vfork, stub_vfork) | ||
140 | #define __NR_execve 59 | ||
141 | __SYSCALL(__NR_execve, stub_execve) | ||
142 | #define __NR_exit 60 | ||
143 | __SYSCALL(__NR_exit, sys_exit) | ||
144 | #define __NR_wait4 61 | ||
145 | __SYSCALL(__NR_wait4, sys_wait4) | ||
146 | #define __NR_kill 62 | ||
147 | __SYSCALL(__NR_kill, sys_kill) | ||
148 | #define __NR_uname 63 | ||
149 | __SYSCALL(__NR_uname, sys_newuname) | ||
150 | |||
151 | #define __NR_semget 64 | ||
152 | __SYSCALL(__NR_semget, sys_semget) | ||
153 | #define __NR_semop 65 | ||
154 | __SYSCALL(__NR_semop, sys_semop) | ||
155 | #define __NR_semctl 66 | ||
156 | __SYSCALL(__NR_semctl, sys_semctl) | ||
157 | #define __NR_shmdt 67 | ||
158 | __SYSCALL(__NR_shmdt, sys_shmdt) | ||
159 | #define __NR_msgget 68 | ||
160 | __SYSCALL(__NR_msgget, sys_msgget) | ||
161 | #define __NR_msgsnd 69 | ||
162 | __SYSCALL(__NR_msgsnd, sys_msgsnd) | ||
163 | #define __NR_msgrcv 70 | ||
164 | __SYSCALL(__NR_msgrcv, sys_msgrcv) | ||
165 | #define __NR_msgctl 71 | ||
166 | __SYSCALL(__NR_msgctl, sys_msgctl) | ||
167 | |||
168 | #define __NR_fcntl 72 | ||
169 | __SYSCALL(__NR_fcntl, sys_fcntl) | ||
170 | #define __NR_flock 73 | ||
171 | __SYSCALL(__NR_flock, sys_flock) | ||
172 | #define __NR_fsync 74 | ||
173 | __SYSCALL(__NR_fsync, sys_fsync) | ||
174 | #define __NR_fdatasync 75 | ||
175 | __SYSCALL(__NR_fdatasync, sys_fdatasync) | ||
176 | #define __NR_truncate 76 | ||
177 | __SYSCALL(__NR_truncate, sys_truncate) | ||
178 | #define __NR_ftruncate 77 | ||
179 | __SYSCALL(__NR_ftruncate, sys_ftruncate) | ||
180 | #define __NR_getdents 78 | ||
181 | __SYSCALL(__NR_getdents, sys_getdents) | ||
182 | #define __NR_getcwd 79 | ||
183 | __SYSCALL(__NR_getcwd, sys_getcwd) | ||
184 | |||
185 | #define __NR_chdir 80 | ||
186 | __SYSCALL(__NR_chdir, sys_chdir) | ||
187 | #define __NR_fchdir 81 | ||
188 | __SYSCALL(__NR_fchdir, sys_fchdir) | ||
189 | #define __NR_rename 82 | ||
190 | __SYSCALL(__NR_rename, sys_rename) | ||
191 | #define __NR_mkdir 83 | ||
192 | __SYSCALL(__NR_mkdir, sys_mkdir) | ||
193 | #define __NR_rmdir 84 | ||
194 | __SYSCALL(__NR_rmdir, sys_rmdir) | ||
195 | #define __NR_creat 85 | ||
196 | __SYSCALL(__NR_creat, sys_creat) | ||
197 | #define __NR_link 86 | ||
198 | __SYSCALL(__NR_link, sys_link) | ||
199 | #define __NR_unlink 87 | ||
200 | __SYSCALL(__NR_unlink, sys_unlink) | ||
201 | |||
202 | #define __NR_symlink 88 | ||
203 | __SYSCALL(__NR_symlink, sys_symlink) | ||
204 | #define __NR_readlink 89 | ||
205 | __SYSCALL(__NR_readlink, sys_readlink) | ||
206 | #define __NR_chmod 90 | ||
207 | __SYSCALL(__NR_chmod, sys_chmod) | ||
208 | #define __NR_fchmod 91 | ||
209 | __SYSCALL(__NR_fchmod, sys_fchmod) | ||
210 | #define __NR_chown 92 | ||
211 | __SYSCALL(__NR_chown, sys_chown) | ||
212 | #define __NR_fchown 93 | ||
213 | __SYSCALL(__NR_fchown, sys_fchown) | ||
214 | #define __NR_lchown 94 | ||
215 | __SYSCALL(__NR_lchown, sys_lchown) | ||
216 | #define __NR_umask 95 | ||
217 | __SYSCALL(__NR_umask, sys_umask) | ||
218 | |||
219 | #define __NR_gettimeofday 96 | ||
220 | __SYSCALL(__NR_gettimeofday, sys_gettimeofday) | ||
221 | #define __NR_getrlimit 97 | ||
222 | __SYSCALL(__NR_getrlimit, sys_getrlimit) | ||
223 | #define __NR_getrusage 98 | ||
224 | __SYSCALL(__NR_getrusage, sys_getrusage) | ||
225 | #define __NR_sysinfo 99 | ||
226 | __SYSCALL(__NR_sysinfo, sys_sysinfo) | ||
227 | #define __NR_times 100 | ||
228 | __SYSCALL(__NR_times, sys_times) | ||
229 | #define __NR_ptrace 101 | ||
230 | __SYSCALL(__NR_ptrace, sys_ptrace) | ||
231 | #define __NR_getuid 102 | ||
232 | __SYSCALL(__NR_getuid, sys_getuid) | ||
233 | #define __NR_syslog 103 | ||
234 | __SYSCALL(__NR_syslog, sys_syslog) | ||
235 | |||
236 | /* at the very end the stuff that never runs during the benchmarks */ | ||
237 | #define __NR_getgid 104 | ||
238 | __SYSCALL(__NR_getgid, sys_getgid) | ||
239 | #define __NR_setuid 105 | ||
240 | __SYSCALL(__NR_setuid, sys_setuid) | ||
241 | #define __NR_setgid 106 | ||
242 | __SYSCALL(__NR_setgid, sys_setgid) | ||
243 | #define __NR_geteuid 107 | ||
244 | __SYSCALL(__NR_geteuid, sys_geteuid) | ||
245 | #define __NR_getegid 108 | ||
246 | __SYSCALL(__NR_getegid, sys_getegid) | ||
247 | #define __NR_setpgid 109 | ||
248 | __SYSCALL(__NR_setpgid, sys_setpgid) | ||
249 | #define __NR_getppid 110 | ||
250 | __SYSCALL(__NR_getppid, sys_getppid) | ||
251 | #define __NR_getpgrp 111 | ||
252 | __SYSCALL(__NR_getpgrp, sys_getpgrp) | ||
253 | |||
254 | #define __NR_setsid 112 | ||
255 | __SYSCALL(__NR_setsid, sys_setsid) | ||
256 | #define __NR_setreuid 113 | ||
257 | __SYSCALL(__NR_setreuid, sys_setreuid) | ||
258 | #define __NR_setregid 114 | ||
259 | __SYSCALL(__NR_setregid, sys_setregid) | ||
260 | #define __NR_getgroups 115 | ||
261 | __SYSCALL(__NR_getgroups, sys_getgroups) | ||
262 | #define __NR_setgroups 116 | ||
263 | __SYSCALL(__NR_setgroups, sys_setgroups) | ||
264 | #define __NR_setresuid 117 | ||
265 | __SYSCALL(__NR_setresuid, sys_setresuid) | ||
266 | #define __NR_getresuid 118 | ||
267 | __SYSCALL(__NR_getresuid, sys_getresuid) | ||
268 | #define __NR_setresgid 119 | ||
269 | __SYSCALL(__NR_setresgid, sys_setresgid) | ||
270 | |||
271 | #define __NR_getresgid 120 | ||
272 | __SYSCALL(__NR_getresgid, sys_getresgid) | ||
273 | #define __NR_getpgid 121 | ||
274 | __SYSCALL(__NR_getpgid, sys_getpgid) | ||
275 | #define __NR_setfsuid 122 | ||
276 | __SYSCALL(__NR_setfsuid, sys_setfsuid) | ||
277 | #define __NR_setfsgid 123 | ||
278 | __SYSCALL(__NR_setfsgid, sys_setfsgid) | ||
279 | #define __NR_getsid 124 | ||
280 | __SYSCALL(__NR_getsid, sys_getsid) | ||
281 | #define __NR_capget 125 | ||
282 | __SYSCALL(__NR_capget, sys_capget) | ||
283 | #define __NR_capset 126 | ||
284 | __SYSCALL(__NR_capset, sys_capset) | ||
285 | |||
286 | #define __NR_rt_sigpending 127 | ||
287 | __SYSCALL(__NR_rt_sigpending, sys_rt_sigpending) | ||
288 | #define __NR_rt_sigtimedwait 128 | ||
289 | __SYSCALL(__NR_rt_sigtimedwait, sys_rt_sigtimedwait) | ||
290 | #define __NR_rt_sigqueueinfo 129 | ||
291 | __SYSCALL(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo) | ||
292 | #define __NR_rt_sigsuspend 130 | ||
293 | __SYSCALL(__NR_rt_sigsuspend, sys_rt_sigsuspend) | ||
294 | #define __NR_sigaltstack 131 | ||
295 | __SYSCALL(__NR_sigaltstack, stub_sigaltstack) | ||
296 | #define __NR_utime 132 | ||
297 | __SYSCALL(__NR_utime, sys_utime) | ||
298 | #define __NR_mknod 133 | ||
299 | __SYSCALL(__NR_mknod, sys_mknod) | ||
300 | |||
301 | /* Only needed for a.out */ | ||
302 | #define __NR_uselib 134 | ||
303 | __SYSCALL(__NR_uselib, sys_ni_syscall) | ||
304 | #define __NR_personality 135 | ||
305 | __SYSCALL(__NR_personality, sys_personality) | ||
306 | |||
307 | #define __NR_ustat 136 | ||
308 | __SYSCALL(__NR_ustat, sys_ustat) | ||
309 | #define __NR_statfs 137 | ||
310 | __SYSCALL(__NR_statfs, sys_statfs) | ||
311 | #define __NR_fstatfs 138 | ||
312 | __SYSCALL(__NR_fstatfs, sys_fstatfs) | ||
313 | #define __NR_sysfs 139 | ||
314 | __SYSCALL(__NR_sysfs, sys_sysfs) | ||
315 | |||
316 | #define __NR_getpriority 140 | ||
317 | __SYSCALL(__NR_getpriority, sys_getpriority) | ||
318 | #define __NR_setpriority 141 | ||
319 | __SYSCALL(__NR_setpriority, sys_setpriority) | ||
320 | #define __NR_sched_setparam 142 | ||
321 | __SYSCALL(__NR_sched_setparam, sys_sched_setparam) | ||
322 | #define __NR_sched_getparam 143 | ||
323 | __SYSCALL(__NR_sched_getparam, sys_sched_getparam) | ||
324 | #define __NR_sched_setscheduler 144 | ||
325 | __SYSCALL(__NR_sched_setscheduler, sys_sched_setscheduler) | ||
326 | #define __NR_sched_getscheduler 145 | ||
327 | __SYSCALL(__NR_sched_getscheduler, sys_sched_getscheduler) | ||
328 | #define __NR_sched_get_priority_max 146 | ||
329 | __SYSCALL(__NR_sched_get_priority_max, sys_sched_get_priority_max) | ||
330 | #define __NR_sched_get_priority_min 147 | ||
331 | __SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min) | ||
332 | #define __NR_sched_rr_get_interval 148 | ||
333 | __SYSCALL(__NR_sched_rr_get_interval, sys_sched_rr_get_interval) | ||
334 | |||
335 | #define __NR_mlock 149 | ||
336 | __SYSCALL(__NR_mlock, sys_mlock) | ||
337 | #define __NR_munlock 150 | ||
338 | __SYSCALL(__NR_munlock, sys_munlock) | ||
339 | #define __NR_mlockall 151 | ||
340 | __SYSCALL(__NR_mlockall, sys_mlockall) | ||
341 | #define __NR_munlockall 152 | ||
342 | __SYSCALL(__NR_munlockall, sys_munlockall) | ||
343 | |||
344 | #define __NR_vhangup 153 | ||
345 | __SYSCALL(__NR_vhangup, sys_vhangup) | ||
346 | |||
347 | #define __NR_modify_ldt 154 | ||
348 | __SYSCALL(__NR_modify_ldt, sys_modify_ldt) | ||
349 | |||
350 | #define __NR_pivot_root 155 | ||
351 | __SYSCALL(__NR_pivot_root, sys_pivot_root) | ||
352 | |||
353 | #define __NR__sysctl 156 | ||
354 | __SYSCALL(__NR__sysctl, sys_sysctl) | ||
355 | |||
356 | #define __NR_prctl 157 | ||
357 | __SYSCALL(__NR_prctl, sys_prctl) | ||
358 | #define __NR_arch_prctl 158 | ||
359 | __SYSCALL(__NR_arch_prctl, sys_arch_prctl) | ||
360 | |||
361 | #define __NR_adjtimex 159 | ||
362 | __SYSCALL(__NR_adjtimex, sys_adjtimex) | ||
363 | |||
364 | #define __NR_setrlimit 160 | ||
365 | __SYSCALL(__NR_setrlimit, sys_setrlimit) | ||
366 | |||
367 | #define __NR_chroot 161 | ||
368 | __SYSCALL(__NR_chroot, sys_chroot) | ||
369 | |||
370 | #define __NR_sync 162 | ||
371 | __SYSCALL(__NR_sync, sys_sync) | ||
372 | |||
373 | #define __NR_acct 163 | ||
374 | __SYSCALL(__NR_acct, sys_acct) | ||
375 | |||
376 | #define __NR_settimeofday 164 | ||
377 | __SYSCALL(__NR_settimeofday, sys_settimeofday) | ||
378 | |||
379 | #define __NR_mount 165 | ||
380 | __SYSCALL(__NR_mount, sys_mount) | ||
381 | #define __NR_umount2 166 | ||
382 | __SYSCALL(__NR_umount2, sys_umount) | ||
383 | |||
384 | #define __NR_swapon 167 | ||
385 | __SYSCALL(__NR_swapon, sys_swapon) | ||
386 | #define __NR_swapoff 168 | ||
387 | __SYSCALL(__NR_swapoff, sys_swapoff) | ||
388 | |||
389 | #define __NR_reboot 169 | ||
390 | __SYSCALL(__NR_reboot, sys_reboot) | ||
391 | |||
392 | #define __NR_sethostname 170 | ||
393 | __SYSCALL(__NR_sethostname, sys_sethostname) | ||
394 | #define __NR_setdomainname 171 | ||
395 | __SYSCALL(__NR_setdomainname, sys_setdomainname) | ||
396 | |||
397 | #define __NR_iopl 172 | ||
398 | __SYSCALL(__NR_iopl, stub_iopl) | ||
399 | #define __NR_ioperm 173 | ||
400 | __SYSCALL(__NR_ioperm, sys_ioperm) | ||
401 | |||
402 | #define __NR_create_module 174 | ||
403 | __SYSCALL(__NR_create_module, sys_ni_syscall) | ||
404 | #define __NR_init_module 175 | ||
405 | __SYSCALL(__NR_init_module, sys_init_module) | ||
406 | #define __NR_delete_module 176 | ||
407 | __SYSCALL(__NR_delete_module, sys_delete_module) | ||
408 | #define __NR_get_kernel_syms 177 | ||
409 | __SYSCALL(__NR_get_kernel_syms, sys_ni_syscall) | ||
410 | #define __NR_query_module 178 | ||
411 | __SYSCALL(__NR_query_module, sys_ni_syscall) | ||
412 | |||
413 | #define __NR_quotactl 179 | ||
414 | __SYSCALL(__NR_quotactl, sys_quotactl) | ||
415 | |||
416 | #define __NR_nfsservctl 180 | ||
417 | __SYSCALL(__NR_nfsservctl, sys_ni_syscall) | ||
418 | |||
419 | /* reserved for LiS/STREAMS */ | ||
420 | #define __NR_getpmsg 181 | ||
421 | __SYSCALL(__NR_getpmsg, sys_ni_syscall) | ||
422 | #define __NR_putpmsg 182 | ||
423 | __SYSCALL(__NR_putpmsg, sys_ni_syscall) | ||
424 | |||
425 | /* reserved for AFS */ | ||
426 | #define __NR_afs_syscall 183 | ||
427 | __SYSCALL(__NR_afs_syscall, sys_ni_syscall) | ||
428 | |||
429 | /* reserved for tux */ | ||
430 | #define __NR_tuxcall 184 | ||
431 | __SYSCALL(__NR_tuxcall, sys_ni_syscall) | ||
432 | |||
433 | #define __NR_security 185 | ||
434 | __SYSCALL(__NR_security, sys_ni_syscall) | ||
435 | |||
436 | #define __NR_gettid 186 | ||
437 | __SYSCALL(__NR_gettid, sys_gettid) | ||
438 | |||
439 | #define __NR_readahead 187 | ||
440 | __SYSCALL(__NR_readahead, sys_readahead) | ||
441 | #define __NR_setxattr 188 | ||
442 | __SYSCALL(__NR_setxattr, sys_setxattr) | ||
443 | #define __NR_lsetxattr 189 | ||
444 | __SYSCALL(__NR_lsetxattr, sys_lsetxattr) | ||
445 | #define __NR_fsetxattr 190 | ||
446 | __SYSCALL(__NR_fsetxattr, sys_fsetxattr) | ||
447 | #define __NR_getxattr 191 | ||
448 | __SYSCALL(__NR_getxattr, sys_getxattr) | ||
449 | #define __NR_lgetxattr 192 | ||
450 | __SYSCALL(__NR_lgetxattr, sys_lgetxattr) | ||
451 | #define __NR_fgetxattr 193 | ||
452 | __SYSCALL(__NR_fgetxattr, sys_fgetxattr) | ||
453 | #define __NR_listxattr 194 | ||
454 | __SYSCALL(__NR_listxattr, sys_listxattr) | ||
455 | #define __NR_llistxattr 195 | ||
456 | __SYSCALL(__NR_llistxattr, sys_llistxattr) | ||
457 | #define __NR_flistxattr 196 | ||
458 | __SYSCALL(__NR_flistxattr, sys_flistxattr) | ||
459 | #define __NR_removexattr 197 | ||
460 | __SYSCALL(__NR_removexattr, sys_removexattr) | ||
461 | #define __NR_lremovexattr 198 | ||
462 | __SYSCALL(__NR_lremovexattr, sys_lremovexattr) | ||
463 | #define __NR_fremovexattr 199 | ||
464 | __SYSCALL(__NR_fremovexattr, sys_fremovexattr) | ||
465 | #define __NR_tkill 200 | ||
466 | __SYSCALL(__NR_tkill, sys_tkill) | ||
467 | #define __NR_time 201 | ||
468 | __SYSCALL(__NR_time, sys_time) | ||
469 | #define __NR_futex 202 | ||
470 | __SYSCALL(__NR_futex, sys_futex) | ||
471 | #define __NR_sched_setaffinity 203 | ||
472 | __SYSCALL(__NR_sched_setaffinity, sys_sched_setaffinity) | ||
473 | #define __NR_sched_getaffinity 204 | ||
474 | __SYSCALL(__NR_sched_getaffinity, sys_sched_getaffinity) | ||
475 | #define __NR_set_thread_area 205 | ||
476 | __SYSCALL(__NR_set_thread_area, sys_ni_syscall) /* use arch_prctl */ | ||
477 | #define __NR_io_setup 206 | ||
478 | __SYSCALL(__NR_io_setup, sys_io_setup) | ||
479 | #define __NR_io_destroy 207 | ||
480 | __SYSCALL(__NR_io_destroy, sys_io_destroy) | ||
481 | #define __NR_io_getevents 208 | ||
482 | __SYSCALL(__NR_io_getevents, sys_io_getevents) | ||
483 | #define __NR_io_submit 209 | ||
484 | __SYSCALL(__NR_io_submit, sys_io_submit) | ||
485 | #define __NR_io_cancel 210 | ||
486 | __SYSCALL(__NR_io_cancel, sys_io_cancel) | ||
487 | #define __NR_get_thread_area 211 | ||
488 | __SYSCALL(__NR_get_thread_area, sys_ni_syscall) /* use arch_prctl */ | ||
489 | #define __NR_lookup_dcookie 212 | ||
490 | __SYSCALL(__NR_lookup_dcookie, sys_lookup_dcookie) | ||
491 | #define __NR_epoll_create 213 | ||
492 | __SYSCALL(__NR_epoll_create, sys_epoll_create) | ||
493 | #define __NR_epoll_ctl_old 214 | ||
494 | __SYSCALL(__NR_epoll_ctl_old, sys_ni_syscall) | ||
495 | #define __NR_epoll_wait_old 215 | ||
496 | __SYSCALL(__NR_epoll_wait_old, sys_ni_syscall) | ||
497 | #define __NR_remap_file_pages 216 | ||
498 | __SYSCALL(__NR_remap_file_pages, sys_remap_file_pages) | ||
499 | #define __NR_getdents64 217 | ||
500 | __SYSCALL(__NR_getdents64, sys_getdents64) | ||
501 | #define __NR_set_tid_address 218 | ||
502 | __SYSCALL(__NR_set_tid_address, sys_set_tid_address) | ||
503 | #define __NR_restart_syscall 219 | ||
504 | __SYSCALL(__NR_restart_syscall, sys_restart_syscall) | ||
505 | #define __NR_semtimedop 220 | ||
506 | __SYSCALL(__NR_semtimedop, sys_semtimedop) | ||
507 | #define __NR_fadvise64 221 | ||
508 | __SYSCALL(__NR_fadvise64, sys_fadvise64) | ||
509 | #define __NR_timer_create 222 | ||
510 | __SYSCALL(__NR_timer_create, sys_timer_create) | ||
511 | #define __NR_timer_settime 223 | ||
512 | __SYSCALL(__NR_timer_settime, sys_timer_settime) | ||
513 | #define __NR_timer_gettime 224 | ||
514 | __SYSCALL(__NR_timer_gettime, sys_timer_gettime) | ||
515 | #define __NR_timer_getoverrun 225 | ||
516 | __SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun) | ||
517 | #define __NR_timer_delete 226 | ||
518 | __SYSCALL(__NR_timer_delete, sys_timer_delete) | ||
519 | #define __NR_clock_settime 227 | ||
520 | __SYSCALL(__NR_clock_settime, sys_clock_settime) | ||
521 | #define __NR_clock_gettime 228 | ||
522 | __SYSCALL(__NR_clock_gettime, sys_clock_gettime) | ||
523 | #define __NR_clock_getres 229 | ||
524 | __SYSCALL(__NR_clock_getres, sys_clock_getres) | ||
525 | #define __NR_clock_nanosleep 230 | ||
526 | __SYSCALL(__NR_clock_nanosleep, sys_clock_nanosleep) | ||
527 | #define __NR_exit_group 231 | ||
528 | __SYSCALL(__NR_exit_group, sys_exit_group) | ||
529 | #define __NR_epoll_wait 232 | ||
530 | __SYSCALL(__NR_epoll_wait, sys_epoll_wait) | ||
531 | #define __NR_epoll_ctl 233 | ||
532 | __SYSCALL(__NR_epoll_ctl, sys_epoll_ctl) | ||
533 | #define __NR_tgkill 234 | ||
534 | __SYSCALL(__NR_tgkill, sys_tgkill) | ||
535 | #define __NR_utimes 235 | ||
536 | __SYSCALL(__NR_utimes, sys_utimes) | ||
537 | #define __NR_vserver 236 | ||
538 | __SYSCALL(__NR_vserver, sys_ni_syscall) | ||
539 | #define __NR_mbind 237 | ||
540 | __SYSCALL(__NR_mbind, sys_mbind) | ||
541 | #define __NR_set_mempolicy 238 | ||
542 | __SYSCALL(__NR_set_mempolicy, sys_set_mempolicy) | ||
543 | #define __NR_get_mempolicy 239 | ||
544 | __SYSCALL(__NR_get_mempolicy, sys_get_mempolicy) | ||
545 | #define __NR_mq_open 240 | ||
546 | __SYSCALL(__NR_mq_open, sys_mq_open) | ||
547 | #define __NR_mq_unlink 241 | ||
548 | __SYSCALL(__NR_mq_unlink, sys_mq_unlink) | ||
549 | #define __NR_mq_timedsend 242 | ||
550 | __SYSCALL(__NR_mq_timedsend, sys_mq_timedsend) | ||
551 | #define __NR_mq_timedreceive 243 | ||
552 | __SYSCALL(__NR_mq_timedreceive, sys_mq_timedreceive) | ||
553 | #define __NR_mq_notify 244 | ||
554 | __SYSCALL(__NR_mq_notify, sys_mq_notify) | ||
555 | #define __NR_mq_getsetattr 245 | ||
556 | __SYSCALL(__NR_mq_getsetattr, sys_mq_getsetattr) | ||
557 | #define __NR_kexec_load 246 | ||
558 | __SYSCALL(__NR_kexec_load, sys_kexec_load) | ||
559 | #define __NR_waitid 247 | ||
560 | __SYSCALL(__NR_waitid, sys_waitid) | ||
561 | #define __NR_add_key 248 | ||
562 | __SYSCALL(__NR_add_key, sys_add_key) | ||
563 | #define __NR_request_key 249 | ||
564 | __SYSCALL(__NR_request_key, sys_request_key) | ||
565 | #define __NR_keyctl 250 | ||
566 | __SYSCALL(__NR_keyctl, sys_keyctl) | ||
567 | #define __NR_ioprio_set 251 | ||
568 | __SYSCALL(__NR_ioprio_set, sys_ioprio_set) | ||
569 | #define __NR_ioprio_get 252 | ||
570 | __SYSCALL(__NR_ioprio_get, sys_ioprio_get) | ||
571 | #define __NR_inotify_init 253 | ||
572 | __SYSCALL(__NR_inotify_init, sys_inotify_init) | ||
573 | #define __NR_inotify_add_watch 254 | ||
574 | __SYSCALL(__NR_inotify_add_watch, sys_inotify_add_watch) | ||
575 | #define __NR_inotify_rm_watch 255 | ||
576 | __SYSCALL(__NR_inotify_rm_watch, sys_inotify_rm_watch) | ||
577 | #define __NR_migrate_pages 256 | ||
578 | __SYSCALL(__NR_migrate_pages, sys_migrate_pages) | ||
579 | #define __NR_openat 257 | ||
580 | __SYSCALL(__NR_openat, sys_openat) | ||
581 | #define __NR_mkdirat 258 | ||
582 | __SYSCALL(__NR_mkdirat, sys_mkdirat) | ||
583 | #define __NR_mknodat 259 | ||
584 | __SYSCALL(__NR_mknodat, sys_mknodat) | ||
585 | #define __NR_fchownat 260 | ||
586 | __SYSCALL(__NR_fchownat, sys_fchownat) | ||
587 | #define __NR_futimesat 261 | ||
588 | __SYSCALL(__NR_futimesat, sys_futimesat) | ||
589 | #define __NR_newfstatat 262 | ||
590 | __SYSCALL(__NR_newfstatat, sys_newfstatat) | ||
591 | #define __NR_unlinkat 263 | ||
592 | __SYSCALL(__NR_unlinkat, sys_unlinkat) | ||
593 | #define __NR_renameat 264 | ||
594 | __SYSCALL(__NR_renameat, sys_renameat) | ||
595 | #define __NR_linkat 265 | ||
596 | __SYSCALL(__NR_linkat, sys_linkat) | ||
597 | #define __NR_symlinkat 266 | ||
598 | __SYSCALL(__NR_symlinkat, sys_symlinkat) | ||
599 | #define __NR_readlinkat 267 | ||
600 | __SYSCALL(__NR_readlinkat, sys_readlinkat) | ||
601 | #define __NR_fchmodat 268 | ||
602 | __SYSCALL(__NR_fchmodat, sys_fchmodat) | ||
603 | #define __NR_faccessat 269 | ||
604 | __SYSCALL(__NR_faccessat, sys_faccessat) | ||
605 | #define __NR_pselect6 270 | ||
606 | __SYSCALL(__NR_pselect6, sys_pselect6) | ||
607 | #define __NR_ppoll 271 | ||
608 | __SYSCALL(__NR_ppoll, sys_ppoll) | ||
609 | #define __NR_unshare 272 | ||
610 | __SYSCALL(__NR_unshare, sys_unshare) | ||
611 | #define __NR_set_robust_list 273 | ||
612 | __SYSCALL(__NR_set_robust_list, sys_set_robust_list) | ||
613 | #define __NR_get_robust_list 274 | ||
614 | __SYSCALL(__NR_get_robust_list, sys_get_robust_list) | ||
615 | #define __NR_splice 275 | ||
616 | __SYSCALL(__NR_splice, sys_splice) | ||
617 | #define __NR_tee 276 | ||
618 | __SYSCALL(__NR_tee, sys_tee) | ||
619 | #define __NR_sync_file_range 277 | ||
620 | __SYSCALL(__NR_sync_file_range, sys_sync_file_range) | ||
621 | #define __NR_vmsplice 278 | ||
622 | __SYSCALL(__NR_vmsplice, sys_vmsplice) | ||
623 | #define __NR_move_pages 279 | ||
624 | __SYSCALL(__NR_move_pages, sys_move_pages) | ||
625 | #define __NR_utimensat 280 | ||
626 | __SYSCALL(__NR_utimensat, sys_utimensat) | ||
627 | #define __NR_epoll_pwait 281 | ||
628 | __SYSCALL(__NR_epoll_pwait, sys_epoll_pwait) | ||
629 | #define __NR_signalfd 282 | ||
630 | __SYSCALL(__NR_signalfd, sys_signalfd) | ||
631 | #define __NR_timerfd_create 283 | ||
632 | __SYSCALL(__NR_timerfd_create, sys_timerfd_create) | ||
633 | #define __NR_eventfd 284 | ||
634 | __SYSCALL(__NR_eventfd, sys_eventfd) | ||
635 | #define __NR_fallocate 285 | ||
636 | __SYSCALL(__NR_fallocate, sys_fallocate) | ||
637 | #define __NR_timerfd_settime 286 | ||
638 | __SYSCALL(__NR_timerfd_settime, sys_timerfd_settime) | ||
639 | #define __NR_timerfd_gettime 287 | ||
640 | __SYSCALL(__NR_timerfd_gettime, sys_timerfd_gettime) | ||
641 | #define __NR_accept4 288 | ||
642 | __SYSCALL(__NR_accept4, sys_accept4) | ||
643 | #define __NR_signalfd4 289 | ||
644 | __SYSCALL(__NR_signalfd4, sys_signalfd4) | ||
645 | #define __NR_eventfd2 290 | ||
646 | __SYSCALL(__NR_eventfd2, sys_eventfd2) | ||
647 | #define __NR_epoll_create1 291 | ||
648 | __SYSCALL(__NR_epoll_create1, sys_epoll_create1) | ||
649 | #define __NR_dup3 292 | ||
650 | __SYSCALL(__NR_dup3, sys_dup3) | ||
651 | #define __NR_pipe2 293 | ||
652 | __SYSCALL(__NR_pipe2, sys_pipe2) | ||
653 | #define __NR_inotify_init1 294 | ||
654 | __SYSCALL(__NR_inotify_init1, sys_inotify_init1) | ||
655 | #define __NR_preadv 295 | ||
656 | __SYSCALL(__NR_preadv, sys_preadv) | ||
657 | #define __NR_pwritev 296 | ||
658 | __SYSCALL(__NR_pwritev, sys_pwritev) | ||
659 | #define __NR_rt_tgsigqueueinfo 297 | ||
660 | __SYSCALL(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo) | ||
661 | #define __NR_perf_event_open 298 | ||
662 | __SYSCALL(__NR_perf_event_open, sys_perf_event_open) | ||
663 | #define __NR_recvmmsg 299 | ||
664 | __SYSCALL(__NR_recvmmsg, sys_recvmmsg) | ||
665 | #define __NR_fanotify_init 300 | ||
666 | __SYSCALL(__NR_fanotify_init, sys_fanotify_init) | ||
667 | #define __NR_fanotify_mark 301 | ||
668 | __SYSCALL(__NR_fanotify_mark, sys_fanotify_mark) | ||
669 | #define __NR_prlimit64 302 | ||
670 | __SYSCALL(__NR_prlimit64, sys_prlimit64) | ||
671 | #define __NR_name_to_handle_at 303 | ||
672 | __SYSCALL(__NR_name_to_handle_at, sys_name_to_handle_at) | ||
673 | #define __NR_open_by_handle_at 304 | ||
674 | __SYSCALL(__NR_open_by_handle_at, sys_open_by_handle_at) | ||
675 | #define __NR_clock_adjtime 305 | ||
676 | __SYSCALL(__NR_clock_adjtime, sys_clock_adjtime) | ||
677 | #define __NR_syncfs 306 | ||
678 | __SYSCALL(__NR_syncfs, sys_syncfs) | ||
679 | #define __NR_sendmmsg 307 | ||
680 | __SYSCALL(__NR_sendmmsg, sys_sendmmsg) | ||
681 | #define __NR_setns 308 | ||
682 | __SYSCALL(__NR_setns, sys_setns) | ||
683 | #define __NR_getcpu 309 | ||
684 | __SYSCALL(__NR_getcpu, sys_getcpu) | ||
685 | #define __NR_process_vm_readv 310 | ||
686 | __SYSCALL(__NR_process_vm_readv, sys_process_vm_readv) | ||
687 | #define __NR_process_vm_writev 311 | ||
688 | __SYSCALL(__NR_process_vm_writev, sys_process_vm_writev) | ||
689 | |||
690 | #ifndef __NO_STUBS | ||
691 | #define __ARCH_WANT_OLD_READDIR | ||
692 | #define __ARCH_WANT_OLD_STAT | ||
693 | #define __ARCH_WANT_SYS_ALARM | ||
694 | #define __ARCH_WANT_SYS_GETHOSTNAME | ||
695 | #define __ARCH_WANT_SYS_PAUSE | ||
696 | #define __ARCH_WANT_SYS_SGETMASK | ||
697 | #define __ARCH_WANT_SYS_SIGNAL | ||
698 | #define __ARCH_WANT_SYS_UTIME | ||
699 | #define __ARCH_WANT_SYS_WAITPID | ||
700 | #define __ARCH_WANT_SYS_SOCKETCALL | ||
701 | #define __ARCH_WANT_SYS_FADVISE64 | ||
702 | #define __ARCH_WANT_SYS_GETPGRP | ||
703 | #define __ARCH_WANT_SYS_LLSEEK | ||
704 | #define __ARCH_WANT_SYS_NICE | ||
705 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT | ||
706 | #define __ARCH_WANT_SYS_OLD_UNAME | ||
707 | #define __ARCH_WANT_SYS_OLDUMOUNT | ||
708 | #define __ARCH_WANT_SYS_SIGPENDING | ||
709 | #define __ARCH_WANT_SYS_SIGPROCMASK | ||
710 | #define __ARCH_WANT_SYS_RT_SIGACTION | ||
711 | #define __ARCH_WANT_SYS_RT_SIGSUSPEND | ||
712 | #define __ARCH_WANT_SYS_TIME | ||
713 | #define __ARCH_WANT_COMPAT_SYS_TIME | ||
714 | #endif /* __NO_STUBS */ | ||
715 | |||
716 | #ifdef __KERNEL__ | ||
717 | |||
718 | #ifndef COMPILE_OFFSETS | ||
719 | #include <asm/asm-offsets.h> | ||
720 | #define NR_syscalls (__NR_syscall_max + 1) | ||
721 | #endif | ||
722 | |||
723 | /* | ||
724 | * "Conditional" syscalls | ||
725 | * | ||
726 | * What we want is __attribute__((weak,alias("sys_ni_syscall"))), | ||
727 | * but it doesn't work on all toolchains, so we just do it by hand | ||
728 | */ | ||
729 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | ||
730 | #endif /* __KERNEL__ */ | ||
731 | |||
732 | #endif /* _ASM_X86_UNISTD_64_H */ | ||
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index 02b2f05b371e..5369059c07a9 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile | |||
@@ -25,7 +25,8 @@ obj-$(CONFIG_IRQ_WORK) += irq_work.o | |||
25 | obj-y += probe_roms.o | 25 | obj-y += probe_roms.o |
26 | obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o | 26 | obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o |
27 | obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o | 27 | obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o |
28 | obj-$(CONFIG_X86_64) += syscall_64.o vsyscall_64.o | 28 | obj-y += syscall_$(BITS).o |
29 | obj-$(CONFIG_X86_64) += vsyscall_64.o | ||
29 | obj-$(CONFIG_X86_64) += vsyscall_emu_64.o | 30 | obj-$(CONFIG_X86_64) += vsyscall_emu_64.o |
30 | obj-y += bootflag.o e820.o | 31 | obj-y += bootflag.o e820.o |
31 | obj-y += pci-dma.o quirks.o topology.o kdebugfs.o | 32 | obj-y += pci-dma.o quirks.o topology.o kdebugfs.o |
diff --git a/arch/x86/kernel/asm-offsets_32.c b/arch/x86/kernel/asm-offsets_32.c index 395a10e68067..85d98ab15cdc 100644 --- a/arch/x86/kernel/asm-offsets_32.c +++ b/arch/x86/kernel/asm-offsets_32.c | |||
@@ -3,6 +3,11 @@ | |||
3 | #include <linux/lguest.h> | 3 | #include <linux/lguest.h> |
4 | #include "../../../drivers/lguest/lg.h" | 4 | #include "../../../drivers/lguest/lg.h" |
5 | 5 | ||
6 | #define __SYSCALL_I386(nr, sym, compat) [nr] = 1, | ||
7 | static char syscalls[] = { | ||
8 | #include <asm/syscalls_32.h> | ||
9 | }; | ||
10 | |||
6 | /* workaround for a warning with -Wmissing-prototypes */ | 11 | /* workaround for a warning with -Wmissing-prototypes */ |
7 | void foo(void); | 12 | void foo(void); |
8 | 13 | ||
@@ -76,4 +81,7 @@ void foo(void) | |||
76 | OFFSET(LGUEST_PAGES_regs_errcode, lguest_pages, regs.errcode); | 81 | OFFSET(LGUEST_PAGES_regs_errcode, lguest_pages, regs.errcode); |
77 | OFFSET(LGUEST_PAGES_regs, lguest_pages, regs); | 82 | OFFSET(LGUEST_PAGES_regs, lguest_pages, regs); |
78 | #endif | 83 | #endif |
84 | BLANK(); | ||
85 | DEFINE(__NR_syscall_max, sizeof(syscalls) - 1); | ||
86 | DEFINE(NR_syscalls, sizeof(syscalls)); | ||
79 | } | 87 | } |
diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c index e72a1194af22..834e897b1e25 100644 --- a/arch/x86/kernel/asm-offsets_64.c +++ b/arch/x86/kernel/asm-offsets_64.c | |||
@@ -1,11 +1,12 @@ | |||
1 | #include <asm/ia32.h> | 1 | #include <asm/ia32.h> |
2 | 2 | ||
3 | #define __NO_STUBS 1 | 3 | #define __SYSCALL_64(nr, sym, compat) [nr] = 1, |
4 | #undef __SYSCALL | 4 | static char syscalls_64[] = { |
5 | #undef _ASM_X86_UNISTD_64_H | 5 | #include <asm/syscalls_64.h> |
6 | #define __SYSCALL(nr, sym) [nr] = 1, | 6 | }; |
7 | static char syscalls[] = { | 7 | #define __SYSCALL_I386(nr, sym, compat) [nr] = 1, |
8 | #include <asm/unistd.h> | 8 | static char syscalls_ia32[] = { |
9 | #include <asm/syscalls_32.h> | ||
9 | }; | 10 | }; |
10 | 11 | ||
11 | int main(void) | 12 | int main(void) |
@@ -72,7 +73,11 @@ int main(void) | |||
72 | OFFSET(TSS_ist, tss_struct, x86_tss.ist); | 73 | OFFSET(TSS_ist, tss_struct, x86_tss.ist); |
73 | BLANK(); | 74 | BLANK(); |
74 | 75 | ||
75 | DEFINE(__NR_syscall_max, sizeof(syscalls) - 1); | 76 | DEFINE(__NR_syscall_max, sizeof(syscalls_64) - 1); |
77 | DEFINE(NR_syscalls, sizeof(syscalls_64)); | ||
78 | |||
79 | DEFINE(__NR_ia32_syscall_max, sizeof(syscalls_ia32) - 1); | ||
80 | DEFINE(IA32_NR_syscalls, sizeof(syscalls_ia32)); | ||
76 | 81 | ||
77 | return 0; | 82 | return 0; |
78 | } | 83 | } |
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index 22d0e21b4dd7..4af9fd2450a5 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S | |||
@@ -81,8 +81,6 @@ | |||
81 | * enough to patch inline, increasing performance. | 81 | * enough to patch inline, increasing performance. |
82 | */ | 82 | */ |
83 | 83 | ||
84 | #define nr_syscalls ((syscall_table_size)/4) | ||
85 | |||
86 | #ifdef CONFIG_PREEMPT | 84 | #ifdef CONFIG_PREEMPT |
87 | #define preempt_stop(clobbers) DISABLE_INTERRUPTS(clobbers); TRACE_IRQS_OFF | 85 | #define preempt_stop(clobbers) DISABLE_INTERRUPTS(clobbers); TRACE_IRQS_OFF |
88 | #else | 86 | #else |
@@ -423,7 +421,7 @@ sysenter_past_esp: | |||
423 | testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp) | 421 | testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp) |
424 | jnz sysenter_audit | 422 | jnz sysenter_audit |
425 | sysenter_do_call: | 423 | sysenter_do_call: |
426 | cmpl $(nr_syscalls), %eax | 424 | cmpl $(NR_syscalls), %eax |
427 | jae syscall_badsys | 425 | jae syscall_badsys |
428 | call *sys_call_table(,%eax,4) | 426 | call *sys_call_table(,%eax,4) |
429 | movl %eax,PT_EAX(%esp) | 427 | movl %eax,PT_EAX(%esp) |
@@ -504,7 +502,7 @@ ENTRY(system_call) | |||
504 | # system call tracing in operation / emulation | 502 | # system call tracing in operation / emulation |
505 | testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp) | 503 | testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp) |
506 | jnz syscall_trace_entry | 504 | jnz syscall_trace_entry |
507 | cmpl $(nr_syscalls), %eax | 505 | cmpl $(NR_syscalls), %eax |
508 | jae syscall_badsys | 506 | jae syscall_badsys |
509 | syscall_call: | 507 | syscall_call: |
510 | call *sys_call_table(,%eax,4) | 508 | call *sys_call_table(,%eax,4) |
@@ -654,7 +652,7 @@ syscall_trace_entry: | |||
654 | movl %esp, %eax | 652 | movl %esp, %eax |
655 | call syscall_trace_enter | 653 | call syscall_trace_enter |
656 | /* What it returned is what we'll actually use. */ | 654 | /* What it returned is what we'll actually use. */ |
657 | cmpl $(nr_syscalls), %eax | 655 | cmpl $(NR_syscalls), %eax |
658 | jnae syscall_call | 656 | jnae syscall_call |
659 | jmp syscall_exit | 657 | jmp syscall_exit |
660 | END(syscall_trace_entry) | 658 | END(syscall_trace_entry) |
@@ -694,29 +692,28 @@ END(syscall_badsys) | |||
694 | * System calls that need a pt_regs pointer. | 692 | * System calls that need a pt_regs pointer. |
695 | */ | 693 | */ |
696 | #define PTREGSCALL0(name) \ | 694 | #define PTREGSCALL0(name) \ |
697 | ALIGN; \ | 695 | ENTRY(ptregs_##name) ; \ |
698 | ptregs_##name: \ | ||
699 | leal 4(%esp),%eax; \ | 696 | leal 4(%esp),%eax; \ |
700 | jmp sys_##name; | 697 | jmp sys_##name; \ |
698 | ENDPROC(ptregs_##name) | ||
701 | 699 | ||
702 | #define PTREGSCALL1(name) \ | 700 | #define PTREGSCALL1(name) \ |
703 | ALIGN; \ | 701 | ENTRY(ptregs_##name) ; \ |
704 | ptregs_##name: \ | ||
705 | leal 4(%esp),%edx; \ | 702 | leal 4(%esp),%edx; \ |
706 | movl (PT_EBX+4)(%esp),%eax; \ | 703 | movl (PT_EBX+4)(%esp),%eax; \ |
707 | jmp sys_##name; | 704 | jmp sys_##name; \ |
705 | ENDPROC(ptregs_##name) | ||
708 | 706 | ||
709 | #define PTREGSCALL2(name) \ | 707 | #define PTREGSCALL2(name) \ |
710 | ALIGN; \ | 708 | ENTRY(ptregs_##name) ; \ |
711 | ptregs_##name: \ | ||
712 | leal 4(%esp),%ecx; \ | 709 | leal 4(%esp),%ecx; \ |
713 | movl (PT_ECX+4)(%esp),%edx; \ | 710 | movl (PT_ECX+4)(%esp),%edx; \ |
714 | movl (PT_EBX+4)(%esp),%eax; \ | 711 | movl (PT_EBX+4)(%esp),%eax; \ |
715 | jmp sys_##name; | 712 | jmp sys_##name; \ |
713 | ENDPROC(ptregs_##name) | ||
716 | 714 | ||
717 | #define PTREGSCALL3(name) \ | 715 | #define PTREGSCALL3(name) \ |
718 | ALIGN; \ | 716 | ENTRY(ptregs_##name) ; \ |
719 | ptregs_##name: \ | ||
720 | CFI_STARTPROC; \ | 717 | CFI_STARTPROC; \ |
721 | leal 4(%esp),%eax; \ | 718 | leal 4(%esp),%eax; \ |
722 | pushl_cfi %eax; \ | 719 | pushl_cfi %eax; \ |
@@ -741,8 +738,7 @@ PTREGSCALL2(vm86) | |||
741 | PTREGSCALL1(vm86old) | 738 | PTREGSCALL1(vm86old) |
742 | 739 | ||
743 | /* Clone is an oddball. The 4th arg is in %edi */ | 740 | /* Clone is an oddball. The 4th arg is in %edi */ |
744 | ALIGN; | 741 | ENTRY(ptregs_clone) |
745 | ptregs_clone: | ||
746 | CFI_STARTPROC | 742 | CFI_STARTPROC |
747 | leal 4(%esp),%eax | 743 | leal 4(%esp),%eax |
748 | pushl_cfi %eax | 744 | pushl_cfi %eax |
@@ -1213,11 +1209,6 @@ return_to_handler: | |||
1213 | jmp *%ecx | 1209 | jmp *%ecx |
1214 | #endif | 1210 | #endif |
1215 | 1211 | ||
1216 | .section .rodata,"a" | ||
1217 | #include "syscall_table_32.S" | ||
1218 | |||
1219 | syscall_table_size=(.-sys_call_table) | ||
1220 | |||
1221 | /* | 1212 | /* |
1222 | * Some functions should be protected against kprobes | 1213 | * Some functions should be protected against kprobes |
1223 | */ | 1214 | */ |
diff --git a/arch/x86/kernel/syscall_32.c b/arch/x86/kernel/syscall_32.c new file mode 100644 index 000000000000..147fcd4941c4 --- /dev/null +++ b/arch/x86/kernel/syscall_32.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* System call table for i386. */ | ||
2 | |||
3 | #include <linux/linkage.h> | ||
4 | #include <linux/sys.h> | ||
5 | #include <linux/cache.h> | ||
6 | #include <asm/asm-offsets.h> | ||
7 | |||
8 | #define __SYSCALL_I386(nr, sym, compat) extern asmlinkage void sym(void) ; | ||
9 | #include <asm/syscalls_32.h> | ||
10 | #undef __SYSCALL_I386 | ||
11 | |||
12 | #define __SYSCALL_I386(nr, sym, compat) [nr] = sym, | ||
13 | |||
14 | typedef asmlinkage void (*sys_call_ptr_t)(void); | ||
15 | |||
16 | extern asmlinkage void sys_ni_syscall(void); | ||
17 | |||
18 | const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = { | ||
19 | /* | ||
20 | * Smells like a compiler bug -- it doesn't work | ||
21 | * when the & below is removed. | ||
22 | */ | ||
23 | [0 ... __NR_syscall_max] = &sys_ni_syscall, | ||
24 | #include <asm/syscalls_32.h> | ||
25 | }; | ||
diff --git a/arch/x86/kernel/syscall_64.c b/arch/x86/kernel/syscall_64.c index de87d6008295..7ac7943be02c 100644 --- a/arch/x86/kernel/syscall_64.c +++ b/arch/x86/kernel/syscall_64.c | |||
@@ -5,15 +5,11 @@ | |||
5 | #include <linux/cache.h> | 5 | #include <linux/cache.h> |
6 | #include <asm/asm-offsets.h> | 6 | #include <asm/asm-offsets.h> |
7 | 7 | ||
8 | #define __NO_STUBS | 8 | #define __SYSCALL_64(nr, sym, compat) extern asmlinkage void sym(void) ; |
9 | #include <asm/syscalls_64.h> | ||
10 | #undef __SYSCALL_64 | ||
9 | 11 | ||
10 | #define __SYSCALL(nr, sym) extern asmlinkage void sym(void) ; | 12 | #define __SYSCALL_64(nr, sym, compat) [nr] = sym, |
11 | #undef _ASM_X86_UNISTD_64_H | ||
12 | #include <asm/unistd_64.h> | ||
13 | |||
14 | #undef __SYSCALL | ||
15 | #define __SYSCALL(nr, sym) [nr] = sym, | ||
16 | #undef _ASM_X86_UNISTD_64_H | ||
17 | 13 | ||
18 | typedef void (*sys_call_ptr_t)(void); | 14 | typedef void (*sys_call_ptr_t)(void); |
19 | 15 | ||
@@ -21,9 +17,9 @@ extern void sys_ni_syscall(void); | |||
21 | 17 | ||
22 | const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = { | 18 | const sys_call_ptr_t sys_call_table[__NR_syscall_max+1] = { |
23 | /* | 19 | /* |
24 | *Smells like a like a compiler bug -- it doesn't work | 20 | * Smells like a compiler bug -- it doesn't work |
25 | *when the & below is removed. | 21 | * when the & below is removed. |
26 | */ | 22 | */ |
27 | [0 ... __NR_syscall_max] = &sys_ni_syscall, | 23 | [0 ... __NR_syscall_max] = &sys_ni_syscall, |
28 | #include <asm/unistd_64.h> | 24 | #include <asm/syscalls_64.h> |
29 | }; | 25 | }; |
diff --git a/arch/x86/kernel/syscall_table_32.S b/arch/x86/kernel/syscall_table_32.S deleted file mode 100644 index 9a0e31293920..000000000000 --- a/arch/x86/kernel/syscall_table_32.S +++ /dev/null | |||
@@ -1,350 +0,0 @@ | |||
1 | ENTRY(sys_call_table) | ||
2 | .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */ | ||
3 | .long sys_exit | ||
4 | .long ptregs_fork | ||
5 | .long sys_read | ||
6 | .long sys_write | ||
7 | .long sys_open /* 5 */ | ||
8 | .long sys_close | ||
9 | .long sys_waitpid | ||
10 | .long sys_creat | ||
11 | .long sys_link | ||
12 | .long sys_unlink /* 10 */ | ||
13 | .long ptregs_execve | ||
14 | .long sys_chdir | ||
15 | .long sys_time | ||
16 | .long sys_mknod | ||
17 | .long sys_chmod /* 15 */ | ||
18 | .long sys_lchown16 | ||
19 | .long sys_ni_syscall /* old break syscall holder */ | ||
20 | .long sys_stat | ||
21 | .long sys_lseek | ||
22 | .long sys_getpid /* 20 */ | ||
23 | .long sys_mount | ||
24 | .long sys_oldumount | ||
25 | .long sys_setuid16 | ||
26 | .long sys_getuid16 | ||
27 | .long sys_stime /* 25 */ | ||
28 | .long sys_ptrace | ||
29 | .long sys_alarm | ||
30 | .long sys_fstat | ||
31 | .long sys_pause | ||
32 | .long sys_utime /* 30 */ | ||
33 | .long sys_ni_syscall /* old stty syscall holder */ | ||
34 | .long sys_ni_syscall /* old gtty syscall holder */ | ||
35 | .long sys_access | ||
36 | .long sys_nice | ||
37 | .long sys_ni_syscall /* 35 - old ftime syscall holder */ | ||
38 | .long sys_sync | ||
39 | .long sys_kill | ||
40 | .long sys_rename | ||
41 | .long sys_mkdir | ||
42 | .long sys_rmdir /* 40 */ | ||
43 | .long sys_dup | ||
44 | .long sys_pipe | ||
45 | .long sys_times | ||
46 | .long sys_ni_syscall /* old prof syscall holder */ | ||
47 | .long sys_brk /* 45 */ | ||
48 | .long sys_setgid16 | ||
49 | .long sys_getgid16 | ||
50 | .long sys_signal | ||
51 | .long sys_geteuid16 | ||
52 | .long sys_getegid16 /* 50 */ | ||
53 | .long sys_acct | ||
54 | .long sys_umount /* recycled never used phys() */ | ||
55 | .long sys_ni_syscall /* old lock syscall holder */ | ||
56 | .long sys_ioctl | ||
57 | .long sys_fcntl /* 55 */ | ||
58 | .long sys_ni_syscall /* old mpx syscall holder */ | ||
59 | .long sys_setpgid | ||
60 | .long sys_ni_syscall /* old ulimit syscall holder */ | ||
61 | .long sys_olduname | ||
62 | .long sys_umask /* 60 */ | ||
63 | .long sys_chroot | ||
64 | .long sys_ustat | ||
65 | .long sys_dup2 | ||
66 | .long sys_getppid | ||
67 | .long sys_getpgrp /* 65 */ | ||
68 | .long sys_setsid | ||
69 | .long sys_sigaction | ||
70 | .long sys_sgetmask | ||
71 | .long sys_ssetmask | ||
72 | .long sys_setreuid16 /* 70 */ | ||
73 | .long sys_setregid16 | ||
74 | .long sys_sigsuspend | ||
75 | .long sys_sigpending | ||
76 | .long sys_sethostname | ||
77 | .long sys_setrlimit /* 75 */ | ||
78 | .long sys_old_getrlimit | ||
79 | .long sys_getrusage | ||
80 | .long sys_gettimeofday | ||
81 | .long sys_settimeofday | ||
82 | .long sys_getgroups16 /* 80 */ | ||
83 | .long sys_setgroups16 | ||
84 | .long sys_old_select | ||
85 | .long sys_symlink | ||
86 | .long sys_lstat | ||
87 | .long sys_readlink /* 85 */ | ||
88 | .long sys_uselib | ||
89 | .long sys_swapon | ||
90 | .long sys_reboot | ||
91 | .long sys_old_readdir | ||
92 | .long sys_old_mmap /* 90 */ | ||
93 | .long sys_munmap | ||
94 | .long sys_truncate | ||
95 | .long sys_ftruncate | ||
96 | .long sys_fchmod | ||
97 | .long sys_fchown16 /* 95 */ | ||
98 | .long sys_getpriority | ||
99 | .long sys_setpriority | ||
100 | .long sys_ni_syscall /* old profil syscall holder */ | ||
101 | .long sys_statfs | ||
102 | .long sys_fstatfs /* 100 */ | ||
103 | .long sys_ioperm | ||
104 | .long sys_socketcall | ||
105 | .long sys_syslog | ||
106 | .long sys_setitimer | ||
107 | .long sys_getitimer /* 105 */ | ||
108 | .long sys_newstat | ||
109 | .long sys_newlstat | ||
110 | .long sys_newfstat | ||
111 | .long sys_uname | ||
112 | .long ptregs_iopl /* 110 */ | ||
113 | .long sys_vhangup | ||
114 | .long sys_ni_syscall /* old "idle" system call */ | ||
115 | .long ptregs_vm86old | ||
116 | .long sys_wait4 | ||
117 | .long sys_swapoff /* 115 */ | ||
118 | .long sys_sysinfo | ||
119 | .long sys_ipc | ||
120 | .long sys_fsync | ||
121 | .long ptregs_sigreturn | ||
122 | .long ptregs_clone /* 120 */ | ||
123 | .long sys_setdomainname | ||
124 | .long sys_newuname | ||
125 | .long sys_modify_ldt | ||
126 | .long sys_adjtimex | ||
127 | .long sys_mprotect /* 125 */ | ||
128 | .long sys_sigprocmask | ||
129 | .long sys_ni_syscall /* old "create_module" */ | ||
130 | .long sys_init_module | ||
131 | .long sys_delete_module | ||
132 | .long sys_ni_syscall /* 130: old "get_kernel_syms" */ | ||
133 | .long sys_quotactl | ||
134 | .long sys_getpgid | ||
135 | .long sys_fchdir | ||
136 | .long sys_bdflush | ||
137 | .long sys_sysfs /* 135 */ | ||
138 | .long sys_personality | ||
139 | .long sys_ni_syscall /* reserved for afs_syscall */ | ||
140 | .long sys_setfsuid16 | ||
141 | .long sys_setfsgid16 | ||
142 | .long sys_llseek /* 140 */ | ||
143 | .long sys_getdents | ||
144 | .long sys_select | ||
145 | .long sys_flock | ||
146 | .long sys_msync | ||
147 | .long sys_readv /* 145 */ | ||
148 | .long sys_writev | ||
149 | .long sys_getsid | ||
150 | .long sys_fdatasync | ||
151 | .long sys_sysctl | ||
152 | .long sys_mlock /* 150 */ | ||
153 | .long sys_munlock | ||
154 | .long sys_mlockall | ||
155 | .long sys_munlockall | ||
156 | .long sys_sched_setparam | ||
157 | .long sys_sched_getparam /* 155 */ | ||
158 | .long sys_sched_setscheduler | ||
159 | .long sys_sched_getscheduler | ||
160 | .long sys_sched_yield | ||
161 | .long sys_sched_get_priority_max | ||
162 | .long sys_sched_get_priority_min /* 160 */ | ||
163 | .long sys_sched_rr_get_interval | ||
164 | .long sys_nanosleep | ||
165 | .long sys_mremap | ||
166 | .long sys_setresuid16 | ||
167 | .long sys_getresuid16 /* 165 */ | ||
168 | .long ptregs_vm86 | ||
169 | .long sys_ni_syscall /* Old sys_query_module */ | ||
170 | .long sys_poll | ||
171 | .long sys_ni_syscall /* Old nfsservctl */ | ||
172 | .long sys_setresgid16 /* 170 */ | ||
173 | .long sys_getresgid16 | ||
174 | .long sys_prctl | ||
175 | .long ptregs_rt_sigreturn | ||
176 | .long sys_rt_sigaction | ||
177 | .long sys_rt_sigprocmask /* 175 */ | ||
178 | .long sys_rt_sigpending | ||
179 | .long sys_rt_sigtimedwait | ||
180 | .long sys_rt_sigqueueinfo | ||
181 | .long sys_rt_sigsuspend | ||
182 | .long sys_pread64 /* 180 */ | ||
183 | .long sys_pwrite64 | ||
184 | .long sys_chown16 | ||
185 | .long sys_getcwd | ||
186 | .long sys_capget | ||
187 | .long sys_capset /* 185 */ | ||
188 | .long ptregs_sigaltstack | ||
189 | .long sys_sendfile | ||
190 | .long sys_ni_syscall /* reserved for streams1 */ | ||
191 | .long sys_ni_syscall /* reserved for streams2 */ | ||
192 | .long ptregs_vfork /* 190 */ | ||
193 | .long sys_getrlimit | ||
194 | .long sys_mmap_pgoff | ||
195 | .long sys_truncate64 | ||
196 | .long sys_ftruncate64 | ||
197 | .long sys_stat64 /* 195 */ | ||
198 | .long sys_lstat64 | ||
199 | .long sys_fstat64 | ||
200 | .long sys_lchown | ||
201 | .long sys_getuid | ||
202 | .long sys_getgid /* 200 */ | ||
203 | .long sys_geteuid | ||
204 | .long sys_getegid | ||
205 | .long sys_setreuid | ||
206 | .long sys_setregid | ||
207 | .long sys_getgroups /* 205 */ | ||
208 | .long sys_setgroups | ||
209 | .long sys_fchown | ||
210 | .long sys_setresuid | ||
211 | .long sys_getresuid | ||
212 | .long sys_setresgid /* 210 */ | ||
213 | .long sys_getresgid | ||
214 | .long sys_chown | ||
215 | .long sys_setuid | ||
216 | .long sys_setgid | ||
217 | .long sys_setfsuid /* 215 */ | ||
218 | .long sys_setfsgid | ||
219 | .long sys_pivot_root | ||
220 | .long sys_mincore | ||
221 | .long sys_madvise | ||
222 | .long sys_getdents64 /* 220 */ | ||
223 | .long sys_fcntl64 | ||
224 | .long sys_ni_syscall /* reserved for TUX */ | ||
225 | .long sys_ni_syscall | ||
226 | .long sys_gettid | ||
227 | .long sys_readahead /* 225 */ | ||
228 | .long sys_setxattr | ||
229 | .long sys_lsetxattr | ||
230 | .long sys_fsetxattr | ||
231 | .long sys_getxattr | ||
232 | .long sys_lgetxattr /* 230 */ | ||
233 | .long sys_fgetxattr | ||
234 | .long sys_listxattr | ||
235 | .long sys_llistxattr | ||
236 | .long sys_flistxattr | ||
237 | .long sys_removexattr /* 235 */ | ||
238 | .long sys_lremovexattr | ||
239 | .long sys_fremovexattr | ||
240 | .long sys_tkill | ||
241 | .long sys_sendfile64 | ||
242 | .long sys_futex /* 240 */ | ||
243 | .long sys_sched_setaffinity | ||
244 | .long sys_sched_getaffinity | ||
245 | .long sys_set_thread_area | ||
246 | .long sys_get_thread_area | ||
247 | .long sys_io_setup /* 245 */ | ||
248 | .long sys_io_destroy | ||
249 | .long sys_io_getevents | ||
250 | .long sys_io_submit | ||
251 | .long sys_io_cancel | ||
252 | .long sys_fadvise64 /* 250 */ | ||
253 | .long sys_ni_syscall | ||
254 | .long sys_exit_group | ||
255 | .long sys_lookup_dcookie | ||
256 | .long sys_epoll_create | ||
257 | .long sys_epoll_ctl /* 255 */ | ||
258 | .long sys_epoll_wait | ||
259 | .long sys_remap_file_pages | ||
260 | .long sys_set_tid_address | ||
261 | .long sys_timer_create | ||
262 | .long sys_timer_settime /* 260 */ | ||
263 | .long sys_timer_gettime | ||
264 | .long sys_timer_getoverrun | ||
265 | .long sys_timer_delete | ||
266 | .long sys_clock_settime | ||
267 | .long sys_clock_gettime /* 265 */ | ||
268 | .long sys_clock_getres | ||
269 | .long sys_clock_nanosleep | ||
270 | .long sys_statfs64 | ||
271 | .long sys_fstatfs64 | ||
272 | .long sys_tgkill /* 270 */ | ||
273 | .long sys_utimes | ||
274 | .long sys_fadvise64_64 | ||
275 | .long sys_ni_syscall /* sys_vserver */ | ||
276 | .long sys_mbind | ||
277 | .long sys_get_mempolicy | ||
278 | .long sys_set_mempolicy | ||
279 | .long sys_mq_open | ||
280 | .long sys_mq_unlink | ||
281 | .long sys_mq_timedsend | ||
282 | .long sys_mq_timedreceive /* 280 */ | ||
283 | .long sys_mq_notify | ||
284 | .long sys_mq_getsetattr | ||
285 | .long sys_kexec_load | ||
286 | .long sys_waitid | ||
287 | .long sys_ni_syscall /* 285 */ /* available */ | ||
288 | .long sys_add_key | ||
289 | .long sys_request_key | ||
290 | .long sys_keyctl | ||
291 | .long sys_ioprio_set | ||
292 | .long sys_ioprio_get /* 290 */ | ||
293 | .long sys_inotify_init | ||
294 | .long sys_inotify_add_watch | ||
295 | .long sys_inotify_rm_watch | ||
296 | .long sys_migrate_pages | ||
297 | .long sys_openat /* 295 */ | ||
298 | .long sys_mkdirat | ||
299 | .long sys_mknodat | ||
300 | .long sys_fchownat | ||
301 | .long sys_futimesat | ||
302 | .long sys_fstatat64 /* 300 */ | ||
303 | .long sys_unlinkat | ||
304 | .long sys_renameat | ||
305 | .long sys_linkat | ||
306 | .long sys_symlinkat | ||
307 | .long sys_readlinkat /* 305 */ | ||
308 | .long sys_fchmodat | ||
309 | .long sys_faccessat | ||
310 | .long sys_pselect6 | ||
311 | .long sys_ppoll | ||
312 | .long sys_unshare /* 310 */ | ||
313 | .long sys_set_robust_list | ||
314 | .long sys_get_robust_list | ||
315 | .long sys_splice | ||
316 | .long sys_sync_file_range | ||
317 | .long sys_tee /* 315 */ | ||
318 | .long sys_vmsplice | ||
319 | .long sys_move_pages | ||
320 | .long sys_getcpu | ||
321 | .long sys_epoll_pwait | ||
322 | .long sys_utimensat /* 320 */ | ||
323 | .long sys_signalfd | ||
324 | .long sys_timerfd_create | ||
325 | .long sys_eventfd | ||
326 | .long sys_fallocate | ||
327 | .long sys_timerfd_settime /* 325 */ | ||
328 | .long sys_timerfd_gettime | ||
329 | .long sys_signalfd4 | ||
330 | .long sys_eventfd2 | ||
331 | .long sys_epoll_create1 | ||
332 | .long sys_dup3 /* 330 */ | ||
333 | .long sys_pipe2 | ||
334 | .long sys_inotify_init1 | ||
335 | .long sys_preadv | ||
336 | .long sys_pwritev | ||
337 | .long sys_rt_tgsigqueueinfo /* 335 */ | ||
338 | .long sys_perf_event_open | ||
339 | .long sys_recvmmsg | ||
340 | .long sys_fanotify_init | ||
341 | .long sys_fanotify_mark | ||
342 | .long sys_prlimit64 /* 340 */ | ||
343 | .long sys_name_to_handle_at | ||
344 | .long sys_open_by_handle_at | ||
345 | .long sys_clock_adjtime | ||
346 | .long sys_syncfs | ||
347 | .long sys_sendmmsg /* 345 */ | ||
348 | .long sys_setns | ||
349 | .long sys_process_vm_readv | ||
350 | .long sys_process_vm_writev | ||
diff --git a/arch/x86/syscalls/Makefile b/arch/x86/syscalls/Makefile new file mode 100644 index 000000000000..564b2476fede --- /dev/null +++ b/arch/x86/syscalls/Makefile | |||
@@ -0,0 +1,43 @@ | |||
1 | out := $(obj)/../include/generated/asm | ||
2 | |||
3 | # Create output directory if not already present | ||
4 | _dummy := $(shell [ -d '$(out)' ] || mkdir -p '$(out)') | ||
5 | |||
6 | syscall32 := $(srctree)/$(src)/syscall_32.tbl | ||
7 | syscall64 := $(srctree)/$(src)/syscall_64.tbl | ||
8 | |||
9 | syshdr := $(srctree)/$(src)/syscallhdr.sh | ||
10 | systbl := $(srctree)/$(src)/syscalltbl.sh | ||
11 | |||
12 | quiet_cmd_syshdr = SYSHDR $@ | ||
13 | cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' $< $@ \ | ||
14 | $(syshdr_abi_$(basetarget)) $(syshdr_pfx_$(basetarget)) | ||
15 | quiet_cmd_systbl = SYSTBL $@ | ||
16 | cmd_systbl = $(CONFIG_SHELL) '$(systbl)' $< $@ | ||
17 | |||
18 | syshdr_abi_unistd_32 := i386 | ||
19 | $(out)/unistd_32.h: $(syscall32) $(syshdr) | ||
20 | $(call if_changed,syshdr) | ||
21 | |||
22 | syshdr_abi_unistd_32_ia32 := i386 | ||
23 | syshdr_pfx_unistd_32_ia32 := ia32_ | ||
24 | $(out)/unistd_32_ia32.h: $(syscall32) $(syshdr) | ||
25 | $(call if_changed,syshdr) | ||
26 | |||
27 | syshdr_abi_unistd_64 := 64 | ||
28 | $(out)/unistd_64.h: $(syscall64) $(syshdr) | ||
29 | $(call if_changed,syshdr) | ||
30 | |||
31 | $(out)/syscalls_32.h: $(syscall32) $(systbl) | ||
32 | $(call if_changed,systbl) | ||
33 | $(out)/syscalls_64.h: $(syscall64) $(systbl) | ||
34 | $(call if_changed,systbl) | ||
35 | |||
36 | syshdr-y += unistd_32.h unistd_64.h | ||
37 | syshdr-y += syscalls_32.h | ||
38 | syshdr-$(CONFIG_X86_64) += unistd_32_ia32.h | ||
39 | syshdr-$(CONFIG_X86_64) += syscalls_64.h | ||
40 | |||
41 | targets += $(syshdr-y) | ||
42 | |||
43 | all: $(addprefix $(out)/,$(targets)) | ||
diff --git a/arch/x86/syscalls/syscall_32.tbl b/arch/x86/syscalls/syscall_32.tbl new file mode 100644 index 000000000000..ce98e287c066 --- /dev/null +++ b/arch/x86/syscalls/syscall_32.tbl | |||
@@ -0,0 +1,357 @@ | |||
1 | # | ||
2 | # 32-bit system call numbers and entry vectors | ||
3 | # | ||
4 | # The format is: | ||
5 | # <number> <abi> <name> <entry point> <compat entry point> | ||
6 | # | ||
7 | # The abi is always "i386" for this file. | ||
8 | # | ||
9 | 0 i386 restart_syscall sys_restart_syscall | ||
10 | 1 i386 exit sys_exit | ||
11 | 2 i386 fork ptregs_fork stub32_fork | ||
12 | 3 i386 read sys_read | ||
13 | 4 i386 write sys_write | ||
14 | 5 i386 open sys_open compat_sys_open | ||
15 | 6 i386 close sys_close | ||
16 | 7 i386 waitpid sys_waitpid sys32_waitpid | ||
17 | 8 i386 creat sys_creat | ||
18 | 9 i386 link sys_link | ||
19 | 10 i386 unlink sys_unlink | ||
20 | 11 i386 execve ptregs_execve stub32_execve | ||
21 | 12 i386 chdir sys_chdir | ||
22 | 13 i386 time sys_time compat_sys_time | ||
23 | 14 i386 mknod sys_mknod | ||
24 | 15 i386 chmod sys_chmod | ||
25 | 16 i386 lchown sys_lchown16 | ||
26 | 17 i386 break | ||
27 | 18 i386 oldstat sys_stat | ||
28 | 19 i386 lseek sys_lseek sys32_lseek | ||
29 | 20 i386 getpid sys_getpid | ||
30 | 21 i386 mount sys_mount compat_sys_mount | ||
31 | 22 i386 umount sys_oldumount | ||
32 | 23 i386 setuid sys_setuid16 | ||
33 | 24 i386 getuid sys_getuid16 | ||
34 | 25 i386 stime sys_stime compat_sys_stime | ||
35 | 26 i386 ptrace sys_ptrace compat_sys_ptrace | ||
36 | 27 i386 alarm sys_alarm | ||
37 | 28 i386 oldfstat sys_fstat | ||
38 | 29 i386 pause sys_pause | ||
39 | 30 i386 utime sys_utime compat_sys_utime | ||
40 | 31 i386 stty | ||
41 | 32 i386 gtty | ||
42 | 33 i386 access sys_access | ||
43 | 34 i386 nice sys_nice | ||
44 | 35 i386 ftime | ||
45 | 36 i386 sync sys_sync | ||
46 | 37 i386 kill sys_kill sys32_kill | ||
47 | 38 i386 rename sys_rename | ||
48 | 39 i386 mkdir sys_mkdir | ||
49 | 40 i386 rmdir sys_rmdir | ||
50 | 41 i386 dup sys_dup | ||
51 | 42 i386 pipe sys_pipe | ||
52 | 43 i386 times sys_times compat_sys_times | ||
53 | 44 i386 prof | ||
54 | 45 i386 brk sys_brk | ||
55 | 46 i386 setgid sys_setgid16 | ||
56 | 47 i386 getgid sys_getgid16 | ||
57 | 48 i386 signal sys_signal | ||
58 | 49 i386 geteuid sys_geteuid16 | ||
59 | 50 i386 getegid sys_getegid16 | ||
60 | 51 i386 acct sys_acct | ||
61 | 52 i386 umount2 sys_umount | ||
62 | 53 i386 lock | ||
63 | 54 i386 ioctl sys_ioctl compat_sys_ioctl | ||
64 | 55 i386 fcntl sys_fcntl compat_sys_fcntl64 | ||
65 | 56 i386 mpx | ||
66 | 57 i386 setpgid sys_setpgid | ||
67 | 58 i386 ulimit | ||
68 | 59 i386 oldolduname sys_olduname | ||
69 | 60 i386 umask sys_umask | ||
70 | 61 i386 chroot sys_chroot | ||
71 | 62 i386 ustat sys_ustat compat_sys_ustat | ||
72 | 63 i386 dup2 sys_dup2 | ||
73 | 64 i386 getppid sys_getppid | ||
74 | 65 i386 getpgrp sys_getpgrp | ||
75 | 66 i386 setsid sys_setsid | ||
76 | 67 i386 sigaction sys_sigaction sys32_sigaction | ||
77 | 68 i386 sgetmask sys_sgetmask | ||
78 | 69 i386 ssetmask sys_ssetmask | ||
79 | 70 i386 setreuid sys_setreuid16 | ||
80 | 71 i386 setregid sys_setregid16 | ||
81 | 72 i386 sigsuspend sys_sigsuspend sys32_sigsuspend | ||
82 | 73 i386 sigpending sys_sigpending compat_sys_sigpending | ||
83 | 74 i386 sethostname sys_sethostname | ||
84 | 75 i386 setrlimit sys_setrlimit compat_sys_setrlimit | ||
85 | 76 i386 getrlimit sys_old_getrlimit compat_sys_old_getrlimit | ||
86 | 77 i386 getrusage sys_getrusage compat_sys_getrusage | ||
87 | 78 i386 gettimeofday sys_gettimeofday compat_sys_gettimeofday | ||
88 | 79 i386 settimeofday sys_settimeofday compat_sys_settimeofday | ||
89 | 80 i386 getgroups sys_getgroups16 | ||
90 | 81 i386 setgroups sys_setgroups16 | ||
91 | 82 i386 select sys_old_select compat_sys_old_select | ||
92 | 83 i386 symlink sys_symlink | ||
93 | 84 i386 oldlstat sys_lstat | ||
94 | 85 i386 readlink sys_readlink | ||
95 | 86 i386 uselib sys_uselib | ||
96 | 87 i386 swapon sys_swapon | ||
97 | 88 i386 reboot sys_reboot | ||
98 | 89 i386 readdir sys_old_readdir compat_sys_old_readdir | ||
99 | 90 i386 mmap sys_old_mmap sys32_mmap | ||
100 | 91 i386 munmap sys_munmap | ||
101 | 92 i386 truncate sys_truncate | ||
102 | 93 i386 ftruncate sys_ftruncate | ||
103 | 94 i386 fchmod sys_fchmod | ||
104 | 95 i386 fchown sys_fchown16 | ||
105 | 96 i386 getpriority sys_getpriority | ||
106 | 97 i386 setpriority sys_setpriority | ||
107 | 98 i386 profil | ||
108 | 99 i386 statfs sys_statfs compat_sys_statfs | ||
109 | 100 i386 fstatfs sys_fstatfs compat_sys_fstatfs | ||
110 | 101 i386 ioperm sys_ioperm | ||
111 | 102 i386 socketcall sys_socketcall compat_sys_socketcall | ||
112 | 103 i386 syslog sys_syslog | ||
113 | 104 i386 setitimer sys_setitimer compat_sys_setitimer | ||
114 | 105 i386 getitimer sys_getitimer compat_sys_getitimer | ||
115 | 106 i386 stat sys_newstat compat_sys_newstat | ||
116 | 107 i386 lstat sys_newlstat compat_sys_newlstat | ||
117 | 108 i386 fstat sys_newfstat compat_sys_newfstat | ||
118 | 109 i386 olduname sys_uname | ||
119 | 110 i386 iopl ptregs_iopl stub32_iopl | ||
120 | 111 i386 vhangup sys_vhangup | ||
121 | 112 i386 idle | ||
122 | 113 i386 vm86old ptregs_vm86old sys32_vm86_warning | ||
123 | 114 i386 wait4 sys_wait4 compat_sys_wait4 | ||
124 | 115 i386 swapoff sys_swapoff | ||
125 | 116 i386 sysinfo sys_sysinfo compat_sys_sysinfo | ||
126 | 117 i386 ipc sys_ipc sys32_ipc | ||
127 | 118 i386 fsync sys_fsync | ||
128 | 119 i386 sigreturn ptregs_sigreturn stub32_sigreturn | ||
129 | 120 i386 clone ptregs_clone stub32_clone | ||
130 | 121 i386 setdomainname sys_setdomainname | ||
131 | 122 i386 uname sys_newuname | ||
132 | 123 i386 modify_ldt sys_modify_ldt | ||
133 | 124 i386 adjtimex sys_adjtimex compat_sys_adjtimex | ||
134 | 125 i386 mprotect sys_mprotect sys32_mprotect | ||
135 | 126 i386 sigprocmask sys_sigprocmask compat_sys_sigprocmask | ||
136 | 127 i386 create_module | ||
137 | 128 i386 init_module sys_init_module | ||
138 | 129 i386 delete_module sys_delete_module | ||
139 | 130 i386 get_kernel_syms | ||
140 | 131 i386 quotactl sys_quotactl sys32_quotactl | ||
141 | 132 i386 getpgid sys_getpgid | ||
142 | 133 i386 fchdir sys_fchdir | ||
143 | 134 i386 bdflush sys_bdflush | ||
144 | 135 i386 sysfs sys_sysfs | ||
145 | 136 i386 personality sys_personality | ||
146 | 137 i386 afs_syscall | ||
147 | 138 i386 setfsuid sys_setfsuid16 | ||
148 | 139 i386 setfsgid sys_setfsgid16 | ||
149 | 140 i386 _llseek sys_llseek | ||
150 | 141 i386 getdents sys_getdents compat_sys_getdents | ||
151 | 142 i386 _newselect sys_select compat_sys_select | ||
152 | 143 i386 flock sys_flock | ||
153 | 144 i386 msync sys_msync | ||
154 | 145 i386 readv sys_readv compat_sys_readv | ||
155 | 146 i386 writev sys_writev compat_sys_writev | ||
156 | 147 i386 getsid sys_getsid | ||
157 | 148 i386 fdatasync sys_fdatasync | ||
158 | 149 i386 _sysctl sys_sysctl compat_sys_sysctl | ||
159 | 150 i386 mlock sys_mlock | ||
160 | 151 i386 munlock sys_munlock | ||
161 | 152 i386 mlockall sys_mlockall | ||
162 | 153 i386 munlockall sys_munlockall | ||
163 | 154 i386 sched_setparam sys_sched_setparam | ||
164 | 155 i386 sched_getparam sys_sched_getparam | ||
165 | 156 i386 sched_setscheduler sys_sched_setscheduler | ||
166 | 157 i386 sched_getscheduler sys_sched_getscheduler | ||
167 | 158 i386 sched_yield sys_sched_yield | ||
168 | 159 i386 sched_get_priority_max sys_sched_get_priority_max | ||
169 | 160 i386 sched_get_priority_min sys_sched_get_priority_min | ||
170 | 161 i386 sched_rr_get_interval sys_sched_rr_get_interval sys32_sched_rr_get_interval | ||
171 | 162 i386 nanosleep sys_nanosleep compat_sys_nanosleep | ||
172 | 163 i386 mremap sys_mremap | ||
173 | 164 i386 setresuid sys_setresuid16 | ||
174 | 165 i386 getresuid sys_getresuid16 | ||
175 | 166 i386 vm86 ptregs_vm86 sys32_vm86_warning | ||
176 | 167 i386 query_module | ||
177 | 168 i386 poll sys_poll | ||
178 | 169 i386 nfsservctl | ||
179 | 170 i386 setresgid sys_setresgid16 | ||
180 | 171 i386 getresgid sys_getresgid16 | ||
181 | 172 i386 prctl sys_prctl | ||
182 | 173 i386 rt_sigreturn ptregs_rt_sigreturn stub32_rt_sigreturn | ||
183 | 174 i386 rt_sigaction sys_rt_sigaction sys32_rt_sigaction | ||
184 | 175 i386 rt_sigprocmask sys_rt_sigprocmask sys32_rt_sigprocmask | ||
185 | 176 i386 rt_sigpending sys_rt_sigpending sys32_rt_sigpending | ||
186 | 177 i386 rt_sigtimedwait sys_rt_sigtimedwait compat_sys_rt_sigtimedwait | ||
187 | 178 i386 rt_sigqueueinfo sys_rt_sigqueueinfo sys32_rt_sigqueueinfo | ||
188 | 179 i386 rt_sigsuspend sys_rt_sigsuspend | ||
189 | 180 i386 pread64 sys_pread64 sys32_pread | ||
190 | 181 i386 pwrite64 sys_pwrite64 sys32_pwrite | ||
191 | 182 i386 chown sys_chown16 | ||
192 | 183 i386 getcwd sys_getcwd | ||
193 | 184 i386 capget sys_capget | ||
194 | 185 i386 capset sys_capset | ||
195 | 186 i386 sigaltstack ptregs_sigaltstack stub32_sigaltstack | ||
196 | 187 i386 sendfile sys_sendfile sys32_sendfile | ||
197 | 188 i386 getpmsg | ||
198 | 189 i386 putpmsg | ||
199 | 190 i386 vfork ptregs_vfork stub32_vfork | ||
200 | 191 i386 ugetrlimit sys_getrlimit compat_sys_getrlimit | ||
201 | 192 i386 mmap2 sys_mmap_pgoff | ||
202 | 193 i386 truncate64 sys_truncate64 sys32_truncate64 | ||
203 | 194 i386 ftruncate64 sys_ftruncate64 sys32_ftruncate64 | ||
204 | 195 i386 stat64 sys_stat64 sys32_stat64 | ||
205 | 196 i386 lstat64 sys_lstat64 sys32_lstat64 | ||
206 | 197 i386 fstat64 sys_fstat64 sys32_fstat64 | ||
207 | 198 i386 lchown32 sys_lchown | ||
208 | 199 i386 getuid32 sys_getuid | ||
209 | 200 i386 getgid32 sys_getgid | ||
210 | 201 i386 geteuid32 sys_geteuid | ||
211 | 202 i386 getegid32 sys_getegid | ||
212 | 203 i386 setreuid32 sys_setreuid | ||
213 | 204 i386 setregid32 sys_setregid | ||
214 | 205 i386 getgroups32 sys_getgroups | ||
215 | 206 i386 setgroups32 sys_setgroups | ||
216 | 207 i386 fchown32 sys_fchown | ||
217 | 208 i386 setresuid32 sys_setresuid | ||
218 | 209 i386 getresuid32 sys_getresuid | ||
219 | 210 i386 setresgid32 sys_setresgid | ||
220 | 211 i386 getresgid32 sys_getresgid | ||
221 | 212 i386 chown32 sys_chown | ||
222 | 213 i386 setuid32 sys_setuid | ||
223 | 214 i386 setgid32 sys_setgid | ||
224 | 215 i386 setfsuid32 sys_setfsuid | ||
225 | 216 i386 setfsgid32 sys_setfsgid | ||
226 | 217 i386 pivot_root sys_pivot_root | ||
227 | 218 i386 mincore sys_mincore | ||
228 | 219 i386 madvise sys_madvise | ||
229 | 220 i386 getdents64 sys_getdents64 compat_sys_getdents64 | ||
230 | 221 i386 fcntl64 sys_fcntl64 compat_sys_fcntl64 | ||
231 | # 222 is unused | ||
232 | # 223 is unused | ||
233 | 224 i386 gettid sys_gettid | ||
234 | 225 i386 readahead sys_readahead sys32_readahead | ||
235 | 226 i386 setxattr sys_setxattr | ||
236 | 227 i386 lsetxattr sys_lsetxattr | ||
237 | 228 i386 fsetxattr sys_fsetxattr | ||
238 | 229 i386 getxattr sys_getxattr | ||
239 | 230 i386 lgetxattr sys_lgetxattr | ||
240 | 231 i386 fgetxattr sys_fgetxattr | ||
241 | 232 i386 listxattr sys_listxattr | ||
242 | 233 i386 llistxattr sys_llistxattr | ||
243 | 234 i386 flistxattr sys_flistxattr | ||
244 | 235 i386 removexattr sys_removexattr | ||
245 | 236 i386 lremovexattr sys_lremovexattr | ||
246 | 237 i386 fremovexattr sys_fremovexattr | ||
247 | 238 i386 tkill sys_tkill | ||
248 | 239 i386 sendfile64 sys_sendfile64 | ||
249 | 240 i386 futex sys_futex compat_sys_futex | ||
250 | 241 i386 sched_setaffinity sys_sched_setaffinity compat_sys_sched_setaffinity | ||
251 | 242 i386 sched_getaffinity sys_sched_getaffinity compat_sys_sched_getaffinity | ||
252 | 243 i386 set_thread_area sys_set_thread_area | ||
253 | 244 i386 get_thread_area sys_get_thread_area | ||
254 | 245 i386 io_setup sys_io_setup compat_sys_io_setup | ||
255 | 246 i386 io_destroy sys_io_destroy | ||
256 | 247 i386 io_getevents sys_io_getevents compat_sys_io_getevents | ||
257 | 248 i386 io_submit sys_io_submit compat_sys_io_submit | ||
258 | 249 i386 io_cancel sys_io_cancel | ||
259 | 250 i386 fadvise64 sys_fadvise64 sys32_fadvise64 | ||
260 | # 251 is available for reuse (was briefly sys_set_zone_reclaim) | ||
261 | 252 i386 exit_group sys_exit_group | ||
262 | 253 i386 lookup_dcookie sys_lookup_dcookie sys32_lookup_dcookie | ||
263 | 254 i386 epoll_create sys_epoll_create | ||
264 | 255 i386 epoll_ctl sys_epoll_ctl | ||
265 | 256 i386 epoll_wait sys_epoll_wait | ||
266 | 257 i386 remap_file_pages sys_remap_file_pages | ||
267 | 258 i386 set_tid_address sys_set_tid_address | ||
268 | 259 i386 timer_create sys_timer_create compat_sys_timer_create | ||
269 | 260 i386 timer_settime sys_timer_settime compat_sys_timer_settime | ||
270 | 261 i386 timer_gettime sys_timer_gettime compat_sys_timer_gettime | ||
271 | 262 i386 timer_getoverrun sys_timer_getoverrun | ||
272 | 263 i386 timer_delete sys_timer_delete | ||
273 | 264 i386 clock_settime sys_clock_settime compat_sys_clock_settime | ||
274 | 265 i386 clock_gettime sys_clock_gettime compat_sys_clock_gettime | ||
275 | 266 i386 clock_getres sys_clock_getres compat_sys_clock_getres | ||
276 | 267 i386 clock_nanosleep sys_clock_nanosleep compat_sys_clock_nanosleep | ||
277 | 268 i386 statfs64 sys_statfs64 compat_sys_statfs64 | ||
278 | 269 i386 fstatfs64 sys_fstatfs64 compat_sys_fstatfs64 | ||
279 | 270 i386 tgkill sys_tgkill | ||
280 | 271 i386 utimes sys_utimes compat_sys_utimes | ||
281 | 272 i386 fadvise64_64 sys_fadvise64_64 sys32_fadvise64_64 | ||
282 | 273 i386 vserver | ||
283 | 274 i386 mbind sys_mbind | ||
284 | 275 i386 get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy | ||
285 | 276 i386 set_mempolicy sys_set_mempolicy | ||
286 | 277 i386 mq_open sys_mq_open compat_sys_mq_open | ||
287 | 278 i386 mq_unlink sys_mq_unlink | ||
288 | 279 i386 mq_timedsend sys_mq_timedsend compat_sys_mq_timedsend | ||
289 | 280 i386 mq_timedreceive sys_mq_timedreceive compat_sys_mq_timedreceive | ||
290 | 281 i386 mq_notify sys_mq_notify compat_sys_mq_notify | ||
291 | 282 i386 mq_getsetaddr sys_mq_getsetattr compat_sys_mq_getsetattr | ||
292 | 283 i386 kexec_load sys_kexec_load compat_sys_kexec_load | ||
293 | 284 i386 waitid sys_waitid compat_sys_waitid | ||
294 | # 285 sys_setaltroot | ||
295 | 286 i386 add_key sys_add_key | ||
296 | 287 i386 request_key sys_request_key | ||
297 | 288 i386 keyctl sys_keyctl | ||
298 | 289 i386 ioprio_set sys_ioprio_set | ||
299 | 290 i386 ioprio_get sys_ioprio_get | ||
300 | 291 i386 inotify_init sys_inotify_init | ||
301 | 292 i386 inotify_add_watch sys_inotify_add_watch | ||
302 | 293 i386 inotify_rm_watch sys_inotify_rm_watch | ||
303 | 294 i386 migrate_pages sys_migrate_pages | ||
304 | 295 i386 openat sys_openat compat_sys_openat | ||
305 | 296 i386 mkdirat sys_mkdirat | ||
306 | 297 i386 mknodat sys_mknodat | ||
307 | 298 i386 fchownat sys_fchownat | ||
308 | 299 i386 futimesat sys_futimesat compat_sys_futimesat | ||
309 | 300 i386 fstatat64 sys_fstatat64 sys32_fstatat | ||
310 | 301 i386 unlinkat sys_unlinkat | ||
311 | 302 i386 renameat sys_renameat | ||
312 | 303 i386 linkat sys_linkat | ||
313 | 304 i386 symlinkat sys_symlinkat | ||
314 | 305 i386 readlinkat sys_readlinkat | ||
315 | 306 i386 fchmodat sys_fchmodat | ||
316 | 307 i386 faccessat sys_faccessat | ||
317 | 308 i386 pselect6 sys_pselect6 compat_sys_pselect6 | ||
318 | 309 i386 ppoll sys_ppoll compat_sys_ppoll | ||
319 | 310 i386 unshare sys_unshare | ||
320 | 311 i386 set_robust_list sys_set_robust_list compat_sys_set_robust_list | ||
321 | 312 i386 get_robust_list sys_get_robust_list compat_sys_get_robust_list | ||
322 | 313 i386 splice sys_splice | ||
323 | 314 i386 sync_file_range sys_sync_file_range sys32_sync_file_range | ||
324 | 315 i386 tee sys_tee | ||
325 | 316 i386 vmsplice sys_vmsplice compat_sys_vmsplice | ||
326 | 317 i386 move_pages sys_move_pages compat_sys_move_pages | ||
327 | 318 i386 getcpu sys_getcpu | ||
328 | 319 i386 epoll_pwait sys_epoll_pwait | ||
329 | 320 i386 utimensat sys_utimensat compat_sys_utimensat | ||
330 | 321 i386 signalfd sys_signalfd compat_sys_signalfd | ||
331 | 322 i386 timerfd_create sys_timerfd_create | ||
332 | 323 i386 eventfd sys_eventfd | ||
333 | 324 i386 fallocate sys_fallocate sys32_fallocate | ||
334 | 325 i386 timerfd_settime sys_timerfd_settime compat_sys_timerfd_settime | ||
335 | 326 i386 timerfd_gettime sys_timerfd_gettime compat_sys_timerfd_gettime | ||
336 | 327 i386 signalfd4 sys_signalfd4 compat_sys_signalfd4 | ||
337 | 328 i386 eventfd2 sys_eventfd2 | ||
338 | 329 i386 epoll_create1 sys_epoll_create1 | ||
339 | 330 i386 dup3 sys_dup3 | ||
340 | 331 i386 pipe2 sys_pipe2 | ||
341 | 332 i386 inotify_init1 sys_inotify_init1 | ||
342 | 333 i386 preadv sys_preadv compat_sys_preadv | ||
343 | 334 i386 pwritev sys_pwritev compat_sys_pwritev | ||
344 | 335 i386 rt_tgsigqueueinfo sys_rt_tgsigqueueinfo compat_sys_rt_tgsigqueueinfo | ||
345 | 336 i386 perf_event_open sys_perf_event_open | ||
346 | 337 i386 recvmmsg sys_recvmmsg compat_sys_recvmmsg | ||
347 | 338 i386 fanotify_init sys_fanotify_init | ||
348 | 339 i386 fanotify_mark sys_fanotify_mark sys32_fanotify_mark | ||
349 | 340 i386 prlimit64 sys_prlimit64 | ||
350 | 341 i386 name_to_handle_at sys_name_to_handle_at | ||
351 | 342 i386 open_by_handle_at sys_open_by_handle_at compat_sys_open_by_handle_at | ||
352 | 343 i386 clock_adjtime sys_clock_adjtime compat_sys_clock_adjtime | ||
353 | 344 i386 syncfs sys_syncfs | ||
354 | 345 i386 sendmmsg sys_sendmmsg compat_sys_sendmmsg | ||
355 | 346 i386 setns sys_setns | ||
356 | 347 i386 process_vm_readv sys_process_vm_readv compat_sys_process_vm_readv | ||
357 | 348 i386 process_vm_writev sys_process_vm_writev compat_sys_process_vm_writev | ||
diff --git a/arch/x86/syscalls/syscall_64.tbl b/arch/x86/syscalls/syscall_64.tbl new file mode 100644 index 000000000000..b440a8f7eefa --- /dev/null +++ b/arch/x86/syscalls/syscall_64.tbl | |||
@@ -0,0 +1,320 @@ | |||
1 | # | ||
2 | # 64-bit system call numbers and entry vectors | ||
3 | # | ||
4 | # The format is: | ||
5 | # <number> <abi> <name> <entry point> | ||
6 | # | ||
7 | # The abi is always "64" for this file (for now.) | ||
8 | # | ||
9 | 0 64 read sys_read | ||
10 | 1 64 write sys_write | ||
11 | 2 64 open sys_open | ||
12 | 3 64 close sys_close | ||
13 | 4 64 stat sys_newstat | ||
14 | 5 64 fstat sys_newfstat | ||
15 | 6 64 lstat sys_newlstat | ||
16 | 7 64 poll sys_poll | ||
17 | 8 64 lseek sys_lseek | ||
18 | 9 64 mmap sys_mmap | ||
19 | 10 64 mprotect sys_mprotect | ||
20 | 11 64 munmap sys_munmap | ||
21 | 12 64 brk sys_brk | ||
22 | 13 64 rt_sigaction sys_rt_sigaction | ||
23 | 14 64 rt_sigprocmask sys_rt_sigprocmask | ||
24 | 15 64 rt_sigreturn stub_rt_sigreturn | ||
25 | 16 64 ioctl sys_ioctl | ||
26 | 17 64 pread64 sys_pread64 | ||
27 | 18 64 pwrite64 sys_pwrite64 | ||
28 | 19 64 readv sys_readv | ||
29 | 20 64 writev sys_writev | ||
30 | 21 64 access sys_access | ||
31 | 22 64 pipe sys_pipe | ||
32 | 23 64 select sys_select | ||
33 | 24 64 sched_yield sys_sched_yield | ||
34 | 25 64 mremap sys_mremap | ||
35 | 26 64 msync sys_msync | ||
36 | 27 64 mincore sys_mincore | ||
37 | 28 64 madvise sys_madvise | ||
38 | 29 64 shmget sys_shmget | ||
39 | 30 64 shmat sys_shmat | ||
40 | 31 64 shmctl sys_shmctl | ||
41 | 32 64 dup sys_dup | ||
42 | 33 64 dup2 sys_dup2 | ||
43 | 34 64 pause sys_pause | ||
44 | 35 64 nanosleep sys_nanosleep | ||
45 | 36 64 getitimer sys_getitimer | ||
46 | 37 64 alarm sys_alarm | ||
47 | 38 64 setitimer sys_setitimer | ||
48 | 39 64 getpid sys_getpid | ||
49 | 40 64 sendfile sys_sendfile64 | ||
50 | 41 64 socket sys_socket | ||
51 | 42 64 connect sys_connect | ||
52 | 43 64 accept sys_accept | ||
53 | 44 64 sendto sys_sendto | ||
54 | 45 64 recvfrom sys_recvfrom | ||
55 | 46 64 sendmsg sys_sendmsg | ||
56 | 47 64 recvmsg sys_recvmsg | ||
57 | 48 64 shutdown sys_shutdown | ||
58 | 49 64 bind sys_bind | ||
59 | 50 64 listen sys_listen | ||
60 | 51 64 getsockname sys_getsockname | ||
61 | 52 64 getpeername sys_getpeername | ||
62 | 53 64 socketpair sys_socketpair | ||
63 | 54 64 setsockopt sys_setsockopt | ||
64 | 55 64 getsockopt sys_getsockopt | ||
65 | 56 64 clone stub_clone | ||
66 | 57 64 fork stub_fork | ||
67 | 58 64 vfork stub_vfork | ||
68 | 59 64 execve stub_execve | ||
69 | 60 64 exit sys_exit | ||
70 | 61 64 wait4 sys_wait4 | ||
71 | 62 64 kill sys_kill | ||
72 | 63 64 uname sys_newuname | ||
73 | 64 64 semget sys_semget | ||
74 | 65 64 semop sys_semop | ||
75 | 66 64 semctl sys_semctl | ||
76 | 67 64 shmdt sys_shmdt | ||
77 | 68 64 msgget sys_msgget | ||
78 | 69 64 msgsnd sys_msgsnd | ||
79 | 70 64 msgrcv sys_msgrcv | ||
80 | 71 64 msgctl sys_msgctl | ||
81 | 72 64 fcntl sys_fcntl | ||
82 | 73 64 flock sys_flock | ||
83 | 74 64 fsync sys_fsync | ||
84 | 75 64 fdatasync sys_fdatasync | ||
85 | 76 64 truncate sys_truncate | ||
86 | 77 64 ftruncate sys_ftruncate | ||
87 | 78 64 getdents sys_getdents | ||
88 | 79 64 getcwd sys_getcwd | ||
89 | 80 64 chdir sys_chdir | ||
90 | 81 64 fchdir sys_fchdir | ||
91 | 82 64 rename sys_rename | ||
92 | 83 64 mkdir sys_mkdir | ||
93 | 84 64 rmdir sys_rmdir | ||
94 | 85 64 creat sys_creat | ||
95 | 86 64 link sys_link | ||
96 | 87 64 unlink sys_unlink | ||
97 | 88 64 symlink sys_symlink | ||
98 | 89 64 readlink sys_readlink | ||
99 | 90 64 chmod sys_chmod | ||
100 | 91 64 fchmod sys_fchmod | ||
101 | 92 64 chown sys_chown | ||
102 | 93 64 fchown sys_fchown | ||
103 | 94 64 lchown sys_lchown | ||
104 | 95 64 umask sys_umask | ||
105 | 96 64 gettimeofday sys_gettimeofday | ||
106 | 97 64 getrlimit sys_getrlimit | ||
107 | 98 64 getrusage sys_getrusage | ||
108 | 99 64 sysinfo sys_sysinfo | ||
109 | 100 64 times sys_times | ||
110 | 101 64 ptrace sys_ptrace | ||
111 | 102 64 getuid sys_getuid | ||
112 | 103 64 syslog sys_syslog | ||
113 | 104 64 getgid sys_getgid | ||
114 | 105 64 setuid sys_setuid | ||
115 | 106 64 setgid sys_setgid | ||
116 | 107 64 geteuid sys_geteuid | ||
117 | 108 64 getegid sys_getegid | ||
118 | 109 64 setpgid sys_setpgid | ||
119 | 110 64 getppid sys_getppid | ||
120 | 111 64 getpgrp sys_getpgrp | ||
121 | 112 64 setsid sys_setsid | ||
122 | 113 64 setreuid sys_setreuid | ||
123 | 114 64 setregid sys_setregid | ||
124 | 115 64 getgroups sys_getgroups | ||
125 | 116 64 setgroups sys_setgroups | ||
126 | 117 64 setresuid sys_setresuid | ||
127 | 118 64 getresuid sys_getresuid | ||
128 | 119 64 setresgid sys_setresgid | ||
129 | 120 64 getresgid sys_getresgid | ||
130 | 121 64 getpgid sys_getpgid | ||
131 | 122 64 setfsuid sys_setfsuid | ||
132 | 123 64 setfsgid sys_setfsgid | ||
133 | 124 64 getsid sys_getsid | ||
134 | 125 64 capget sys_capget | ||
135 | 126 64 capset sys_capset | ||
136 | 127 64 rt_sigpending sys_rt_sigpending | ||
137 | 128 64 rt_sigtimedwait sys_rt_sigtimedwait | ||
138 | 129 64 rt_sigqueueinfo sys_rt_sigqueueinfo | ||
139 | 130 64 rt_sigsuspend sys_rt_sigsuspend | ||
140 | 131 64 sigaltstack stub_sigaltstack | ||
141 | 132 64 utime sys_utime | ||
142 | 133 64 mknod sys_mknod | ||
143 | 134 64 uselib | ||
144 | 135 64 personality sys_personality | ||
145 | 136 64 ustat sys_ustat | ||
146 | 137 64 statfs sys_statfs | ||
147 | 138 64 fstatfs sys_fstatfs | ||
148 | 139 64 sysfs sys_sysfs | ||
149 | 140 64 getpriority sys_getpriority | ||
150 | 141 64 setpriority sys_setpriority | ||
151 | 142 64 sched_setparam sys_sched_setparam | ||
152 | 143 64 sched_getparam sys_sched_getparam | ||
153 | 144 64 sched_setscheduler sys_sched_setscheduler | ||
154 | 145 64 sched_getscheduler sys_sched_getscheduler | ||
155 | 146 64 sched_get_priority_max sys_sched_get_priority_max | ||
156 | 147 64 sched_get_priority_min sys_sched_get_priority_min | ||
157 | 148 64 sched_rr_get_interval sys_sched_rr_get_interval | ||
158 | 149 64 mlock sys_mlock | ||
159 | 150 64 munlock sys_munlock | ||
160 | 151 64 mlockall sys_mlockall | ||
161 | 152 64 munlockall sys_munlockall | ||
162 | 153 64 vhangup sys_vhangup | ||
163 | 154 64 modify_ldt sys_modify_ldt | ||
164 | 155 64 pivot_root sys_pivot_root | ||
165 | 156 64 _sysctl sys_sysctl | ||
166 | 157 64 prctl sys_prctl | ||
167 | 158 64 arch_prctl sys_arch_prctl | ||
168 | 159 64 adjtimex sys_adjtimex | ||
169 | 160 64 setrlimit sys_setrlimit | ||
170 | 161 64 chroot sys_chroot | ||
171 | 162 64 sync sys_sync | ||
172 | 163 64 acct sys_acct | ||
173 | 164 64 settimeofday sys_settimeofday | ||
174 | 165 64 mount sys_mount | ||
175 | 166 64 umount2 sys_umount | ||
176 | 167 64 swapon sys_swapon | ||
177 | 168 64 swapoff sys_swapoff | ||
178 | 169 64 reboot sys_reboot | ||
179 | 170 64 sethostname sys_sethostname | ||
180 | 171 64 setdomainname sys_setdomainname | ||
181 | 172 64 iopl stub_iopl | ||
182 | 173 64 ioperm sys_ioperm | ||
183 | 174 64 create_module | ||
184 | 175 64 init_module sys_init_module | ||
185 | 176 64 delete_module sys_delete_module | ||
186 | 177 64 get_kernel_syms | ||
187 | 178 64 query_module | ||
188 | 179 64 quotactl sys_quotactl | ||
189 | 180 64 nfsservctl | ||
190 | 181 64 getpmsg | ||
191 | 182 64 putpmsg | ||
192 | 183 64 afs_syscall | ||
193 | 184 64 tuxcall | ||
194 | 185 64 security | ||
195 | 186 64 gettid sys_gettid | ||
196 | 187 64 readahead sys_readahead | ||
197 | 188 64 setxattr sys_setxattr | ||
198 | 189 64 lsetxattr sys_lsetxattr | ||
199 | 190 64 fsetxattr sys_fsetxattr | ||
200 | 191 64 getxattr sys_getxattr | ||
201 | 192 64 lgetxattr sys_lgetxattr | ||
202 | 193 64 fgetxattr sys_fgetxattr | ||
203 | 194 64 listxattr sys_listxattr | ||
204 | 195 64 llistxattr sys_llistxattr | ||
205 | 196 64 flistxattr sys_flistxattr | ||
206 | 197 64 removexattr sys_removexattr | ||
207 | 198 64 lremovexattr sys_lremovexattr | ||
208 | 199 64 fremovexattr sys_fremovexattr | ||
209 | 200 64 tkill sys_tkill | ||
210 | 201 64 time sys_time | ||
211 | 202 64 futex sys_futex | ||
212 | 203 64 sched_setaffinity sys_sched_setaffinity | ||
213 | 204 64 sched_getaffinity sys_sched_getaffinity | ||
214 | 205 64 set_thread_area | ||
215 | 206 64 io_setup sys_io_setup | ||
216 | 207 64 io_destroy sys_io_destroy | ||
217 | 208 64 io_getevents sys_io_getevents | ||
218 | 209 64 io_submit sys_io_submit | ||
219 | 210 64 io_cancel sys_io_cancel | ||
220 | 211 64 get_thread_area | ||
221 | 212 64 lookup_dcookie sys_lookup_dcookie | ||
222 | 213 64 epoll_create sys_epoll_create | ||
223 | 214 64 epoll_ctl_old | ||
224 | 215 64 epoll_wait_old | ||
225 | 216 64 remap_file_pages sys_remap_file_pages | ||
226 | 217 64 getdents64 sys_getdents64 | ||
227 | 218 64 set_tid_address sys_set_tid_address | ||
228 | 219 64 restart_syscall sys_restart_syscall | ||
229 | 220 64 semtimedop sys_semtimedop | ||
230 | 221 64 fadvise64 sys_fadvise64 | ||
231 | 222 64 timer_create sys_timer_create | ||
232 | 223 64 timer_settime sys_timer_settime | ||
233 | 224 64 timer_gettime sys_timer_gettime | ||
234 | 225 64 timer_getoverrun sys_timer_getoverrun | ||
235 | 226 64 timer_delete sys_timer_delete | ||
236 | 227 64 clock_settime sys_clock_settime | ||
237 | 228 64 clock_gettime sys_clock_gettime | ||
238 | 229 64 clock_getres sys_clock_getres | ||
239 | 230 64 clock_nanosleep sys_clock_nanosleep | ||
240 | 231 64 exit_group sys_exit_group | ||
241 | 232 64 epoll_wait sys_epoll_wait | ||
242 | 233 64 epoll_ctl sys_epoll_ctl | ||
243 | 234 64 tgkill sys_tgkill | ||
244 | 235 64 utimes sys_utimes | ||
245 | 236 64 vserver | ||
246 | 237 64 mbind sys_mbind | ||
247 | 238 64 set_mempolicy sys_set_mempolicy | ||
248 | 239 64 get_mempolicy sys_get_mempolicy | ||
249 | 240 64 mq_open sys_mq_open | ||
250 | 241 64 mq_unlink sys_mq_unlink | ||
251 | 242 64 mq_timedsend sys_mq_timedsend | ||
252 | 243 64 mq_timedreceive sys_mq_timedreceive | ||
253 | 244 64 mq_notify sys_mq_notify | ||
254 | 245 64 mq_getsetattr sys_mq_getsetattr | ||
255 | 246 64 kexec_load sys_kexec_load | ||
256 | 247 64 waitid sys_waitid | ||
257 | 248 64 add_key sys_add_key | ||
258 | 249 64 request_key sys_request_key | ||
259 | 250 64 keyctl sys_keyctl | ||
260 | 251 64 ioprio_set sys_ioprio_set | ||
261 | 252 64 ioprio_get sys_ioprio_get | ||
262 | 253 64 inotify_init sys_inotify_init | ||
263 | 254 64 inotify_add_watch sys_inotify_add_watch | ||
264 | 255 64 inotify_rm_watch sys_inotify_rm_watch | ||
265 | 256 64 migrate_pages sys_migrate_pages | ||
266 | 257 64 openat sys_openat | ||
267 | 258 64 mkdirat sys_mkdirat | ||
268 | 259 64 mknodat sys_mknodat | ||
269 | 260 64 fchownat sys_fchownat | ||
270 | 261 64 futimesat sys_futimesat | ||
271 | 262 64 newfstatat sys_newfstatat | ||
272 | 263 64 unlinkat sys_unlinkat | ||
273 | 264 64 renameat sys_renameat | ||
274 | 265 64 linkat sys_linkat | ||
275 | 266 64 symlinkat sys_symlinkat | ||
276 | 267 64 readlinkat sys_readlinkat | ||
277 | 268 64 fchmodat sys_fchmodat | ||
278 | 269 64 faccessat sys_faccessat | ||
279 | 270 64 pselect6 sys_pselect6 | ||
280 | 271 64 ppoll sys_ppoll | ||
281 | 272 64 unshare sys_unshare | ||
282 | 273 64 set_robust_list sys_set_robust_list | ||
283 | 274 64 get_robust_list sys_get_robust_list | ||
284 | 275 64 splice sys_splice | ||
285 | 276 64 tee sys_tee | ||
286 | 277 64 sync_file_range sys_sync_file_range | ||
287 | 278 64 vmsplice sys_vmsplice | ||
288 | 279 64 move_pages sys_move_pages | ||
289 | 280 64 utimensat sys_utimensat | ||
290 | 281 64 epoll_pwait sys_epoll_pwait | ||
291 | 282 64 signalfd sys_signalfd | ||
292 | 283 64 timerfd_create sys_timerfd_create | ||
293 | 284 64 eventfd sys_eventfd | ||
294 | 285 64 fallocate sys_fallocate | ||
295 | 286 64 timerfd_settime sys_timerfd_settime | ||
296 | 287 64 timerfd_gettime sys_timerfd_gettime | ||
297 | 288 64 accept4 sys_accept4 | ||
298 | 289 64 signalfd4 sys_signalfd4 | ||
299 | 290 64 eventfd2 sys_eventfd2 | ||
300 | 291 64 epoll_create1 sys_epoll_create1 | ||
301 | 292 64 dup3 sys_dup3 | ||
302 | 293 64 pipe2 sys_pipe2 | ||
303 | 294 64 inotify_init1 sys_inotify_init1 | ||
304 | 295 64 preadv sys_preadv | ||
305 | 296 64 pwritev sys_pwritev | ||
306 | 297 64 rt_tgsigqueueinfo sys_rt_tgsigqueueinfo | ||
307 | 298 64 perf_event_open sys_perf_event_open | ||
308 | 299 64 recvmmsg sys_recvmmsg | ||
309 | 300 64 fanotify_init sys_fanotify_init | ||
310 | 301 64 fanotify_mark sys_fanotify_mark | ||
311 | 302 64 prlimit64 sys_prlimit64 | ||
312 | 303 64 name_to_handle_at sys_name_to_handle_at | ||
313 | 304 64 open_by_handle_at sys_open_by_handle_at | ||
314 | 305 64 clock_adjtime sys_clock_adjtime | ||
315 | 306 64 syncfs sys_syncfs | ||
316 | 307 64 sendmmsg sys_sendmmsg | ||
317 | 308 64 setns sys_setns | ||
318 | 309 64 getcpu sys_getcpu | ||
319 | 310 64 process_vm_readv sys_process_vm_readv | ||
320 | 311 64 process_vm_writev sys_process_vm_writev | ||
diff --git a/arch/x86/syscalls/syscallhdr.sh b/arch/x86/syscalls/syscallhdr.sh new file mode 100644 index 000000000000..31fd5f1f38f7 --- /dev/null +++ b/arch/x86/syscalls/syscallhdr.sh | |||
@@ -0,0 +1,27 @@ | |||
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_X86_`basename "$out" | sed \ | ||
10 | -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ | ||
11 | -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'` | ||
12 | grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( | ||
13 | echo "#ifndef ${fileguard}" | ||
14 | echo "#define ${fileguard} 1" | ||
15 | echo "" | ||
16 | |||
17 | while read nr abi name entry ; do | ||
18 | if [ -z "$offset" ]; then | ||
19 | echo "#define __NR_${prefix}${name} $nr" | ||
20 | else | ||
21 | echo "#define __NR_${prefix}${name} ($offset + $nr)" | ||
22 | fi | ||
23 | done | ||
24 | |||
25 | echo "" | ||
26 | echo "#endif /* ${fileguard} */" | ||
27 | ) > "$out" | ||
diff --git a/arch/x86/syscalls/syscalltbl.sh b/arch/x86/syscalls/syscalltbl.sh new file mode 100644 index 000000000000..0e7f8ec071e7 --- /dev/null +++ b/arch/x86/syscalls/syscalltbl.sh | |||
@@ -0,0 +1,15 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | in="$1" | ||
4 | out="$2" | ||
5 | |||
6 | grep '^[0-9]' "$in" | sort -n | ( | ||
7 | while read nr abi name entry compat; do | ||
8 | abi=`echo "$abi" | tr '[a-z]' '[A-Z]'` | ||
9 | if [ -n "$compat" ]; then | ||
10 | echo "__SYSCALL_${abi}($nr, $entry, $compat)" | ||
11 | elif [ -n "$entry" ]; then | ||
12 | echo "__SYSCALL_${abi}($nr, $entry, $entry)" | ||
13 | fi | ||
14 | done | ||
15 | ) > "$out" | ||
diff --git a/arch/x86/um/Makefile b/arch/x86/um/Makefile index 8fb58400e415..5d065b2222d3 100644 --- a/arch/x86/um/Makefile +++ b/arch/x86/um/Makefile | |||
@@ -37,7 +37,8 @@ subarch-$(CONFIG_MODULES) += ../kernel/module.o | |||
37 | USER_OBJS := bugs_$(BITS).o ptrace_user.o fault.o | 37 | USER_OBJS := bugs_$(BITS).o ptrace_user.o fault.o |
38 | 38 | ||
39 | extra-y += user-offsets.s | 39 | extra-y += user-offsets.s |
40 | $(obj)/user-offsets.s: c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) | 40 | $(obj)/user-offsets.s: c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) \ |
41 | -Iarch/x86/include/generated | ||
41 | 42 | ||
42 | UNPROFILE_OBJS := stub_segv.o | 43 | UNPROFILE_OBJS := stub_segv.o |
43 | CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING) | 44 | CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING) |
diff --git a/arch/x86/um/sys_call_table_32.S b/arch/x86/um/sys_call_table_32.S deleted file mode 100644 index a7ca80d2dceb..000000000000 --- a/arch/x86/um/sys_call_table_32.S +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | #include <linux/linkage.h> | ||
2 | /* Steal i386 syscall table for our purposes, but with some slight changes.*/ | ||
3 | |||
4 | #define sys_iopl sys_ni_syscall | ||
5 | #define sys_ioperm sys_ni_syscall | ||
6 | |||
7 | #define sys_vm86old sys_ni_syscall | ||
8 | #define sys_vm86 sys_ni_syscall | ||
9 | |||
10 | #define old_mmap sys_old_mmap | ||
11 | |||
12 | #define ptregs_fork sys_fork | ||
13 | #define ptregs_execve sys_execve | ||
14 | #define ptregs_iopl sys_iopl | ||
15 | #define ptregs_vm86old sys_vm86old | ||
16 | #define ptregs_clone sys_clone | ||
17 | #define ptregs_vm86 sys_vm86 | ||
18 | #define ptregs_sigaltstack sys_sigaltstack | ||
19 | #define ptregs_vfork sys_vfork | ||
20 | |||
21 | .section .rodata,"a" | ||
22 | |||
23 | #include "../kernel/syscall_table_32.S" | ||
24 | |||
25 | ENTRY(syscall_table_size) | ||
26 | .long .-sys_call_table | ||
diff --git a/arch/x86/um/sys_call_table_32.c b/arch/x86/um/sys_call_table_32.c new file mode 100644 index 000000000000..416bd40c0eba --- /dev/null +++ b/arch/x86/um/sys_call_table_32.c | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * System call table for UML/i386, copied from arch/x86/kernel/syscall_*.c | ||
3 | * with some changes for UML. | ||
4 | */ | ||
5 | |||
6 | #include <linux/linkage.h> | ||
7 | #include <linux/sys.h> | ||
8 | #include <linux/cache.h> | ||
9 | #include <generated/user_constants.h> | ||
10 | |||
11 | #define __NO_STUBS | ||
12 | |||
13 | /* | ||
14 | * Below you can see, in terms of #define's, the differences between the x86-64 | ||
15 | * and the UML syscall table. | ||
16 | */ | ||
17 | |||
18 | /* Not going to be implemented by UML, since we have no hardware. */ | ||
19 | #define sys_iopl sys_ni_syscall | ||
20 | #define sys_ioperm sys_ni_syscall | ||
21 | |||
22 | #define sys_vm86old sys_ni_syscall | ||
23 | #define sys_vm86 sys_ni_syscall | ||
24 | |||
25 | #define old_mmap sys_old_mmap | ||
26 | |||
27 | #define ptregs_fork sys_fork | ||
28 | #define ptregs_execve sys_execve | ||
29 | #define ptregs_iopl sys_iopl | ||
30 | #define ptregs_vm86old sys_vm86old | ||
31 | #define ptregs_clone sys_clone | ||
32 | #define ptregs_vm86 sys_vm86 | ||
33 | #define ptregs_sigaltstack sys_sigaltstack | ||
34 | #define ptregs_vfork sys_vfork | ||
35 | |||
36 | #define __SYSCALL_I386(nr, sym, compat) extern asmlinkage void sym(void) ; | ||
37 | #include <asm/syscalls_32.h> | ||
38 | |||
39 | #undef __SYSCALL_I386 | ||
40 | #define __SYSCALL_I386(nr, sym, compat) [ nr ] = sym, | ||
41 | |||
42 | typedef void (*sys_call_ptr_t)(void); | ||
43 | |||
44 | extern void sys_ni_syscall(void); | ||
45 | |||
46 | const sys_call_ptr_t sys_call_table[] __cacheline_aligned = { | ||
47 | /* | ||
48 | * Smells like a compiler bug -- it doesn't work | ||
49 | * when the & below is removed. | ||
50 | */ | ||
51 | [0 ... __NR_syscall_max] = &sys_ni_syscall, | ||
52 | #include <asm/syscalls_32.h> | ||
53 | }; | ||
54 | |||
55 | int syscall_table_size = sizeof(sys_call_table); | ||
diff --git a/arch/x86/um/sys_call_table_64.c b/arch/x86/um/sys_call_table_64.c index 99522f78b162..fe626c3ba01b 100644 --- a/arch/x86/um/sys_call_table_64.c +++ b/arch/x86/um/sys_call_table_64.c | |||
@@ -1,11 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * System call table for UML/x86-64, copied from arch/x86_64/kernel/syscall.c | 2 | * System call table for UML/x86-64, copied from arch/x86/kernel/syscall_*.c |
3 | * with some changes for UML. | 3 | * with some changes for UML. |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/linkage.h> | 6 | #include <linux/linkage.h> |
7 | #include <linux/sys.h> | 7 | #include <linux/sys.h> |
8 | #include <linux/cache.h> | 8 | #include <linux/cache.h> |
9 | #include <generated/user_constants.h> | ||
9 | 10 | ||
10 | #define __NO_STUBS | 11 | #define __NO_STUBS |
11 | 12 | ||
@@ -34,31 +35,23 @@ | |||
34 | #define stub_sigaltstack sys_sigaltstack | 35 | #define stub_sigaltstack sys_sigaltstack |
35 | #define stub_rt_sigreturn sys_rt_sigreturn | 36 | #define stub_rt_sigreturn sys_rt_sigreturn |
36 | 37 | ||
37 | #define __SYSCALL(nr, sym) extern asmlinkage void sym(void) ; | 38 | #define __SYSCALL_64(nr, sym, compat) extern asmlinkage void sym(void) ; |
38 | #undef _ASM_X86_UNISTD_64_H | 39 | #include <asm/syscalls_64.h> |
39 | #include "../../x86/include/asm/unistd_64.h" | ||
40 | 40 | ||
41 | #undef __SYSCALL | 41 | #undef __SYSCALL_64 |
42 | #define __SYSCALL(nr, sym) [ nr ] = sym, | 42 | #define __SYSCALL_64(nr, sym, compat) [ nr ] = sym, |
43 | #undef _ASM_X86_UNISTD_64_H | ||
44 | 43 | ||
45 | typedef void (*sys_call_ptr_t)(void); | 44 | typedef void (*sys_call_ptr_t)(void); |
46 | 45 | ||
47 | extern void sys_ni_syscall(void); | 46 | extern void sys_ni_syscall(void); |
48 | 47 | ||
49 | /* | 48 | const sys_call_ptr_t sys_call_table[] __cacheline_aligned = { |
50 | * We used to have a trick here which made sure that holes in the | 49 | /* |
51 | * x86_64 table were filled in with sys_ni_syscall, but a comment in | 50 | * Smells like a compiler bug -- it doesn't work |
52 | * unistd_64.h says that holes aren't allowed, so the trick was | 51 | * when the & below is removed. |
53 | * removed. | 52 | */ |
54 | * The trick looked like this | 53 | [0 ... __NR_syscall_max] = &sys_ni_syscall, |
55 | * [0 ... UM_NR_syscall_max] = &sys_ni_syscall | 54 | #include <asm/syscalls_64.h> |
56 | * before including unistd_64.h - the later initializations overwrote | ||
57 | * the sys_ni_syscall filler. | ||
58 | */ | ||
59 | |||
60 | sys_call_ptr_t sys_call_table[] __cacheline_aligned = { | ||
61 | #include <asm/unistd_64.h> | ||
62 | }; | 55 | }; |
63 | 56 | ||
64 | int syscall_table_size = sizeof(sys_call_table); | 57 | int syscall_table_size = sizeof(sys_call_table); |
diff --git a/arch/x86/um/user-offsets.c b/arch/x86/um/user-offsets.c index ca49be8ddd0c..5edf4f4bbf53 100644 --- a/arch/x86/um/user-offsets.c +++ b/arch/x86/um/user-offsets.c | |||
@@ -8,6 +8,18 @@ | |||
8 | #include <asm/ptrace.h> | 8 | #include <asm/ptrace.h> |
9 | #include <asm/types.h> | 9 | #include <asm/types.h> |
10 | 10 | ||
11 | #ifdef __i386__ | ||
12 | #define __SYSCALL_I386(nr, sym, compat) [nr] = 1, | ||
13 | static char syscalls[] = { | ||
14 | #include <asm/syscalls_32.h> | ||
15 | }; | ||
16 | #else | ||
17 | #define __SYSCALL_64(nr, sym, compat) [nr] = 1, | ||
18 | static char syscalls[] = { | ||
19 | #include <asm/syscalls_64.h> | ||
20 | }; | ||
21 | #endif | ||
22 | |||
11 | #define DEFINE(sym, val) \ | 23 | #define DEFINE(sym, val) \ |
12 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) | 24 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) |
13 | 25 | ||
@@ -77,4 +89,7 @@ void foo(void) | |||
77 | DEFINE(UM_PROT_READ, PROT_READ); | 89 | DEFINE(UM_PROT_READ, PROT_READ); |
78 | DEFINE(UM_PROT_WRITE, PROT_WRITE); | 90 | DEFINE(UM_PROT_WRITE, PROT_WRITE); |
79 | DEFINE(UM_PROT_EXEC, PROT_EXEC); | 91 | DEFINE(UM_PROT_EXEC, PROT_EXEC); |
92 | |||
93 | DEFINE(__NR_syscall_max, sizeof(syscalls) - 1); | ||
94 | DEFINE(NR_syscalls, sizeof(syscalls)); | ||
80 | } | 95 | } |
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst index a57f5bd5a13d..d3bae5e7b601 100644 --- a/scripts/Makefile.headersinst +++ b/scripts/Makefile.headersinst | |||
@@ -4,12 +4,16 @@ | |||
4 | # header-y - list files to be installed. They are preprocessed | 4 | # header-y - list files to be installed. They are preprocessed |
5 | # to remove __KERNEL__ section of the file | 5 | # to remove __KERNEL__ section of the file |
6 | # objhdr-y - Same as header-y but for generated files | 6 | # objhdr-y - Same as header-y but for generated files |
7 | # genhdr-y - Same as objhdr-y but in a generated/ directory | ||
7 | # | 8 | # |
8 | # ========================================================================== | 9 | # ========================================================================== |
9 | 10 | ||
10 | # called may set destination dir (when installing to asm/) | 11 | # called may set destination dir (when installing to asm/) |
11 | _dst := $(if $(dst),$(dst),$(obj)) | 12 | _dst := $(if $(dst),$(dst),$(obj)) |
12 | 13 | ||
14 | # generated header directory | ||
15 | gen := $(if $(gen),$(gen),$(subst include/,include/generated/,$(obj))) | ||
16 | |||
13 | kbuild-file := $(srctree)/$(obj)/Kbuild | 17 | kbuild-file := $(srctree)/$(obj)/Kbuild |
14 | include $(kbuild-file) | 18 | include $(kbuild-file) |
15 | 19 | ||
@@ -33,9 +37,10 @@ wrapper-files := $(filter $(header-y), $(generic-y)) | |||
33 | 37 | ||
34 | # all headers files for this dir | 38 | # all headers files for this dir |
35 | header-y := $(filter-out $(generic-y), $(header-y)) | 39 | header-y := $(filter-out $(generic-y), $(header-y)) |
36 | all-files := $(header-y) $(objhdr-y) $(wrapper-files) | 40 | all-files := $(header-y) $(objhdr-y) $(genhdr-y) $(wrapper-files) |
37 | input-files := $(addprefix $(srctree)/$(obj)/,$(header-y)) \ | 41 | input-files := $(addprefix $(srctree)/$(obj)/,$(header-y)) \ |
38 | $(addprefix $(objtree)/$(obj)/,$(objhdr-y)) | 42 | $(addprefix $(objtree)/$(obj)/,$(objhdr-y)) \ |
43 | $(addprefix $(objtree)/$(gen)/,$(genhdr-y)) | ||
39 | output-files := $(addprefix $(install)/, $(all-files)) | 44 | output-files := $(addprefix $(install)/, $(all-files)) |
40 | 45 | ||
41 | # Work out what needs to be removed | 46 | # Work out what needs to be removed |
@@ -52,6 +57,7 @@ quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\ | |||
52 | cmd_install = \ | 57 | cmd_install = \ |
53 | $(PERL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \ | 58 | $(PERL) $< $(srctree)/$(obj) $(install) $(SRCARCH) $(header-y); \ |
54 | $(PERL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \ | 59 | $(PERL) $< $(objtree)/$(obj) $(install) $(SRCARCH) $(objhdr-y); \ |
60 | $(PERL) $< $(objtree)/$(gen) $(install) $(SRCARCH) $(genhdr-y); \ | ||
55 | for F in $(wrapper-files); do \ | 61 | for F in $(wrapper-files); do \ |
56 | echo "\#include <asm-generic/$$F>" > $(install)/$$F; \ | 62 | echo "\#include <asm-generic/$$F>" > $(install)/$$F; \ |
57 | done; \ | 63 | done; \ |
diff --git a/scripts/checksyscalls.sh b/scripts/checksyscalls.sh index 3ab316e52313..d24810fc6af6 100755 --- a/scripts/checksyscalls.sh +++ b/scripts/checksyscalls.sh | |||
@@ -198,11 +198,16 @@ EOF | |||
198 | } | 198 | } |
199 | 199 | ||
200 | syscall_list() { | 200 | syscall_list() { |
201 | sed -n -e '/^\#define/ s/[^_]*__NR_\([^[:space:]]*\).*/\ | 201 | grep '^[0-9]' "$1" | sort -n | ( |
202 | \#if !defined \(__NR_\1\) \&\& !defined \(__IGNORE_\1\)\ | 202 | while read nr abi name entry ; do |
203 | \#warning syscall \1 not implemented\ | 203 | echo <<EOF |
204 | \#endif/p' $1 | 204 | #if !defined(__NR_${name}) && !defined(__IGNORE_${name}) |
205 | #warning syscall ${name} not implemented | ||
206 | #endif | ||
207 | EOF | ||
208 | done | ||
209 | ) | ||
205 | } | 210 | } |
206 | 211 | ||
207 | (ignore_list && syscall_list $(dirname $0)/../arch/x86/include/asm/unistd_32.h) | \ | 212 | (ignore_list && syscall_list $(dirname $0)/../arch/x86/syscalls/syscall_32.tbl) | \ |
208 | $* -E -x c - > /dev/null | 213 | $* -E -x c - > /dev/null |