Linux Syste m Call Table

Linux System Call Table(2.2)

%eaxNameSource%ebx%ecx%edx%esx%edi
1sys_exitkernel/exit.cint----
2sys_forkarch/i386/kernel/process.cstruct pt_regs----
3sys_readfs/read_write.cunsigned intchar *size_t--
4sys_writefs/read_write.cunsigned intconst char *size_t--
5sys_openfs/open.cconst char *intint--
6sys_closefs/open.cunsigned int----
7sys_waitpidkernel/exit.cpid_tunsigned int *int--
8sys_creatfs/open.cconst char *int---
9sys_linkfs/namei.cconst char *const char *---
10sys_unlinkfs/namei.cconst char *----
11sys_execvearch/i386/kernel/process.cstruct pt_regs----
12sys_chdirfs/open.cconst char *----
13sys_timekernel/time.cint *----
14sys_mknodfs/namei.cconst char *intdev_t--
15sys_chmodfs/open.cconst char *mode_t---
16sys_lchownfs/open.cconst char *uid_tgid_t--
18sys_statfs/stat.cchar *struct __old_kernel_stat *---
19sys_lseekfs/read_write.cunsigned intoff_tunsigned int--
20sys_getpidkernel/sched.c-----
21sys_mountfs/super.cchar *char *char *--
22sys_oldumountfs/super.cchar *----
23sys_setuidkernel/sys.cuid_t----
24sys_getuidkernel/sched.c-----
25sys_stimekernel/time.cint *----
26sys_ptracearch/i386/kernel/ptrace.clonglonglonglong-
27sys_alarmkernel/sched.cunsigned int----
28sys_fstatfs/stat.cunsigned intstruct __old_kernel_stat *---
29sys_pausearch/i386/kernel/sys_i386.c-----
30sys_utimefs/open.cchar *struct utimbuf *---
33sys_accessfs/open.cconst char *int---
34sys_nicekernel/sched.cint----
36sys_syncfs/buffer.c-----
37sys_killkernel/signal.cintint---
38sys_renamefs/namei.cconst char *const char *---
39sys_mkdirfs/namei.cconst char *int---
40sys_rmdirfs/namei.cconst char *----
41sys_dupfs/fcntl.cunsigned int----
42sys_pipearch/i386/kernel/sys_i386.cunsigned long *----
43sys_timeskernel/sys.cstruct tms *----
45sys_brkmm/mmap.cunsigned long----
46sys_setgidkernel/sys.cgid_t----
47sys_getgidkernel/sched.c-----
48sys_signalkernel/signal.cint__sighandler_t---
49sys_geteuidkernel/sched.c-----
50sys_getegidkernel/sched.c-----
51sys_acctkernel/acct.cconst char *----
52sys_umountfs/super.cchar *int---
54sys_ioctlfs/ioctl.cunsigned intunsigned intunsigned long--
55sys_fcntlfs/fcntl.cunsigned intunsigned intunsigned long--
57sys_setpgidkernel/sys.cpid_tpid_t---
59sys_oldunamearch/i386/kernel/sys_i386.cstruct oldold_utsname *----
60sys_umaskkernel/sys.cint----
61sys_chrootfs/open.cconst char *----
62sys_ustatfs/super.cdev_tstruct ustat *---
63sys_dup2fs/fcntl.cunsigned intunsigned int---
64sys_getppidkernel/sched.c-----
65sys_getpgrpkernel/sys.c-----
66sys_setsidkernel/sys.c-----
67sys_sigactionarch/i386/kernel/signal.cintconst struct old_sigaction *struct old_sigaction *--
68sys_sgetmaskkernel/signal.c-----
69sys_ssetmaskkernel/signal.cint----
70sys_setreuidkernel/sys.cuid_tuid_t---
71sys_setregidkernel/sys.cgid_tgid_t---
72sys_sigsuspendarch/i386/kernel/signal.cintintold_sigset_t--
73sys_sigpendingkernel/signal.cold_sigset_t *----
74sys_sethostnamekernel/sys.cchar *int---
75sys_setrlimitkernel/sys.cunsigned intstruct rlimit *---
76sys_getrlimitkernel/sys.cunsigned intstruct rlimit *---
77sys_getrusagekernel/sys.cintstruct rusage *---
78sys_gettimeofdaykernel/time.cstruct timeval *struct timezone *---
79sys_settimeofdaykernel/time.cstruct timeval *struct timezone *---
80sys_getgroupskernel/sys.cintgid_t *---
81sys_setgroupskernel/sys.cintgid_t *---
82old_selectarch/i386/kernel/sys_i386.cstruct sel_arg_struct *----
83sys_symlinkfs/namei.cconst char *const char *---
84sys_lstatfs/stat.cchar *struct __old_kernel_stat *---
85sys_readlinkfs/stat.cconst char *char *int--
86sys_uselibfs/exec.cconst char *----
87sys_swaponmm/swapfile.cconst char *int---
88sys_rebootkernel/sys.cintintintvoid *-
89old_readdirfs/readdir.cunsigned intvoid *unsigned int--
90old_mmaparch/i386/kernel/sys_i386.cstruct mmap_arg_struct *----
91sys_munmapmm/mmap.cunsigned longsize_t---
92sys_truncatefs/open.cconst char *unsigned long---
93sys_ftruncatefs/open.cunsigned intunsigned long---
94sys_fchmodfs/open.cunsigned intmode_t---
95sys_fchownfs/open.cunsigned intuid_tgid_t--
96sys_getprioritykernel/sys.cintint---
97sys_setprioritykernel/sys.cintintint--
99sys_statfsfs/open.cconst char *struct statfs *---
100sys_fstatfsfs/open.cunsigned intstruct statfs *---
101sys_iopermarch/i386/kernel/ioport.cunsigned longunsigned longint--
102sys_socketcallnet/socket.cintunsigned long *---
103sys_syslogkernel/printk.cintchar *int--
104sys_setitimerkernel/itimer.cintstruct itimerval *struct itimerval *--
105sys_getitimerkernel/itimer.cintstruct itimerval *---
106sys_newstatfs/stat.cchar *struct stat *---
107sys_newlstatfs/stat.cchar *struct stat *---
108sys_newfstatfs/stat.cunsigned intstruct stat *---
109sys_unamearch/i386/kernel/sys_i386.cstruct old_utsname *----
110sys_ioplarch/i386/kernel/ioport.cunsigned long----
111sys_vhangupfs/open.c-----
112sys_idlearch/i386/kernel/process.c-----
113sys_vm86oldarch/i386/kernel/vm86.cunsigned longstruct vm86plus_struct *---
114sys_wait4kernel/exit.cpid_tunsigned long *int optionsstruct rusage *-
115sys_swapoffmm/swapfile.cconst char *----
116sys_sysinfokernel/info.cstruct sysinfo *----
117sys_ipc(*Note)arch/i386/kernel/sys_i386.cuintintintintvoid *
118sys_fsyncfs/buffer.cunsigned int----
119sys_sigreturnarch/i386/kernel/signal.cunsigned long----
120sys_clonearch/i386/kernel/process.cstruct pt_regs----
121sys_setdomainnamekernel/sys.cchar *int---
122sys_newunamekernel/sys.cstruct new_utsname *----
123sys_modify_ldtarch/i386/kernel/ldt.cintvoid *unsigned long--
124sys_adjtimexkernel/time.cstruct timex *----
125sys_mprotectmm/mprotect.cunsigned longsize_tunsigned long--
126sys_sigprocmaskkernel/signal.cintold_sigset_t *old_sigset_t *--
127sys_create_modulekernel/module.cconst char *size_t---
128sys_init_modulekernel/module.cconst char *struct module *---
129sys_delete_modulekernel/module.cconst char *----
130sys_get_kernel_symskernel/module.cstruct kernel_sym *----
131sys_quotactlfs/dquot.cintconst char *intcaddr_t-
132sys_getpgidkernel/sys.cpid_t----
133sys_fchdirfs/open.cunsigned int----
134sys_bdflushfs/buffer.cintlong---
135sys_sysfsfs/super.cintunsigned longunsigned long--
136sys_personalitykernel/exec_domain.cunsigned long----
138sys_setfsuidkernel/sys.cuid_t----
139sys_setfsgidkernel/sys.cgid_t----
140sys_llseekfs/read_write.cunsigned intunsigned longunsigned longloff_t *unsigned int
141sys_getdentsfs/readdir.cunsigned intvoid *unsigned int--
142sys_selectfs/select.cintfd_set *fd_set *fd_set *struct timeval *
143sys_flockfs/locks.cunsigned intunsigned int---
144sys_msyncmm/filemap.cunsigned longsize_tint--
145sys_readvfs/read_write.cunsigned longconst struct iovec *unsigned long--
146sys_writevfs/read_write.cunsigned longconst struct iovec *unsigned long--
147sys_getsidkernel/sys.cpid_t----
148sys_fdatasyncfs/buffer.cunsigned int----
149sys_sysctlkernel/sysctl.cstruct __sysctl_args *----
150sys_mlockmm/mlock.cunsigned longsize_t---
151sys_munlockmm/mlock.cunsigned longsize_t---
152sys_mlockallmm/mlock.cint----
153sys_munlockallmm/mlock.c-----
154sys_sched_setparamkernel/sched.cpid_tstruct sched_param *---
155sys_sched_getparamkernel/sched.cpid_tstruct sched_param *---
156sys_sched_setschedulerkernel/sched.cpid_tintstruct sched_param *--
157sys_sched_getschedulerkernel/sched.cpid_t----
158sys_sched_yieldkernel/sched.c-----
159sys_sched_get_priority_maxkernel/sched.cint----
160sys_sched_get_priority_minkernel/sched.cint----
161sys_sched_rr_get_intervalkernel/sched.cpid_tstruct timespec *---
162sys_nanosleepkernel/sched.cstruct timespec *struct timespec *---
163sys_mremapmm/mremap.cunsigned longunsigned longunsigned longunsigned long-
164sys_setresuidkernel/sys.cuid_tuid_tuid_t--
165sys_getresuidkernel/sys.cuid_t *uid_t *uid_t *--
166sys_vm86arch/i386/kernel/vm86.cstruct vm86_struct *----
167sys_query_modulekernel/module.cconst char *intchar *size_tsize_t *
168sys_pollfs/select.cstruct pollfd *unsigned intlong--
169sys_nfsservctlfs/filesystems.cintvoid *void *--
170sys_setresgidkernel/sys.cgid_tgid_tgid_t--
171sys_getresgidkernel/sys.cgid_t *gid_t *gid_t *--
172sys_prctlkernel/sys.cintunsigned longunsigned longunsigned longunsigned long
173sys_rt_sigreturnarch/i386/kernel/signal.cunsigned long----
174sys_rt_sigactionkernel/signal.cintconst struct sigaction *struct sigaction *size_t-
175sys_rt_sigprocmaskkernel/signal.cintsigset_t *sigset_t *size_t-
176sys_rt_sigpendingkernel/signal.csigset_t *size_t---
177sys_rt_sigtimedwaitkernel/signal.cconst sigset_t *siginfo_t *const struct timespec *size_t-
178sys_rt_sigqueueinfokernel/signal.cintintsiginfo_t *--
179sys_rt_sigsuspendarch/i386/kernel/signal.csigset_t *size_t---
180sys_preadfs/read_write.cunsigned intchar *size_tloff_t-
181sys_pwritefs/read_write.cunsigned intconst char *size_tloff_t-
182sys_chownfs/open.cconst char *uid_tgid_t--
183sys_getcwdfs/dcache.cchar *unsigned long---
184sys_capgetkernel/capability.ccap_user_header_tcap_user_data_t---
185sys_capsetkernel/capability.ccap_user_header_tconst cap_user_data_t---
186sys_sigaltstackarch/i386/kernel/signal.cconst stack_t *stack_t *---
187sys_sendfilemm/filemap.cintintoff_t *size_t-
190sys_vforkarch/i386/kernel/process.cstruct pt_regs----

Note for sys_ipc (117): this syscall takes six arguments, so it can't fit into the five registers %ebx - %edi; the last parameter (not shown) is of type 'long'. This syscall requires a special call method where a pointer is put in %ebx which points to an array containing the six arguments.

System Call Numbers

For the numbers of the syscalls, look in arch/i386/kernel/entry.S for sys_call_table. The syscall numbers are offsets into that table. Several spots in the table are occupied by the syscallsys_ni_syscall. This is a placeholder that either replaces an obsolete syscall or reserves a spot for future syscalls.

Incidentally, the system calls are called from the function system_call in the same file; in particular, they are called with the assembly instruction 'call *SYMBOL_NAME(sys_call_table)(,%eax,4)'. The part '*SYMBOL_NAME(sys_call_table)' just gets replaced by a symbol name in sys_call_tableSYMBOL_NAME is a macro defined in include/linux/linkage.h, and it just replaces itself with its argument.

Typedefs

Here are the typedef declarations in the prototypes above:

atomic_tinclude/asm/atomic.h:
#ifdef __SMP__
typedef struct { volatile int counter; } atomic_t;
#else
typedef struct { int counter; } atomic_t;
#endif
caddr_tinclude/asm/posix_types.h:typedef char * __kernel_caddr_t;
include/linux/types.h:typedef __kernel_caddr_t caddr_t;
cap_user_header_tinclude/linux/capability.h:
typedef struct __user_cap_header_struct {
     __u32 version;
     int pid;
} *cap_user_header_t;
cap_user_data_tinclude/linux/capability.h:
typedef struct __user_cap_data_struct {
     __u32 effective;
     __u32 permitted;
     __u32 inheritable;
} *cap_user_data_t;
clock_tinclude/asm/posix_types.h:typedef long __kernel_clock_t;
include/linux/types.h:typedef __kernel_clock_t clock_t;
dev_tinclude/asm/posix_types.h:typedef unsigned short __kernel_dev_t;
include/linux/types.h:typedef __kernel_dev_t dev_t;
fd_setinclude/linux/posix_types.h
#define __FD_SETSIZE 1024
#define __NFDBITS (8 * sizeof(unsigned long))
#define __FDSET_LONGS (__FD_SETSIZE/__NFDBITS)
(==> __FDSET_LONGS == 32)

typedef struct {
     unsigned long fds_bits [__FDSET_LONGS];
} __kernel_fd_set;
include/linux/types.h:typedef __kernel_fd_set fd_set;
gid_tinclude/asm/posix_types.h:typedef unsigned short __kernel_gid_t;
include/linux/types.h:typedef __kernel_gid_t gid_t;
__kernel_daddr_tinclude/asm/posix_types.h:typedef int __kernel_daddr_t;
__kernel_fsid_tinclude/asm/posix_types.h:
typedef struct {
     int __val[2];
} __kernel_fsid_t;

__kernel_ino_tinclude/asm/posix_types.h:typedef unsigned long __kernel_ino_t;
__kernel_size_tinclude/asm/posix_types.h:typedef unsigned int __kernel_size_t;
loff_tinclude/asm/posix_types.h:typedef long long __kernel_loff_t;
include/linux/types.h:typedef __kernel_loff_t loff_t;
mode_tinclude/asm/posix_types.h:typedef unsigned short __kernel_mode_t;
include/linux/types.h:typedef __kernel_mode_t mode_t;
off_tinclude/asm/posix_types.h:typedef long __kernel_off_t; include/linux/types.h:typedef __kernel_off_t off_t;
old_sigset_tinclude/asm/signal.h:typedef unsigned long old_sigset_t;
pid_tinclude/asm/posix_types.h:typedef int __kernel_pid_t;
include/linux/types.h:typedef __kernel_pid_t pid_t;
__sighandler_tinclude/asm/signal.h:typedef void (*__sighandler_t)(int);
siginfo_tinclude/asm/siginfo.h:
#define SI_MAX_SIZE 128
#define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int)) - 3)
(==> SI_PAD_SIZE == 29)

typedef struct siginfo {
     int si_signo;
     int si_errno;
     int si_code;

     union {
          int _pad[SI_PAD_SIZE];

          /* kill() */
          struct {
               pid_t _pid; /* sender's pid */
               uid_t _uid; /* sender's uid */
          } _kill;

          /* POSIX.1b timers */
          struct {
               unsigned int _timer1;
               unsigned int _timer2;
          } _timer;

          /* POSIX.1b signals */
          struct {
               pid_t _pid; /* sender's pid */
               uid_t _uid; /* sender's uid */
               sigval_t _sigval;
          } _rt;

          /* SIGCHLD */
          struct {
               pid_t _pid; /* which child */
               uid_t _uid; /* sender's uid */
               int _status; /* exit code */
               clock_t _utime;
               clock_t _stime;
          } _sigchld;

          /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
          struct {
               void *_addr; /* faulting insn/memory ref. */
          } _sigfault;

          /* SIGPOLL */
          struct {
               int _band; /* POLL_IN, POLL_OUT, POLL_MSG */
               int _fd;
          } _sigpoll;
     } _sifields;
} siginfo_t;
sigset_tinclude/asm/signal.h:typedef unsigned long sigset_t;
size_tinclude/asm/posix_types.h:typedef unsigned int __kernel_size_t;
include/linux/types.h:typedef __kernel_size_t size_t;
ssize_tinclude/asm/posix_types.h:typedef int __kernel_ssize_t;
include/linux/types.h:typedef __kernel_ssize_t ssize_t;
stack_tinclude/asm/signal.h:
typedef struct sigaltstack {
     void *ss_sp;
     int ss_flags;
     size_t ss_size;
} stack_t;
suseconds_tinclude/asm/posix_types.h:typedef long __kernel_suseconds_t;
include/linux/types.h:typedef __kernel_suseconds_t suseconds_t;
time_tinclude/asm/posix_types.h:typedef long __kernel_time_t;
include/linux/types.h:typedef __kernel_time_t time_t;
uid_tinclude/asm/posix_types.h:typedef unsigned short __kernel_uid_t;
include/linux/types.h:typedef __kernel_uid_t uid_t;
uintinclude/linux/types.h:typedef unsigned int uint;
__u32include/asm/types.h:typedef unsigned int __u32;

 

Structs

Here are the struct declarations for the table at the top:

 

exception_table_entryinclude/linux/module.h:
struct exception_table_entry {
     unsigned long insn, fixup;
};
iovecinclude/linux/uio.h:
struct iovec {
     void *iov_base;
     __kernel_size_t iov_len; };
itimervalinclude/linux/time.h:
struct itimerval {
     struct timeval it_interval; /* timer interval */
     struct timeval it_value; /* current value */
};
kernel_syminclude/linux/module.h:
struct kernel_sym {
     unsigned long value;
     char name[60];
};
mmap_arg_structarch/i386/kernel/sys_i386.c:
struct mmap_arg_struct {
     unsigned long addr;
     unsigned long len;
     unsigned long prot;
     unsigned long flags;
     unsigned long fd;
     unsigned long offset;
};
moduleinclude/linux/module.h:
struct module {
     unsigned long size_of_struct; /* sizeof(module) */
     struct module *next;
     const char *name;
     unsigned long size;
     union {
          atomic_t usecount;
          long pad;
     } uc;
     unsigned long flags; /* AUTOCLEAN et al */
     unsigned nsyms;
     unsigned ndeps;

     struct module_symbol *syms;
     struct module_ref *deps;
     struct module_ref *refs;
     int (*init)(void);
     void (*cleanup)(void);
     const struct exception_table_entry *ex_table_start;
     const struct exception_table_entry *ex_table_end;
/* Members past this point are extensions to the basic
module support and are optional. Use mod_opt_member()
to examine them. */
     const struct module_persist *persist_start;
     const struct module_persist *persist_end;
     int (*can_unload)(void);
};
module_persistinclude/linux/module.h:
struct module_persist; /* yes, it's empty */
module_refinclude/linux/module.h:
struct module_ref {
     struct module *dep; /* "parent" pointer */
     struct module *ref; /* "child" pointer */
     struct module_ref *next_ref;
};
module_symbolinclude/linux/module.h:
struct module_symbol {
     unsigned long value;
     const char *name;
};
new_utsnameinclude/linux/utsname.h:
struct new_utsname {
     char sysname[65];
     char nodename[65];
     char release[65];
     char version[65];
     char machine[65];
     char domainname[65];
};
__old_kernel_statinclude/asm/stat.h:
struct __old_kernel_stat {
     unsigned short st_dev;
     unsigned short st_ino;
     unsigned short st_mode;
     unsigned short st_nlink;
     unsigned short st_uid;
     unsigned short st_gid;
     unsigned short st_rdev;
     unsigned long st_size;
     unsigned long st_atime;
     unsigned long st_mtime;
     unsigned long st_ctime;
};
oldold_utsnameinclude/linux/utsname.h:
struct oldold_utsname {
     char sysname[9];
     char nodename[9];
     char release[9];
     char version[9];
     char machine[9];
};
old_sigactioninclude/asm/signal.h:
struct old_sigaction {
     __sighandler_t sa_handler;
     old_sigset_t sa_mask;
     unsigned long sa_flags;
     void (*sa_restorer)(void);
};
old_utsnameinclude/linux/utsname.h:
struct old_utsname {
     char sysname[65];
     char nodename[65];
     char release[65];
     char version[65];
     char machine[65];
};
pollfdinclude/asm/poll.h:
struct pollfd {
     int fd;
     short events;
     short revents;
};
pt_regsinclude/asm/ptrace.h:
struct pt_regs {
     long ebx;
     long ecx;
     long edx;
     long esi;
     long edi;
     long ebp;
     long eax;
     int xds;
     int xes;
     long orig_eax;
     long eip;
     int xcs;
     long eflags;
     long esp;
     int xss;
};
revectored_structinclude/asm/vm86.h:
struct revectored_struct {
     unsigned long __map[8];
};
rlimitinclude/linux/resource.h:
struct rlimit {
     long rlim_cur;
     long rlim_max;
};
rusageinclude/linux/resource.h:
struct rusage {
     struct timeval ru_utime; /* user time used */
     struct timeval ru_stime; /* system time used */
     long ru_maxrss; /* maximum resident set size */
     long ru_ixrss; /* integral shared memory size */
     long ru_idrss; /* integral unshared data size */
     long ru_isrss; /* integral unshared stack size */
     long ru_minflt; /* page reclaims */
     long ru_majflt; /* page faults */
     long ru_nswap; /* swaps */
     long ru_inblock; /* block input operations */
     long ru_oublock; /* block output operations */
     long ru_msgsnd; /* messages sent */
     long ru_msgrcv; /* messages received */
     long ru_nsignals; /* signals received */
     long ru_nvcsw; /* voluntary context switches */
     long ru_nivcsw; /* involuntary '' */
};
sched_paraminclude/linux/sched.h:
struct sched_param {
     int sched_priority;
};
sel_arg_structarch/i386/kernel/sys_i386.c:
struct sel_arg_struct {
     unsigned long n;
     fd_set *inp, *outp, *exp;
     struct timeval *tvp;
};
sigactioninclude/asm/signal.h:
struct sigaction {
     __sighandler_t sa_handler;
     unsigned long sa_flags;
     void (*sa_restorer)(void);
     sigset_t sa_mask; /* mask last for extensibility */
};
statinclude/asm/stat.h:
struct stat {
     unsigned short st_dev;
     unsigned short __pad1;
     unsigned long st_ino;
     unsigned short st_mode;
     unsigned short st_nlink;
     unsigned short st_uid;
     unsigned short st_gid;
     unsigned short st_rdev;
     unsigned short __pad2;
     unsigned long st_size;
     unsigned long st_blksize;
     unsigned long st_blocks;
     unsigned long st_atime;
     unsigned long __unused1;
     unsigned long st_mtime;
     unsigned long __unused2;
     unsigned long st_ctime;
     unsigned long __unused3;
     unsigned long __unused4;
     unsigned long __unused5;
statfsinclude/asm/statfs.h:
struct statfs {
     long f_type;
     long f_bsize;
     long f_blocks;
     long f_bfree;
     long f_bavail;
     long f_files;
     long f_ffree;
     __kernel_fsid_t f_fsid;
     long f_namelen;
     long f_spare[6];
};
__sysctl_argsinclude/linux/sysctl.h
struct __sysctl_args {
     int *name;
     int nlen;
     void *oldval;
     size_t *oldlenp;
     void *newval;
     size_t newlen;
     unsigned long __unused[4];
};
sysinfoinclude/linux/kernel.h:
struct sysinfo {
     long uptime; /* Seconds since boot */
     unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
     unsigned long totalram; /* Total usable main memory size */
     unsigned long freeram; /* Available memory size */
     unsigned long sharedram; /* Amount of shared memory */
     unsigned long bufferram; /* Memory used by buffers */
     unsigned long totalswap; /* Total swap space size */
     unsigned long freeswap; /* swap space still available */
     unsigned short procs; /* Number of current processes */
     char _f[22]; /* Pads structure to 64 bytes */
};
timexinclude/linux/timex.h:
struct timex {
     unsigned int modes; /* mode selector */
     long offset; /* time offset (usec) */
     long freq; /* frequency offset (scaled ppm) */
     long maxerror; /* maximum error (usec) */
     long esterror; /* estimated error (usec) */
     int status; /* clock command/status */
     long constant; /* pll time constant */
     long precision; /* clock precision (usec) (read only) */
     long tolerance; /* clock frequency tolerance (ppm)
      * (read only)
      */
     struct timeval time; /* (read only) */
     long tick; /* (modified) usecs between clock ticks */
     long ppsfreq; /* pps frequency (scaled ppm) (ro) */
     long jitter; /* pps jitter (us) (ro) */
     int shift; /* interval duration (s) (shift) (ro) */
     long stabil; /* pps stability (scaled ppm) (ro) */
     long jitcnt; /* jitter limit exceeded (ro) */
     long calcnt; /* calibration intervals (ro) */
     long errcnt; /* calibration errors (ro) */
     long stbcnt; /* stability limit exceeded (ro) */

     int :32; int :32; int :32; int :32;
     int :32; int :32; int :32; int :32;
     int :32; int :32; int :32; int :32;
};
timespecinclude/linux/time.h:
struct timespec {
     time_t tv_sec; /* seconds */
     long tv_nsec; /* nanoseconds */
};
timevalinclude/linux/time.h:
struct timeval {
     time_t tv_sec; /* seconds */
     suseconds_t tv_usec; /* microseconds */
};
timezoneinclude/linux/time.h:
struct timezone {
     int tz_minuteswest; /* minutes west of Greenwich */
     int tz_dsttime; /* type of dst correction */
};
tmsinclude/linux/times.h
struct tms {
     clock_t tms_utime;
     clock_t tms_stime;
     clock_t tms_cutime;
     clock_t tms_cstime;
};
ustatinclude/linux/types.h:
struct ustat {
     __kernel_daddr_t f_tfree;
     __kernel_ino_t f_tinode;
     char f_fname[6];
     char f_fpack[6];
};
utimbufinclude/linux/utime.h:
struct utimbuf {
     time_t actime;
     time_t modtime;
};
vm86plus_info_structinclude/asm/vm86.h:
struct vm86plus_info_struct {
     unsigned long force_return_for_pic:1;
     unsigned long vm86dbg_active:1;
     unsigned long vm86dbg_TFpendig:1;
     unsigned long unused:28;
     unsigned long is_vm86pus:1;
     unsigned char vm86dbg_intxxtab[32];
};
vm86plus_structinclude/asm/vm86.h:
struct vm86plus_struct {
     struct vm86_regs regs;
     unsigned long flags;
     unsigned long screen_bitmap;
     unsigned long cpu_type;
     struct revectored_struct int_revectored;
     struct revectored_struct int21_revectored;
     struct vm86plus_info_struct vm86plus;
};
vm86_regsinclude/asm/vm86.h:
struct vm86_regs {
/* normal regs, with special meaning for the segment descriptors.. */
     long ebx;
     long ecx;
     long edx;
     long esi;
     long edi;
     long ebp;
     long eax;
     long __null_ds;
     long __null_es;
     long __null_fs;
     long __null_gs;
     long orig_eax;
     long eip;
     unsigned short cs, __csh;
     long eflags;
     long esp;
     unsigned short ss, __ssh;
/* these are specific to v86 mode: */
     unsigned short es, __esh;
     unsigned short ds, __dsh;
     unsigned short fs, __fsh;
     unsigned short gs, __gsh;
};
vm86_structinclude/asm/vm86.h:
struct vm86_struct {
     struct vm86_regs regs;
     unsigned long flags;
     unsigned long screen_bitmap;
     unsigned long cpu_type;
     struct revectored_struct int_revectored;
     struct revectored_struct int21_revectored;
};

转载于:https://www.cnblogs.com/DeeLMind/p/6857755.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值