📄 unistd.h.old
字号:
#define __NR_fsetxattr (__NR_SYSCALL_BASE+228)#define __NR_getxattr (__NR_SYSCALL_BASE+229)#define __NR_lgetxattr (__NR_SYSCALL_BASE+230)#define __NR_fgetxattr (__NR_SYSCALL_BASE+231)#define __NR_listxattr (__NR_SYSCALL_BASE+232)#define __NR_llistxattr (__NR_SYSCALL_BASE+233)#define __NR_flistxattr (__NR_SYSCALL_BASE+234)#define __NR_removexattr (__NR_SYSCALL_BASE+235)#define __NR_lremovexattr (__NR_SYSCALL_BASE+236)#define __NR_fremovexattr (__NR_SYSCALL_BASE+237)#define __NR_tkill (__NR_SYSCALL_BASE+238)#define __NR_sendfile64 (__NR_SYSCALL_BASE+239)#define __NR_futex (__NR_SYSCALL_BASE+240)#define __NR_sched_setaffinity (__NR_SYSCALL_BASE+241)#define __NR_sched_getaffinity (__NR_SYSCALL_BASE+242)#define __NR_io_setup (__NR_SYSCALL_BASE+243)#define __NR_io_destroy (__NR_SYSCALL_BASE+244)#define __NR_io_getevents (__NR_SYSCALL_BASE+245)#define __NR_io_submit (__NR_SYSCALL_BASE+246)#define __NR_io_cancel (__NR_SYSCALL_BASE+247)#define __NR_exit_group (__NR_SYSCALL_BASE+248)#define __NR_lookup_dcookie (__NR_SYSCALL_BASE+249)#define __NR_epoll_create (__NR_SYSCALL_BASE+250)#define __NR_epoll_ctl (__NR_SYSCALL_BASE+251)#define __NR_epoll_wait (__NR_SYSCALL_BASE+252)#define __NR_remap_file_pages (__NR_SYSCALL_BASE+253) /* 254 for set_thread_area */ /* 255 for get_thread_area */ /* 256 for set_tid_address *//* * 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 __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)(-125)) { \ 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_SYSCALLS__struct rusage;asmlinkage long sys_wait4(pid_t pid,unsigned int * stat_addr, int options, struct rusage * ru);static inline pid_t setsid(void){ extern long sys_setsid(void); return sys_setsid();}static inline long write(int fd, const char *buf, off_t count){ extern long sys_write(int, const char *, int); return sys_write(fd, buf, count);}static inline long read(int fd, char *buf, off_t count){ extern long sys_read(int, char *, int); return sys_read(fd, buf, count);}static inline off_t lseek(int fd, off_t offset, int count){ extern off_t sys_lseek(int, off_t, int); return sys_lseek(fd, offset, count);}static inline long dup(int fd){ extern long sys_dup(int); return sys_dup(fd);}static inline long open(const char *file, int flag, int mode){ extern long sys_open(const char *, int, int); return sys_open(file, flag, mode);}static inline long close(int fd){ extern long sys_close(unsigned int); return sys_close(fd);}static inline long _exit(int exitcode){ extern long sys_exit(int) __attribute__((noreturn)); return sys_exit(exitcode);}static inline pid_t waitpid(pid_t pid, int *wait_stat, int options){ return sys_wait4((int)pid, wait_stat, options, NULL);}/* * The following two can't be eliminated yet - they rely on * specific conditions. */static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp);#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 + -