time 
设为首页】【收藏本站
当前位置: 主页 > Unix/Linux > Linux管理 > Linux维护 > Linux System Call Table

Linux System Call Table

时间:2009-11-27 00:00 点击:1874次 字体:[ ]





The following table lists the system calls for the Linux 2.2 kernel. It could also be thought of as an API for the interface between user space and kernel space. My motivation for making this table was to make programming in assembly language easier when using only system calls and not the C library (for more information on this topic, go to
http://www.linuxassembly.org
). On the left are the numbers of the system calls. This number will be put in register %eax. On the right of the table are the types of values to be put into the remaining registers before calling the software interrupt 'int 0x80'. After each syscall, an integer is returned in %eax.
For convenience, the kernel source file where each system call is located is linked to in the column labelled "Source". In order to use the hyperlinks, you must first copy this page to your own machine because the links take you directly to the source code on your system. You must have the kernel source installed (or linked from) under '/usr/src/linux' for this to work.
%eax
Name
Source
%ebx
%ecx
%edx
%esx
%edi
1
sys_exit
[url=file:///usr/src/linux/kernel/exit.c]kernel/exit.c[/url]
int
-
-
-
-
2
sys_fork
[url=file:///usr/src/linux/arch/i386/kernel/process.c]arch/i386/kernel/process.c[/url]
struct pt_regs
-
-
-
-
3
sys_read
[url=file:///usr/src/linux/fs/read_write.c]fs/read_write.c[/url]
unsigned int
char *
size_t
-
-
4
sys_write
[url=file:///usr/src/linux/fs/read_write.c]fs/read_write.c[/url]
unsigned int
const char *
size_t
-
-
5
sys_open
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
const char *
int
int
-
-
6
sys_close
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
unsigned int
-
-
-
-
7
sys_waitpid
[url=file:///usr/src/linux/kernel/exit.c]kernel/exit.c[/url]
pid_t
unsigned int *
int
-
-
8
sys_creat
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
const char *
int
-
-
-
9
sys_link
[url=file:///usr/src/linux/fs/namei.c]fs/namei.c[/url]
const char *
const char *
-
-
-
10
sys_unlink
[url=file:///usr/src/linux/fs/namei.c]fs/namei.c[/url]
const char *
-
-
-
-
11
sys_execve
[url=file:///usr/src/linux/arch/i386/kernel/process.c]arch/i386/kernel/process.c[/url]
struct pt_regs
-
-
-
-
12
sys_chdir
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
const char *
-
-
-
-
13
sys_time
[url=file:///usr/src/linux/kernel/time.c]kernel/time.c[/url]
int *
-
-
-
-
14
sys_mknod
[url=file:///usr/src/linux/fs/namei.c]fs/namei.c[/url]
const char *
int
dev_t
-
-
15
sys_chmod
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
const char *
mode_t
-
-
-
16
sys_lchown
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
const char *
uid_t
gid_t
-
-
18
sys_stat
[url=file:///usr/src/linux/fs/stat.c]fs/stat.c[/url]
char *
struct __old_kernel_stat *
-
-
-
19
sys_lseek
[url=file:///usr/src/linux/fs/read_write.c]fs/read_write.c[/url]
unsigned int
off_t
unsigned int
-
-
20
sys_getpid
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
-
-
-
-
-
21
sys_mount
[url=file:///usr/src/linux/fs/super.c]fs/super.c[/url]
char *
char *
char *
-
-
22
sys_oldumount
[url=file:///usr/src/linux/fs/super.c]fs/super.c[/url]
char *
-
-
-
-
23
sys_setuid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
uid_t
-
-
-
-
24
sys_getuid
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
-
-
-
-
-
25
sys_stime
[url=file:///usr/src/linux/kernel/time.c]kernel/time.c[/url]
int *
-
-
-
-
26
sys_ptrace
[url=file:///usr/src/linux/arch/i386/kernel/ptrace.c]arch/i386/kernel/ptrace.c[/url]
long
long
long
long
-
27
sys_alarm
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
unsigned int
-
-
-
-
28
sys_fstat
[url=file:///usr/src/linux/fs/stat.c]fs/stat.c[/url]
unsigned int
struct __old_kernel_stat *
-
-
-
29
sys_pause
[url=file:///usr/src/linux/arch/i386/kernel/sys_i386.c]arch/i386/kernel/sys_i386.c[/url]
-
-
-
-
-
30
sys_utime
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
char *
struct utimbuf *
-
-
-
33
sys_access
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
const char *
int
-
-
-
34
sys_nice
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
int
-
-
-
-
36
sys_sync
[url=file:///usr/src/linux/fs/buffer.c]fs/buffer.c[/url]
-
-
-
-
-
37
sys_kill
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
int
int
-
-
-
38
sys_rename
[url=file:///usr/src/linux/fs/namei.c]fs/namei.c[/url]
const char *
const char *
-
-
-
39
sys_mkdir
[url=file:///usr/src/linux/fs/namei.c]fs/namei.c[/url]
const char *
int
-
-
-
40
sys_rmdir
[url=file:///usr/src/linux/fs/namei.c]fs/namei.c[/url]
const char *
-
-
-
-
41
sys_dup
[url=file:///usr/src/linux/fs/fcntl.c]fs/fcntl.c[/url]
unsigned int
-
-
-
-
42
sys_pipe
[url=file:///usr/src/linux/arch/i386/kernel/sys_i386.c]arch/i386/kernel/sys_i386.c[/url]
unsigned long *
-
-
-
-
43
sys_times
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
struct tms *
-
-
-
-
45
sys_brk
[url=file:///usr/src/linux/mm/mmap.c]mm/mmap.c[/url]
unsigned long
-
-
-
-
46
sys_setgid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
gid_t
-
-
-
-
47
sys_getgid
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
-
-
-
-
-
48
sys_signal
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
int
__sighandler_t
-
-
-
49
sys_geteuid
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
-
-
-
-
-
50
sys_getegid
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
-
-
-
-
-
51
sys_acct
[url=file:///usr/src/linux/kernel/acct.c]kernel/acct.c[/url]
const char *
-
-
-
-
52
sys_umount
[url=file:///usr/src/linux/fs/super.c]fs/super.c[/url]
char *
int
-
-
-
54
sys_ioctl
[url=file:///usr/src/linux/fs/ioctl.c]fs/ioctl.c[/url]
unsigned int
unsigned int
unsigned long
-
-
55
sys_fcntl
[url=file:///usr/src/linux/fs/fcntl.c]fs/fcntl.c[/url]
unsigned int
unsigned int
unsigned long
-
-
57
sys_setpgid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
pid_t
pid_t
-
-
-
59
sys_olduname
[url=file:///usr/src/linux/arch/i386/kernel/sys_i386.c]arch/i386/kernel/sys_i386.c[/url]
struct oldold_utsname *
-
-
-
-
60
sys_umask
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
int
-
-
-
-
61
sys_chroot
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
const char *
-
-
-
-
62
sys_ustat
[url=file:///usr/src/linux/fs/super.c]fs/super.c[/url]
dev_t
struct ustat *
-
-
-
63
sys_dup2
[url=file:///usr/src/linux/fs/fcntl.c]fs/fcntl.c[/url]
unsigned int
unsigned int
-
-
-
64
sys_getppid
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
-
-
-
-
-
65
sys_getpgrp
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
-
-
-
-
-
66
sys_setsid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
-
-
-
-
-
67
sys_sigaction
[url=file:///usr/src/linux/arch/i386/kernel/signal.c]arch/i386/kernel/signal.c[/url]
int
const
struct old_sigaction *
struct old_sigaction *
-
-
68
sys_sgetmask
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
-
-
-
-
-
69
sys_ssetmask
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
int
-
-
-
-
70
sys_setreuid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
uid_t
uid_t
-
-
-
71
sys_setregid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
gid_t
gid_t
-
-
-
72
sys_sigsuspend
[url=file:///usr/src/linux/arch/i386/kernel/signal.c]arch/i386/kernel/signal.c[/url]
int
int
old_sigset_t
-
-
73
sys_sigpending
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
old_sigset_t *
-
-
-
-
74
sys_sethostname
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
char *
int
-
-
-
75
sys_setrlimit
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
unsigned int
struct rlimit *
-
-
-
76
sys_getrlimit
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
unsigned int
struct rlimit *
-
-
-
77
sys_getrusage
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
int
struct rusage *
-
-
-
78
sys_gettimeofday
[url=file:///usr/src/linux/kernel/time.c]kernel/time.c[/url]
struct timeval *
struct timezone *
-
-
-
79
sys_settimeofday
[url=file:///usr/src/linux/kernel/time.c]kernel/time.c[/url]
struct timeval *
struct timezone *
-
-
-
80
sys_getgroups
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
int
gid_t *
-
-
-
81
sys_setgroups
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
int
gid_t *
-
-
-
82
old_select
[url=file:///usr/src/linux/arch/i386/kernel/sys_i386.c]arch/i386/kernel/sys_i386.c[/url]
struct sel_arg_struct *
-
-
-
-
83
sys_symlink
[url=file:///usr/src/linux/fs/namei.c]fs/namei.c[/url]
const char *
const char *
-
-
-
84
sys_lstat
[url=file:///usr/src/linux/fs/stat.c]fs/stat.c[/url]
char *
struct __old_kernel_stat *
-
-
-
85
sys_readlink
[url=file:///usr/src/linux/fs/stat.c]fs/stat.c[/url]
const char *
char *
int
-
-
86
sys_uselib
[url=file:///usr/src/linux/fs/exec.c]fs/exec.c[/url]
const char *
-
-
-
-
87
sys_swapon
[url=file:///usr/src/linux/mm/swapfile.c]mm/swapfile.c[/url]
const char *
int
-
-
-
88
sys_reboot
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
int
int
int
void *
-
89
old_readdir
[url=file:///usr/src/linux/fs/readdir.c]fs/readdir.c[/url]
unsigned int
void *
unsigned int
-
-
90
old_mmap
[url=file:///usr/src/linux/arch/i386/kernel/sys_i386.c]arch/i386/kernel/sys_i386.c[/url]
struct mmap_arg_struct *
-
-
-
-
91
sys_munmap
[url=file:///usr/src/linux/mm/mmap.c]mm/mmap.c[/url]
unsigned long
size_t
-
-
-
92
sys_truncate
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
const char *
unsigned long
-
-
-
93
sys_ftruncate
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
unsigned int
unsigned long
-
-
-
94
sys_fchmod
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
unsigned int
mode_t
-
-
-
95
sys_fchown
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
unsigned int
uid_t
gid_t
-
-
96
sys_getpriority
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
int
int
-
-
-
97
sys_setpriority
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
int
int
int
-
-
99
sys_statfs
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
const char *
struct statfs *
-
-
-
100
sys_fstatfs
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
unsigned int
struct statfs *
-
-
-
101
sys_ioperm
[url=file:///usr/src/linux/arch/i386/kernel/ioport.c]arch/i386/kernel/ioport.c[/url]
unsigned long
unsigned long
int
-
-
102
sys_socketcall
[url=file:///usr/src/linux/net/socket.c]net/socket.c[/url]
int
unsigned long *
-
-
-
103
sys_syslog
[url=file:///usr/src/linux/kernel/printk.c]kernel/printk.c[/url]
int
char *
int
-
-
104
sys_setitimer
[url=file:///usr/src/linux/kernel/itimer.c]kernel/itimer.c[/url]
int
struct itimerval *
struct itimerval *
-
-
105
sys_getitimer
[url=file:///usr/src/linux/kernel/itimer.c]kernel/itimer.c[/url]
int
struct itimerval *
-
-
-
106
sys_newstat
[url=file:///usr/src/linux/fs/stat.c]fs/stat.c[/url]
char *
struct stat *
-
-
-
107
sys_newlstat
[url=file:///usr/src/linux/fs/stat.c]fs/stat.c[/url]
char *
struct stat *
-
-
-
108
sys_newfstat
[url=file:///usr/src/linux/fs/stat.c]fs/stat.c[/url]
unsigned int
struct stat *
-
-
-
109
sys_uname
[url=file:///usr/src/linux/arch/i386/kernel/sys_i386.c]arch/i386/kernel/sys_i386.c[/url]
struct old_utsname *
-
-
-
-
110
sys_iopl
[url=file:///usr/src/linux/arch/i386/kernel/ioport.c]arch/i386/kernel/ioport.c[/url]
unsigned long
-
-
-
-
111
sys_vhangup
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
-
-
-
-
-
112
sys_idle
[url=file:///usr/src/linux/arch/i386/kernel/process.c]arch/i386/kernel/process.c[/url]
-
-
-
-
-
113
sys_vm86old
[url=file:///usr/src/linux/arch/i386/kernel/vm86.c]arch/i386/kernel/vm86.c[/url]
unsigned long
struct vm86plus_struct *
-
-
-
114
sys_wait4
[url=file:///usr/src/linux/kernel/exit.c]kernel/exit.c[/url]
pid_t
unsigned long *
int options
struct rusage *
-
115
sys_swapoff
[url=file:///usr/src/linux/mm/swapfile.c]mm/swapfile.c[/url]
const char *
-
-
-
-
116
sys_sysinfo
[url=file:///usr/src/linux/kernel/info.c]kernel/info.c[/url]
struct sysinfo *
-
-
-
-
117
sys_ipc
(*Note)
[url=file:///usr/src/linux/arch/i386/kernel/sys_i386.c]arch/i386/kernel/sys_i386.c[/url]
uint
int
int
int
void *
118
sys_fsync
[url=file:///usr/src/linux/fs/buffer.c]fs/buffer.c[/url]
unsigned int
-
-
-
-
119
sys_sigreturn
[url=file:///usr/src/linux/arch/i386/kernel/signal.c]arch/i386/kernel/signal.c[/url]
unsigned long
-
-
-
-
120
sys_clone
[url=file:///usr/src/linux/arch/i386/kernel/process.c]arch/i386/kernel/process.c[/url]
struct pt_regs
-
-
-
-
121
sys_setdomainname
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
char *
int
-
-
-
122
sys_newuname
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
struct new_utsname *
-
-
-
-
123
sys_modify_ldt
[url=file:///usr/src/linux/arch/i386/kernel/ldt.c]arch/i386/kernel/ldt.c[/url]
int
void *
unsigned long
-
-
124
sys_adjtimex
[url=file:///usr/src/linux/kernel/time.c]kernel/time.c[/url]
struct timex *
-
-
-
-
125
sys_mprotect
[url=file:///usr/src/linux/mm/mprotect.c]mm/mprotect.c[/url]
unsigned long
size_t
unsigned long
-
-
126
sys_sigprocmask
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
int
old_sigset_t *
old_sigset_t *
-
-
127
sys_create_module
[url=file:///usr/src/linux/kernel/module.c]kernel/module.c[/url]
const char *
size_t
-
-
-
128
sys_init_module
[url=file:///usr/src/linux/kernel/module.c]kernel/module.c[/url]
const char *
struct module *
-
-
-
129
sys_delete_module
[url=file:///usr/src/linux/kernel/module.c]kernel/module.c[/url]
const char *
-
-
-
-
130
sys_get_kernel_syms
[url=file:///usr/src/linux/kernel/module.c]kernel/module.c[/url]
struct kernel_sym *
-
-
-
-
131
sys_quotactl
[url=file:///usr/src/linux/fs/dquot.c]fs/dquot.c[/url]
int
const char *
int
caddr_t
-
132
sys_getpgid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
pid_t
-
-
-
-
133
sys_fchdir
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
unsigned int
-
-
-
-
134
sys_bdflush
[url=file:///usr/src/linux/fs/buffer.c]fs/buffer.c[/url]
int
long
-
-
-
135
sys_sysfs
[url=file:///usr/src/linux/fs/super.c]fs/super.c[/url]
int
unsigned long
unsigned long
-
-
136
sys_personality
[url=file:///usr/src/linux/kernel/exec_domain.c]kernel/exec_domain.c[/url]
unsigned long
-
-
-
-
138
sys_setfsuid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
uid_t
-
-
-
-
139
sys_setfsgid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
gid_t
-
-
-
-
140
sys_llseek
[url=file:///usr/src/linux/fs/read_write.c]fs/read_write.c[/url]
unsigned int
unsigned long
unsigned long
loff_t *
unsigned int
141
sys_getdents
[url=file:///usr/src/linux/fs/readdir.c]fs/readdir.c[/url]
unsigned int
void *
unsigned int
-
-
142
sys_select
[url=file:///usr/src/linux/fs/select.c]fs/select.c[/url]
int
fd_set *
fd_set *
fd_set *
struct timeval *
143
sys_flock
[url=file:///usr/src/linux/fs/locks.c]fs/locks.c[/url]
unsigned int
unsigned int
-
-
-
144
sys_msync
[url=file:///usr/src/linux/mm/filemap.c]mm/filemap.c[/url]
unsigned long
size_t
int
-
-
145
sys_readv
[url=file:///usr/src/linux/fs/read_write.c]fs/read_write.c[/url]
unsigned long
const struct iovec *
unsigned long
-
-
146
sys_writev
[url=file:///usr/src/linux/fs/read_write.c]fs/read_write.c[/url]
unsigned long
const struct iovec *
unsigned long
-
-
147
sys_getsid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
pid_t
-
-
-
-
148
sys_fdatasync
[url=file:///usr/src/linux/fs/buffer.c]fs/buffer.c[/url]
unsigned int
-
-
-
-
149
sys_sysctl
[url=file:///usr/src/linux/kernel/sysctl.c]kernel/sysctl.c[/url]
struct __sysctl_args *
-
-
-
-
150
sys_mlock
[url=file:///usr/src/linux/mm/mlock.c]mm/mlock.c[/url]
unsigned long
size_t
-
-
-
151
sys_munlock
[url=file:///usr/src/linux/mm/mlock.c]mm/mlock.c[/url]
unsigned long
size_t
-
-
-
152
sys_mlockall
[url=file:///usr/src/linux/mm/mlock.c]mm/mlock.c[/url]
int
-
-
-
-
153
sys_munlockall
[url=file:///usr/src/linux/mm/mlock.c]mm/mlock.c[/url]
-
-
-
-
-
154
sys_sched_setparam
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
pid_t
struct sched_param *
-
-
-
155
sys_sched_getparam
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
pid_t
struct sched_param *
-
-
-
156
sys_sched_setscheduler
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
pid_t
int
struct sched_param *
-
-
157
sys_sched_getscheduler
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
pid_t
-
-
-
-
158
sys_sched_yield
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
-
-
-
-
-
159
sys_sched_get_priority_max
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
int
-
-
-
-
160
sys_sched_get_priority_min
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
int
-
-
-
-
161
sys_sched_rr_get_interval
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
pid_t
struct timespec *
-
-
-
162
sys_nanosleep
[url=file:///usr/src/linux/kernel/sched.c]kernel/sched.c[/url]
struct timespec *
struct timespec *
-
-
-
163
sys_mremap
[url=file:///usr/src/linux/mm/mremap.c]mm/mremap.c[/url]
unsigned long
unsigned long
unsigned long
unsigned long
-
164
sys_setresuid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
uid_t
uid_t
uid_t
-
-
165
sys_getresuid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
uid_t *
uid_t *
uid_t *
-
-
166
sys_vm86
[url=file:///usr/src/linux/arch/i386/kernel/vm86.c]arch/i386/kernel/vm86.c[/url]
struct vm86_struct *
-
-
-
-
167
sys_query_module
[url=file:///usr/src/linux/kernel/module.c]kernel/module.c[/url]
const char *
int
char *
size_t
size_t *
168
sys_poll
[url=file:///usr/src/linux/fs/select.c]fs/select.c[/url]
struct pollfd *
unsigned int
long
-
-
169
sys_nfsservctl
[url=file:///usr/src/linux/fs/filesystems.c]fs/filesystems.c[/url]
int
void *
void *
-
-
170
sys_setresgid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
gid_t
gid_t
gid_t
-
-
171
sys_getresgid
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
gid_t *
gid_t *
gid_t *
-
-
172
sys_prctl
[url=file:///usr/src/linux/kernel/sys.c]kernel/sys.c[/url]
int
unsigned long
unsigned long
unsigned long
unsigned long
173
sys_rt_sigreturn
[url=file:///usr/src/linux/arch/i386/kernel/signal.c]arch/i386/kernel/signal.c[/url]
unsigned long
-
-
-
-
174
sys_rt_sigaction
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
int
const struct sigaction *
struct sigaction *
size_t
-
175
sys_rt_sigprocmask
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
int
sigset_t *
sigset_t *
size_t
-
176
sys_rt_sigpending
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
sigset_t *
size_t
-
-
-
177
sys_rt_sigtimedwait
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
const sigset_t *
siginfo_t *
const struct timespec *
size_t
-
178
sys_rt_sigqueueinfo
[url=file:///usr/src/linux/kernel/signal.c]kernel/signal.c[/url]
int
int
siginfo_t *
-
-
179
sys_rt_sigsuspend
[url=file:///usr/src/linux/arch/i386/kernel/signal.c]arch/i386/kernel/signal.c[/url]
sigset_t *
size_t
-
-
-
180
sys_pread
[url=file:///usr/src/linux/fs/read_write.c]fs/read_write.c[/url]
unsigned int
char *
size_t
loff_t
-
181
sys_pwrite
[url=file:///usr/src/linux/fs/read_write.c]fs/read_write.c[/url]
unsigned int
const char *
size_t
loff_t
-
182
sys_chown
[url=file:///usr/src/linux/fs/open.c]fs/open.c[/url]
const char *
uid_t
gid_t
-
-
183
sys_getcwd
[url=file:///usr/src/linux/fs/dcache.c]fs/dcache.c[/url]
char *
unsigned long
-
-
-
184
sys_capget
[url=file:///usr/src/linux/kernel/capability.c]kernel/capability.c[/url]
cap_user_header_t
cap_user_data_t
-
-
-
185
sys_capset
[url=file:///usr/src/linux/kernel/capability.c]kernel/capability.c[/url]
cap_user_header_t
const cap_user_data_t
-
-
-
186
sys_sigaltstack
[url=file:///usr/src/linux/arch/i386/kernel/signal.c]arch/i386/kernel/signal.c[/url]
const stack_t *
stack_t *
-
-
-
187
sys_sendfile
[url=file:///usr/src/linux/mm/filemap.c]mm/filemap.c[/url]
int
int
off_t *
size_t
-
190
sys_vfork
[url=file:///usr/src/linux/arch/i386/kernel/process.c]arch/i386/kernel/process.c[/url]
struct 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.
I will now explain exactly where in the kernel source that I got the information in the table above. I do this because 1) changes in the source are bound to happen, 2) you might be curious, or 3) I might've made an error.
System Call Numbers
For the numbers of the syscalls, look in
[url=file:///usr/src/linux/arch/i386/kernel/entry.S]arch/i386/kernel/entry.S[/url]
for sys_call_table. The syscall numbers are offsets into that table. Several spots in the table are occupied by the syscall sys_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_table. SYMBOL_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_t
[url=file:///usr/src/linux/include/asm/atomic.h]include/asm/atomic.h[/url]
:
#ifdef __SMP__
typedef struct { volatile int counter; } atomic_t;
#else
typedef struct { int counter; } atomic_t;
#endif
caddr_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef char * __kernel_caddr_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_caddr_t caddr_t;
cap_user_header_t
[url=file:///usr/src/linux/include/linux/capability.h]include/linux/capability.h[/url]
:
typedef struct __user_cap_header_struct {
     
__u32
version;
     int pid;
} *cap_user_header_t;
cap_user_data_t
[url=file:///usr/src/linux/include/linux/capability.h]include/linux/capability.h[/url]
:
typedef struct __user_cap_data_struct {
     
__u32
effective;
     
__u32
permitted;
     
__u32
inheritable;
} *cap_user_data_t;
clock_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef long __kernel_clock_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_clock_t clock_t;
dev_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef unsigned short __kernel_dev_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_dev_t dev_t;
fdset
include/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;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_fd_set fd_set;
gid_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef unsigned short __kernel_gid_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_gid_t gid_t;
__kernel_daddr_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef int __kernel_daddr_t;
__kernel_fsid_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:
typedef struct {
     int __val[2];
} __kernel_fsid_t;
__kernel_ino_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef unsigned long __kernel_ino_t;
__kernel_size_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef unsigned int __kernel_size_t;
loff_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef long long __kernel_loff_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_loff_t loff_t;
mode_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef unsigned short __kernel_mode_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_mode_t mode_t;
off_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef long __kernel_off_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_off_t off_t;
old_sigset_t
[url=file:///usr/src/linux/include/asm/signal.h]include/asm/signal.h[/url]
:typedef unsigned long old_sigset_t;
pid_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef int __kernel_pid_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_pid_t pid_t;
__sighandler_t
[url=file:///usr/src/linux/include/asm/signal.h]include/asm/signal.h[/url]
:typedef void (*__sighandler_t)(int);
siginfo_t
[url=file:///usr/src/linux/include/asm/siginfo.h]include/asm/siginfo.h[/url]
:
#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_t
[url=file:///usr/src/linux/include/asm/signal.h]include/asm/signal.h[/url]
:typedef unsigned long sigset_t;
size_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef unsigned int __kernel_size_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_size_t size_t;
ssize_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef int __kernel_ssize_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_ssize_t ssize_t;
stack_t
[url=file:///usr/src/linux/include/asm/signal.h]include/asm/signal.h[/url]
:
typedef struct sigaltstack {
     void *ss_sp;
     int ss_flags;
     
size_t
ss_size;
} stack_t;
suseconds_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef long __kernel_suseconds_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_suseconds_t suseconds_t;
time_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef long __kernel_time_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_time_t time_t;
uid_t
[url=file:///usr/src/linux/include/asm/posix_types.h]include/asm/posix_types.h[/url]
:typedef unsigned short __kernel_uid_t;
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef __kernel_uid_t uid_t;
uint
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:typedef unsigned int uint;
__u32
[url=file:///usr/src/linux/include/asm/types.h]include/asm/types.h[/url]
:typedef unsigned int __u32;

Struct Declarations
Here are the struct declarations for the table at the top:
exception_table_entry
[url=file:///usr/src/linux/include/linux/module.h]include/linux/module.h[/url]
:
struct exception_table_entry {
     unsigned long insn, fixup;
};
iovec
[url=file:///usr/src/linux/include/linux/uio.h]include/linux/uio.h[/url]
:
struct iovec {
     void *iov_base;
     
__kernel_size_t
iov_len; };
itimerval
[url=file:///usr/src/linux/include/linux/time.h]include/linux/time.h[/url]
:
struct itimerval {
     
struct timeval
it_interval; /* timer interval */
     
struct timeval
it_value; /* current value */
};
kernel_sym
[url=file:///usr/src/linux/include/linux/module.h]include/linux/module.h[/url]
:
struct kernel_sym {
     unsigned long value;
     char name[60];
};
mmap_arg_struct
[url=file:///usr/src/linux/arch/i386/kernel/sys_i386.c]arch/i386/kernel/sys_i386.c[/url]
:
struct mmap_arg_struct {
     unsigned long addr;
     unsigned long len;
     unsigned long prot;
     unsigned long flags;
     unsigned long fd;
     unsigned long offset;
};
module
[url=file:///usr/src/linux/include/linux/module.h]include/linux/module.h[/url]
:
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_persist
[url=file:///usr/src/linux/include/linux/module.h]include/linux/module.h[/url]
:
struct module_persist; /* yes, it's empty */
module_ref
[url=file:///usr/src/linux/include/linux/module.h]include/linux/module.h[/url]
:
struct module_ref {
     
struct module
*dep; /* "parent" pointer */
     
struct module
*ref; /* "child" pointer */
     
struct module_ref
*next_ref;
};
module_symbol
[url=file:///usr/src/linux/include/linux/module.h]include/linux/module.h[/url]
:
struct module_symbol {
     unsigned long value;
     const char *name;
};
new_utsname
[url=file:///usr/src/linux/include/linux/utsname.h]include/linux/utsname.h[/url]
:
struct new_utsname {
     char sysname[65];
     char nodename[65];
     char release[65];
     char version[65];
     char machine[65];
     char domainname[65];
};
__old_kernel_stat
[url=file:///usr/src/linux/include/asm/stat.h]include/asm/stat.h[/url]
:
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_utsname
[url=file:///usr/src/linux/include/linux/utsname.h]include/linux/utsname.h[/url]
:
struct oldold_utsname {
     char sysname[9];
     char nodename[9];
     char release[9];
     char version[9];
     char machine[9];
};
old_sigaction
[url=file:///usr/src/linux/include/asm/signal.h]include/asm/signal.h[/url]
:
struct old_sigaction {
     
__sighandler_t
sa_handler;
     
old_sigset_t
sa_mask;
     unsigned long sa_flags;
     void (*sa_restorer)(void);
};
old_utsname
[url=file:///usr/src/linux/include/linux/utsname.h]include/linux/utsname.h[/url]
:
struct old_utsname {
     char sysname[65];
     char nodename[65];
     char release[65];
     char version[65];
     char machine[65];
};
pollfd
[url=file:///usr/src/linux/include/asm/poll.h]include/asm/poll.h[/url]
:
struct pollfd {
     int fd;
     short events;
     short revents;
};
pt_regs
[url=file:///usr/src/linux/include/asm/ptrace.h]include/asm/ptrace.h[/url]
:
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_struct
[url=file:///usr/src/linux/include/asm/vm86.h]include/asm/vm86.h[/url]
:
struct revectored_struct {
     unsigned long __map[8];
};
rlimit
[url=file:///usr/src/linux/include/linux/resource.h]include/linux/resource.h[/url]
:
struct rlimit {
     long rlim_cur;
     long rlim_max;
};
rusage
[url=file:///usr/src/linux/include/linux/resource.h]include/linux/resource.h[/url]
:
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_param
[url=file:///usr/src/linux/include/linux/sched.h]include/linux/sched.h[/url]
:
struct sched_param {
     int sched_priority;
};
sel_arg_struct
[url=file:///usr/src/linux/arch/i386/kernel/sys_i386.c]arch/i386/kernel/sys_i386.c[/url]
:
struct sel_arg_struct {
     unsigned long n;
     
fd_set
*inp, *outp, *exp;
     
struct timeval
*tvp;
};
sigaction
[url=file:///usr/src/linux/include/asm/signal.h]include/asm/signal.h[/url]
:
struct sigaction {
     
__sighandler_t
sa_handler;
     unsigned long sa_flags;
     void (*sa_restorer)(void);
     
sigset_t
sa_mask; /* mask last for extensibility */
};
stat
[url=file:///usr/src/linux/include/asm/stat.h]include/asm/stat.h[/url]
:
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;
statfs
[url=file:///usr/src/linux/include/asm/statfs.h]include/asm/statfs.h[/url]
:
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_args
include/linux/sysctl.h
struct __sysctl_args {
     int *name;
     int nlen;
     void *oldval;
     
size_t
*oldlenp;
     void *newval;
     
size_t
newlen;
     unsigned long __unused[4];
};
sysinfo
[url=file:///usr/src/linux/include/linux/kernel.h]include/linux/kernel.h[/url]
:
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 */
};
timex
[url=file:///usr/src/linux/include/linux/timex.h]include/linux/timex.h[/url]
:
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;
};
timespec
[url=file:///usr/src/linux/include/linux/time.h]include/linux/time.h[/url]
:
struct timespec {
     
time_t
tv_sec; /* seconds */
     long tv_nsec; /* nanoseconds */
};
timeval
[url=file:///usr/src/linux/include/linux/time.h]include/linux/time.h[/url]
:
struct timeval {
     
time_t
tv_sec; /* seconds */
     
suseconds_t
tv_usec; /* microseconds */
};
timezone
[url=file:///usr/src/linux/include/linux/time.h]include/linux/time.h[/url]
:
struct timezone {
     int tz_minuteswest; /* minutes west of Greenwich */
     int tz_dsttime; /* type of dst correction */
};
tms
include/linux/times.h
struct tms {
     
clock_t
tms_utime;
     
clock_t
tms_stime;
     
clock_t
tms_cutime;
     
clock_t
tms_cstime;
};
ustat
[url=file:///usr/src/linux/include/linux/types.h]include/linux/types.h[/url]
:
struct ustat {
     
__kernel_daddr_t
f_tfree;
     
__kernel_ino_t
f_tinode;
     char f_fname[6];
     char f_fpack[6];
};
utimbuf
[url=file:///usr/src/linux/include/linux/utime.h]include/linux/utime.h[/url]
:
struct utimbuf {
     
time_t
actime;
     
time_t
modtime;
};
vm86plus_info_struct
[url=file:///usr/src/linux/include/asm/vm86.h]include/asm/vm86.h[/url]
:
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_struct
[url=file:///usr/src/linux/include/asm/vm86.h]include/asm/vm86.h[/url]
:
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_regs
[url=file:///usr/src/linux/include/asm/vm86.h]include/asm/vm86.h[/url]
:
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_struct
[url=file:///usr/src/linux/include/asm/vm86.h]include/asm/vm86.h[/url]
:
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;
};
©2004, Gary L. Burt





本文地址 : http://www.fengfly.com/plus/view-164035-1.html
标签: url int struct /url long unsigned
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: