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 + -
显示快捷键?