[CRIU] [PATCH] x86: syscalls -- Rework building procedure

Cyrill Gorcunov gorcunov at openvz.org
Thu Apr 9 01:45:53 PDT 2015


 - Get rid of shell script, we can do everything via make itself in parallel mode
 - Collect syscall related data into syscalls subdirectory (we gonna implement
   32 bit mode soon)
 - We can't drop off __NR_ constants because we're using them in parasite code
   (when we inject dumper and for "criu exec" mode)

Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
 arch/x86/Makefile                               |  64 +++++++++------
 arch/x86/syscall-x86-64.def                     | 103 ------------------------
 arch/x86/syscalls-x86-64.sh                     |  54 -------------
 arch/x86/{ => syscalls}/syscall-common-x86-64.S |   0
 arch/x86/syscalls/syscall_64.tbl                |  98 ++++++++++++++++++++++
 5 files changed, 136 insertions(+), 183 deletions(-)
 delete mode 100644 arch/x86/syscall-x86-64.def
 delete mode 100644 arch/x86/syscalls-x86-64.sh
 rename arch/x86/{ => syscalls}/syscall-common-x86-64.S (100%)
 create mode 100644 arch/x86/syscalls/syscall_64.tbl

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 71c748bfc85d..76a18b28836c 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -8,14 +8,12 @@ crtools-obj-y	+= crtools.o
 crtools-obj-y	+= cpu.o
 crtools-obj-y	+= prlimit.o
 
-SYS-DEF		:= syscall-x86-64.def
+SYS-DEF		:= syscall_64.tbl
 SYS-ASM-COMMON	:= syscall-common-x86-64.S
 
-SYS-TYPES	:= include/syscall-types.h
-SYS-CODES	:= include/syscall-codes.h
-SYS-PROTO	:= include/syscall.h
-
-SYS-GEN		:= syscalls-x86-64.sh
+SYS-TYPES	:= ../../include/syscall-types.h
+SYS-CODES	:= ../../include/syscall-codes.h
+SYS-PROTO	:= ../../include/syscall.h
 
 SYS-EXEC-TBL	:= sys-exec-tbl.c
 
@@ -24,31 +22,45 @@ syscalls-asm-y-asmflags += -nostdlib -fomit-frame-pointer -I$(obj)
 
 ASMFLAGS	+= -D__ASSEMBLY__
 
-$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/$(SYS-DEF) $(obj)/$(SYS-ASM-COMMON) $(SYS-TYPES)
+$(obj)/$(SYS-CODES): $(obj)/syscalls/$(SYS-DEF)
 	$(E) "  GEN     " $@
-	$(Q) $(SH)				\
-		$(obj)/$(SYS-GEN) --asm		\
-		$(obj)/$(SYS-DEF)		\
-		$(SYS-CODES)			\
-		$(SYS-PROTO)			\
-		$(obj)/$(SYS-ASM)		\
-		$(SYS-ASM-COMMON)		\
-		$(SYS-TYPES)
-
-$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
-
-$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN) $(obj)/$(SYS-DEF)
+	$(Q) echo "/* Autogenerated, don't edit */"										>  $@
+	$(Q) echo "#ifndef __ASM_CR_SYSCALL_CODES_H__"										>> $@
+	$(Q) echo "#define __ASM_CR_SYSCALL_CODES_H__"										>> $@
+	$(Q) cat $< | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "#define " $$1 " " $$2 }'			>> $@
+	$(Q) echo "#endif /* __ASM_CR_SYSCALL_CODES_H__ */"									>> $@
+_all += $(obj)/$(SYS-CODES)
+cleanup-y += $(obj)/$(SYS-CODES)
+
+$(obj)/$(SYS-PROTO): $(obj)/syscalls/$(SYS-DEF)
 	$(E) "  GEN     " $@
-	$(Q) $(SH)				\
-		$(obj)/$(SYS-GEN) --exec	\
-		$(obj)/$(SYS-DEF)		\
-		$(obj)/$(SYS-EXEC-TBL)
+	$(Q) echo "/* Autogenerated, don't edit */"										>  $@
+	$(Q) echo "#ifndef __ASM_CR_SYSCALL_PROTO_H__"										>> $@
+	$(Q) echo "#define __ASM_CR_SYSCALL_PROTO_H__"										>> $@
+	$(Q) echo "#include \"syscall-codes.h\""										>> $@
+	$(Q) echo "#include \"syscall-types.h\""										>> $@
+	$(Q) cat $< | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "extern long ", $$(3), $$(4), ";"}'		>> $@
+	$(Q) echo "#endif /* __ASM_CR_SYSCALL_PROTO_H__ */"									>> $@
+_all += $(obj)/$(SYS-PROTO)
+cleanup-y += $(obj)/$(SYS-PROTO)
 
+$(obj)/$(SYS-ASM): $(obj)/syscalls/$(SYS-DEF) $(obj)/syscalls/$(SYS-ASM-COMMON) $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
+	$(E) "  GEN     " $@
+	$(Q) echo "/* Autogenerated, don't edit */"										>  $@
+	$(Q) echo "#include \"syscall-codes.h\""										>> $@
+	$(Q) echo "#include \"syscalls/$(SYS-ASM-COMMON)\""									>> $@
+	$(Q) cat $< | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "SYSCALL(", $$3, ",", $$2, ")"}'		>> $@
+_all += $(obj)/$(SYS-ASM)
+cleanup-y += $(obj)/$(SYS-ASM)
+
+$(obj)/$(SYS-EXEC-TBL): $(obj)/syscalls/$(SYS-DEF) $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
+	$(E) "  GEN     " $@
+	$(Q) echo "/* Autogenerated, don't edit */"										>  $@
+	$(Q) cat $< | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "SYSCALL(", substr($$3, 5), ",", $$2, ")"}'	>> $@
 _all += $(obj)/$(SYS-EXEC-TBL)
+cleanup-y += $(obj)/$(SYS-EXEC-TBL)
 
-cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
-cleanup-y += $(SYS-CODES)
-cleanup-y += $(SYS-PROTO)
+$(obj)/crtools.built-in.o: | $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
 
 ifneq ($(MAKECMDGOALS),clean)
 deps-after := $(obj)/$(SYS-ASM)
diff --git a/arch/x86/syscall-x86-64.def b/arch/x86/syscall-x86-64.def
deleted file mode 100644
index b793e8e1ef68..000000000000
--- a/arch/x86/syscall-x86-64.def
+++ /dev/null
@@ -1,103 +0,0 @@
-#
-# System calls table, please make sure the table consist only the syscalls
-# really used somewhere in project.
-#
-# The template is (name and srguments are optinal if you need only __NR_x
-# defined, but no realy entry point in syscalls lib).
-#
-# name			code		name			arguments
-# -----------------------------------------------------------------------
-#
-__NR_read		0		sys_read		(int fd, void *buf, unsigned long count)
-__NR_write		1		sys_write		(int fd, const void *buf, unsigned long count)
-__NR_open		2		sys_open		(const char *filename, unsigned long flags, unsigned long mode)
-__NR_close		3		sys_close		(int fd)
-__NR_lseek		8		sys_lseek		(int fd, unsigned long offset, unsigned long origin)
-__NR_mmap		9		sys_mmap		(void *addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long offset)
-__NR_mprotect		10		sys_mprotect		(const void *addr, unsigned long len, unsigned long prot)
-__NR_munmap		11		sys_munmap		(void *addr, unsigned long len)
-__NR_brk		12		sys_brk			(void *addr)
-__NR_rt_sigaction	13		sys_sigaction		(int signum, const rt_sigaction_t *act, rt_sigaction_t *oldact, size_t sigsetsize)
-__NR_rt_sigprocmask	14		sys_sigprocmask		(int how, k_rtsigset_t *set, k_rtsigset_t *old, size_t sigsetsize)
-__NR_rt_sigreturn	15		sys_rt_sigreturn	(void)
-__NR_ioctl		16		sys_ioctl		(unsigned int fd, unsigned int cmd, unsigned long arg)
-__NR_pread64		17		sys_pread		(unsigned int fd, char *buf, size_t count, loff_t pos)
-__NR_mremap		25		sys_mremap		(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr)
-__NR_mincore		27		sys_mincore		(void *addr, unsigned long size, unsigned char *vec)
-__NR_madvise		28		sys_madvise		(unsigned long start, size_t len, int behavior)
-__NR_shmat		30		sys_shmat		(int shmid, void *shmaddr, int shmflag)
-__NR_pause		34		sys_pause		(void)
-__NR_nanosleep		35		sys_nanosleep		(struct timespec *req, struct timespec *rem)
-__NR_getitimer		36		sys_getitimer		(int which, const struct itimerval *val)
-__NR_setitimer		38		sys_setitimer		(int which, const struct itimerval *val, struct itimerval *old)
-__NR_getpid		39		sys_getpid		(void)
-__NR_socket		41		sys_socket		(int domain, int type, int protocol)
-__NR_connect		42		sys_connect		(int sockfd, struct sockaddr *addr, int addrlen)
-__NR_sendto		44		sys_sendto		(int sockfd, void *buff, size_t len, unsigned int flags, struct sockaddr *addr, int addr_len)
-__NR_recvfrom		45		sys_recvfrom		(int sockfd, void *ubuf, size_t size, unsigned int flags, struct sockaddr *addr, int *addr_len)
-__NR_sendmsg		46		sys_sendmsg		(int sockfd, const struct msghdr *msg, int flags)
-__NR_recvmsg		47		sys_recvmsg		(int sockfd, struct msghdr *msg, int flags)
-__NR_shutdown		48		sys_shutdown		(int sockfd, int how)
-__NR_bind		49		sys_bind		(int sockfd, const struct sockaddr *addr, int addrlen)
-__NR_setsockopt		54		sys_setsockopt		(int sockfd, int level, int optname, const void *optval, socklen_t optlen)
-__NR_getsockopt		55		sys_getsockopt		(int sockfd, int level, int optname, const void *optval, socklen_t *optlen)
-__NR_clone		56		sys_clone		(unsigned long flags, void *child_stack, void *parent_tid, void *child_tid)
-__NR_exit		60		sys_exit		(unsigned long error_code)
-__NR_wait4		61		sys_wait4		(int pid, int *status, int options, struct rusage *ru)
-__NR_kill		62		sys_kill		(long pid, int sig)
-__NR_fcntl		72		sys_fcntl		(int fd, int type, long arg)
-__NR_flock		73		sys_flock		(int fd, unsigned long cmd)
-__NR_mkdir		83		sys_mkdir		(const char *name, int mode)
-__NR_rmdir		84		sys_rmdir		(const char *name)
-__NR_unlink		87		sys_unlink		(char *pathname)
-__NR_readlink		89		sys_readlink		(const char *path, char *buf, int bufsize)
-__NR_umask		95		sys_umask		(int mask)
-__NR_getgroups		115		sys_getgroups		(int gsize, unsigned int *groups)
-__NR_setresuid		117		sys_setresuid		(int uid, int euid, int suid)
-__NR_getresuid		118		sys_getresuid		(int *uid, int *euid, int *suid)
-__NR_setresgid		119		sys_setresgid		(int gid, int egid, int sgid)
-__NR_getresgid		120		sys_getresgid		(int *gid, int *egid, int *sgid)
-__NR_getpgid		121		sys_getpgid		(pid_t pid)
-__NR_setfsuid		122		sys_setfsuid		(int fsuid)
-__NR_setfsgid		123		sys_setfsgid		(int fsgid)
-__NR_getsid		124		sys_getsid		(void)
-__NR_capget		125		sys_capget		(struct cap_header *h, struct cap_data *d)
-__NR_capset		126		sys_capset		(struct cap_header *h, struct cap_data *d)
-__NR_rt_sigqueueinfo	129		sys_rt_sigqueueinfo	(pid_t pid, int sig, siginfo_t *info)
-__NR_sigaltstack	131		sys_sigaltstack		(const void *uss, void *uoss)
-__NR_personality	135		sys_personality		(unsigned int personality)
-__NR_setpriority	141		sys_setpriority		(int which, int who, int nice)
-__NR_sched_setscheduler	144		sys_sched_setscheduler	(int pid, int policy, struct sched_param *p)
-__NR_prctl		157		sys_prctl		(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5)
-__NR_arch_prctl		158		sys_arch_prctl		(int option, unsigned long addr)
-__NR_setrlimit		160		sys_setrlimit		(int resource, struct krlimit *rlim)
-__NR_mount		165		sys_mount		(char *dev_nmae, char *dir_name, char *type, unsigned long flags, void *data)
-__NR_umount2		166		sys_umount2		(char *name, int flags)
-__NR_gettid		186		sys_gettid		(void)
-__NR_futex		202		sys_futex		(u32 *uaddr, int op, u32 val, struct timespec *utime, u32 *uaddr2, u32 val3)
-__NR_set_thread_area	205		sys_set_thread_area	(user_desc_t *info)
-__NR_get_thread_area	211		sys_get_thread_area	(user_desc_t *info)
-__NR_set_tid_address	218		sys_set_tid_address	(int *tid_addr)
-__NR_restart_syscall	219		sys_restart_syscall	(void)
-__NR_sys_timer_create	222		sys_timer_create	(clockid_t which_clock, struct sigevent *timer_event_spec, timer_t *created_timer_id)
-__NR_sys_timer_settime	223		sys_timer_settime	(timer_t timer_id, int flags, const struct itimerspec *new_setting, struct itimerspec *old_setting)
-__NR_sys_timer_gettime	224		sys_timer_gettime	(int timer_id, const struct itimerspec *setting)
-__NR_sys_timer_getoverrun	225		sys_timer_getoverrun	(int timer_id)
-__NR_sys_timer_delete	226		sys_timer_delete	(timer_t timer_id)
-__NR_clock_gettime	228		sys_clock_gettime	(const clockid_t which_clock, const struct timespec *tp)
-__NR_exit_group		231		sys_exit_group		(int error_code)
-__NR_io_setup		206		sys_io_setup		(unsigned nr_events, aio_context_t *ctx)
-__NR_io_getevents	208		sys_io_getevents	(aio_context_t ctx, long min_nr, long nr, struct io_event *evs, struct timespec *tmo)
-__NR_set_robust_list	273		sys_set_robust_list	(struct robust_list_head *head, size_t len)
-__NR_get_robust_list	274		sys_get_robust_list	(int pid, struct robust_list_head **head_ptr, size_t *len_ptr)
-__NR_vmsplice		278		sys_vmsplice		(int fd, const struct iovec *iov, unsigned long nr_segs, unsigned int flags)
-__NR_timerfd_settime	286		sys_timerfd_settime	(int ufd, int flags, const struct itimerspec *utmr, struct itimerspec *otmr)
-__NR_signalfd4		289		sys_signalfd		(int fd, k_rtsigset_t *mask, size_t sizemask, int flags)
-__NR_rt_tgsigqueueinfo	297		sys_rt_tgsigqueueinfo	(pid_t tgid, pid_t pid, int sig, siginfo_t *info)
-__NR_fanotify_init	300		sys_fanotify_init	(unsigned int flags, unsigned int event_f_flags)
-__NR_fanotify_mark	301		sys_fanotify_mark	(int fanotify_fd, unsigned int flags, u64 mask, int dfd, const char *pathname)
-__NR_prlimit64		302		sys_prlimit64		(pid_t pid, unsigned int resource, const struct rlimit64 *new_rlim, struct rlimit64 *old_rlim)
-__NR_open_by_handle_at	304		sys_open_by_handle_at	(int mountdirfd, struct file_handle *handle, int flags)
-__NR_setns		308		sys_setns		(int fd, int nstype)
-__NR_kcmp		312		sys_kcmp		(pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2)
-__NR_memfd_create	319		sys_memfd_create	(const char *name, unsigned int flags)
diff --git a/arch/x86/syscalls-x86-64.sh b/arch/x86/syscalls-x86-64.sh
deleted file mode 100644
index 22c81293dfff..000000000000
--- a/arch/x86/syscalls-x86-64.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/sh
-
-gen_asm() {
-	in=$1
-	codesout=$2
-	codesinc=`echo $2 | sed -e 's/.*include\///g'`
-	protosout=$3
-	asmout=$4
-	asmcommon=`echo $5 | sed -e 's/.*include\///g'`
-	prototypes=`echo $6 | sed -e 's/.*include\///g'`
-
-	codesdef=`echo $codesout | sed -e 's/.*include\///g' | tr "[[:space:]].-" _`
-	protosdef=`echo $protosout | sed -e 's/.*include\///g' | tr "[[:space:]].-" _`
-
-	echo "/* Autogenerated, don't edit */"	>  $codesout
-	echo "#ifndef $codesdef"		>> $codesout
-	echo "#define $codesdef"		>> $codesout
-
-	echo "/* Autogenerated, don't edit */"	>  $protosout
-	echo "#ifndef $protosdef"		>> $protosout
-	echo "#define $protosdef"		>> $protosout
-	echo "#include \"$prototypes\""		>> $protosout
-	echo "#include \"$codesinc\""		>> $protosout
-
-	echo "/* Autogenerated, don't edit */"	>  $asmout
-	echo "#include \"$codesinc\""		>> $asmout
-	echo "#include \"$asmcommon\""		>> $asmout
-
-	cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "#define", $1, $2}'		>> $codesout
-	cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "extern long ", $3, $4, ";"}'	>> $protosout
-	cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "SYSCALL(", $3, ",", $2, ")"}'	>> $asmout
-
-	echo "#endif /* $codesdef */"		>> $codesout
-	echo "#endif /* $protosdef */"		>> $protosout
-}
-
-gen_exec() {
-	in=$1
-	codecout=$2
-
-	echo "/* Autogenerated, don't edit */"	>  $codecout
-
-	cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "SYSCALL(", substr($3, 5), ",", $2, ")"}' >> $codecout
-}
-
-if [ "$1" = "--asm" ]; then
-	shift
-	gen_asm $@
-fi
-
-if [ "$1" = "--exec" ]; then
-	shift
-	gen_exec $@
-fi
diff --git a/arch/x86/syscall-common-x86-64.S b/arch/x86/syscalls/syscall-common-x86-64.S
similarity index 100%
rename from arch/x86/syscall-common-x86-64.S
rename to arch/x86/syscalls/syscall-common-x86-64.S
diff --git a/arch/x86/syscalls/syscall_64.tbl b/arch/x86/syscalls/syscall_64.tbl
new file mode 100644
index 000000000000..085dbdf0e28e
--- /dev/null
+++ b/arch/x86/syscalls/syscall_64.tbl
@@ -0,0 +1,98 @@
+#
+# System calls table, please make sure the table consist only the syscalls
+# really used somewhere in project.
+#
+# __NR_name			code		name			arguments
+# -------------------------------------------------------------------------------------------------------------------------------------------------------------
+__NR_read			0		sys_read		(int fd, void *buf, unsigned long count)
+__NR_write			1		sys_write		(int fd, const void *buf, unsigned long count)
+__NR_open			2		sys_open		(const char *filename, unsigned long flags, unsigned long mode)
+__NR_close			3		sys_close		(int fd)
+__NR_lseek			8		sys_lseek		(int fd, unsigned long offset, unsigned long origin)
+__NR_mmap			9		sys_mmap		(void *addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long offset)
+__NR_mprotect			10		sys_mprotect		(const void *addr, unsigned long len, unsigned long prot)
+__NR_munmap			11		sys_munmap		(void *addr, unsigned long len)
+__NR_brk			12		sys_brk			(void *addr)
+__NR_rt_sigaction		13		sys_sigaction		(int signum, const rt_sigaction_t *act, rt_sigaction_t *oldact, size_t sigsetsize)
+__NR_rt_sigprocmask		14		sys_sigprocmask		(int how, k_rtsigset_t *set, k_rtsigset_t *old, size_t sigsetsize)
+__NR_rt_sigreturn		15		sys_rt_sigreturn	(void)
+__NR_ioctl			16		sys_ioctl		(unsigned int fd, unsigned int cmd, unsigned long arg)
+__NR_pread64			17		sys_pread		(unsigned int fd, char *buf, size_t count, loff_t pos)
+__NR_mremap			25		sys_mremap		(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr)
+__NR_mincore			27		sys_mincore		(void *addr, unsigned long size, unsigned char *vec)
+__NR_madvise			28		sys_madvise		(unsigned long start, size_t len, int behavior)
+__NR_shmat			30		sys_shmat		(int shmid, void *shmaddr, int shmflag)
+__NR_nanosleep			35		sys_nanosleep		(struct timespec *req, struct timespec *rem)
+__NR_getitimer			36		sys_getitimer		(int which, const struct itimerval *val)
+__NR_setitimer			38		sys_setitimer		(int which, const struct itimerval *val, struct itimerval *old)
+__NR_getpid			39		sys_getpid		(void)
+__NR_socket			41		sys_socket		(int domain, int type, int protocol)
+__NR_connect			42		sys_connect		(int sockfd, struct sockaddr *addr, int addrlen)
+__NR_sendto			44		sys_sendto		(int sockfd, void *buff, size_t len, unsigned int flags, struct sockaddr *addr, int addr_len)
+__NR_recvfrom			45		sys_recvfrom		(int sockfd, void *ubuf, size_t size, unsigned int flags, struct sockaddr *addr, int *addr_len)
+__NR_sendmsg			46		sys_sendmsg		(int sockfd, const struct msghdr *msg, int flags)
+__NR_recvmsg			47		sys_recvmsg		(int sockfd, struct msghdr *msg, int flags)
+__NR_shutdown			48		sys_shutdown		(int sockfd, int how)
+__NR_bind			49		sys_bind		(int sockfd, const struct sockaddr *addr, int addrlen)
+__NR_setsockopt			54		sys_setsockopt		(int sockfd, int level, int optname, const void *optval, socklen_t optlen)
+__NR_getsockopt			55		sys_getsockopt		(int sockfd, int level, int optname, const void *optval, socklen_t *optlen)
+__NR_clone			56		sys_clone		(unsigned long flags, void *child_stack, void *parent_tid, void *child_tid)
+__NR_exit			60		sys_exit		(unsigned long error_code)
+__NR_wait4			61		sys_wait4		(int pid, int *status, int options, struct rusage *ru)
+__NR_kill			62		sys_kill		(long pid, int sig)
+__NR_fcntl			72		sys_fcntl		(int fd, int type, long arg)
+__NR_flock			73		sys_flock		(int fd, unsigned long cmd)
+__NR_mkdir			83		sys_mkdir		(const char *name, int mode)
+__NR_rmdir			84		sys_rmdir		(const char *name)
+__NR_unlink			87		sys_unlink		(char *pathname)
+__NR_readlink			89		sys_readlink		(const char *path, char *buf, int bufsize)
+__NR_umask			95		sys_umask		(int mask)
+__NR_getgroups			115		sys_getgroups		(int gsize, unsigned int *groups)
+__NR_setresuid			117		sys_setresuid		(int uid, int euid, int suid)
+__NR_getresuid			118		sys_getresuid		(int *uid, int *euid, int *suid)
+__NR_setresgid			119		sys_setresgid		(int gid, int egid, int sgid)
+__NR_getresgid			120		sys_getresgid		(int *gid, int *egid, int *sgid)
+__NR_getpgid			121		sys_getpgid		(pid_t pid)
+__NR_setfsuid			122		sys_setfsuid		(int fsuid)
+__NR_setfsgid			123		sys_setfsgid		(int fsgid)
+__NR_getsid			124		sys_getsid		(void)
+__NR_capget			125		sys_capget		(struct cap_header *h, struct cap_data *d)
+__NR_capset			126		sys_capset		(struct cap_header *h, struct cap_data *d)
+__NR_rt_sigqueueinfo		129		sys_rt_sigqueueinfo	(pid_t pid, int sig, siginfo_t *info)
+__NR_sigaltstack		131		sys_sigaltstack		(const void *uss, void *uoss)
+__NR_personality		135		sys_personality		(unsigned int personality)
+__NR_setpriority		141		sys_setpriority		(int which, int who, int nice)
+__NR_sched_setscheduler		144		sys_sched_setscheduler	(int pid, int policy, struct sched_param *p)
+__NR_prctl			157		sys_prctl		(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5)
+__NR_arch_prctl			158		sys_arch_prctl		(int option, unsigned long addr)
+__NR_setrlimit			160		sys_setrlimit		(int resource, struct krlimit *rlim)
+__NR_mount			165		sys_mount		(char *dev_nmae, char *dir_name, char *type, unsigned long flags, void *data)
+__NR_umount2			166		sys_umount2		(char *name, int flags)
+__NR_gettid			186		sys_gettid		(void)
+__NR_futex			202		sys_futex		(u32 *uaddr, int op, u32 val, struct timespec *utime, u32 *uaddr2, u32 val3)
+__NR_set_thread_area		205		sys_set_thread_area	(user_desc_t *info)
+__NR_io_setup			206		sys_io_setup		(unsigned nr_events, aio_context_t *ctx)
+__NR_io_getevents		208		sys_io_getevents	(aio_context_t ctx, long min_nr, long nr, struct io_event *evs, struct timespec *tmo)
+__NR_get_thread_area		211		sys_get_thread_area	(user_desc_t *info)
+__NR_set_tid_address		218		sys_set_tid_address	(int *tid_addr)
+__NR_restart_syscall		219		sys_restart_syscall	(void)
+__NR_sys_timer_create		222		sys_timer_create	(clockid_t which_clock, struct sigevent *timer_event_spec, timer_t *created_timer_id)
+__NR_sys_timer_settime		223		sys_timer_settime	(timer_t timer_id, int flags, const struct itimerspec *new_setting, struct itimerspec *old_setting)
+__NR_sys_timer_gettime		224		sys_timer_gettime	(int timer_id, const struct itimerspec *setting)
+__NR_sys_timer_getoverrun	225		sys_timer_getoverrun	(int timer_id)
+__NR_sys_timer_delete		226		sys_timer_delete	(timer_t timer_id)
+__NR_clock_gettime		228		sys_clock_gettime	(const clockid_t which_clock, const struct timespec *tp)
+__NR_exit_group			231		sys_exit_group		(int error_code)
+__NR_set_robust_list		273		sys_set_robust_list	(struct robust_list_head *head, size_t len)
+__NR_get_robust_list		274		sys_get_robust_list	(int pid, struct robust_list_head **head_ptr, size_t *len_ptr)
+__NR_vmsplice			278		sys_vmsplice		(int fd, const struct iovec *iov, unsigned long nr_segs, unsigned int flags)
+__NR_timerfd_settime		286		sys_timerfd_settime	(int ufd, int flags, const struct itimerspec *utmr, struct itimerspec *otmr)
+__NR_signalfd4			289		sys_signalfd		(int fd, k_rtsigset_t *mask, size_t sizemask, int flags)
+__NR_rt_tgsigqueueinfo		297		sys_rt_tgsigqueueinfo	(pid_t tgid, pid_t pid, int sig, siginfo_t *info)
+__NR_fanotify_init		300		sys_fanotify_init	(unsigned int flags, unsigned int event_f_flags)
+__NR_fanotify_mark		301		sys_fanotify_mark	(int fanotify_fd, unsigned int flags, u64 mask, int dfd, const char *pathname)
+__NR_prlimit64			302		sys_prlimit64		(pid_t pid, unsigned int resource, const struct rlimit64 *new_rlim, struct rlimit64 *old_rlim)
+__NR_open_by_handle_at		304		sys_open_by_handle_at	(int mountdirfd, struct file_handle *handle, int flags)
+__NR_setns			308		sys_setns		(int fd, int nstype)
+__NR_kcmp			312		sys_kcmp		(pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2)
+__NR_memfd_create		319		sys_memfd_create	(const char *name, unsigned int flags)
-- 
1.9.3



More information about the CRIU mailing list