unistd.h
来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 510 行 · 第 1/2 页
H
510 行
#define __NR_fstatfs64 235 /* Linux Specific */#define __NR__llseek 236 /* Linux Specific */#define __NR_mlock 237#define __NR_munlock 238#define __NR_mlockall 239#define __NR_munlockall 240#define __NR_sched_setparam 241#define __NR_sched_getparam 242#define __NR_sched_setscheduler 243#define __NR_sched_getscheduler 244#define __NR_sched_yield 245#define __NR_sched_get_priority_max 246#define __NR_sched_get_priority_min 247#define __NR_sched_rr_get_interval 248#define __NR_nanosleep 249#define __NR_mremap 250#define __NR__sysctl 251#define __NR_getsid 252#define __NR_fdatasync 253#define __NR_nfsservctl 254#define __NR_aplib 255#define __NR_clock_settime 256#define __NR_clock_gettime 257#define __NR_clock_getres 258#define __NR_clock_nanosleep 259#define __NR_sched_getaffinity 260#define __NR_sched_setaffinity 261#define __NR_timer_settime 262#define __NR_timer_gettime 263#define __NR_timer_getoverrun 264#define __NR_timer_delete 265#define __NR_timer_create 266/* #define __NR_vserver 267 Reserved for VSERVER */#define __NR_io_setup 268#define __NR_io_destroy 269#define __NR_io_submit 270#define __NR_io_cancel 271#define __NR_io_getevents 272#define __NR_mq_open 273#define __NR_mq_unlink 274#define __NR_mq_timedsend 275#define __NR_mq_timedreceive 276#define __NR_mq_notify 277#define __NR_mq_getsetattr 278#define __NR_waitid 279/* WARNING: You MAY NOT add syscall numbers larger than 282, since * all of the syscall tables in the Sparc kernel are * sized to have 283 entries (starting at zero). Therefore * find a free slot in the 0-282 range. */#define _syscall0(type,name) \type name(void) \{ \long __res; \register long __g1 __asm__ ("g1") = __NR_##name; \__asm__ __volatile__ ("t 0x6d\n\t" \ "sub %%g0, %%o0, %0\n\t" \ "movcc %%xcc, %%o0, %0\n\t" \ : "=r" (__res)\ : "r" (__g1) \ : "o0", "cc"); \if (__res >= 0) \ return (type) __res; \errno = -__res; \return -1; \}#define _syscall1(type,name,type1,arg1) \type name(type1 arg1) \{ \long __res; \register long __g1 __asm__ ("g1") = __NR_##name; \register long __o0 __asm__ ("o0") = (long)(arg1); \__asm__ __volatile__ ("t 0x6d\n\t" \ "sub %%g0, %%o0, %0\n\t" \ "movcc %%xcc, %%o0, %0\n\t" \ : "=r" (__res), "=&r" (__o0) \ : "1" (__o0), "r" (__g1) \ : "cc"); \if (__res >= 0) \ return (type) __res; \errno = -__res; \return -1; \}#define _syscall2(type,name,type1,arg1,type2,arg2) \type name(type1 arg1,type2 arg2) \{ \long __res; \register long __g1 __asm__ ("g1") = __NR_##name; \register long __o0 __asm__ ("o0") = (long)(arg1); \register long __o1 __asm__ ("o1") = (long)(arg2); \__asm__ __volatile__ ("t 0x6d\n\t" \ "sub %%g0, %%o0, %0\n\t" \ "movcc %%xcc, %%o0, %0\n\t" \ : "=r" (__res), "=&r" (__o0) \ : "1" (__o0), "r" (__o1), "r" (__g1) \ : "cc"); \if (__res >= 0) \ return (type) __res; \errno = -__res; \return -1; \}#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \type name(type1 arg1,type2 arg2,type3 arg3) \{ \long __res; \register long __g1 __asm__ ("g1") = __NR_##name; \register long __o0 __asm__ ("o0") = (long)(arg1); \register long __o1 __asm__ ("o1") = (long)(arg2); \register long __o2 __asm__ ("o2") = (long)(arg3); \__asm__ __volatile__ ("t 0x6d\n\t" \ "sub %%g0, %%o0, %0\n\t" \ "movcc %%xcc, %%o0, %0\n\t" \ : "=r" (__res), "=&r" (__o0) \ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__g1) \ : "cc"); \if (__res>=0) \ return (type) __res; \errno = -__res; \return -1; \}#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \type name (type1 arg1, type2 arg2, type3 arg3, type4 arg4) \{ \long __res; \register long __g1 __asm__ ("g1") = __NR_##name; \register long __o0 __asm__ ("o0") = (long)(arg1); \register long __o1 __asm__ ("o1") = (long)(arg2); \register long __o2 __asm__ ("o2") = (long)(arg3); \register long __o3 __asm__ ("o3") = (long)(arg4); \__asm__ __volatile__ ("t 0x6d\n\t" \ "sub %%g0, %%o0, %0\n\t" \ "movcc %%xcc, %%o0, %0\n\t" \ : "=r" (__res), "=&r" (__o0) \ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__g1) \ : "cc"); \if (__res>=0) \ return (type) __res; \errno = -__res; \return -1; \} #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) \{ \long __res; \register long __g1 __asm__ ("g1") = __NR_##name; \register long __o0 __asm__ ("o0") = (long)(arg1); \register long __o1 __asm__ ("o1") = (long)(arg2); \register long __o2 __asm__ ("o2") = (long)(arg3); \register long __o3 __asm__ ("o3") = (long)(arg4); \register long __o4 __asm__ ("o4") = (long)(arg5); \__asm__ __volatile__ ("t 0x6d\n\t" \ "sub %%g0, %%o0, %0\n\t" \ "movcc %%xcc, %%o0, %0\n\t" \ : "=r" (__res), "=&r" (__o0) \ : "1" (__o0), "r" (__o1), "r" (__o2), "r" (__o3), "r" (__o4), "r" (__g1) \ : "cc"); \if (__res>=0) \ return (type) __res; \errno = -__res; \return -1; \}#ifdef __KERNEL_SYSCALLS__#include <linux/compiler.h>#include <linux/types.h>/* * we need this inline - forking from kernel space will result * in NO COPY ON WRITE (!!!), until an execve is executed. This * is no problem, but for the stack. This is handled by not letting * main() use the stack at all after fork(). Thus, no function * calls - which means inline code for fork too, as otherwise we * would use the stack upon exit from 'fork()'. * * Actually only pause and fork are needed inline, so that there * won't be any messing with the stack from main(), but we define * some others too. */#define __NR__exit __NR_exitstatic __inline__ _syscall0(pid_t,setsid)static __inline__ _syscall3(int,write,int,fd,__const__ char *,buf,off_t,count)static __inline__ _syscall3(int,read,int,fd,char *,buf,off_t,count)static __inline__ _syscall3(off_t,lseek,int,fd,off_t,offset,int,count)static __inline__ _syscall1(int,dup,int,fd)static __inline__ _syscall3(int,execve,__const__ char *,file,char **,argv,char **,envp)static __inline__ _syscall3(int,open,__const__ char *,file,int,flag,int,mode)static __inline__ _syscall1(int,close,int,fd)static __inline__ _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)#include <linux/linkage.h>asmlinkage unsigned long sys_mmap( unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long off);struct sigaction;asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act, struct sigaction __user *oact, void __user *restorer, size_t sigsetsize);#endif /* __KERNEL_SYSCALLS__ */#ifdef __KERNEL__/* sysconf options, for SunOS compatibility */#define _SC_ARG_MAX 1#define _SC_CHILD_MAX 2#define _SC_CLK_TCK 3#define _SC_NGROUPS_MAX 4#define _SC_OPEN_MAX 5#define _SC_JOB_CONTROL 6#define _SC_SAVED_IDS 7#define _SC_VERSION 8#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_SGETMASK#define __ARCH_WANT_SYS_SIGNAL#define __ARCH_WANT_SYS_TIME#define __ARCH_WANT_SYS_UTIME#define __ARCH_WANT_SYS_WAITPID#define __ARCH_WANT_SYS_SOCKETCALL#define __ARCH_WANT_SYS_FADVISE64#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#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 /* _SPARC64_UNISTD_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?