📄 unistd.h
字号:
#ifndef _LINUX_UNISTD_H#define _LINUX_UNISTD_H/* * This file contains the system call numbers and the syscallX * macros */#define __NR_setup 0 /* used only by init, to get system going */#define __NR_exit 1#define __NR_fork 2#define __NR_read 3#define __NR_write 4#define __NR_open 5#define __NR_close 6#define __NR_waitpid 7#define __NR_creat 8#define __NR_link 9#define __NR_unlink 10#define __NR_execve 11#define __NR_chdir 12#define __NR_time 13#define __NR_mknod 14#define __NR_chmod 15#define __NR_chown 16#define __NR_break 17#define __NR_oldstat 18#define __NR_lseek 19#define __NR_getpid 20#define __NR_mount 21#define __NR_umount 22#define __NR_setuid 23#define __NR_getuid 24#define __NR_stime 25#define __NR_ptrace 26#define __NR_alarm 27#define __NR_oldfstat 28#define __NR_pause 29#define __NR_utime 30#define __NR_stty 31#define __NR_gtty 32#define __NR_access 33#define __NR_nice 34#define __NR_ftime 35#define __NR_sync 36#define __NR_kill 37#define __NR_rename 38#define __NR_mkdir 39#define __NR_rmdir 40#define __NR_dup 41#define __NR_pipe 42#define __NR_times 43#define __NR_prof 44#define __NR_brk 45#define __NR_setgid 46#define __NR_getgid 47#define __NR_signal 48#define __NR_geteuid 49#define __NR_getegid 50#define __NR_acct 51#define __NR_phys 52#define __NR_lock 53#define __NR_ioctl 54#define __NR_fcntl 55#define __NR_mpx 56#define __NR_setpgid 57#define __NR_ulimit 58#define __NR_olduname 59#define __NR_umask 60#define __NR_chroot 61#define __NR_ustat 62#define __NR_dup2 63#define __NR_getppid 64#define __NR_getpgrp 65#define __NR_setsid 66#define __NR_sigaction 67#define __NR_sgetmask 68#define __NR_ssetmask 69#define __NR_setreuid 70#define __NR_setregid 71#define __NR_sigsuspend 72#define __NR_sigpending 73#define __NR_sethostname 74#define __NR_setrlimit 75#define __NR_getrlimit 76#define __NR_getrusage 77#define __NR_gettimeofday 78#define __NR_settimeofday 79#define __NR_getgroups 80#define __NR_setgroups 81#define __NR_select 82#define __NR_symlink 83#define __NR_oldlstat 84#define __NR_readlink 85#define __NR_uselib 86#define __NR_swapon 87#define __NR_reboot 88#define __NR_readdir 89#define __NR_mmap 90#define __NR_munmap 91#define __NR_truncate 92#define __NR_ftruncate 93#define __NR_fchmod 94#define __NR_fchown 95#define __NR_getpriority 96#define __NR_setpriority 97#define __NR_profil 98#define __NR_statfs 99#define __NR_fstatfs 100#define __NR_ioperm 101#define __NR_socketcall 102#define __NR_syslog 103#define __NR_setitimer 104#define __NR_getitimer 105#define __NR_stat 106#define __NR_lstat 107#define __NR_fstat 108#define __NR_uname 109#define __NR_iopl 110extern int errno;/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */#define _syscall0(type, name) \type name(void) \{ \ long __res; \ __asm__ volatile ("int $0x80" \ : "=a" (__res) \ : "0" (__NR_##name)); \ if (__res >= 0) {\ return (type) __res; \ }\ errno = -__res; \ return -1; \}#define _syscall1(type, name, atype, a) \type name(atype a) \{ \ long __res; \ __asm__ volatile ("movl %2,%%ebx\n\t" \ "int $0x80" \ : "=a" (__res) \ : "0" (__NR_##name),"g" ((long)(a)):"bx"); \ if (__res >= 0) {\ return (type) __res; \ }\ errno = -__res; \ return -1; \}#define _syscall2(type, name, atype, a, btype, b) \type name(atype a,btype b) \{ \ long __res; \ __asm__ volatile ("movl %2,%%ebx\n\t" \ "int $0x80" \ : "=a" (__res) \ : "0" (__NR_##name),"g" ((long)(a)),"c" ((long)(b)):"bx"); \ if (__res >= 0) {\ return (type) __res; \ }\ errno = -__res; \ return -1; \}#define _syscall3(type, name, atype, a, btype, b, ctype, c) \type name(atype a,btype b,ctype c) \{ \ long __res; \ __asm__ volatile ("movl %2,%%ebx\n\t" \ "int $0x80" \ : "=a" (__res) \ : "0" (__NR_##name),"g" ((long)(a)),"c" ((long)(b)),"d" ((long)(c)):"bx"); \ if (__res>=0) {\ return (type) __res; \ }\ errno=-__res; \ return -1; \}#define _syscall4(type, name, atype, a, btype, b, ctype, c, dtype, d) \type name(atype a, btype b, ctype c, dtype d) \{ \ long __res; \ __asm__ volatile ("movl %2,%%ebx\n\t" \ "int $0x80" \ : "=a" (__res) \ : "0" (__NR_##name),"b" ((long)(a)),"c" ((long)(b)), \ "d" ((long)(c)),"S" ((long)(d))); \ if (__res>=0) {\ return (type) __res; \ }\ errno=-__res; \ return -1; \}#define _syscall5(type, name, atype, a, btype, b, ctype, c, dtype, d, etype, e) \type name(atype a, btype b, ctype c, dtype d, etype e) \{ \ long __res; \ __asm__ volatile ("movl %2,%%ebx\n\t" \ "int $0x80" \ : "=a" (__res) \ : "0" (__NR_##name),"b" ((long)(a)),"c" ((long)(b)), \ "d" ((long)(c)),"S" ((long)(d)),"D" ((long)(e))); \ if (__res>=0) {\ return (type) __res; \ }\ errno=-__res; \ return -1; \}#endif /* _LINUX_UNISTD_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -