📄 unistd.h
字号:
#define __NR_set_tid_address (__NR_SYSCALL_BASE+256)#define __NR_timer_create (__NR_SYSCALL_BASE+257)#define __NR_timer_settime (__NR_SYSCALL_BASE+258)#define __NR_timer_gettime (__NR_SYSCALL_BASE+259)#define __NR_timer_getoverrun (__NR_SYSCALL_BASE+260)#define __NR_timer_delete (__NR_SYSCALL_BASE+261)#define __NR_clock_settime (__NR_SYSCALL_BASE+262)#define __NR_clock_gettime (__NR_SYSCALL_BASE+263)#define __NR_clock_getres (__NR_SYSCALL_BASE+264)#define __NR_clock_nanosleep (__NR_SYSCALL_BASE+265)#define __NR_statfs64 (__NR_SYSCALL_BASE+266)#define __NR_fstatfs64 (__NR_SYSCALL_BASE+267)#define __NR_tgkill (__NR_SYSCALL_BASE+268)#define __NR_utimes (__NR_SYSCALL_BASE+269)#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE+270)#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE+271)#define __NR_pciconfig_read (__NR_SYSCALL_BASE+272)#define __NR_pciconfig_write (__NR_SYSCALL_BASE+273)#define __NR_mq_open (__NR_SYSCALL_BASE+274)#define __NR_mq_unlink (__NR_SYSCALL_BASE+275)#define __NR_mq_timedsend (__NR_SYSCALL_BASE+276)#define __NR_mq_timedreceive (__NR_SYSCALL_BASE+277)#define __NR_mq_notify (__NR_SYSCALL_BASE+278)#define __NR_mq_getsetattr (__NR_SYSCALL_BASE+279)#define __NR_waitid (__NR_SYSCALL_BASE+280)#if 0 /* reserve these for un-muxing socketcall */#define __NR_socket (__NR_SYSCALL_BASE+281)#define __NR_bind (__NR_SYSCALL_BASE+282)#define __NR_connect (__NR_SYSCALL_BASE+283)#define __NR_listen (__NR_SYSCALL_BASE+284)#define __NR_accept (__NR_SYSCALL_BASE+285)#define __NR_getsockname (__NR_SYSCALL_BASE+286)#define __NR_getpeername (__NR_SYSCALL_BASE+287)#define __NR_socketpair (__NR_SYSCALL_BASE+288)#define __NR_send (__NR_SYSCALL_BASE+289)#define __NR_sendto (__NR_SYSCALL_BASE+290)#define __NR_recv (__NR_SYSCALL_BASE+291)#define __NR_recvfrom (__NR_SYSCALL_BASE+292)#define __NR_shutdown (__NR_SYSCALL_BASE+293)#define __NR_setsockopt (__NR_SYSCALL_BASE+294)#define __NR_getsockopt (__NR_SYSCALL_BASE+295)#define __NR_sendmsg (__NR_SYSCALL_BASE+296)#define __NR_recvmsg (__NR_SYSCALL_BASE+297)#endif#if 0 /* reserve these for un-muxing ipc */#define __NR_semop (__NR_SYSCALL_BASE+298)#define __NR_semget (__NR_SYSCALL_BASE+299)#define __NR_semctl (__NR_SYSCALL_BASE+300)#define __NR_msgsnd (__NR_SYSCALL_BASE+301)#define __NR_msgrcv (__NR_SYSCALL_BASE+302)#define __NR_msgget (__NR_SYSCALL_BASE+303)#define __NR_msgctl (__NR_SYSCALL_BASE+304)#define __NR_shmat (__NR_SYSCALL_BASE+305)#define __NR_shmdt (__NR_SYSCALL_BASE+306)#define __NR_shmget (__NR_SYSCALL_BASE+307)#define __NR_shmctl (__NR_SYSCALL_BASE+308)#endif#define __NR_add_key (__NR_SYSCALL_BASE+309)#define __NR_request_key (__NR_SYSCALL_BASE+310)#define __NR_keyctl (__NR_SYSCALL_BASE+311)#if 0 /* reserved for un-muxing ipc */#define __NR_semtimedop (__NR_SYSCALL_BASE+312)#endif#define __NR_vserver (__NR_SYSCALL_BASE+313)#define __NR_ioprio_set (__NR_SYSCALL_BASE+314)#define __NR_ioprio_get (__NR_SYSCALL_BASE+315)#define __NR_inotify_init (__NR_SYSCALL_BASE+316)#define __NR_inotify_add_watch (__NR_SYSCALL_BASE+317)#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE+318)#define __NR_mbind (__NR_SYSCALL_BASE+319)#define __NR_get_mempolicy (__NR_SYSCALL_BASE+320)#define __NR_set_mempolicy (__NR_SYSCALL_BASE+321)/* * The following SWIs are ARM private. */#define __ARM_NR_BASE (__NR_SYSCALL_BASE+0x0f0000)#define __ARM_NR_breakpoint (__ARM_NR_BASE+1)#define __ARM_NR_cacheflush (__ARM_NR_BASE+2)#define __ARM_NR_usr26 (__ARM_NR_BASE+3)#define __ARM_NR_usr32 (__ARM_NR_BASE+4)#define __ARM_NR_set_tls (__ARM_NR_BASE+5)#define __sys2(x) #x#define __sys1(x) __sys2(x)#ifndef __syscall#if defined(__thumb__)#define __syscall(name) \ "push {r7}\n\t" \ "mov r7, #" __sys1(__NR_##name) "\n\t" \ "swi 0\n\t" \ "pop {r7}"#else#define __syscall(name) "swi\t" __sys1(__NR_##name) ""#endif#endif#define __syscall_return(type, res) \do { \ if ((unsigned long)(res) >= (unsigned long)(-129)) { \ errno = -(res); \ res = -1; \ } \ return (type) (res); \} while (0)#define _syscall0(type,name) \type name(void) { \ register long __res_r0 __asm__("r0"); \ long __res; \ __asm__ __volatile__ ( \ __syscall(name) \ : "=r" (__res_r0) \ : \ : "lr"); \ __res = __res_r0; \ __syscall_return(type,__res); \}#define _syscall1(type,name,type1,arg1) \type name(type1 arg1) { \ register long __r0 __asm__("r0") = (long)arg1; \ register long __res_r0 __asm__("r0"); \ long __res; \ __asm__ __volatile__ ( \ __syscall(name) \ : "=r" (__res_r0) \ : "r" (__r0) \ : "lr"); \ __res = __res_r0; \ __syscall_return(type,__res); \}#define _syscall2(type,name,type1,arg1,type2,arg2) \type name(type1 arg1,type2 arg2) { \ register long __r0 __asm__("r0") = (long)arg1; \ register long __r1 __asm__("r1") = (long)arg2; \ register long __res_r0 __asm__("r0"); \ long __res; \ __asm__ __volatile__ ( \ __syscall(name) \ : "=r" (__res_r0) \ : "r" (__r0),"r" (__r1) \ : "lr"); \ __res = __res_r0; \ __syscall_return(type,__res); \}#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \type name(type1 arg1,type2 arg2,type3 arg3) { \ register long __r0 __asm__("r0") = (long)arg1; \ register long __r1 __asm__("r1") = (long)arg2; \ register long __r2 __asm__("r2") = (long)arg3; \ register long __res_r0 __asm__("r0"); \ long __res; \ __asm__ __volatile__ ( \ __syscall(name) \ : "=r" (__res_r0) \ : "r" (__r0),"r" (__r1),"r" (__r2) \ : "lr"); \ __res = __res_r0; \ __syscall_return(type,__res); \}#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4)\type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ register long __r0 __asm__("r0") = (long)arg1; \ register long __r1 __asm__("r1") = (long)arg2; \ register long __r2 __asm__("r2") = (long)arg3; \ register long __r3 __asm__("r3") = (long)arg4; \ register long __res_r0 __asm__("r0"); \ long __res; \ __asm__ __volatile__ ( \ __syscall(name) \ : "=r" (__res_r0) \ : "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3) \ : "lr"); \ __res = __res_r0; \ __syscall_return(type,__res); \} #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) { \ register long __r0 __asm__("r0") = (long)arg1; \ register long __r1 __asm__("r1") = (long)arg2; \ register long __r2 __asm__("r2") = (long)arg3; \ register long __r3 __asm__("r3") = (long)arg4; \ register long __r4 __asm__("r4") = (long)arg5; \ register long __res_r0 __asm__("r0"); \ long __res; \ __asm__ __volatile__ ( \ __syscall(name) \ : "=r" (__res_r0) \ : "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3),"r" (__r4) \ : "lr"); \ __res = __res_r0; \ __syscall_return(type,__res); \}#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6) \type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) { \ register long __r0 __asm__("r0") = (long)arg1; \ register long __r1 __asm__("r1") = (long)arg2; \ register long __r2 __asm__("r2") = (long)arg3; \ register long __r3 __asm__("r3") = (long)arg4; \ register long __r4 __asm__("r4") = (long)arg5; \ register long __r5 __asm__("r5") = (long)arg6; \ register long __res_r0 __asm__("r0"); \ long __res; \ __asm__ __volatile__ ( \ __syscall(name) \ : "=r" (__res_r0) \ : "r" (__r0),"r" (__r1),"r" (__r2),"r" (__r3), "r" (__r4),"r" (__r5) \ : "lr"); \ __res = __res_r0; \ __syscall_return(type,__res); \}#ifdef __KERNEL__#define __ARCH_WANT_IPC_PARSE_VERSION#define __ARCH_WANT_OLD_READDIR#define __ARCH_WANT_STAT64#define __ARCH_WANT_SYS_ALARM#define __ARCH_WANT_SYS_GETHOSTNAME#define __ARCH_WANT_SYS_PAUSE#define __ARCH_WANT_SYS_TIME#define __ARCH_WANT_SYS_UTIME#define __ARCH_WANT_SYS_SOCKETCALL#define __ARCH_WANT_SYS_GETPGRP#define __ARCH_WANT_SYS_LLSEEK#define __ARCH_WANT_SYS_NICE#define __ARCH_WANT_SYS_OLD_GETRLIMIT#define __ARCH_WANT_SYS_OLDUMOUNT#define __ARCH_WANT_SYS_SIGPENDING#define __ARCH_WANT_SYS_SIGPROCMASK#define __ARCH_WANT_SYS_RT_SIGACTION#endif#ifdef __KERNEL_SYSCALLS__#include <linux/compiler.h>#include <linux/types.h>#include <linux/syscalls.h>extern long execve(const char *file, char **argv, char **envp);struct pt_regs;asmlinkage int sys_execve(char *filenamei, char **argv, char **envp, struct pt_regs *regs);asmlinkage int sys_clone(unsigned long clone_flags, unsigned long newsp, struct pt_regs *regs);asmlinkage int sys_fork(struct pt_regs *regs);asmlinkage int sys_vfork(struct pt_regs *regs);asmlinkage int sys_pipe(unsigned long *fildes);asmlinkage int sys_ptrace(long request, long pid, long addr, long data);struct sigaction;asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act, struct sigaction __user *oact, size_t sigsetsize);#endif/* * "Conditional" syscalls * * What we want is __attribute__((weak,alias("sys_ni_syscall"))), * but it doesn't work on all toolchains, so we just do it by hand */#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")#endif /* __ASM_ARM_UNISTD_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -