seccomp.h   seccomp.h 
/** /**
* Seccomp Library * Seccomp Library
* *
* Copyright (c) 2012 Red Hat <pmoore@redhat.com> * Copyright (c) 2012,2013 Red Hat <pmoore@redhat.com>
* Author: Paul Moore <pmoore@redhat.com> * Author: Paul Moore <pmoore@redhat.com>
*/ */
/* /*
* This library is free software; you can redistribute it and/or modify it * This library is free software; you can redistribute it and/or modify it
* under the terms of version 2.1 of the GNU Lesser General Public License as * under the terms of version 2.1 of the GNU Lesser General Public License as
* published by the Free Software Foundation. * published by the Free Software Foundation.
* *
* This library is distributed in the hope that it will be useful, but WITH OUT * This library is distributed in the hope that it will be useful, but WITH OUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
skipping to change at line 106 skipping to change at line 106
/** /**
* The x86-64 (64-bit) architecture token * The x86-64 (64-bit) architecture token
*/ */
#define SCMP_ARCH_X86_64 AUDIT_ARCH_X86_64 #define SCMP_ARCH_X86_64 AUDIT_ARCH_X86_64
/** /**
* Convert a syscall name into the associated syscall number * Convert a syscall name into the associated syscall number
* @param x the syscall name * @param x the syscall name
*/ */
#define SCMP_SYS(x) __NR_##x #define SCMP_SYS(x) (__NR_##x)
/** /**
* Specify an argument comparison struct for use in declaring rules * Specify an argument comparison struct for use in declaring rules
* @param arg the argument number, starting at 0 * @param arg the argument number, starting at 0
* @param op the comparison operator, e.g. SCMP_CMP_* * @param op the comparison operator, e.g. SCMP_CMP_*
* @param datum_a dependent on comparison * @param datum_a dependent on comparison
* @param datum_b dependent on comparison, optional * @param datum_b dependent on comparison, optional
*/ */
#define SCMP_CMP(...) ((struct scmp_arg_cmp){__VA_ARGS__}) #define SCMP_CMP(...) ((struct scmp_arg_cmp){__VA_ARGS__})
skipping to change at line 213 skipping to change at line 213
* *
* This functions destroys the given seccomp filter state and releases any * This functions destroys the given seccomp filter state and releases any
* resources, including memory, associated with the filter state. This * resources, including memory, associated with the filter state. This
* function does not reset any seccomp filters already loaded into the kern el. * function does not reset any seccomp filters already loaded into the kern el.
* The filter context can no longer be used after calling this function. * The filter context can no longer be used after calling this function.
* *
*/ */
void seccomp_release(scmp_filter_ctx ctx); void seccomp_release(scmp_filter_ctx ctx);
/** /**
* Merge two filters
* @param ctx_dst the destination filter context
* @param ctx_src the source filter context
*
* This function merges two filter contexts into a single filter context an
d
* destroys the second filter context. The two filter contexts must have t
he
* same attribute values and not contain any of the same architectures; if
they
* do, the merge operation will fail. On success, the source filter contex
t
* will be destroyed and should no longer be used; it is not necessary to
* call seccomp_release() on the source filter context. Returns zero on
* success, negative values on failure.
*
*/
int seccomp_merge(scmp_filter_ctx ctx_dst, scmp_filter_ctx ctx_src);
/**
* Return the native architecture token
*
* This function returns the native architecture token value, e.g. SCMP_ARC
H_*.
*
*/
uint32_t seccomp_arch_native(void);
/**
* Check to see if an existing architecture is present in the filter
* @param ctx the filter context
* @param arch_token the architecture token, e.g. SCMP_ARCH_*
*
* This function tests to see if a given architecture is included in the fi
lter
* context. If the architecture token is SCMP_ARCH_NATIVE then the native
* architecture will be assumed. Returns zero if the architecture exists i
n
* the filter, -EEXIST if it is not present, and other negative values on
* failure.
*
*/
int seccomp_arch_exist(const scmp_filter_ctx ctx, uint32_t arch_token);
/**
* Adds an architecture to the filter
* @param ctx the filter context
* @param arch_token the architecture token, e.g. SCMP_ARCH_*
*
* This function adds a new architecture to the given seccomp filter contex
t.
* Any new rules added after this function successfully returns will be add
ed
* to this architecture but existing rules will not be added to this
* architecture. If the architecture token is SCMP_ARCH_NATIVE then the na
tive
* architecture will be assumed. Returns zero on success, negative values
on
* failure.
*
*/
int seccomp_arch_add(scmp_filter_ctx ctx, uint32_t arch_token);
/**
* Removes an architecture from the filter
* @param ctx the filter context
* @param arch_token the architecture token, e.g. SCMP_ARCH_*
*
* This function removes an architecture from the given seccomp filter cont
ext.
* If the architecture token is SCMP_ARCH_NATIVE then the native architectu
re
* will be assumed. Returns zero on success, negative values on failure.
*
*/
int seccomp_arch_remove(scmp_filter_ctx ctx, uint32_t arch_token);
/**
* Loads the filter into the kernel * Loads the filter into the kernel
* @param ctx the filter context * @param ctx the filter context
* *
* This function loads the given seccomp filter context into the kernel. I f * This function loads the given seccomp filter context into the kernel. I f
* the filter was loaded correctly, the kernel will be enforcing the filter * the filter was loaded correctly, the kernel will be enforcing the filter
* when this function returns. Returns zero on success, negative values on * when this function returns. Returns zero on success, negative values on
* error. * error.
* *
*/ */
int seccomp_load(const scmp_filter_ctx ctx); int seccomp_load(const scmp_filter_ctx ctx);
skipping to change at line 251 skipping to change at line 316
* @param value the filter attribute value * @param value the filter attribute value
* *
* This function sets the value of the given attribute. Returns zero on * This function sets the value of the given attribute. Returns zero on
* success, negative values on failure. * success, negative values on failure.
* *
*/ */
int seccomp_attr_set(scmp_filter_ctx ctx, int seccomp_attr_set(scmp_filter_ctx ctx,
enum scmp_filter_attr attr, uint32_t value); enum scmp_filter_attr attr, uint32_t value);
/** /**
* Resolve a syscall number to a name
* @param arch_token the architecture token, e.g. SCMP_ARCH_*
* @param num the syscall number
*
* Resolve the given syscall number to the syscall name for the given
* architecture; it is up to the caller to free the returned string. Retur
ns
* the syscall name on success, NULL on failure.
*
*/
char *seccomp_syscall_resolve_num_arch(uint32_t arch_token, int num);
/**
* Resolve a syscall name to a number
* @param arch_token the architecture token, e.g. SCMP_ARCH_*
* @param name the syscall name
*
* Resolve the given syscall name to the syscall number for the given
* architecture. Returns the syscall number on success, including negative
* pseudo syscall numbers (e.g. __PNR_*); returns __NR_SCMP_ERROR on failur
e.
*
*/
int seccomp_syscall_resolve_name_arch(uint32_t arch_token, const char *name
);
/**
* Resolve a syscall name to a number
* @param name the syscall name
*
* Resolve the given syscall name to the syscall number. Returns the sysca
ll
* number on success, including negative pseudo syscall numbers (e.g. __PNR
_*);
* returns __NR_SCMP_ERROR on failure.
*
*/
int seccomp_syscall_resolve_name(const char *name);
/**
* Set the priority of a given syscall * Set the priority of a given syscall
* @param ctx the filter context * @param ctx the filter context
* @param syscall the syscall number * @param syscall the syscall number
* @param priority priority value, higher value == higher priority * @param priority priority value, higher value == higher priority
* *
* This function sets the priority of the given syscall; this value is used * This function sets the priority of the given syscall; this value is used
* when generating the seccomp filter code such that higher priority syscal ls * when generating the seccomp filter code such that higher priority syscal ls
* will incur less filter code overhead than the lower priority syscalls in the * will incur less filter code overhead than the lower priority syscalls in the
* filter. Returns zero on success, negative values on failure. * filter. Returns zero on success, negative values on failure.
* *
skipping to change at line 331 skipping to change at line 431
*/ */
int seccomp_export_bpf(const scmp_filter_ctx ctx, int fd); int seccomp_export_bpf(const scmp_filter_ctx ctx, int fd);
/* /*
* pseudo syscall definitions * pseudo syscall definitions
*/ */
/* NOTE - pseudo syscall values {-1..-99} are reserved */ /* NOTE - pseudo syscall values {-1..-99} are reserved */
#define __NR_SCMP_ERROR -1 #define __NR_SCMP_ERROR -1
#define __PNR_socket -100 /* socket syscalls */
#define __PNR_socket -101
#ifndef __NR_socket #ifndef __NR_socket
#define __NR_socket __PNR_socket #define __NR_socket __PNR_socket
#endif /* __NR_socket */ #endif /* __NR_socket */
#define __PNR_bind -101 #define __PNR_bind -102
#ifndef __NR_bind #ifndef __NR_bind
#define __NR_bind __PNR_bind #define __NR_bind __PNR_bind
#endif /* __NR_bind */ #endif /* __NR_bind */
#define __PNR_connect -102 #define __PNR_connect -103
#ifndef __NR_connect #ifndef __NR_connect
#define __NR_connect __PNR_connect #define __NR_connect __PNR_connect
#endif /* __NR_connect */ #endif /* __NR_connect */
#define __PNR_listen -103 #define __PNR_listen -104
#ifndef __NR_listen #ifndef __NR_listen
#define __NR_listen __PNR_listen #define __NR_listen __PNR_listen
#endif /* __NR_listen */ #endif /* __NR_listen */
#define __PNR_accept -104 #define __PNR_accept -105
#ifndef __NR_accept #ifndef __NR_accept
#define __NR_accept __PNR_accept #define __NR_accept __PNR_accept
#endif /* __NR_accept */ #endif /* __NR_accept */
#define __PNR_getsockname -105 #define __PNR_getsockname -106
#ifndef __NR_getsockname #ifndef __NR_getsockname
#define __NR_getsockname __PNR_getsockname #define __NR_getsockname __PNR_getsockname
#endif /* __NR_getsockname */ #endif /* __NR_getsockname */
#define __PNR_getpeername -106 #define __PNR_getpeername -107
#ifndef __NR_getpeername #ifndef __NR_getpeername
#define __NR_getpeername __PNR_getpeername #define __NR_getpeername __PNR_getpeername
#endif /* __NR_getpeername */ #endif /* __NR_getpeername */
#define __PNR_socketpair -107 #define __PNR_socketpair -108
#ifndef __NR_socketpair #ifndef __NR_socketpair
#define __NR_socketpair __PNR_socketpair #define __NR_socketpair __PNR_socketpair
#endif /* __NR_socketpair */ #endif /* __NR_socketpair */
#define __PNR_send -108 #define __PNR_send -109
#ifndef __NR_send #ifndef __NR_send
#define __NR_send __PNR_send #define __NR_send __PNR_send
#endif /* __NR_send */ #endif /* __NR_send */
#define __PNR_recv -109 #define __PNR_recv -110
#ifndef __NR_recv #ifndef __NR_recv
#define __NR_recv __PNR_recv #define __NR_recv __PNR_recv
#endif /* __NR_recv */ #endif /* __NR_recv */
#define __PNR_sendto -110 #define __PNR_sendto -111
#ifndef __NR_sendto #ifndef __NR_sendto
#define __NR_sendto __PNR_sendto #define __NR_sendto __PNR_sendto
#endif /* __NR_sendto */ #endif /* __NR_sendto */
#define __PNR_recvfrom -111 #define __PNR_recvfrom -112
#ifndef __NR_recvfrom #ifndef __NR_recvfrom
#define __NR_recvfrom __PNR_recvfrom #define __NR_recvfrom __PNR_recvfrom
#endif /* __NR_recvfrom */ #endif /* __NR_recvfrom */
#define __PNR_shutdown -112 #define __PNR_shutdown -113
#ifndef __NR_shutdown #ifndef __NR_shutdown
#define __NR_shutdown __PNR_shutdown #define __NR_shutdown __PNR_shutdown
#endif /* __NR_shutdown */ #endif /* __NR_shutdown */
#define __PNR_getsockopt -113 #define __PNR_setsockopt -114
#ifndef __NR_setsockopt
#define __NR_setsockopt __PNR_setsockopt
#endif /* __NR_getsockopt */
#define __PNR_getsockopt -115
#ifndef __NR_getsockopt #ifndef __NR_getsockopt
#define __NR_getsockopt __PNR_getsockopt #define __NR_getsockopt __PNR_getsockopt
#endif /* __NR_getsockopt */ #endif /* __NR_getsockopt */
#define __PNR_sendmsg -114 #define __PNR_sendmsg -116
#ifndef __NR_sendmsg #ifndef __NR_sendmsg
#define __NR_sendmsg __PNR_sendmsg #define __NR_sendmsg __PNR_sendmsg
#endif /* __NR_sendmsg */ #endif /* __NR_sendmsg */
#define __PNR_recvmsg -115 #define __PNR_recvmsg -117
#ifndef __NR_recvmsg #ifndef __NR_recvmsg
#define __NR_recvmsg __PNR_recvmsg #define __NR_recvmsg __PNR_recvmsg
#endif /* __NR_recvmsg */ #endif /* __NR_recvmsg */
#define __PNR_recvmmsg -116 #define __PNR_accept4 -118
#ifndef __NR_accept4
#define __NR_accept4 __PNR_accept4
#endif /* __NR_accept4 */
#define __PNR_recvmmsg -119
#ifndef __NR_recvmmsg #ifndef __NR_recvmmsg
#define __NR_recvmmsg __PNR_recvmmsg #define __NR_recvmmsg __PNR_recvmmsg
#endif /* __NR_recvmmsg */ #endif /* __NR_recvmmsg */
#define __PNR_sendmmsg -117 #define __PNR_sendmmsg -120
#ifndef __NR_sendmmsg #ifndef __NR_sendmmsg
#define __NR_sendmmsg __PNR_sendmmsg #define __NR_sendmmsg __PNR_sendmmsg
#endif /* __NR_sendmmsg */ #endif /* __NR_sendmmsg */
#define __PNR_semop -200 /* ipc syscalls */
#define __PNR_semop -201
#ifndef __NR_semop #ifndef __NR_semop
#define __NR_semop __PNR_semop #define __NR_semop __PNR_semop
#endif /* __NR_semop */ #endif /* __NR_semop */
#define __PNR_semget -201 #define __PNR_semget -202
#ifndef __NR_semget #ifndef __NR_semget
#define __NR_semget __PNR_semget #define __NR_semget __PNR_semget
#endif /* __NR_semget */ #endif /* __NR_semget */
#define __PNR_semctl -202 #define __PNR_semctl -203
#ifndef __NR_semctl #ifndef __NR_semctl
#define __NR_semctl __PNR_semctl #define __NR_semctl __PNR_semctl
#endif /* __NR_semctl */ #endif /* __NR_semctl */
#define __PNR_semtimedop -203 #define __PNR_semtimedop -204
#ifndef __NR_semtimedop #ifndef __NR_semtimedop
#define __NR_semtimedop __PNR_semtimedop #define __NR_semtimedop __PNR_semtimedop
#endif /* __NR_semtime */ #endif /* __NR_semtime */
#define __PNR_msgsnd -204 #define __PNR_msgsnd -211
#ifndef __NR_msgsnd #ifndef __NR_msgsnd
#define __NR_msgsnd __PNR_msgsnd #define __NR_msgsnd __PNR_msgsnd
#endif /* __NR_msgsnd */ #endif /* __NR_msgsnd */
#define __PNR_msgrcv -205 #define __PNR_msgrcv -212
#ifndef __NR_msgrcv #ifndef __NR_msgrcv
#define __NR_msgrcv __PNR_msgrcv #define __NR_msgrcv __PNR_msgrcv
#endif /* __NR_msgrcv */ #endif /* __NR_msgrcv */
#define __PNR_msgget -206 #define __PNR_msgget -213
#ifndef __NR_msgget #ifndef __NR_msgget
#define __NR_msgget __PNR_msgget #define __NR_msgget __PNR_msgget
#endif /* __NR_msgget */ #endif /* __NR_msgget */
#define __PNR_msgctl -207 #define __PNR_msgctl -214
#ifndef __NR_msgctl #ifndef __NR_msgctl
#define __NR_msgctl __PNR_msgctl #define __NR_msgctl __PNR_msgctl
#endif /* __NR_msgctl */ #endif /* __NR_msgctl */
#define __PNR_shmat -208 #define __PNR_shmat -221
#ifndef __NR_shmat #ifndef __NR_shmat
#define __NR_shmat __PNR_shmat #define __NR_shmat __PNR_shmat
#endif /* __NR_shmat */ #endif /* __NR_shmat */
#define __PNR_shmdt -209 #define __PNR_shmdt -222
#ifndef __NR_shmdt #ifndef __NR_shmdt
#define __NR_shmdt __PNR_shmdt #define __NR_shmdt __PNR_shmdt
#endif /* __NR_shmdt */ #endif /* __NR_shmdt */
#define __PNR_shmget -210 #define __PNR_shmget -223
#ifndef __NR_shmget #ifndef __NR_shmget
#define __NR_shmget __PNR_shmget #define __NR_shmget __PNR_shmget
#endif /* __NR_shmget */ #endif /* __NR_shmget */
#define __PNR_shmctl -211 #define __PNR_shmctl -224
#ifndef __NR_shmctl #ifndef __NR_shmctl
#define __NR_shmctl __PNR_shmctl #define __NR_shmctl __PNR_shmctl
#endif /* __NR_shmctl */ #endif /* __NR_shmctl */
/* single syscalls */
#define __PNR_arch_prctl -10001
#ifndef __NR_arch_prctl
#define __NR_arch_prctl __PNR_arch_prctl
#endif /* __NR_arch_prctl */
#define __PNR_bdflush -10002
#ifndef __NR_bdflush
#define __NR_bdflush __PNR_bdflush
#endif /* __NR_bdflush */
#define __PNR_break -10003
#ifndef __NR_break
#define __NR_break __PNR_break
#endif /* __NR_break */
#define __PNR_chown32 -10004
#ifndef __NR_chown32
#define __NR_chown32 __PNR_chown32
#endif /* __NR_chown32 */
#define __PNR_epoll_ctl_old -10005
#ifndef __NR_epoll_ctl_old
#define __NR_epoll_ctl_old __PNR_epoll_ctl_old
#endif /* __NR_epoll_ctl_old */
#define __PNR_epoll_wait_old -10006
#ifndef __NR_epoll_wait_old
#define __NR_epoll_wait_old __PNR_epoll_wait_old
#endif /* __NR_epoll_wait_old */
#define __PNR_fadvise64_64 -10007
#ifndef __NR_fadvise64_64
#define __NR_fadvise64_64 __PNR_fadvise64_64
#endif /* __NR_fadvise64_64 */
#define __PNR_fchown32 -10008
#ifndef __NR_fchown32
#define __NR_fchown32 __PNR_fchown32
#endif /* __NR_fchown32 */
#define __PNR_fcntl64 -10009
#ifndef __NR_fcntl64
#define __NR_fcntl64 __PNR_fcntl64
#endif /* __NR_fcntl64 */
#define __PNR_fstat64 -10010
#ifndef __NR_fstat64
#define __NR_fstat64 __PNR_fstat64
#endif /* __NR_fstat64 */
#define __PNR_fstatat64 -10011
#ifndef __NR_fstatat64
#define __NR_fstatat64 __PNR_fstatat64
#endif /* __NR_fstatat64 */
#define __PNR_fstatfs64 -10012
#ifndef __NR_fstatfs64
#define __NR_fstatfs64 __PNR_fstatfs64
#endif /* __NR_fstatfs64 */
#define __PNR_ftime -10013
#ifndef __NR_ftime
#define __NR_ftime __PNR_ftime
#endif /* __NR_ftime */
#define __PNR_ftruncate64 -10014
#ifndef __NR_ftruncate64
#define __NR_ftruncate64 __PNR_ftruncate64
#endif /* __NR_ftruncate64 */
#define __PNR_getegid32 -10015
#ifndef __NR_getegid32
#define __NR_getegid32 __PNR_getegid32
#endif /* __NR_getegid32 */
#define __PNR_geteuid32 -10016
#ifndef __NR_geteuid32
#define __NR_geteuid32 __PNR_geteuid32
#endif /* __NR_geteuid32 */
#define __PNR_getgid32 -10017
#ifndef __NR_getgid32
#define __NR_getgid32 __PNR_getgid32
#endif /* __NR_getgid32 */
#define __PNR_getgroups32 -10018
#ifndef __NR_getgroups32
#define __NR_getgroups32 __PNR_getgroups32
#endif /* __NR_getgroups32 */
#define __PNR_getresgid32 -10019
#ifndef __NR_getresgid32
#define __NR_getresgid32 __PNR_getresgid32
#endif /* __NR_getresgid32 */
#define __PNR_getresuid32 -10020
#ifndef __NR_getresuid32
#define __NR_getresuid32 __PNR_getresuid32
#endif /* __NR_getresuid32 */
#define __PNR_getuid32 -10021
#ifndef __NR_getuid32
#define __NR_getuid32 __PNR_getuid32
#endif /* __NR_getuid32 */
#define __PNR_gtty -10022
#ifndef __NR_gtty
#define __NR_gtty __PNR_gtty
#endif /* __NR_gtty */
#define __PNR_idle -10023
#ifndef __NR_idle
#define __NR_idle __PNR_idle
#endif /* __NR_idle */
#define __PNR_ipc -10024
#ifndef __NR_ipc
#define __NR_ipc __PNR_ipc
#endif /* __NR_ipc */
#define __PNR_lchown32 -10025
#ifndef __NR_lchown32
#define __NR_lchown32 __PNR_lchown32
#endif /* __NR_lchown32 */
#define __PNR__llseek -10026
#ifndef __NR__llseek
#define __NR__llseek __PNR__llseek
#endif /* __NR__llseek */
#define __PNR_lock -10027
#ifndef __NR_lock
#define __NR_lock __PNR_lock
#endif /* __NR_lock */
#define __PNR_lstat64 -10028
#ifndef __NR_lstat64
#define __NR_lstat64 __PNR_lstat64
#endif /* __NR_lstat64 */
#define __PNR_mmap2 -10029
#ifndef __NR_mmap2
#define __NR_mmap2 __PNR_mmap2
#endif /* __NR_mmap2 */
#define __PNR_mpx -10030
#ifndef __NR_mpx
#define __NR_mpx __PNR_mpx
#endif /* __NR_mpx */
#define __PNR_newfstatat -10031
#ifndef __NR_newfstatat
#define __NR_newfstatat __PNR_newfstatat
#endif /* __NR_newfstatat */
#define __PNR__newselect -10032
#ifndef __NR__newselect
#define __NR__newselect __PNR__newselect
#endif /* __NR__newselect */
#define __PNR_nice -10033
#ifndef __NR_nice
#define __NR_nice __PNR_nice
#endif /* __NR_nice */
#define __PNR_oldfstat -10034
#ifndef __NR_oldfstat
#define __NR_oldfstat __PNR_oldfstat
#endif /* __NR_oldfstat */
#define __PNR_oldlstat -10035
#ifndef __NR_oldlstat
#define __NR_oldlstat __PNR_oldlstat
#endif /* __NR_oldlstat */
#define __PNR_oldolduname -10036
#ifndef __NR_oldolduname
#define __NR_oldolduname __PNR_oldolduname
#endif /* __NR_oldolduname */
#define __PNR_oldstat -10037
#ifndef __NR_oldstat
#define __NR_oldstat __PNR_oldstat
#endif /* __NR_oldstat */
#define __PNR_olduname -10038
#ifndef __NR_olduname
#define __NR_olduname __PNR_olduname
#endif /* __NR_olduname */
#define __PNR_prof -10039
#ifndef __NR_prof
#define __NR_prof __PNR_prof
#endif /* __NR_prof */
#define __PNR_profil -10040
#ifndef __NR_profil
#define __NR_profil __PNR_profil
#endif /* __NR_profil */
#define __PNR_readdir -10041
#ifndef __NR_readdir
#define __NR_readdir __PNR_readdir
#endif /* __NR_readdir */
#define __PNR_security -10042
#ifndef __NR_security
#define __NR_security __PNR_security
#endif /* __NR_security */
#define __PNR_sendfile64 -10043
#ifndef __NR_sendfile64
#define __NR_sendfile64 __PNR_sendfile64
#endif /* __NR_sendfile64 */
#define __PNR_setfsgid32 -10044
#ifndef __NR_setfsgid32
#define __NR_setfsgid32 __PNR_setfsgid32
#endif /* __NR_setfsgid32 */
#define __PNR_setfsuid32 -10045
#ifndef __NR_setfsuid32
#define __NR_setfsuid32 __PNR_setfsuid32
#endif /* __NR_setfsuid32 */
#define __PNR_setgid32 -10046
#ifndef __NR_setgid32
#define __NR_setgid32 __PNR_setgid32
#endif /* __NR_setgid32 */
#define __PNR_setgroups32 -10047
#ifndef __NR_setgroups32
#define __NR_setgroups32 __PNR_setgroups32
#endif /* __NR_setgroups32 */
#define __PNR_setregid32 -10048
#ifndef __NR_setregid32
#define __NR_setregid32 __PNR_setregid32
#endif /* __NR_setregid32 */
#define __PNR_setresgid32 -10049
#ifndef __NR_setresgid32
#define __NR_setresgid32 __PNR_setresgid32
#endif /* __NR_setresgid32 */
#define __PNR_setresuid32 -10050
#ifndef __NR_setresuid32
#define __NR_setresuid32 __PNR_setresuid32
#endif /* __NR_setresuid32 */
#define __PNR_setreuid32 -10051
#ifndef __NR_setreuid32
#define __NR_setreuid32 __PNR_setreuid32
#endif /* __NR_setreuid32 */
#define __PNR_setuid32 -10052
#ifndef __NR_setuid32
#define __NR_setuid32 __PNR_setuid32
#endif /* __NR_setuid32 */
#define __PNR_sgetmask -10053
#ifndef __NR_sgetmask
#define __NR_sgetmask __PNR_sgetmask
#endif /* __NR_sgetmask */
#define __PNR_sigaction -10054
#ifndef __NR_sigaction
#define __NR_sigaction __PNR_sigaction
#endif /* __NR_sigaction */
#define __PNR_signal -10055
#ifndef __NR_signal
#define __NR_signal __PNR_signal
#endif /* __NR_signal */
#define __PNR_sigpending -10056
#ifndef __NR_sigpending
#define __NR_sigpending __PNR_sigpending
#endif /* __NR_sigpending */
#define __PNR_sigprocmask -10057
#ifndef __NR_sigprocmask
#define __NR_sigprocmask __PNR_sigprocmask
#endif /* __NR_sigprocmask */
#define __PNR_sigreturn -10058
#ifndef __NR_sigreturn
#define __NR_sigreturn __PNR_sigreturn
#endif /* __NR_sigreturn */
#define __PNR_sigsuspend -10059
#ifndef __NR_sigsuspend
#define __NR_sigsuspend __PNR_sigsuspend
#endif /* __NR_sigsuspend */
#define __PNR_socketcall -10060
#ifndef __NR_socketcall
#define __NR_socketcall __PNR_socketcall
#endif /* __NR_socketcall */
#define __PNR_ssetmask -10061
#ifndef __NR_ssetmask
#define __NR_ssetmask __PNR_ssetmask
#endif /* __NR_ssetmask */
#define __PNR_stat64 -10062
#ifndef __NR_stat64
#define __NR_stat64 __PNR_stat64
#endif /* __NR_stat64 */
#define __PNR_statfs64 -10063
#ifndef __NR_statfs64
#define __NR_statfs64 __PNR_statfs64
#endif /* __NR_statfs64 */
#define __PNR_stime -10064
#ifndef __NR_stime
#define __NR_stime __PNR_stime
#endif /* __NR_stime */
#define __PNR_stty -10065
#ifndef __NR_stty
#define __NR_stty __PNR_stty
#endif /* __NR_stty */
#define __PNR_truncate64 -10066
#ifndef __NR_truncate64
#define __NR_truncate64 __PNR_truncate64
#endif /* __NR_truncate64 */
#define __PNR_tuxcall -10067
#ifndef __NR_tuxcall
#define __NR_tuxcall __PNR_tuxcall
#endif /* __NR_tuxcall */
#define __PNR_ugetrlimit -10068
#ifndef __NR_ugetrlimit
#define __NR_ugetrlimit __PNR_ugetrlimit
#endif /* __NR_ugetrlimit */
#define __PNR_ulimit -10069
#ifndef __NR_ulimit
#define __NR_ulimit __PNR_ulimit
#endif /* __NR_ulimit */
#define __PNR_umount -10070
#ifndef __NR_umount
#define __NR_umount __PNR_umount
#endif /* __NR_umount */
#define __PNR_vm86 -10071
#ifndef __NR_vm86
#define __NR_vm86 __PNR_vm86
#endif /* __NR_vm86 */
#define __PNR_vm86old -10072
#ifndef __NR_vm86old
#define __NR_vm86old __PNR_vm86old
#endif /* __NR_vm86old */
#define __PNR_waitpid -10073
#ifndef __NR_waitpid
#define __NR_waitpid __PNR_waitpid
#endif /* __NR_waitpid */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 35 change blocks. 
32 lines changed or deleted 531 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/