mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 23:34:05 +08:00
Merge branch 'parisc-4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc updates from Helge Deller: "The major change in this patchset is the new system call table generation support from Firoz Khan" * 'parisc-4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: syscalls: ignore nfsservctl for other architectures parisc: generate uapi header and system call table files parisc: add system call table generation support parisc: remove __NR_Linux from uapi header file. parisc: add __NR_syscalls along with __NR_Linux_syscalls parisc: move __IGNORE* entries to non uapi header parisc: Fix HP SDC hpa address output parisc: Fix serio address output parisc: Split out alternative live patching code
This commit is contained in:
commit
a5f2bd479f
@ -163,3 +163,6 @@ define archhelp
|
||||
@echo ' copy to $$(INSTALL_PATH)'
|
||||
@echo ' zinstall - Install compressed vmlinuz kernel'
|
||||
endef
|
||||
|
||||
archheaders:
|
||||
$(Q)$(MAKE) $(build)=arch/parisc/kernel/syscalls all
|
||||
|
@ -1,3 +1,6 @@
|
||||
generated-y += syscall_table_32.h
|
||||
generated-y += syscall_table_64.h
|
||||
generated-y += syscall_table_c32.h
|
||||
generic-y += barrier.h
|
||||
generic-y += current.h
|
||||
generic-y += device.h
|
||||
|
@ -2,6 +2,7 @@
|
||||
#ifndef __ASM_PARISC_ALTERNATIVE_H
|
||||
#define __ASM_PARISC_ALTERNATIVE_H
|
||||
|
||||
#define ALT_COND_ALWAYS 0x80 /* always replace instruction */
|
||||
#define ALT_COND_NO_SMP 0x01 /* when running UP instead of SMP */
|
||||
#define ALT_COND_NO_DCACHE 0x02 /* if system has no d-cache */
|
||||
#define ALT_COND_NO_ICACHE 0x04 /* if system has no i-cache */
|
||||
@ -26,6 +27,9 @@ struct alt_instr {
|
||||
};
|
||||
|
||||
void set_kernel_text_rw(int enable_read_write);
|
||||
void apply_alternatives_all(void);
|
||||
void apply_alternatives(struct alt_instr *start, struct alt_instr *end,
|
||||
const char *module_name);
|
||||
|
||||
/* Alternative SMP implementation. */
|
||||
#define ALTERNATIVE(cond, replacement) "!0:" \
|
||||
|
@ -4,10 +4,18 @@
|
||||
|
||||
#include <uapi/asm/unistd.h>
|
||||
|
||||
#define __NR_Linux_syscalls __NR_syscalls
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#define SYS_ify(syscall_name) __NR_##syscall_name
|
||||
|
||||
#define __IGNORE_select /* newselect */
|
||||
#define __IGNORE_fadvise64 /* fadvise64_64 */
|
||||
#define __IGNORE_pkey_mprotect
|
||||
#define __IGNORE_pkey_alloc
|
||||
#define __IGNORE_pkey_free
|
||||
|
||||
#ifndef ASM_LINE_SEP
|
||||
# define ASM_LINE_SEP ;
|
||||
#endif
|
||||
|
@ -1,6 +1,8 @@
|
||||
# UAPI Header export list
|
||||
include include/uapi/asm-generic/Kbuild.asm
|
||||
|
||||
generated-y += unistd_32.h
|
||||
generated-y += unistd_64.h
|
||||
generic-y += auxvec.h
|
||||
generic-y += bpf_perf_event.h
|
||||
generic-y += kvm_para.h
|
||||
|
@ -2,379 +2,12 @@
|
||||
#ifndef _UAPI_ASM_PARISC_UNISTD_H_
|
||||
#define _UAPI_ASM_PARISC_UNISTD_H_
|
||||
|
||||
/*
|
||||
* Linux system call numbers.
|
||||
*
|
||||
* Cary Coutant says that we should just use another syscall gateway
|
||||
* page to avoid clashing with the HPUX space, and I think he's right:
|
||||
* it will would keep a branch out of our syscall entry path, at the
|
||||
* very least. If we decide to change it later, we can ``just'' tweak
|
||||
* the LINUX_GATEWAY_ADDR define at the bottom and make __NR_Linux be
|
||||
* 1024 or something. Oh, and recompile libc. =)
|
||||
*/
|
||||
#ifdef __LP64__
|
||||
#include <asm/unistd_64.h>
|
||||
#else
|
||||
#include <asm/unistd_32.h>
|
||||
#endif
|
||||
|
||||
#define __NR_Linux 0
|
||||
#define __NR_restart_syscall (__NR_Linux + 0)
|
||||
#define __NR_exit (__NR_Linux + 1)
|
||||
#define __NR_fork (__NR_Linux + 2)
|
||||
#define __NR_read (__NR_Linux + 3)
|
||||
#define __NR_write (__NR_Linux + 4)
|
||||
#define __NR_open (__NR_Linux + 5)
|
||||
#define __NR_close (__NR_Linux + 6)
|
||||
#define __NR_waitpid (__NR_Linux + 7)
|
||||
#define __NR_creat (__NR_Linux + 8)
|
||||
#define __NR_link (__NR_Linux + 9)
|
||||
#define __NR_unlink (__NR_Linux + 10)
|
||||
#define __NR_execve (__NR_Linux + 11)
|
||||
#define __NR_chdir (__NR_Linux + 12)
|
||||
#define __NR_time (__NR_Linux + 13)
|
||||
#define __NR_mknod (__NR_Linux + 14)
|
||||
#define __NR_chmod (__NR_Linux + 15)
|
||||
#define __NR_lchown (__NR_Linux + 16)
|
||||
#define __NR_socket (__NR_Linux + 17)
|
||||
#define __NR_stat (__NR_Linux + 18)
|
||||
#define __NR_lseek (__NR_Linux + 19)
|
||||
#define __NR_getpid (__NR_Linux + 20)
|
||||
#define __NR_mount (__NR_Linux + 21)
|
||||
#define __NR_bind (__NR_Linux + 22)
|
||||
#define __NR_setuid (__NR_Linux + 23)
|
||||
#define __NR_getuid (__NR_Linux + 24)
|
||||
#define __NR_stime (__NR_Linux + 25)
|
||||
#define __NR_ptrace (__NR_Linux + 26)
|
||||
#define __NR_alarm (__NR_Linux + 27)
|
||||
#define __NR_fstat (__NR_Linux + 28)
|
||||
#define __NR_pause (__NR_Linux + 29)
|
||||
#define __NR_utime (__NR_Linux + 30)
|
||||
#define __NR_connect (__NR_Linux + 31)
|
||||
#define __NR_listen (__NR_Linux + 32)
|
||||
#define __NR_access (__NR_Linux + 33)
|
||||
#define __NR_nice (__NR_Linux + 34)
|
||||
#define __NR_accept (__NR_Linux + 35)
|
||||
#define __NR_sync (__NR_Linux + 36)
|
||||
#define __NR_kill (__NR_Linux + 37)
|
||||
#define __NR_rename (__NR_Linux + 38)
|
||||
#define __NR_mkdir (__NR_Linux + 39)
|
||||
#define __NR_rmdir (__NR_Linux + 40)
|
||||
#define __NR_dup (__NR_Linux + 41)
|
||||
#define __NR_pipe (__NR_Linux + 42)
|
||||
#define __NR_times (__NR_Linux + 43)
|
||||
#define __NR_getsockname (__NR_Linux + 44)
|
||||
#define __NR_brk (__NR_Linux + 45)
|
||||
#define __NR_setgid (__NR_Linux + 46)
|
||||
#define __NR_getgid (__NR_Linux + 47)
|
||||
#define __NR_signal (__NR_Linux + 48)
|
||||
#define __NR_geteuid (__NR_Linux + 49)
|
||||
#define __NR_getegid (__NR_Linux + 50)
|
||||
#define __NR_acct (__NR_Linux + 51)
|
||||
#define __NR_umount2 (__NR_Linux + 52)
|
||||
#define __NR_getpeername (__NR_Linux + 53)
|
||||
#define __NR_ioctl (__NR_Linux + 54)
|
||||
#define __NR_fcntl (__NR_Linux + 55)
|
||||
#define __NR_socketpair (__NR_Linux + 56)
|
||||
#define __NR_setpgid (__NR_Linux + 57)
|
||||
#define __NR_send (__NR_Linux + 58)
|
||||
#define __NR_uname (__NR_Linux + 59)
|
||||
#define __NR_umask (__NR_Linux + 60)
|
||||
#define __NR_chroot (__NR_Linux + 61)
|
||||
#define __NR_ustat (__NR_Linux + 62)
|
||||
#define __NR_dup2 (__NR_Linux + 63)
|
||||
#define __NR_getppid (__NR_Linux + 64)
|
||||
#define __NR_getpgrp (__NR_Linux + 65)
|
||||
#define __NR_setsid (__NR_Linux + 66)
|
||||
#define __NR_pivot_root (__NR_Linux + 67)
|
||||
#define __NR_sgetmask (__NR_Linux + 68)
|
||||
#define __NR_ssetmask (__NR_Linux + 69)
|
||||
#define __NR_setreuid (__NR_Linux + 70)
|
||||
#define __NR_setregid (__NR_Linux + 71)
|
||||
#define __NR_mincore (__NR_Linux + 72)
|
||||
#define __NR_sigpending (__NR_Linux + 73)
|
||||
#define __NR_sethostname (__NR_Linux + 74)
|
||||
#define __NR_setrlimit (__NR_Linux + 75)
|
||||
#define __NR_getrlimit (__NR_Linux + 76)
|
||||
#define __NR_getrusage (__NR_Linux + 77)
|
||||
#define __NR_gettimeofday (__NR_Linux + 78)
|
||||
#define __NR_settimeofday (__NR_Linux + 79)
|
||||
#define __NR_getgroups (__NR_Linux + 80)
|
||||
#define __NR_setgroups (__NR_Linux + 81)
|
||||
#define __NR_sendto (__NR_Linux + 82)
|
||||
#define __NR_symlink (__NR_Linux + 83)
|
||||
#define __NR_lstat (__NR_Linux + 84)
|
||||
#define __NR_readlink (__NR_Linux + 85)
|
||||
#define __NR_uselib (__NR_Linux + 86)
|
||||
#define __NR_swapon (__NR_Linux + 87)
|
||||
#define __NR_reboot (__NR_Linux + 88)
|
||||
#define __NR_mmap2 (__NR_Linux + 89)
|
||||
#define __NR_mmap (__NR_Linux + 90)
|
||||
#define __NR_munmap (__NR_Linux + 91)
|
||||
#define __NR_truncate (__NR_Linux + 92)
|
||||
#define __NR_ftruncate (__NR_Linux + 93)
|
||||
#define __NR_fchmod (__NR_Linux + 94)
|
||||
#define __NR_fchown (__NR_Linux + 95)
|
||||
#define __NR_getpriority (__NR_Linux + 96)
|
||||
#define __NR_setpriority (__NR_Linux + 97)
|
||||
#define __NR_recv (__NR_Linux + 98)
|
||||
#define __NR_statfs (__NR_Linux + 99)
|
||||
#define __NR_fstatfs (__NR_Linux + 100)
|
||||
#define __NR_stat64 (__NR_Linux + 101)
|
||||
/* #define __NR_socketcall (__NR_Linux + 102) */
|
||||
#define __NR_syslog (__NR_Linux + 103)
|
||||
#define __NR_setitimer (__NR_Linux + 104)
|
||||
#define __NR_getitimer (__NR_Linux + 105)
|
||||
#define __NR_capget (__NR_Linux + 106)
|
||||
#define __NR_capset (__NR_Linux + 107)
|
||||
#define __NR_pread64 (__NR_Linux + 108)
|
||||
#define __NR_pwrite64 (__NR_Linux + 109)
|
||||
#define __NR_getcwd (__NR_Linux + 110)
|
||||
#define __NR_vhangup (__NR_Linux + 111)
|
||||
#define __NR_fstat64 (__NR_Linux + 112)
|
||||
#define __NR_vfork (__NR_Linux + 113)
|
||||
#define __NR_wait4 (__NR_Linux + 114)
|
||||
#define __NR_swapoff (__NR_Linux + 115)
|
||||
#define __NR_sysinfo (__NR_Linux + 116)
|
||||
#define __NR_shutdown (__NR_Linux + 117)
|
||||
#define __NR_fsync (__NR_Linux + 118)
|
||||
#define __NR_madvise (__NR_Linux + 119)
|
||||
#define __NR_clone (__NR_Linux + 120)
|
||||
#define __NR_setdomainname (__NR_Linux + 121)
|
||||
#define __NR_sendfile (__NR_Linux + 122)
|
||||
#define __NR_recvfrom (__NR_Linux + 123)
|
||||
#define __NR_adjtimex (__NR_Linux + 124)
|
||||
#define __NR_mprotect (__NR_Linux + 125)
|
||||
#define __NR_sigprocmask (__NR_Linux + 126)
|
||||
#define __NR_create_module (__NR_Linux + 127) /* not used */
|
||||
#define __NR_init_module (__NR_Linux + 128)
|
||||
#define __NR_delete_module (__NR_Linux + 129)
|
||||
#define __NR_get_kernel_syms (__NR_Linux + 130) /* not used */
|
||||
#define __NR_quotactl (__NR_Linux + 131)
|
||||
#define __NR_getpgid (__NR_Linux + 132)
|
||||
#define __NR_fchdir (__NR_Linux + 133)
|
||||
#define __NR_bdflush (__NR_Linux + 134)
|
||||
#define __NR_sysfs (__NR_Linux + 135)
|
||||
#define __NR_personality (__NR_Linux + 136)
|
||||
#define __NR_afs_syscall (__NR_Linux + 137) /* not used */
|
||||
#define __NR_setfsuid (__NR_Linux + 138)
|
||||
#define __NR_setfsgid (__NR_Linux + 139)
|
||||
#define __NR__llseek (__NR_Linux + 140)
|
||||
#define __NR_getdents (__NR_Linux + 141)
|
||||
#define __NR__newselect (__NR_Linux + 142)
|
||||
#define __NR_flock (__NR_Linux + 143)
|
||||
#define __NR_msync (__NR_Linux + 144)
|
||||
#define __NR_readv (__NR_Linux + 145)
|
||||
#define __NR_writev (__NR_Linux + 146)
|
||||
#define __NR_getsid (__NR_Linux + 147)
|
||||
#define __NR_fdatasync (__NR_Linux + 148)
|
||||
#define __NR__sysctl (__NR_Linux + 149)
|
||||
#define __NR_mlock (__NR_Linux + 150)
|
||||
#define __NR_munlock (__NR_Linux + 151)
|
||||
#define __NR_mlockall (__NR_Linux + 152)
|
||||
#define __NR_munlockall (__NR_Linux + 153)
|
||||
#define __NR_sched_setparam (__NR_Linux + 154)
|
||||
#define __NR_sched_getparam (__NR_Linux + 155)
|
||||
#define __NR_sched_setscheduler (__NR_Linux + 156)
|
||||
#define __NR_sched_getscheduler (__NR_Linux + 157)
|
||||
#define __NR_sched_yield (__NR_Linux + 158)
|
||||
#define __NR_sched_get_priority_max (__NR_Linux + 159)
|
||||
#define __NR_sched_get_priority_min (__NR_Linux + 160)
|
||||
#define __NR_sched_rr_get_interval (__NR_Linux + 161)
|
||||
#define __NR_nanosleep (__NR_Linux + 162)
|
||||
#define __NR_mremap (__NR_Linux + 163)
|
||||
#define __NR_setresuid (__NR_Linux + 164)
|
||||
#define __NR_getresuid (__NR_Linux + 165)
|
||||
#define __NR_sigaltstack (__NR_Linux + 166)
|
||||
#define __NR_query_module (__NR_Linux + 167) /* not used */
|
||||
#define __NR_poll (__NR_Linux + 168)
|
||||
#define __NR_nfsservctl (__NR_Linux + 169) /* not used */
|
||||
#define __NR_setresgid (__NR_Linux + 170)
|
||||
#define __NR_getresgid (__NR_Linux + 171)
|
||||
#define __NR_prctl (__NR_Linux + 172)
|
||||
#define __NR_rt_sigreturn (__NR_Linux + 173)
|
||||
#define __NR_rt_sigaction (__NR_Linux + 174)
|
||||
#define __NR_rt_sigprocmask (__NR_Linux + 175)
|
||||
#define __NR_rt_sigpending (__NR_Linux + 176)
|
||||
#define __NR_rt_sigtimedwait (__NR_Linux + 177)
|
||||
#define __NR_rt_sigqueueinfo (__NR_Linux + 178)
|
||||
#define __NR_rt_sigsuspend (__NR_Linux + 179)
|
||||
#define __NR_chown (__NR_Linux + 180)
|
||||
#define __NR_setsockopt (__NR_Linux + 181)
|
||||
#define __NR_getsockopt (__NR_Linux + 182)
|
||||
#define __NR_sendmsg (__NR_Linux + 183)
|
||||
#define __NR_recvmsg (__NR_Linux + 184)
|
||||
#define __NR_semop (__NR_Linux + 185)
|
||||
#define __NR_semget (__NR_Linux + 186)
|
||||
#define __NR_semctl (__NR_Linux + 187)
|
||||
#define __NR_msgsnd (__NR_Linux + 188)
|
||||
#define __NR_msgrcv (__NR_Linux + 189)
|
||||
#define __NR_msgget (__NR_Linux + 190)
|
||||
#define __NR_msgctl (__NR_Linux + 191)
|
||||
#define __NR_shmat (__NR_Linux + 192)
|
||||
#define __NR_shmdt (__NR_Linux + 193)
|
||||
#define __NR_shmget (__NR_Linux + 194)
|
||||
#define __NR_shmctl (__NR_Linux + 195)
|
||||
#define __NR_getpmsg (__NR_Linux + 196) /* not used */
|
||||
#define __NR_putpmsg (__NR_Linux + 197) /* not used */
|
||||
#define __NR_lstat64 (__NR_Linux + 198)
|
||||
#define __NR_truncate64 (__NR_Linux + 199)
|
||||
#define __NR_ftruncate64 (__NR_Linux + 200)
|
||||
#define __NR_getdents64 (__NR_Linux + 201)
|
||||
#define __NR_fcntl64 (__NR_Linux + 202)
|
||||
#define __NR_attrctl (__NR_Linux + 203) /* not used */
|
||||
#define __NR_acl_get (__NR_Linux + 204) /* not used */
|
||||
#define __NR_acl_set (__NR_Linux + 205) /* not used */
|
||||
#define __NR_gettid (__NR_Linux + 206)
|
||||
#define __NR_readahead (__NR_Linux + 207)
|
||||
#define __NR_tkill (__NR_Linux + 208)
|
||||
#define __NR_sendfile64 (__NR_Linux + 209)
|
||||
#define __NR_futex (__NR_Linux + 210)
|
||||
#define __NR_sched_setaffinity (__NR_Linux + 211)
|
||||
#define __NR_sched_getaffinity (__NR_Linux + 212)
|
||||
#define __NR_set_thread_area (__NR_Linux + 213) /* not used */
|
||||
#define __NR_get_thread_area (__NR_Linux + 214) /* not used */
|
||||
#define __NR_io_setup (__NR_Linux + 215)
|
||||
#define __NR_io_destroy (__NR_Linux + 216)
|
||||
#define __NR_io_getevents (__NR_Linux + 217)
|
||||
#define __NR_io_submit (__NR_Linux + 218)
|
||||
#define __NR_io_cancel (__NR_Linux + 219)
|
||||
#define __NR_alloc_hugepages (__NR_Linux + 220) /* not used */
|
||||
#define __NR_free_hugepages (__NR_Linux + 221) /* not used */
|
||||
#define __NR_exit_group (__NR_Linux + 222)
|
||||
#define __NR_lookup_dcookie (__NR_Linux + 223)
|
||||
#define __NR_epoll_create (__NR_Linux + 224)
|
||||
#define __NR_epoll_ctl (__NR_Linux + 225)
|
||||
#define __NR_epoll_wait (__NR_Linux + 226)
|
||||
#define __NR_remap_file_pages (__NR_Linux + 227)
|
||||
#define __NR_semtimedop (__NR_Linux + 228)
|
||||
#define __NR_mq_open (__NR_Linux + 229)
|
||||
#define __NR_mq_unlink (__NR_Linux + 230)
|
||||
#define __NR_mq_timedsend (__NR_Linux + 231)
|
||||
#define __NR_mq_timedreceive (__NR_Linux + 232)
|
||||
#define __NR_mq_notify (__NR_Linux + 233)
|
||||
#define __NR_mq_getsetattr (__NR_Linux + 234)
|
||||
#define __NR_waitid (__NR_Linux + 235)
|
||||
#define __NR_fadvise64_64 (__NR_Linux + 236)
|
||||
#define __NR_set_tid_address (__NR_Linux + 237)
|
||||
#define __NR_setxattr (__NR_Linux + 238)
|
||||
#define __NR_lsetxattr (__NR_Linux + 239)
|
||||
#define __NR_fsetxattr (__NR_Linux + 240)
|
||||
#define __NR_getxattr (__NR_Linux + 241)
|
||||
#define __NR_lgetxattr (__NR_Linux + 242)
|
||||
#define __NR_fgetxattr (__NR_Linux + 243)
|
||||
#define __NR_listxattr (__NR_Linux + 244)
|
||||
#define __NR_llistxattr (__NR_Linux + 245)
|
||||
#define __NR_flistxattr (__NR_Linux + 246)
|
||||
#define __NR_removexattr (__NR_Linux + 247)
|
||||
#define __NR_lremovexattr (__NR_Linux + 248)
|
||||
#define __NR_fremovexattr (__NR_Linux + 249)
|
||||
#define __NR_timer_create (__NR_Linux + 250)
|
||||
#define __NR_timer_settime (__NR_Linux + 251)
|
||||
#define __NR_timer_gettime (__NR_Linux + 252)
|
||||
#define __NR_timer_getoverrun (__NR_Linux + 253)
|
||||
#define __NR_timer_delete (__NR_Linux + 254)
|
||||
#define __NR_clock_settime (__NR_Linux + 255)
|
||||
#define __NR_clock_gettime (__NR_Linux + 256)
|
||||
#define __NR_clock_getres (__NR_Linux + 257)
|
||||
#define __NR_clock_nanosleep (__NR_Linux + 258)
|
||||
#define __NR_tgkill (__NR_Linux + 259)
|
||||
#define __NR_mbind (__NR_Linux + 260)
|
||||
#define __NR_get_mempolicy (__NR_Linux + 261)
|
||||
#define __NR_set_mempolicy (__NR_Linux + 262)
|
||||
#define __NR_vserver (__NR_Linux + 263) /* not used */
|
||||
#define __NR_add_key (__NR_Linux + 264)
|
||||
#define __NR_request_key (__NR_Linux + 265)
|
||||
#define __NR_keyctl (__NR_Linux + 266)
|
||||
#define __NR_ioprio_set (__NR_Linux + 267)
|
||||
#define __NR_ioprio_get (__NR_Linux + 268)
|
||||
#define __NR_inotify_init (__NR_Linux + 269)
|
||||
#define __NR_inotify_add_watch (__NR_Linux + 270)
|
||||
#define __NR_inotify_rm_watch (__NR_Linux + 271)
|
||||
#define __NR_migrate_pages (__NR_Linux + 272)
|
||||
#define __NR_pselect6 (__NR_Linux + 273)
|
||||
#define __NR_ppoll (__NR_Linux + 274)
|
||||
#define __NR_openat (__NR_Linux + 275)
|
||||
#define __NR_mkdirat (__NR_Linux + 276)
|
||||
#define __NR_mknodat (__NR_Linux + 277)
|
||||
#define __NR_fchownat (__NR_Linux + 278)
|
||||
#define __NR_futimesat (__NR_Linux + 279)
|
||||
#define __NR_fstatat64 (__NR_Linux + 280)
|
||||
#define __NR_unlinkat (__NR_Linux + 281)
|
||||
#define __NR_renameat (__NR_Linux + 282)
|
||||
#define __NR_linkat (__NR_Linux + 283)
|
||||
#define __NR_symlinkat (__NR_Linux + 284)
|
||||
#define __NR_readlinkat (__NR_Linux + 285)
|
||||
#define __NR_fchmodat (__NR_Linux + 286)
|
||||
#define __NR_faccessat (__NR_Linux + 287)
|
||||
#define __NR_unshare (__NR_Linux + 288)
|
||||
#define __NR_set_robust_list (__NR_Linux + 289)
|
||||
#define __NR_get_robust_list (__NR_Linux + 290)
|
||||
#define __NR_splice (__NR_Linux + 291)
|
||||
#define __NR_sync_file_range (__NR_Linux + 292)
|
||||
#define __NR_tee (__NR_Linux + 293)
|
||||
#define __NR_vmsplice (__NR_Linux + 294)
|
||||
#define __NR_move_pages (__NR_Linux + 295)
|
||||
#define __NR_getcpu (__NR_Linux + 296)
|
||||
#define __NR_epoll_pwait (__NR_Linux + 297)
|
||||
#define __NR_statfs64 (__NR_Linux + 298)
|
||||
#define __NR_fstatfs64 (__NR_Linux + 299)
|
||||
#define __NR_kexec_load (__NR_Linux + 300)
|
||||
#define __NR_utimensat (__NR_Linux + 301)
|
||||
#define __NR_signalfd (__NR_Linux + 302)
|
||||
#define __NR_timerfd (__NR_Linux + 303) /* not used */
|
||||
#define __NR_eventfd (__NR_Linux + 304)
|
||||
#define __NR_fallocate (__NR_Linux + 305)
|
||||
#define __NR_timerfd_create (__NR_Linux + 306)
|
||||
#define __NR_timerfd_settime (__NR_Linux + 307)
|
||||
#define __NR_timerfd_gettime (__NR_Linux + 308)
|
||||
#define __NR_signalfd4 (__NR_Linux + 309)
|
||||
#define __NR_eventfd2 (__NR_Linux + 310)
|
||||
#define __NR_epoll_create1 (__NR_Linux + 311)
|
||||
#define __NR_dup3 (__NR_Linux + 312)
|
||||
#define __NR_pipe2 (__NR_Linux + 313)
|
||||
#define __NR_inotify_init1 (__NR_Linux + 314)
|
||||
#define __NR_preadv (__NR_Linux + 315)
|
||||
#define __NR_pwritev (__NR_Linux + 316)
|
||||
#define __NR_rt_tgsigqueueinfo (__NR_Linux + 317)
|
||||
#define __NR_perf_event_open (__NR_Linux + 318)
|
||||
#define __NR_recvmmsg (__NR_Linux + 319)
|
||||
#define __NR_accept4 (__NR_Linux + 320)
|
||||
#define __NR_prlimit64 (__NR_Linux + 321)
|
||||
#define __NR_fanotify_init (__NR_Linux + 322)
|
||||
#define __NR_fanotify_mark (__NR_Linux + 323)
|
||||
#define __NR_clock_adjtime (__NR_Linux + 324)
|
||||
#define __NR_name_to_handle_at (__NR_Linux + 325)
|
||||
#define __NR_open_by_handle_at (__NR_Linux + 326)
|
||||
#define __NR_syncfs (__NR_Linux + 327)
|
||||
#define __NR_setns (__NR_Linux + 328)
|
||||
#define __NR_sendmmsg (__NR_Linux + 329)
|
||||
#define __NR_process_vm_readv (__NR_Linux + 330)
|
||||
#define __NR_process_vm_writev (__NR_Linux + 331)
|
||||
#define __NR_kcmp (__NR_Linux + 332)
|
||||
#define __NR_finit_module (__NR_Linux + 333)
|
||||
#define __NR_sched_setattr (__NR_Linux + 334)
|
||||
#define __NR_sched_getattr (__NR_Linux + 335)
|
||||
#define __NR_utimes (__NR_Linux + 336)
|
||||
#define __NR_renameat2 (__NR_Linux + 337)
|
||||
#define __NR_seccomp (__NR_Linux + 338)
|
||||
#define __NR_getrandom (__NR_Linux + 339)
|
||||
#define __NR_memfd_create (__NR_Linux + 340)
|
||||
#define __NR_bpf (__NR_Linux + 341)
|
||||
#define __NR_execveat (__NR_Linux + 342)
|
||||
#define __NR_membarrier (__NR_Linux + 343)
|
||||
#define __NR_userfaultfd (__NR_Linux + 344)
|
||||
#define __NR_mlock2 (__NR_Linux + 345)
|
||||
#define __NR_copy_file_range (__NR_Linux + 346)
|
||||
#define __NR_preadv2 (__NR_Linux + 347)
|
||||
#define __NR_pwritev2 (__NR_Linux + 348)
|
||||
#define __NR_statx (__NR_Linux + 349)
|
||||
#define __NR_io_pgetevents (__NR_Linux + 350)
|
||||
|
||||
#define __NR_Linux_syscalls (__NR_io_pgetevents + 1)
|
||||
|
||||
|
||||
#define __IGNORE_select /* newselect */
|
||||
#define __IGNORE_fadvise64 /* fadvise64_64 */
|
||||
#define __IGNORE_pkey_mprotect
|
||||
#define __IGNORE_pkey_alloc
|
||||
#define __IGNORE_pkey_free
|
||||
|
||||
#define LINUX_GATEWAY_ADDR 0x100
|
||||
#define LINUX_GATEWAY_ADDR 0x100
|
||||
|
||||
#endif /* _UAPI_ASM_PARISC_UNISTD_H_ */
|
||||
|
@ -7,7 +7,7 @@ extra-y := head.o vmlinux.lds
|
||||
|
||||
obj-y := cache.o pacache.o setup.o pdt.o traps.o time.o irq.o \
|
||||
pa7300lc.o syscall.o entry.o sys_parisc.o firmware.o \
|
||||
ptrace.o hardware.o inventory.o drivers.o \
|
||||
ptrace.o hardware.o inventory.o drivers.o alternative.o \
|
||||
signal.o hpmc.o real2.o parisc_ksyms.o unaligned.o \
|
||||
process.o processor.o pdc_cons.o pdc_chassis.o unwind.o
|
||||
|
||||
|
98
arch/parisc/kernel/alternative.c
Normal file
98
arch/parisc/kernel/alternative.c
Normal file
@ -0,0 +1,98 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Alternative live-patching for parisc.
|
||||
* Copyright (C) 2018 Helge Deller <deller@gmx.de>
|
||||
*
|
||||
*/
|
||||
|
||||
#include <asm/processor.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/alternative.h>
|
||||
|
||||
#include <linux/module.h>
|
||||
|
||||
static int no_alternatives;
|
||||
static int __init setup_no_alternatives(char *str)
|
||||
{
|
||||
no_alternatives = 1;
|
||||
return 1;
|
||||
}
|
||||
__setup("no-alternatives", setup_no_alternatives);
|
||||
|
||||
void __init_or_module apply_alternatives(struct alt_instr *start,
|
||||
struct alt_instr *end, const char *module_name)
|
||||
{
|
||||
struct alt_instr *entry;
|
||||
int index = 0, applied = 0;
|
||||
int num_cpus = num_online_cpus();
|
||||
|
||||
for (entry = start; entry < end; entry++, index++) {
|
||||
|
||||
u32 *from, len, cond, replacement;
|
||||
|
||||
from = (u32 *)((ulong)&entry->orig_offset + entry->orig_offset);
|
||||
len = entry->len;
|
||||
cond = entry->cond;
|
||||
replacement = entry->replacement;
|
||||
|
||||
WARN_ON(!cond);
|
||||
|
||||
if (cond != ALT_COND_ALWAYS && no_alternatives)
|
||||
continue;
|
||||
|
||||
pr_debug("Check %d: Cond 0x%x, Replace %02d instructions @ 0x%px with 0x%08x\n",
|
||||
index, cond, len, from, replacement);
|
||||
|
||||
if ((cond & ALT_COND_NO_SMP) && (num_cpus != 1))
|
||||
continue;
|
||||
if ((cond & ALT_COND_NO_DCACHE) && (cache_info.dc_size != 0))
|
||||
continue;
|
||||
if ((cond & ALT_COND_NO_ICACHE) && (cache_info.ic_size != 0))
|
||||
continue;
|
||||
|
||||
/*
|
||||
* If the PDC_MODEL capabilities has Non-coherent IO-PDIR bit
|
||||
* set (bit #61, big endian), we have to flush and sync every
|
||||
* time IO-PDIR is changed in Ike/Astro.
|
||||
*/
|
||||
if ((cond & ALT_COND_NO_IOC_FDC) &&
|
||||
(boot_cpu_data.pdc.capabilities & PDC_MODEL_IOPDIR_FDC))
|
||||
continue;
|
||||
|
||||
/* Want to replace pdtlb by a pdtlb,l instruction? */
|
||||
if (replacement == INSN_PxTLB) {
|
||||
replacement = *from;
|
||||
if (boot_cpu_data.cpu_type >= pcxu) /* >= pa2.0 ? */
|
||||
replacement |= (1 << 10); /* set el bit */
|
||||
}
|
||||
|
||||
/*
|
||||
* Replace instruction with NOPs?
|
||||
* For long distance insert a branch instruction instead.
|
||||
*/
|
||||
if (replacement == INSN_NOP && len > 1)
|
||||
replacement = 0xe8000002 + (len-2)*8; /* "b,n .+8" */
|
||||
|
||||
pr_debug("Do %d: Cond 0x%x, Replace %02d instructions @ 0x%px with 0x%08x\n",
|
||||
index, cond, len, from, replacement);
|
||||
|
||||
/* Replace instruction */
|
||||
*from = replacement;
|
||||
applied++;
|
||||
}
|
||||
|
||||
pr_info("%s%salternatives: applied %d out of %d patches\n",
|
||||
module_name ? : "", module_name ? " " : "",
|
||||
applied, index);
|
||||
}
|
||||
|
||||
|
||||
void __init apply_alternatives_all(void)
|
||||
{
|
||||
set_kernel_text_rw(1);
|
||||
|
||||
apply_alternatives((struct alt_instr *) &__alt_instructions,
|
||||
(struct alt_instr *) &__alt_instructions_end, NULL);
|
||||
|
||||
set_kernel_text_rw(0);
|
||||
}
|
@ -877,6 +877,8 @@ int module_finalize(const Elf_Ehdr *hdr,
|
||||
int i;
|
||||
unsigned long nsyms;
|
||||
const char *strtab = NULL;
|
||||
const Elf_Shdr *s;
|
||||
char *secstrings;
|
||||
Elf_Sym *newptr, *oldptr;
|
||||
Elf_Shdr *symhdr = NULL;
|
||||
#ifdef DEBUG
|
||||
@ -948,6 +950,18 @@ int module_finalize(const Elf_Ehdr *hdr,
|
||||
nsyms = newptr - (Elf_Sym *)symhdr->sh_addr;
|
||||
DEBUGP("NEW num_symtab %lu\n", nsyms);
|
||||
symhdr->sh_size = nsyms * sizeof(Elf_Sym);
|
||||
|
||||
/* find .altinstructions section */
|
||||
secstrings = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
|
||||
for (s = sechdrs; s < sechdrs + hdr->e_shnum; s++) {
|
||||
void *aseg = (void *) s->sh_addr;
|
||||
char *secname = secstrings + s->sh_name;
|
||||
|
||||
if (!strcmp(".altinstructions", secname))
|
||||
/* patch .altinstructions */
|
||||
apply_alternatives(aseg, aseg + s->sh_size, me->name);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -305,86 +305,6 @@ static int __init parisc_init_resources(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int no_alternatives __initdata;
|
||||
static int __init setup_no_alternatives(char *str)
|
||||
{
|
||||
no_alternatives = 1;
|
||||
return 1;
|
||||
}
|
||||
__setup("no-alternatives", setup_no_alternatives);
|
||||
|
||||
static void __init apply_alternatives_all(void)
|
||||
{
|
||||
struct alt_instr *entry;
|
||||
int index = 0, applied = 0;
|
||||
|
||||
|
||||
pr_info("alternatives: %spatching kernel code\n",
|
||||
no_alternatives ? "NOT " : "");
|
||||
if (no_alternatives)
|
||||
return;
|
||||
|
||||
set_kernel_text_rw(1);
|
||||
|
||||
for (entry = (struct alt_instr *) &__alt_instructions;
|
||||
entry < (struct alt_instr *) &__alt_instructions_end;
|
||||
entry++, index++) {
|
||||
|
||||
u32 *from, len, cond, replacement;
|
||||
|
||||
from = (u32 *)((ulong)&entry->orig_offset + entry->orig_offset);
|
||||
len = entry->len;
|
||||
cond = entry->cond;
|
||||
replacement = entry->replacement;
|
||||
|
||||
WARN_ON(!cond);
|
||||
pr_debug("Check %d: Cond 0x%x, Replace %02d instructions @ 0x%px with 0x%08x\n",
|
||||
index, cond, len, from, replacement);
|
||||
|
||||
if ((cond & ALT_COND_NO_SMP) && (num_online_cpus() != 1))
|
||||
continue;
|
||||
if ((cond & ALT_COND_NO_DCACHE) && (cache_info.dc_size != 0))
|
||||
continue;
|
||||
if ((cond & ALT_COND_NO_ICACHE) && (cache_info.ic_size != 0))
|
||||
continue;
|
||||
|
||||
/*
|
||||
* If the PDC_MODEL capabilities has Non-coherent IO-PDIR bit
|
||||
* set (bit #61, big endian), we have to flush and sync every
|
||||
* time IO-PDIR is changed in Ike/Astro.
|
||||
*/
|
||||
if ((cond & ALT_COND_NO_IOC_FDC) &&
|
||||
(boot_cpu_data.pdc.capabilities & PDC_MODEL_IOPDIR_FDC))
|
||||
continue;
|
||||
|
||||
/* Want to replace pdtlb by a pdtlb,l instruction? */
|
||||
if (replacement == INSN_PxTLB) {
|
||||
replacement = *from;
|
||||
if (boot_cpu_data.cpu_type >= pcxu) /* >= pa2.0 ? */
|
||||
replacement |= (1 << 10); /* set el bit */
|
||||
}
|
||||
|
||||
/*
|
||||
* Replace instruction with NOPs?
|
||||
* For long distance insert a branch instruction instead.
|
||||
*/
|
||||
if (replacement == INSN_NOP && len > 1)
|
||||
replacement = 0xe8000002 + (len-2)*8; /* "b,n .+8" */
|
||||
|
||||
pr_debug("Do %d: Cond 0x%x, Replace %02d instructions @ 0x%px with 0x%08x\n",
|
||||
index, cond, len, from, replacement);
|
||||
|
||||
/* Replace instruction */
|
||||
*from = replacement;
|
||||
applied++;
|
||||
}
|
||||
|
||||
pr_info("alternatives: applied %d out of %d patches\n", applied, index);
|
||||
|
||||
set_kernel_text_rw(0);
|
||||
}
|
||||
|
||||
|
||||
extern void gsc_init(void);
|
||||
extern void processor_init(void);
|
||||
extern void ccio_init(void);
|
||||
|
@ -923,19 +923,24 @@ ENTRY(lws_table)
|
||||
END(lws_table)
|
||||
/* End of lws table */
|
||||
|
||||
#define __SYSCALL(nr, entry, nargs) ASM_ULONG_INSN entry
|
||||
.align 8
|
||||
ENTRY(sys_call_table)
|
||||
.export sys_call_table,data
|
||||
#include "syscall_table.S"
|
||||
#ifdef CONFIG_64BIT
|
||||
#include <asm/syscall_table_c32.h> /* Compat syscalls */
|
||||
#else
|
||||
#include <asm/syscall_table_32.h> /* 32-bit native syscalls */
|
||||
#endif
|
||||
END(sys_call_table)
|
||||
|
||||
#ifdef CONFIG_64BIT
|
||||
.align 8
|
||||
ENTRY(sys_call_table64)
|
||||
#define SYSCALL_TABLE_64BIT
|
||||
#include "syscall_table.S"
|
||||
#include <asm/syscall_table_64.h> /* 64-bit native syscalls */
|
||||
END(sys_call_table64)
|
||||
#endif
|
||||
#undef __SYSCALL
|
||||
|
||||
/*
|
||||
All light-weight-syscall atomic operations
|
||||
|
@ -1,459 +0,0 @@
|
||||
/* System Call Table
|
||||
*
|
||||
* Copyright (C) 1999-2004 Matthew Wilcox <willy at parisc-linux.org>
|
||||
* Copyright (C) 2000-2001 John Marvin <jsm at parisc-linux.org>
|
||||
* Copyright (C) 2000 Alan Modra <amodra at parisc-linux.org>
|
||||
* Copyright (C) 2000-2003 Paul Bame <bame at parisc-linux.org>
|
||||
* Copyright (C) 2000 Philipp Rumpf <prumpf with tux.org>
|
||||
* Copyright (C) 2000 Michael Ang <mang with subcarrier.org>
|
||||
* Copyright (C) 2000 David Huggins-Daines <dhd with pobox.org>
|
||||
* Copyright (C) 2000 Grant Grundler <grundler at parisc-linux.org>
|
||||
* Copyright (C) 2001 Richard Hirst <rhirst with parisc-linux.org>
|
||||
* Copyright (C) 2001-2002 Ryan Bradetich <rbrad at parisc-linux.org>
|
||||
* Copyright (C) 2001-2007 Helge Deller <deller at parisc-linux.org>
|
||||
* Copyright (C) 2000-2001 Thomas Bogendoerfer <tsbogend at parisc-linux.org>
|
||||
* Copyright (C) 2002 Randolph Chung <tausq with parisc-linux.org>
|
||||
* Copyright (C) 2005-2006 Kyle McMartin <kyle at parisc-linux.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_64BIT) && !defined(SYSCALL_TABLE_64BIT)
|
||||
/* Use ENTRY_SAME for 32-bit syscalls which are the same on wide and
|
||||
* narrow palinux. Use ENTRY_DIFF for those where a 32-bit specific
|
||||
* implementation is required on wide palinux. Use ENTRY_COMP where
|
||||
* the compatibility layer has a useful 32-bit implementation.
|
||||
*/
|
||||
#define ENTRY_SAME(_name_) .dword sys_##_name_
|
||||
#define ENTRY_DIFF(_name_) .dword sys32_##_name_
|
||||
#define ENTRY_UHOH(_name_) .dword sys32_##unimplemented
|
||||
#define ENTRY_OURS(_name_) .dword parisc_##_name_
|
||||
#define ENTRY_COMP(_name_) .dword compat_sys_##_name_
|
||||
#elif defined(CONFIG_64BIT) && defined(SYSCALL_TABLE_64BIT)
|
||||
#define ENTRY_SAME(_name_) .dword sys_##_name_
|
||||
#define ENTRY_DIFF(_name_) .dword sys_##_name_
|
||||
#define ENTRY_UHOH(_name_) .dword sys_##_name_
|
||||
#define ENTRY_OURS(_name_) .dword sys_##_name_
|
||||
#define ENTRY_COMP(_name_) .dword sys_##_name_
|
||||
#else
|
||||
#define ENTRY_SAME(_name_) .word sys_##_name_
|
||||
#define ENTRY_DIFF(_name_) .word sys_##_name_
|
||||
#define ENTRY_UHOH(_name_) .word sys_##_name_
|
||||
#define ENTRY_OURS(_name_) .word parisc_##_name_
|
||||
#define ENTRY_COMP(_name_) .word sys_##_name_
|
||||
#endif
|
||||
|
||||
90: ENTRY_SAME(restart_syscall) /* 0 */
|
||||
91: ENTRY_SAME(exit)
|
||||
ENTRY_SAME(fork_wrapper)
|
||||
ENTRY_SAME(read)
|
||||
ENTRY_SAME(write)
|
||||
ENTRY_COMP(open) /* 5 */
|
||||
ENTRY_SAME(close)
|
||||
ENTRY_SAME(waitpid)
|
||||
ENTRY_SAME(creat)
|
||||
ENTRY_SAME(link)
|
||||
ENTRY_SAME(unlink) /* 10 */
|
||||
ENTRY_COMP(execve)
|
||||
ENTRY_SAME(chdir)
|
||||
/* See comments in kernel/time.c!!! Maybe we don't need this? */
|
||||
ENTRY_COMP(time)
|
||||
ENTRY_SAME(mknod)
|
||||
ENTRY_SAME(chmod) /* 15 */
|
||||
ENTRY_SAME(lchown)
|
||||
ENTRY_SAME(socket)
|
||||
/* struct stat is MAYBE identical wide and narrow ?? */
|
||||
ENTRY_COMP(newstat)
|
||||
ENTRY_COMP(lseek)
|
||||
ENTRY_SAME(getpid) /* 20 */
|
||||
/* the 'void * data' parameter may need re-packing in wide */
|
||||
ENTRY_COMP(mount)
|
||||
/* concerned about struct sockaddr in wide/narrow */
|
||||
/* ---> I think sockaddr is OK unless the compiler packs the struct */
|
||||
/* differently to align the char array */
|
||||
ENTRY_SAME(bind)
|
||||
ENTRY_SAME(setuid)
|
||||
ENTRY_SAME(getuid)
|
||||
ENTRY_COMP(stime) /* 25 */
|
||||
ENTRY_COMP(ptrace)
|
||||
ENTRY_SAME(alarm)
|
||||
/* see stat comment */
|
||||
ENTRY_COMP(newfstat)
|
||||
ENTRY_SAME(pause)
|
||||
/* struct utimbuf uses time_t which might vary */
|
||||
ENTRY_COMP(utime) /* 30 */
|
||||
/* struct sockaddr... */
|
||||
ENTRY_SAME(connect)
|
||||
ENTRY_SAME(listen)
|
||||
ENTRY_SAME(access)
|
||||
ENTRY_SAME(nice)
|
||||
/* struct sockaddr... */
|
||||
ENTRY_SAME(accept) /* 35 */
|
||||
ENTRY_SAME(sync)
|
||||
ENTRY_SAME(kill)
|
||||
ENTRY_SAME(rename)
|
||||
ENTRY_SAME(mkdir)
|
||||
ENTRY_SAME(rmdir) /* 40 */
|
||||
ENTRY_SAME(dup)
|
||||
ENTRY_SAME(pipe)
|
||||
ENTRY_COMP(times)
|
||||
/* struct sockaddr... */
|
||||
ENTRY_SAME(getsockname)
|
||||
/* it seems possible brk() could return a >4G pointer... */
|
||||
ENTRY_SAME(brk) /* 45 */
|
||||
ENTRY_SAME(setgid)
|
||||
ENTRY_SAME(getgid)
|
||||
ENTRY_SAME(signal)
|
||||
ENTRY_SAME(geteuid)
|
||||
ENTRY_SAME(getegid) /* 50 */
|
||||
ENTRY_SAME(acct)
|
||||
ENTRY_SAME(umount)
|
||||
/* struct sockaddr... */
|
||||
ENTRY_SAME(getpeername)
|
||||
ENTRY_COMP(ioctl)
|
||||
ENTRY_COMP(fcntl) /* 55 */
|
||||
ENTRY_SAME(socketpair)
|
||||
ENTRY_SAME(setpgid)
|
||||
ENTRY_SAME(send)
|
||||
ENTRY_SAME(newuname)
|
||||
ENTRY_SAME(umask) /* 60 */
|
||||
ENTRY_SAME(chroot)
|
||||
ENTRY_COMP(ustat)
|
||||
ENTRY_SAME(dup2)
|
||||
ENTRY_SAME(getppid)
|
||||
ENTRY_SAME(getpgrp) /* 65 */
|
||||
ENTRY_SAME(setsid)
|
||||
ENTRY_SAME(pivot_root)
|
||||
/* I don't like this */
|
||||
ENTRY_UHOH(sgetmask)
|
||||
ENTRY_UHOH(ssetmask)
|
||||
ENTRY_SAME(setreuid) /* 70 */
|
||||
ENTRY_SAME(setregid)
|
||||
ENTRY_SAME(mincore)
|
||||
ENTRY_COMP(sigpending)
|
||||
ENTRY_SAME(sethostname)
|
||||
/* Following 3 have linux-common-code structs containing longs -( */
|
||||
ENTRY_COMP(setrlimit) /* 75 */
|
||||
ENTRY_COMP(getrlimit)
|
||||
ENTRY_COMP(getrusage)
|
||||
/* struct timeval and timezone are maybe?? consistent wide and narrow */
|
||||
ENTRY_COMP(gettimeofday)
|
||||
ENTRY_COMP(settimeofday)
|
||||
ENTRY_SAME(getgroups) /* 80 */
|
||||
ENTRY_SAME(setgroups)
|
||||
/* struct socketaddr... */
|
||||
ENTRY_SAME(sendto)
|
||||
ENTRY_SAME(symlink)
|
||||
/* see stat comment */
|
||||
ENTRY_COMP(newlstat)
|
||||
ENTRY_SAME(readlink) /* 85 */
|
||||
ENTRY_SAME(ni_syscall) /* was uselib */
|
||||
ENTRY_SAME(swapon)
|
||||
ENTRY_SAME(reboot)
|
||||
ENTRY_SAME(mmap2)
|
||||
ENTRY_SAME(mmap) /* 90 */
|
||||
ENTRY_SAME(munmap)
|
||||
ENTRY_COMP(truncate)
|
||||
ENTRY_COMP(ftruncate)
|
||||
ENTRY_SAME(fchmod)
|
||||
ENTRY_SAME(fchown) /* 95 */
|
||||
ENTRY_SAME(getpriority)
|
||||
ENTRY_SAME(setpriority)
|
||||
ENTRY_SAME(recv)
|
||||
ENTRY_COMP(statfs)
|
||||
ENTRY_COMP(fstatfs) /* 100 */
|
||||
ENTRY_SAME(stat64)
|
||||
ENTRY_SAME(ni_syscall) /* was socketcall */
|
||||
ENTRY_SAME(syslog)
|
||||
/* even though manpage says struct timeval contains longs, ours has
|
||||
* time_t and suseconds_t -- both of which are safe wide/narrow */
|
||||
ENTRY_COMP(setitimer)
|
||||
ENTRY_COMP(getitimer) /* 105 */
|
||||
ENTRY_SAME(capget)
|
||||
ENTRY_SAME(capset)
|
||||
ENTRY_OURS(pread64)
|
||||
ENTRY_OURS(pwrite64)
|
||||
ENTRY_SAME(getcwd) /* 110 */
|
||||
ENTRY_SAME(vhangup)
|
||||
ENTRY_SAME(fstat64)
|
||||
ENTRY_SAME(vfork_wrapper)
|
||||
/* struct rusage contains longs... */
|
||||
ENTRY_COMP(wait4)
|
||||
ENTRY_SAME(swapoff) /* 115 */
|
||||
ENTRY_COMP(sysinfo)
|
||||
ENTRY_SAME(shutdown)
|
||||
ENTRY_SAME(fsync)
|
||||
ENTRY_SAME(madvise)
|
||||
ENTRY_SAME(clone_wrapper) /* 120 */
|
||||
ENTRY_SAME(setdomainname)
|
||||
ENTRY_COMP(sendfile)
|
||||
/* struct sockaddr... */
|
||||
ENTRY_SAME(recvfrom)
|
||||
/* struct timex contains longs */
|
||||
ENTRY_COMP(adjtimex)
|
||||
ENTRY_SAME(mprotect) /* 125 */
|
||||
/* old_sigset_t forced to 32 bits. Beware glibc sigset_t */
|
||||
ENTRY_COMP(sigprocmask)
|
||||
ENTRY_SAME(ni_syscall) /* create_module */
|
||||
ENTRY_SAME(init_module)
|
||||
ENTRY_SAME(delete_module)
|
||||
ENTRY_SAME(ni_syscall) /* 130: get_kernel_syms */
|
||||
/* time_t inside struct dqblk */
|
||||
ENTRY_SAME(quotactl)
|
||||
ENTRY_SAME(getpgid)
|
||||
ENTRY_SAME(fchdir)
|
||||
ENTRY_SAME(bdflush)
|
||||
ENTRY_SAME(sysfs) /* 135 */
|
||||
ENTRY_OURS(personality)
|
||||
ENTRY_SAME(ni_syscall) /* for afs_syscall */
|
||||
ENTRY_SAME(setfsuid)
|
||||
ENTRY_SAME(setfsgid)
|
||||
/* I think this might work */
|
||||
ENTRY_SAME(llseek) /* 140 */
|
||||
ENTRY_COMP(getdents)
|
||||
/* it is POSSIBLE that select will be OK because even though fd_set
|
||||
* contains longs, the macros and sizes are clever. */
|
||||
ENTRY_COMP(select)
|
||||
ENTRY_SAME(flock)
|
||||
ENTRY_SAME(msync)
|
||||
/* struct iovec contains pointers */
|
||||
ENTRY_COMP(readv) /* 145 */
|
||||
ENTRY_COMP(writev)
|
||||
ENTRY_SAME(getsid)
|
||||
ENTRY_SAME(fdatasync)
|
||||
/* struct __sysctl_args is a mess */
|
||||
ENTRY_COMP(sysctl)
|
||||
ENTRY_SAME(mlock) /* 150 */
|
||||
ENTRY_SAME(munlock)
|
||||
ENTRY_SAME(mlockall)
|
||||
ENTRY_SAME(munlockall)
|
||||
/* struct sched_param is ok for now */
|
||||
ENTRY_SAME(sched_setparam)
|
||||
ENTRY_SAME(sched_getparam) /* 155 */
|
||||
ENTRY_SAME(sched_setscheduler)
|
||||
ENTRY_SAME(sched_getscheduler)
|
||||
ENTRY_SAME(sched_yield)
|
||||
ENTRY_SAME(sched_get_priority_max)
|
||||
ENTRY_SAME(sched_get_priority_min) /* 160 */
|
||||
ENTRY_COMP(sched_rr_get_interval)
|
||||
ENTRY_COMP(nanosleep)
|
||||
ENTRY_SAME(mremap)
|
||||
ENTRY_SAME(setresuid)
|
||||
ENTRY_SAME(getresuid) /* 165 */
|
||||
ENTRY_COMP(sigaltstack)
|
||||
ENTRY_SAME(ni_syscall) /* query_module */
|
||||
ENTRY_SAME(poll)
|
||||
/* structs contain pointers and an in_addr... */
|
||||
ENTRY_SAME(ni_syscall) /* was nfsservctl */
|
||||
ENTRY_SAME(setresgid) /* 170 */
|
||||
ENTRY_SAME(getresgid)
|
||||
ENTRY_SAME(prctl)
|
||||
/* signals need a careful review */
|
||||
ENTRY_SAME(rt_sigreturn_wrapper)
|
||||
ENTRY_COMP(rt_sigaction)
|
||||
ENTRY_COMP(rt_sigprocmask) /* 175 */
|
||||
ENTRY_COMP(rt_sigpending)
|
||||
ENTRY_COMP(rt_sigtimedwait)
|
||||
/* even though the struct siginfo_t is different, it appears like
|
||||
* all the paths use values which should be same wide and narrow.
|
||||
* Also the struct is padded to 128 bytes which means we don't have
|
||||
* to worry about faulting trying to copy in a larger 64-bit
|
||||
* struct from a 32-bit user-space app.
|
||||
*/
|
||||
ENTRY_COMP(rt_sigqueueinfo)
|
||||
ENTRY_COMP(rt_sigsuspend)
|
||||
ENTRY_SAME(chown) /* 180 */
|
||||
/* setsockopt() used by iptables: SO_SET_REPLACE/SO_SET_ADD_COUNTERS */
|
||||
ENTRY_COMP(setsockopt)
|
||||
ENTRY_COMP(getsockopt)
|
||||
ENTRY_COMP(sendmsg)
|
||||
ENTRY_COMP(recvmsg)
|
||||
ENTRY_SAME(semop) /* 185 */
|
||||
ENTRY_SAME(semget)
|
||||
ENTRY_COMP(semctl)
|
||||
ENTRY_COMP(msgsnd)
|
||||
ENTRY_COMP(msgrcv)
|
||||
ENTRY_SAME(msgget) /* 190 */
|
||||
ENTRY_COMP(msgctl)
|
||||
ENTRY_COMP(shmat)
|
||||
ENTRY_SAME(shmdt)
|
||||
ENTRY_SAME(shmget)
|
||||
ENTRY_COMP(shmctl) /* 195 */
|
||||
ENTRY_SAME(ni_syscall) /* streams1 */
|
||||
ENTRY_SAME(ni_syscall) /* streams2 */
|
||||
ENTRY_SAME(lstat64)
|
||||
ENTRY_OURS(truncate64)
|
||||
ENTRY_OURS(ftruncate64) /* 200 */
|
||||
ENTRY_SAME(getdents64)
|
||||
ENTRY_COMP(fcntl64)
|
||||
ENTRY_SAME(ni_syscall) /* attrctl -- dead */
|
||||
ENTRY_SAME(ni_syscall) /* acl_get -- dead */
|
||||
ENTRY_SAME(ni_syscall) /* 205 (acl_set -- dead) */
|
||||
ENTRY_SAME(gettid)
|
||||
ENTRY_OURS(readahead)
|
||||
ENTRY_SAME(tkill)
|
||||
ENTRY_COMP(sendfile64)
|
||||
ENTRY_COMP(futex) /* 210 */
|
||||
ENTRY_COMP(sched_setaffinity)
|
||||
ENTRY_COMP(sched_getaffinity)
|
||||
ENTRY_SAME(ni_syscall) /* set_thread_area */
|
||||
ENTRY_SAME(ni_syscall) /* get_thread_area */
|
||||
ENTRY_COMP(io_setup) /* 215 */
|
||||
ENTRY_SAME(io_destroy)
|
||||
ENTRY_COMP(io_getevents)
|
||||
ENTRY_COMP(io_submit)
|
||||
ENTRY_SAME(io_cancel)
|
||||
ENTRY_SAME(ni_syscall) /* 220: was alloc_hugepages */
|
||||
ENTRY_SAME(ni_syscall) /* was free_hugepages */
|
||||
ENTRY_SAME(exit_group)
|
||||
ENTRY_COMP(lookup_dcookie)
|
||||
ENTRY_SAME(epoll_create)
|
||||
ENTRY_SAME(epoll_ctl) /* 225 */
|
||||
ENTRY_SAME(epoll_wait)
|
||||
ENTRY_SAME(remap_file_pages)
|
||||
ENTRY_COMP(semtimedop)
|
||||
ENTRY_COMP(mq_open)
|
||||
ENTRY_SAME(mq_unlink) /* 230 */
|
||||
ENTRY_COMP(mq_timedsend)
|
||||
ENTRY_COMP(mq_timedreceive)
|
||||
ENTRY_COMP(mq_notify)
|
||||
ENTRY_COMP(mq_getsetattr)
|
||||
ENTRY_COMP(waitid) /* 235 */
|
||||
ENTRY_OURS(fadvise64_64)
|
||||
ENTRY_SAME(set_tid_address)
|
||||
ENTRY_SAME(setxattr)
|
||||
ENTRY_SAME(lsetxattr)
|
||||
ENTRY_SAME(fsetxattr) /* 240 */
|
||||
ENTRY_SAME(getxattr)
|
||||
ENTRY_SAME(lgetxattr)
|
||||
ENTRY_SAME(fgetxattr)
|
||||
ENTRY_SAME(listxattr)
|
||||
ENTRY_SAME(llistxattr) /* 245 */
|
||||
ENTRY_SAME(flistxattr)
|
||||
ENTRY_SAME(removexattr)
|
||||
ENTRY_SAME(lremovexattr)
|
||||
ENTRY_SAME(fremovexattr)
|
||||
ENTRY_COMP(timer_create) /* 250 */
|
||||
ENTRY_COMP(timer_settime)
|
||||
ENTRY_COMP(timer_gettime)
|
||||
ENTRY_SAME(timer_getoverrun)
|
||||
ENTRY_SAME(timer_delete)
|
||||
ENTRY_COMP(clock_settime) /* 255 */
|
||||
ENTRY_COMP(clock_gettime)
|
||||
ENTRY_COMP(clock_getres)
|
||||
ENTRY_COMP(clock_nanosleep)
|
||||
ENTRY_SAME(tgkill)
|
||||
ENTRY_COMP(mbind) /* 260 */
|
||||
ENTRY_COMP(get_mempolicy)
|
||||
ENTRY_COMP(set_mempolicy)
|
||||
ENTRY_SAME(ni_syscall) /* 263: reserved for vserver */
|
||||
ENTRY_SAME(add_key)
|
||||
ENTRY_SAME(request_key) /* 265 */
|
||||
ENTRY_COMP(keyctl)
|
||||
ENTRY_SAME(ioprio_set)
|
||||
ENTRY_SAME(ioprio_get)
|
||||
ENTRY_SAME(inotify_init)
|
||||
ENTRY_SAME(inotify_add_watch) /* 270 */
|
||||
ENTRY_SAME(inotify_rm_watch)
|
||||
ENTRY_SAME(migrate_pages)
|
||||
ENTRY_COMP(pselect6)
|
||||
ENTRY_COMP(ppoll)
|
||||
ENTRY_COMP(openat) /* 275 */
|
||||
ENTRY_SAME(mkdirat)
|
||||
ENTRY_SAME(mknodat)
|
||||
ENTRY_SAME(fchownat)
|
||||
ENTRY_COMP(futimesat)
|
||||
ENTRY_SAME(fstatat64) /* 280 */
|
||||
ENTRY_SAME(unlinkat)
|
||||
ENTRY_SAME(renameat)
|
||||
ENTRY_SAME(linkat)
|
||||
ENTRY_SAME(symlinkat)
|
||||
ENTRY_SAME(readlinkat) /* 285 */
|
||||
ENTRY_SAME(fchmodat)
|
||||
ENTRY_SAME(faccessat)
|
||||
ENTRY_SAME(unshare)
|
||||
ENTRY_COMP(set_robust_list)
|
||||
ENTRY_COMP(get_robust_list) /* 290 */
|
||||
ENTRY_SAME(splice)
|
||||
ENTRY_OURS(sync_file_range)
|
||||
ENTRY_SAME(tee)
|
||||
ENTRY_COMP(vmsplice)
|
||||
ENTRY_COMP(move_pages) /* 295 */
|
||||
ENTRY_SAME(getcpu)
|
||||
ENTRY_COMP(epoll_pwait)
|
||||
ENTRY_COMP(statfs64)
|
||||
ENTRY_COMP(fstatfs64)
|
||||
ENTRY_COMP(kexec_load) /* 300 */
|
||||
ENTRY_COMP(utimensat)
|
||||
ENTRY_COMP(signalfd)
|
||||
ENTRY_SAME(ni_syscall) /* was timerfd */
|
||||
ENTRY_SAME(eventfd)
|
||||
ENTRY_OURS(fallocate) /* 305 */
|
||||
ENTRY_SAME(timerfd_create)
|
||||
ENTRY_COMP(timerfd_settime)
|
||||
ENTRY_COMP(timerfd_gettime)
|
||||
ENTRY_COMP(signalfd4)
|
||||
ENTRY_SAME(eventfd2) /* 310 */
|
||||
ENTRY_SAME(epoll_create1)
|
||||
ENTRY_SAME(dup3)
|
||||
ENTRY_SAME(pipe2)
|
||||
ENTRY_SAME(inotify_init1)
|
||||
ENTRY_COMP(preadv) /* 315 */
|
||||
ENTRY_COMP(pwritev)
|
||||
ENTRY_COMP(rt_tgsigqueueinfo)
|
||||
ENTRY_SAME(perf_event_open)
|
||||
ENTRY_COMP(recvmmsg)
|
||||
ENTRY_SAME(accept4) /* 320 */
|
||||
ENTRY_SAME(prlimit64)
|
||||
ENTRY_SAME(fanotify_init)
|
||||
ENTRY_DIFF(fanotify_mark)
|
||||
ENTRY_COMP(clock_adjtime)
|
||||
ENTRY_SAME(name_to_handle_at) /* 325 */
|
||||
ENTRY_COMP(open_by_handle_at)
|
||||
ENTRY_SAME(syncfs)
|
||||
ENTRY_SAME(setns)
|
||||
ENTRY_COMP(sendmmsg)
|
||||
ENTRY_COMP(process_vm_readv) /* 330 */
|
||||
ENTRY_COMP(process_vm_writev)
|
||||
ENTRY_SAME(kcmp)
|
||||
ENTRY_SAME(finit_module)
|
||||
ENTRY_SAME(sched_setattr)
|
||||
ENTRY_SAME(sched_getattr) /* 335 */
|
||||
ENTRY_COMP(utimes)
|
||||
ENTRY_SAME(renameat2)
|
||||
ENTRY_SAME(seccomp)
|
||||
ENTRY_SAME(getrandom)
|
||||
ENTRY_SAME(memfd_create) /* 340 */
|
||||
ENTRY_SAME(bpf)
|
||||
ENTRY_COMP(execveat)
|
||||
ENTRY_SAME(membarrier)
|
||||
ENTRY_SAME(userfaultfd)
|
||||
ENTRY_SAME(mlock2) /* 345 */
|
||||
ENTRY_SAME(copy_file_range)
|
||||
ENTRY_COMP(preadv2)
|
||||
ENTRY_COMP(pwritev2)
|
||||
ENTRY_SAME(statx)
|
||||
ENTRY_COMP(io_pgetevents) /* 350 */
|
||||
|
||||
|
||||
.ifne (. - 90b) - (__NR_Linux_syscalls * (91b - 90b))
|
||||
.error "size of syscall table does not fit value of __NR_Linux_syscalls"
|
||||
.endif
|
||||
|
||||
#undef ENTRY_SAME
|
||||
#undef ENTRY_DIFF
|
||||
#undef ENTRY_UHOH
|
||||
#undef ENTRY_COMP
|
||||
#undef ENTRY_OURS
|
55
arch/parisc/kernel/syscalls/Makefile
Normal file
55
arch/parisc/kernel/syscalls/Makefile
Normal file
@ -0,0 +1,55 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
kapi := arch/$(SRCARCH)/include/generated/asm
|
||||
uapi := arch/$(SRCARCH)/include/generated/uapi/asm
|
||||
|
||||
_dummy := $(shell [ -d '$(uapi)' ] || mkdir -p '$(uapi)') \
|
||||
$(shell [ -d '$(kapi)' ] || mkdir -p '$(kapi)')
|
||||
|
||||
syscall := $(srctree)/$(src)/syscall.tbl
|
||||
syshdr := $(srctree)/$(src)/syscallhdr.sh
|
||||
systbl := $(srctree)/$(src)/syscalltbl.sh
|
||||
|
||||
quiet_cmd_syshdr = SYSHDR $@
|
||||
cmd_syshdr = $(CONFIG_SHELL) '$(syshdr)' '$<' '$@' \
|
||||
'$(syshdr_abis_$(basetarget))' \
|
||||
'$(syshdr_pfx_$(basetarget))' \
|
||||
'$(syshdr_offset_$(basetarget))'
|
||||
|
||||
quiet_cmd_systbl = SYSTBL $@
|
||||
cmd_systbl = $(CONFIG_SHELL) '$(systbl)' '$<' '$@' \
|
||||
'$(systbl_abis_$(basetarget))' \
|
||||
'$(systbl_abi_$(basetarget))' \
|
||||
'$(systbl_offset_$(basetarget))'
|
||||
|
||||
syshdr_abis_unistd_32 := common,32
|
||||
$(uapi)/unistd_32.h: $(syscall) $(syshdr)
|
||||
$(call if_changed,syshdr)
|
||||
|
||||
syshdr_abis_unistd_64 := common,64
|
||||
$(uapi)/unistd_64.h: $(syscall) $(syshdr)
|
||||
$(call if_changed,syshdr)
|
||||
|
||||
systbl_abis_syscall_table_32 := common,32
|
||||
$(kapi)/syscall_table_32.h: $(syscall) $(systbl)
|
||||
$(call if_changed,systbl)
|
||||
|
||||
systbl_abis_syscall_table_64 := common,64
|
||||
$(kapi)/syscall_table_64.h: $(syscall) $(systbl)
|
||||
$(call if_changed,systbl)
|
||||
|
||||
systbl_abis_syscall_table_c32 := common,32
|
||||
systbl_abi_syscall_table_c32 := c32
|
||||
$(kapi)/syscall_table_c32.h: $(syscall) $(systbl)
|
||||
$(call if_changed,systbl)
|
||||
|
||||
uapisyshdr-y += unistd_32.h unistd_64.h
|
||||
kapisyshdr-y += syscall_table_32.h \
|
||||
syscall_table_64.h \
|
||||
syscall_table_c32.h
|
||||
|
||||
targets += $(uapisyshdr-y) $(kapisyshdr-y)
|
||||
|
||||
PHONY += all
|
||||
all: $(addprefix $(uapi)/,$(uapisyshdr-y))
|
||||
all: $(addprefix $(kapi)/,$(kapisyshdr-y))
|
||||
@:
|
369
arch/parisc/kernel/syscalls/syscall.tbl
Normal file
369
arch/parisc/kernel/syscalls/syscall.tbl
Normal file
@ -0,0 +1,369 @@
|
||||
# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
|
||||
#
|
||||
# system call numbers and entry vectors for parisc
|
||||
#
|
||||
# The format is:
|
||||
# <number> <abi> <name> <entry point> <compat entry point>
|
||||
#
|
||||
# The <abi> can be common, 64, or 32 for this file.
|
||||
#
|
||||
0 common restart_syscall sys_restart_syscall
|
||||
1 common exit sys_exit
|
||||
2 common fork sys_fork_wrapper
|
||||
3 common read sys_read
|
||||
4 common write sys_write
|
||||
5 common open sys_open compat_sys_open
|
||||
6 common close sys_close
|
||||
7 common waitpid sys_waitpid
|
||||
8 common creat sys_creat
|
||||
9 common link sys_link
|
||||
10 common unlink sys_unlink
|
||||
11 common execve sys_execve compat_sys_execve
|
||||
12 common chdir sys_chdir
|
||||
13 common time sys_time compat_sys_time
|
||||
14 common mknod sys_mknod
|
||||
15 common chmod sys_chmod
|
||||
16 common lchown sys_lchown
|
||||
17 common socket sys_socket
|
||||
18 common stat sys_newstat compat_sys_newstat
|
||||
19 common lseek sys_lseek compat_sys_lseek
|
||||
20 common getpid sys_getpid
|
||||
21 common mount sys_mount compat_sys_mount
|
||||
22 common bind sys_bind
|
||||
23 common setuid sys_setuid
|
||||
24 common getuid sys_getuid
|
||||
25 common stime sys_stime compat_sys_stime
|
||||
26 common ptrace sys_ptrace compat_sys_ptrace
|
||||
27 common alarm sys_alarm
|
||||
28 common fstat sys_newfstat compat_sys_newfstat
|
||||
29 common pause sys_pause
|
||||
30 common utime sys_utime compat_sys_utime
|
||||
31 common connect sys_connect
|
||||
32 common listen sys_listen
|
||||
33 common access sys_access
|
||||
34 common nice sys_nice
|
||||
35 common accept sys_accept
|
||||
36 common sync sys_sync
|
||||
37 common kill sys_kill
|
||||
38 common rename sys_rename
|
||||
39 common mkdir sys_mkdir
|
||||
40 common rmdir sys_rmdir
|
||||
41 common dup sys_dup
|
||||
42 common pipe sys_pipe
|
||||
43 common times sys_times compat_sys_times
|
||||
44 common getsockname sys_getsockname
|
||||
45 common brk sys_brk
|
||||
46 common setgid sys_setgid
|
||||
47 common getgid sys_getgid
|
||||
48 common signal sys_signal
|
||||
49 common geteuid sys_geteuid
|
||||
50 common getegid sys_getegid
|
||||
51 common acct sys_acct
|
||||
52 common umount2 sys_umount
|
||||
53 common getpeername sys_getpeername
|
||||
54 common ioctl sys_ioctl compat_sys_ioctl
|
||||
55 common fcntl sys_fcntl compat_sys_fcntl
|
||||
56 common socketpair sys_socketpair
|
||||
57 common setpgid sys_setpgid
|
||||
58 common send sys_send
|
||||
59 common uname sys_newuname
|
||||
60 common umask sys_umask
|
||||
61 common chroot sys_chroot
|
||||
62 common ustat sys_ustat compat_sys_ustat
|
||||
63 common dup2 sys_dup2
|
||||
64 common getppid sys_getppid
|
||||
65 common getpgrp sys_getpgrp
|
||||
66 common setsid sys_setsid
|
||||
67 common pivot_root sys_pivot_root
|
||||
68 common sgetmask sys_sgetmask sys32_unimplemented
|
||||
69 common ssetmask sys_ssetmask sys32_unimplemented
|
||||
70 common setreuid sys_setreuid
|
||||
71 common setregid sys_setregid
|
||||
72 common mincore sys_mincore
|
||||
73 common sigpending sys_sigpending compat_sys_sigpending
|
||||
74 common sethostname sys_sethostname
|
||||
75 common setrlimit sys_setrlimit compat_sys_setrlimit
|
||||
76 common getrlimit sys_getrlimit compat_sys_getrlimit
|
||||
77 common getrusage sys_getrusage compat_sys_getrusage
|
||||
78 common gettimeofday sys_gettimeofday compat_sys_gettimeofday
|
||||
79 common settimeofday sys_settimeofday compat_sys_settimeofday
|
||||
80 common getgroups sys_getgroups
|
||||
81 common setgroups sys_setgroups
|
||||
82 common sendto sys_sendto
|
||||
83 common symlink sys_symlink
|
||||
84 common lstat sys_newlstat compat_sys_newlstat
|
||||
85 common readlink sys_readlink
|
||||
86 common uselib sys_ni_syscall
|
||||
87 common swapon sys_swapon
|
||||
88 common reboot sys_reboot
|
||||
89 common mmap2 sys_mmap2
|
||||
90 common mmap sys_mmap
|
||||
91 common munmap sys_munmap
|
||||
92 common truncate sys_truncate compat_sys_truncate
|
||||
93 common ftruncate sys_ftruncate compat_sys_ftruncate
|
||||
94 common fchmod sys_fchmod
|
||||
95 common fchown sys_fchown
|
||||
96 common getpriority sys_getpriority
|
||||
97 common setpriority sys_setpriority
|
||||
98 common recv sys_recv
|
||||
99 common statfs sys_statfs compat_sys_statfs
|
||||
100 common fstatfs sys_fstatfs compat_sys_fstatfs
|
||||
101 common stat64 sys_stat64
|
||||
# 102 was socketcall
|
||||
103 common syslog sys_syslog
|
||||
104 common setitimer sys_setitimer compat_sys_setitimer
|
||||
105 common getitimer sys_getitimer compat_sys_getitimer
|
||||
106 common capget sys_capget
|
||||
107 common capset sys_capset
|
||||
108 32 pread64 parisc_pread64
|
||||
108 64 pread64 sys_pread64
|
||||
109 32 pwrite64 parisc_pwrite64
|
||||
109 64 pwrite64 sys_pwrite64
|
||||
110 common getcwd sys_getcwd
|
||||
111 common vhangup sys_vhangup
|
||||
112 common fstat64 sys_fstat64
|
||||
113 common vfork sys_vfork_wrapper
|
||||
114 common wait4 sys_wait4 compat_sys_wait4
|
||||
115 common swapoff sys_swapoff
|
||||
116 common sysinfo sys_sysinfo compat_sys_sysinfo
|
||||
117 common shutdown sys_shutdown
|
||||
118 common fsync sys_fsync
|
||||
119 common madvise sys_madvise
|
||||
120 common clone sys_clone_wrapper
|
||||
121 common setdomainname sys_setdomainname
|
||||
122 common sendfile sys_sendfile compat_sys_sendfile
|
||||
123 common recvfrom sys_recvfrom
|
||||
124 common adjtimex sys_adjtimex compat_sys_adjtimex
|
||||
125 common mprotect sys_mprotect
|
||||
126 common sigprocmask sys_sigprocmask compat_sys_sigprocmask
|
||||
# 127 was create_module
|
||||
128 common init_module sys_init_module
|
||||
129 common delete_module sys_delete_module
|
||||
# 130 was get_kernel_syms
|
||||
131 common quotactl sys_quotactl
|
||||
132 common getpgid sys_getpgid
|
||||
133 common fchdir sys_fchdir
|
||||
134 common bdflush sys_bdflush
|
||||
135 common sysfs sys_sysfs
|
||||
136 32 personality parisc_personality
|
||||
136 64 personality sys_personality
|
||||
# 137 was afs_syscall
|
||||
138 common setfsuid sys_setfsuid
|
||||
139 common setfsgid sys_setfsgid
|
||||
140 common _llseek sys_llseek
|
||||
141 common getdents sys_getdents compat_sys_getdents
|
||||
142 common _newselect sys_select compat_sys_select
|
||||
143 common flock sys_flock
|
||||
144 common msync sys_msync
|
||||
145 common readv sys_readv compat_sys_readv
|
||||
146 common writev sys_writev compat_sys_writev
|
||||
147 common getsid sys_getsid
|
||||
148 common fdatasync sys_fdatasync
|
||||
149 common _sysctl sys_sysctl compat_sys_sysctl
|
||||
150 common mlock sys_mlock
|
||||
151 common munlock sys_munlock
|
||||
152 common mlockall sys_mlockall
|
||||
153 common munlockall sys_munlockall
|
||||
154 common sched_setparam sys_sched_setparam
|
||||
155 common sched_getparam sys_sched_getparam
|
||||
156 common sched_setscheduler sys_sched_setscheduler
|
||||
157 common sched_getscheduler sys_sched_getscheduler
|
||||
158 common sched_yield sys_sched_yield
|
||||
159 common sched_get_priority_max sys_sched_get_priority_max
|
||||
160 common sched_get_priority_min sys_sched_get_priority_min
|
||||
161 common sched_rr_get_interval sys_sched_rr_get_interval compat_sys_sched_rr_get_interval
|
||||
162 common nanosleep sys_nanosleep compat_sys_nanosleep
|
||||
163 common mremap sys_mremap
|
||||
164 common setresuid sys_setresuid
|
||||
165 common getresuid sys_getresuid
|
||||
166 common sigaltstack sys_sigaltstack compat_sys_sigaltstack
|
||||
# 167 was query_module
|
||||
168 common poll sys_poll
|
||||
# 169 was nfsservctl
|
||||
170 common setresgid sys_setresgid
|
||||
171 common getresgid sys_getresgid
|
||||
172 common prctl sys_prctl
|
||||
173 common rt_sigreturn sys_rt_sigreturn_wrapper
|
||||
174 common rt_sigaction sys_rt_sigaction compat_sys_rt_sigaction
|
||||
175 common rt_sigprocmask sys_rt_sigprocmask compat_sys_rt_sigprocmask
|
||||
176 common rt_sigpending sys_rt_sigpending compat_sys_rt_sigpending
|
||||
177 common rt_sigtimedwait sys_rt_sigtimedwait compat_sys_rt_sigtimedwait
|
||||
178 common rt_sigqueueinfo sys_rt_sigqueueinfo compat_sys_rt_sigqueueinfo
|
||||
179 common rt_sigsuspend sys_rt_sigsuspend compat_sys_rt_sigsuspend
|
||||
180 common chown sys_chown
|
||||
181 common setsockopt sys_setsockopt compat_sys_setsockopt
|
||||
182 common getsockopt sys_getsockopt compat_sys_getsockopt
|
||||
183 common sendmsg sys_sendmsg compat_sys_sendmsg
|
||||
184 common recvmsg sys_recvmsg compat_sys_recvmsg
|
||||
185 common semop sys_semop
|
||||
186 common semget sys_semget
|
||||
187 common semctl sys_semctl compat_sys_semctl
|
||||
188 common msgsnd sys_msgsnd compat_sys_msgsnd
|
||||
189 common msgrcv sys_msgrcv compat_sys_msgrcv
|
||||
190 common msgget sys_msgget
|
||||
191 common msgctl sys_msgctl compat_sys_msgctl
|
||||
192 common shmat sys_shmat compat_sys_shmat
|
||||
193 common shmdt sys_shmdt
|
||||
194 common shmget sys_shmget
|
||||
195 common shmctl sys_shmctl compat_sys_shmctl
|
||||
# 196 was getpmsg
|
||||
# 197 was putpmsg
|
||||
198 common lstat64 sys_lstat64
|
||||
199 32 truncate64 parisc_truncate64
|
||||
199 64 truncate64 sys_truncate64
|
||||
200 32 ftruncate64 parisc_ftruncate64
|
||||
200 64 ftruncate64 sys_ftruncate64
|
||||
201 common getdents64 sys_getdents64
|
||||
202 common fcntl64 sys_fcntl64 compat_sys_fcntl64
|
||||
# 203 was attrctl
|
||||
# 204 was acl_get
|
||||
# 205 was acl_set
|
||||
206 common gettid sys_gettid
|
||||
207 32 readahead parisc_readahead
|
||||
207 64 readahead sys_readahead
|
||||
208 common tkill sys_tkill
|
||||
209 common sendfile64 sys_sendfile64 compat_sys_sendfile64
|
||||
210 common futex sys_futex compat_sys_futex
|
||||
211 common sched_setaffinity sys_sched_setaffinity compat_sys_sched_setaffinity
|
||||
212 common sched_getaffinity sys_sched_getaffinity compat_sys_sched_getaffinity
|
||||
# 213 was set_thread_area
|
||||
# 214 was get_thread_area
|
||||
215 common io_setup sys_io_setup compat_sys_io_setup
|
||||
216 common io_destroy sys_io_destroy
|
||||
217 common io_getevents sys_io_getevents compat_sys_io_getevents
|
||||
218 common io_submit sys_io_submit compat_sys_io_submit
|
||||
219 common io_cancel sys_io_cancel
|
||||
# 220 was alloc_hugepages
|
||||
# 221 was free_hugepages
|
||||
222 common exit_group sys_exit_group
|
||||
223 common lookup_dcookie sys_lookup_dcookie compat_sys_lookup_dcookie
|
||||
224 common epoll_create sys_epoll_create
|
||||
225 common epoll_ctl sys_epoll_ctl
|
||||
226 common epoll_wait sys_epoll_wait
|
||||
227 common remap_file_pages sys_remap_file_pages
|
||||
228 common semtimedop sys_semtimedop compat_sys_semtimedop
|
||||
229 common mq_open sys_mq_open compat_sys_mq_open
|
||||
230 common mq_unlink sys_mq_unlink
|
||||
231 common mq_timedsend sys_mq_timedsend compat_sys_mq_timedsend
|
||||
232 common mq_timedreceive sys_mq_timedreceive compat_sys_mq_timedreceive
|
||||
233 common mq_notify sys_mq_notify compat_sys_mq_notify
|
||||
234 common mq_getsetattr sys_mq_getsetattr compat_sys_mq_getsetattr
|
||||
235 common waitid sys_waitid compat_sys_waitid
|
||||
236 32 fadvise64_64 parisc_fadvise64_64
|
||||
236 64 fadvise64_64 sys_fadvise64_64
|
||||
237 common set_tid_address sys_set_tid_address
|
||||
238 common setxattr sys_setxattr
|
||||
239 common lsetxattr sys_lsetxattr
|
||||
240 common fsetxattr sys_fsetxattr
|
||||
241 common getxattr sys_getxattr
|
||||
242 common lgetxattr sys_lgetxattr
|
||||
243 common fgetxattr sys_fgetxattr
|
||||
244 common listxattr sys_listxattr
|
||||
245 common llistxattr sys_llistxattr
|
||||
246 common flistxattr sys_flistxattr
|
||||
247 common removexattr sys_removexattr
|
||||
248 common lremovexattr sys_lremovexattr
|
||||
249 common fremovexattr sys_fremovexattr
|
||||
250 common timer_create sys_timer_create compat_sys_timer_create
|
||||
251 common timer_settime sys_timer_settime compat_sys_timer_settime
|
||||
252 common timer_gettime sys_timer_gettime compat_sys_timer_gettime
|
||||
253 common timer_getoverrun sys_timer_getoverrun
|
||||
254 common timer_delete sys_timer_delete
|
||||
255 common clock_settime sys_clock_settime compat_sys_clock_settime
|
||||
256 common clock_gettime sys_clock_gettime compat_sys_clock_gettime
|
||||
257 common clock_getres sys_clock_getres compat_sys_clock_getres
|
||||
258 common clock_nanosleep sys_clock_nanosleep compat_sys_clock_nanosleep
|
||||
259 common tgkill sys_tgkill
|
||||
260 common mbind sys_mbind compat_sys_mbind
|
||||
261 common get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy
|
||||
262 common set_mempolicy sys_set_mempolicy compat_sys_set_mempolicy
|
||||
# 263 was vserver
|
||||
264 common add_key sys_add_key
|
||||
265 common request_key sys_request_key
|
||||
266 common keyctl sys_keyctl compat_sys_keyctl
|
||||
267 common ioprio_set sys_ioprio_set
|
||||
268 common ioprio_get sys_ioprio_get
|
||||
269 common inotify_init sys_inotify_init
|
||||
270 common inotify_add_watch sys_inotify_add_watch
|
||||
271 common inotify_rm_watch sys_inotify_rm_watch
|
||||
272 common migrate_pages sys_migrate_pages
|
||||
273 common pselect6 sys_pselect6 compat_sys_pselect6
|
||||
274 common ppoll sys_ppoll compat_sys_ppoll
|
||||
275 common openat sys_openat compat_sys_openat
|
||||
276 common mkdirat sys_mkdirat
|
||||
277 common mknodat sys_mknodat
|
||||
278 common fchownat sys_fchownat
|
||||
279 common futimesat sys_futimesat compat_sys_futimesat
|
||||
280 common fstatat64 sys_fstatat64
|
||||
281 common unlinkat sys_unlinkat
|
||||
282 common renameat sys_renameat
|
||||
283 common linkat sys_linkat
|
||||
284 common symlinkat sys_symlinkat
|
||||
285 common readlinkat sys_readlinkat
|
||||
286 common fchmodat sys_fchmodat
|
||||
287 common faccessat sys_faccessat
|
||||
288 common unshare sys_unshare
|
||||
289 common set_robust_list sys_set_robust_list compat_sys_set_robust_list
|
||||
290 common get_robust_list sys_get_robust_list compat_sys_get_robust_list
|
||||
291 common splice sys_splice
|
||||
292 32 sync_file_range parisc_sync_file_range
|
||||
292 64 sync_file_range sys_sync_file_range
|
||||
293 common tee sys_tee
|
||||
294 common vmsplice sys_vmsplice compat_sys_vmsplice
|
||||
295 common move_pages sys_move_pages compat_sys_move_pages
|
||||
296 common getcpu sys_getcpu
|
||||
297 common epoll_pwait sys_epoll_pwait compat_sys_epoll_pwait
|
||||
298 common statfs64 sys_statfs64 compat_sys_statfs64
|
||||
299 common fstatfs64 sys_fstatfs64 compat_sys_fstatfs64
|
||||
300 common kexec_load sys_kexec_load compat_sys_kexec_load
|
||||
301 common utimensat sys_utimensat compat_sys_utimensat
|
||||
302 common signalfd sys_signalfd compat_sys_signalfd
|
||||
# 303 was timerfd
|
||||
304 common eventfd sys_eventfd
|
||||
305 32 fallocate parisc_fallocate
|
||||
305 64 fallocate sys_fallocate
|
||||
306 common timerfd_create sys_timerfd_create
|
||||
307 common timerfd_settime sys_timerfd_settime compat_sys_timerfd_settime
|
||||
308 common timerfd_gettime sys_timerfd_gettime compat_sys_timerfd_gettime
|
||||
309 common signalfd4 sys_signalfd4 compat_sys_signalfd4
|
||||
310 common eventfd2 sys_eventfd2
|
||||
311 common epoll_create1 sys_epoll_create1
|
||||
312 common dup3 sys_dup3
|
||||
313 common pipe2 sys_pipe2
|
||||
314 common inotify_init1 sys_inotify_init1
|
||||
315 common preadv sys_preadv compat_sys_preadv
|
||||
316 common pwritev sys_pwritev compat_sys_pwritev
|
||||
317 common rt_tgsigqueueinfo sys_rt_tgsigqueueinfo compat_sys_rt_tgsigqueueinfo
|
||||
318 common perf_event_open sys_perf_event_open
|
||||
319 common recvmmsg sys_recvmmsg compat_sys_recvmmsg
|
||||
320 common accept4 sys_accept4
|
||||
321 common prlimit64 sys_prlimit64
|
||||
322 common fanotify_init sys_fanotify_init
|
||||
323 common fanotify_mark sys_fanotify_mark sys32_fanotify_mark
|
||||
324 common clock_adjtime sys_clock_adjtime compat_sys_clock_adjtime
|
||||
325 common name_to_handle_at sys_name_to_handle_at
|
||||
326 common open_by_handle_at sys_open_by_handle_at compat_sys_open_by_handle_at
|
||||
327 common syncfs sys_syncfs
|
||||
328 common setns sys_setns
|
||||
329 common sendmmsg sys_sendmmsg compat_sys_sendmmsg
|
||||
330 common process_vm_readv sys_process_vm_readv compat_sys_process_vm_readv
|
||||
331 common process_vm_writev sys_process_vm_writev compat_sys_process_vm_writev
|
||||
332 common kcmp sys_kcmp
|
||||
333 common finit_module sys_finit_module
|
||||
334 common sched_setattr sys_sched_setattr
|
||||
335 common sched_getattr sys_sched_getattr
|
||||
336 common utimes sys_utimes compat_sys_utimes
|
||||
337 common renameat2 sys_renameat2
|
||||
338 common seccomp sys_seccomp
|
||||
339 common getrandom sys_getrandom
|
||||
340 common memfd_create sys_memfd_create
|
||||
341 common bpf sys_bpf
|
||||
342 common execveat sys_execveat compat_sys_execveat
|
||||
343 common membarrier sys_membarrier
|
||||
344 common userfaultfd sys_userfaultfd
|
||||
345 common mlock2 sys_mlock2
|
||||
346 common copy_file_range sys_copy_file_range
|
||||
347 common preadv2 sys_preadv2 compat_sys_preadv2
|
||||
348 common pwritev2 sys_pwritev2 compat_sys_pwritev2
|
||||
349 common statx sys_statx
|
||||
350 common io_pgetevents sys_io_pgetevents compat_sys_io_pgetevents
|
36
arch/parisc/kernel/syscalls/syscallhdr.sh
Normal file
36
arch/parisc/kernel/syscalls/syscallhdr.sh
Normal file
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
in="$1"
|
||||
out="$2"
|
||||
my_abis=`echo "($3)" | tr ',' '|'`
|
||||
prefix="$4"
|
||||
offset="$5"
|
||||
|
||||
fileguard=_UAPI_ASM_PARISC_`basename "$out" | sed \
|
||||
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
|
||||
-e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'`
|
||||
grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
|
||||
printf "#ifndef %s\n" "${fileguard}"
|
||||
printf "#define %s\n" "${fileguard}"
|
||||
printf "\n"
|
||||
|
||||
nxt=0
|
||||
while read nr abi name entry compat ; do
|
||||
if [ -z "$offset" ]; then
|
||||
printf "#define __NR_%s%s\t%s\n" \
|
||||
"${prefix}" "${name}" "${nr}"
|
||||
else
|
||||
printf "#define __NR_%s%s\t(%s + %s)\n" \
|
||||
"${prefix}" "${name}" "${offset}" "${nr}"
|
||||
fi
|
||||
nxt=$((nr+1))
|
||||
done
|
||||
|
||||
printf "\n"
|
||||
printf "#ifdef __KERNEL__\n"
|
||||
printf "#define __NR_syscalls\t%s\n" "${nxt}"
|
||||
printf "#endif\n"
|
||||
printf "\n"
|
||||
printf "#endif /* %s */" "${fileguard}"
|
||||
) > "$out"
|
36
arch/parisc/kernel/syscalls/syscalltbl.sh
Normal file
36
arch/parisc/kernel/syscalls/syscalltbl.sh
Normal file
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
in="$1"
|
||||
out="$2"
|
||||
my_abis=`echo "($3)" | tr ',' '|'`
|
||||
my_abi="$4"
|
||||
offset="$5"
|
||||
|
||||
emit() {
|
||||
t_nxt="$1"
|
||||
t_nr="$2"
|
||||
t_entry="$3"
|
||||
|
||||
while [ $t_nxt -lt $t_nr ]; do
|
||||
printf "__SYSCALL(%s, sys_ni_syscall, )\n" "${t_nxt}"
|
||||
t_nxt=$((t_nxt+1))
|
||||
done
|
||||
printf "__SYSCALL(%s, %s, )\n" "${t_nxt}" "${t_entry}"
|
||||
}
|
||||
|
||||
grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | (
|
||||
nxt=0
|
||||
if [ -z "$offset" ]; then
|
||||
offset=0
|
||||
fi
|
||||
|
||||
while read nr abi name entry compat ; do
|
||||
if [ "$my_abi" = "c32" ] && [ ! -z "$compat" ]; then
|
||||
emit $((nxt+offset)) $((nr+offset)) $compat
|
||||
else
|
||||
emit $((nxt+offset)) $((nr+offset)) $entry
|
||||
fi
|
||||
nxt=$((nr+1))
|
||||
done
|
||||
) > "$out"
|
@ -381,9 +381,9 @@ static int __init gscps2_probe(struct parisc_device *dev)
|
||||
goto fail;
|
||||
#endif
|
||||
|
||||
printk(KERN_INFO "serio: %s port at 0x%p irq %d @ %s\n",
|
||||
pr_info("serio: %s port at 0x%08lx irq %d @ %s\n",
|
||||
ps2port->port->name,
|
||||
ps2port->addr,
|
||||
hpa,
|
||||
ps2port->padev->irq,
|
||||
ps2port->port->phys);
|
||||
|
||||
|
@ -884,8 +884,8 @@ static int __init hp_sdc_init(void)
|
||||
"HP SDC NMI", &hp_sdc))
|
||||
goto err2;
|
||||
|
||||
printk(KERN_INFO PREFIX "HP SDC at 0x%p, IRQ %d (NMI IRQ %d)\n",
|
||||
(void *)hp_sdc.base_io, hp_sdc.irq, hp_sdc.nmi);
|
||||
pr_info(PREFIX "HP SDC at 0x%08lx, IRQ %d (NMI IRQ %d)\n",
|
||||
hp_sdc.base_io, hp_sdc.irq, hp_sdc.nmi);
|
||||
|
||||
hp_sdc_status_in8();
|
||||
hp_sdc_data_in8();
|
||||
|
@ -150,6 +150,7 @@ cat << EOF
|
||||
#define __IGNORE_uselib
|
||||
#define __IGNORE__sysctl
|
||||
#define __IGNORE_arch_prctl
|
||||
#define __IGNORE_nfsservctl
|
||||
|
||||
/* ... including the "new" 32-bit uid syscalls */
|
||||
#define __IGNORE_lchown32
|
||||
|
Loading…
Reference in New Issue
Block a user