aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/syscalls.h
diff options
context:
space:
mode:
authorMichal Marek <mmarek@suse.cz>2010-10-27 18:15:57 -0400
committerMichal Marek <mmarek@suse.cz>2010-10-27 18:15:57 -0400
commitb74b953b998bcc2db91b694446f3a2619ec32de6 (patch)
tree6ce24caabd730f6ae9287ed0676ec32e6ff31e9d /include/linux/syscalls.h
parentabb438526201c6a79949ad45375c051b6681c253 (diff)
parentf6f94e2ab1b33f0082ac22d71f66385a60d8157f (diff)
Merge commit 'v2.6.36' into kbuild/misc
Update to be able to fix a recent change to scripts/basic/docproc.c (commit eda603f).
Diffstat (limited to 'include/linux/syscalls.h')
-rw-r--r--include/linux/syscalls.h108
1 files changed, 52 insertions, 56 deletions
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 207466a49f3d..e6319d18a55d 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -23,6 +23,7 @@ struct kexec_segment;
23struct linux_dirent; 23struct linux_dirent;
24struct linux_dirent64; 24struct linux_dirent64;
25struct list_head; 25struct list_head;
26struct mmap_arg_struct;
26struct msgbuf; 27struct msgbuf;
27struct msghdr; 28struct msghdr;
28struct mmsghdr; 29struct mmsghdr;
@@ -30,10 +31,14 @@ struct msqid_ds;
30struct new_utsname; 31struct new_utsname;
31struct nfsctl_arg; 32struct nfsctl_arg;
32struct __old_kernel_stat; 33struct __old_kernel_stat;
34struct oldold_utsname;
35struct old_utsname;
33struct pollfd; 36struct pollfd;
34struct rlimit; 37struct rlimit;
38struct rlimit64;
35struct rusage; 39struct rusage;
36struct sched_param; 40struct sched_param;
41struct sel_arg_struct;
37struct semaphore; 42struct semaphore;
38struct sembuf; 43struct sembuf;
39struct shmid_ds; 44struct shmid_ds;
@@ -99,22 +104,6 @@ struct perf_event_attr;
99#define __SC_TEST5(t5, a5, ...) __SC_TEST(t5); __SC_TEST4(__VA_ARGS__) 104#define __SC_TEST5(t5, a5, ...) __SC_TEST(t5); __SC_TEST4(__VA_ARGS__)
100#define __SC_TEST6(t6, a6, ...) __SC_TEST(t6); __SC_TEST5(__VA_ARGS__) 105#define __SC_TEST6(t6, a6, ...) __SC_TEST(t6); __SC_TEST5(__VA_ARGS__)
101 106
102#ifdef CONFIG_EVENT_PROFILE
103
104#define TRACE_SYS_ENTER_PROFILE_INIT(sname) \
105 .profile_enable = prof_sysenter_enable, \
106 .profile_disable = prof_sysenter_disable,
107
108#define TRACE_SYS_EXIT_PROFILE_INIT(sname) \
109 .profile_enable = prof_sysexit_enable, \
110 .profile_disable = prof_sysexit_disable,
111#else
112#define TRACE_SYS_ENTER_PROFILE(sname)
113#define TRACE_SYS_ENTER_PROFILE_INIT(sname)
114#define TRACE_SYS_EXIT_PROFILE(sname)
115#define TRACE_SYS_EXIT_PROFILE_INIT(sname)
116#endif
117
118#ifdef CONFIG_FTRACE_SYSCALLS 107#ifdef CONFIG_FTRACE_SYSCALLS
119#define __SC_STR_ADECL1(t, a) #a 108#define __SC_STR_ADECL1(t, a) #a
120#define __SC_STR_ADECL2(t, a, ...) #a, __SC_STR_ADECL1(__VA_ARGS__) 109#define __SC_STR_ADECL2(t, a, ...) #a, __SC_STR_ADECL1(__VA_ARGS__)
@@ -130,54 +119,45 @@ struct perf_event_attr;
130#define __SC_STR_TDECL5(t, a, ...) #t, __SC_STR_TDECL4(__VA_ARGS__) 119#define __SC_STR_TDECL5(t, a, ...) #t, __SC_STR_TDECL4(__VA_ARGS__)
131#define __SC_STR_TDECL6(t, a, ...) #t, __SC_STR_TDECL5(__VA_ARGS__) 120#define __SC_STR_TDECL6(t, a, ...) #t, __SC_STR_TDECL5(__VA_ARGS__)
132 121
122extern struct ftrace_event_class event_class_syscall_enter;
123extern struct ftrace_event_class event_class_syscall_exit;
124extern struct trace_event_functions enter_syscall_print_funcs;
125extern struct trace_event_functions exit_syscall_print_funcs;
126
133#define SYSCALL_TRACE_ENTER_EVENT(sname) \ 127#define SYSCALL_TRACE_ENTER_EVENT(sname) \
134 static const struct syscall_metadata __syscall_meta_##sname; \ 128 static struct syscall_metadata \
135 static struct ftrace_event_call event_enter_##sname; \ 129 __attribute__((__aligned__(4))) __syscall_meta_##sname; \
136 static struct trace_event enter_syscall_print_##sname = { \ 130 static struct ftrace_event_call \
137 .trace = print_syscall_enter, \ 131 __attribute__((__aligned__(4))) event_enter_##sname; \
138 }; \
139 static struct ftrace_event_call __used \ 132 static struct ftrace_event_call __used \
140 __attribute__((__aligned__(4))) \ 133 __attribute__((__aligned__(4))) \
141 __attribute__((section("_ftrace_events"))) \ 134 __attribute__((section("_ftrace_events"))) \
142 event_enter_##sname = { \ 135 event_enter_##sname = { \
143 .name = "sys_enter"#sname, \ 136 .name = "sys_enter"#sname, \
144 .system = "syscalls", \ 137 .class = &event_class_syscall_enter, \
145 .event = &enter_syscall_print_##sname, \ 138 .event.funcs = &enter_syscall_print_funcs, \
146 .raw_init = trace_event_raw_init, \
147 .show_format = syscall_enter_format, \
148 .define_fields = syscall_enter_define_fields, \
149 .regfunc = reg_event_syscall_enter, \
150 .unregfunc = unreg_event_syscall_enter, \
151 .data = (void *)&__syscall_meta_##sname,\ 139 .data = (void *)&__syscall_meta_##sname,\
152 TRACE_SYS_ENTER_PROFILE_INIT(sname) \
153 } 140 }
154 141
155#define SYSCALL_TRACE_EXIT_EVENT(sname) \ 142#define SYSCALL_TRACE_EXIT_EVENT(sname) \
156 static const struct syscall_metadata __syscall_meta_##sname; \ 143 static struct syscall_metadata \
157 static struct ftrace_event_call event_exit_##sname; \ 144 __attribute__((__aligned__(4))) __syscall_meta_##sname; \
158 static struct trace_event exit_syscall_print_##sname = { \ 145 static struct ftrace_event_call \
159 .trace = print_syscall_exit, \ 146 __attribute__((__aligned__(4))) event_exit_##sname; \
160 }; \
161 static struct ftrace_event_call __used \ 147 static struct ftrace_event_call __used \
162 __attribute__((__aligned__(4))) \ 148 __attribute__((__aligned__(4))) \
163 __attribute__((section("_ftrace_events"))) \ 149 __attribute__((section("_ftrace_events"))) \
164 event_exit_##sname = { \ 150 event_exit_##sname = { \
165 .name = "sys_exit"#sname, \ 151 .name = "sys_exit"#sname, \
166 .system = "syscalls", \ 152 .class = &event_class_syscall_exit, \
167 .event = &exit_syscall_print_##sname, \ 153 .event.funcs = &exit_syscall_print_funcs, \
168 .raw_init = trace_event_raw_init, \
169 .show_format = syscall_exit_format, \
170 .define_fields = syscall_exit_define_fields, \
171 .regfunc = reg_event_syscall_exit, \
172 .unregfunc = unreg_event_syscall_exit, \
173 .data = (void *)&__syscall_meta_##sname,\ 154 .data = (void *)&__syscall_meta_##sname,\
174 TRACE_SYS_EXIT_PROFILE_INIT(sname) \
175 } 155 }
176 156
177#define SYSCALL_METADATA(sname, nb) \ 157#define SYSCALL_METADATA(sname, nb) \
178 SYSCALL_TRACE_ENTER_EVENT(sname); \ 158 SYSCALL_TRACE_ENTER_EVENT(sname); \
179 SYSCALL_TRACE_EXIT_EVENT(sname); \ 159 SYSCALL_TRACE_EXIT_EVENT(sname); \
180 static const struct syscall_metadata __used \ 160 static struct syscall_metadata __used \
181 __attribute__((__aligned__(4))) \ 161 __attribute__((__aligned__(4))) \
182 __attribute__((section("__syscalls_metadata"))) \ 162 __attribute__((section("__syscalls_metadata"))) \
183 __syscall_meta_##sname = { \ 163 __syscall_meta_##sname = { \
@@ -187,12 +167,13 @@ struct perf_event_attr;
187 .args = args_##sname, \ 167 .args = args_##sname, \
188 .enter_event = &event_enter_##sname, \ 168 .enter_event = &event_enter_##sname, \
189 .exit_event = &event_exit_##sname, \ 169 .exit_event = &event_exit_##sname, \
170 .enter_fields = LIST_HEAD_INIT(__syscall_meta_##sname.enter_fields), \
190 }; 171 };
191 172
192#define SYSCALL_DEFINE0(sname) \ 173#define SYSCALL_DEFINE0(sname) \
193 SYSCALL_TRACE_ENTER_EVENT(_##sname); \ 174 SYSCALL_TRACE_ENTER_EVENT(_##sname); \
194 SYSCALL_TRACE_EXIT_EVENT(_##sname); \ 175 SYSCALL_TRACE_EXIT_EVENT(_##sname); \
195 static const struct syscall_metadata __used \ 176 static struct syscall_metadata __used \
196 __attribute__((__aligned__(4))) \ 177 __attribute__((__aligned__(4))) \
197 __attribute__((section("__syscalls_metadata"))) \ 178 __attribute__((section("__syscalls_metadata"))) \
198 __syscall_meta__##sname = { \ 179 __syscall_meta__##sname = { \
@@ -200,6 +181,7 @@ struct perf_event_attr;
200 .nb_args = 0, \ 181 .nb_args = 0, \
201 .enter_event = &event_enter__##sname, \ 182 .enter_event = &event_enter__##sname, \
202 .exit_event = &event_exit__##sname, \ 183 .exit_event = &event_exit__##sname, \
184 .enter_fields = LIST_HEAD_INIT(__syscall_meta__##sname.enter_fields), \
203 }; \ 185 }; \
204 asmlinkage long sys_##sname(void) 186 asmlinkage long sys_##sname(void)
205#else 187#else
@@ -308,7 +290,7 @@ asmlinkage long sys_capget(cap_user_header_t header,
308 cap_user_data_t dataptr); 290 cap_user_data_t dataptr);
309asmlinkage long sys_capset(cap_user_header_t header, 291asmlinkage long sys_capset(cap_user_header_t header,
310 const cap_user_data_t data); 292 const cap_user_data_t data);
311asmlinkage long sys_personality(u_long personality); 293asmlinkage long sys_personality(unsigned int personality);
312 294
313asmlinkage long sys_sigpending(old_sigset_t __user *set); 295asmlinkage long sys_sigpending(old_sigset_t __user *set);
314asmlinkage long sys_sigprocmask(int how, old_sigset_t __user *set, 296asmlinkage long sys_sigprocmask(int how, old_sigset_t __user *set,
@@ -412,7 +394,7 @@ asmlinkage long sys_umount(char __user *name, int flags);
412asmlinkage long sys_oldumount(char __user *name); 394asmlinkage long sys_oldumount(char __user *name);
413asmlinkage long sys_truncate(const char __user *path, long length); 395asmlinkage long sys_truncate(const char __user *path, long length);
414asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length); 396asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length);
415asmlinkage long sys_stat(char __user *filename, 397asmlinkage long sys_stat(const char __user *filename,
416 struct __old_kernel_stat __user *statbuf); 398 struct __old_kernel_stat __user *statbuf);
417asmlinkage long sys_statfs(const char __user * path, 399asmlinkage long sys_statfs(const char __user * path,
418 struct statfs __user *buf); 400 struct statfs __user *buf);
@@ -421,21 +403,21 @@ asmlinkage long sys_statfs64(const char __user *path, size_t sz,
421asmlinkage long sys_fstatfs(unsigned int fd, struct statfs __user *buf); 403asmlinkage long sys_fstatfs(unsigned int fd, struct statfs __user *buf);
422asmlinkage long sys_fstatfs64(unsigned int fd, size_t sz, 404asmlinkage long sys_fstatfs64(unsigned int fd, size_t sz,
423 struct statfs64 __user *buf); 405 struct statfs64 __user *buf);
424asmlinkage long sys_lstat(char __user *filename, 406asmlinkage long sys_lstat(const char __user *filename,
425 struct __old_kernel_stat __user *statbuf); 407 struct __old_kernel_stat __user *statbuf);
426asmlinkage long sys_fstat(unsigned int fd, 408asmlinkage long sys_fstat(unsigned int fd,
427 struct __old_kernel_stat __user *statbuf); 409 struct __old_kernel_stat __user *statbuf);
428asmlinkage long sys_newstat(char __user *filename, 410asmlinkage long sys_newstat(const char __user *filename,
429 struct stat __user *statbuf); 411 struct stat __user *statbuf);
430asmlinkage long sys_newlstat(char __user *filename, 412asmlinkage long sys_newlstat(const char __user *filename,
431 struct stat __user *statbuf); 413 struct stat __user *statbuf);
432asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf); 414asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf);
433asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf); 415asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf);
434#if BITS_PER_LONG == 32 416#if BITS_PER_LONG == 32
435asmlinkage long sys_stat64(char __user *filename, 417asmlinkage long sys_stat64(const char __user *filename,
436 struct stat64 __user *statbuf); 418 struct stat64 __user *statbuf);
437asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf); 419asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf);
438asmlinkage long sys_lstat64(char __user *filename, 420asmlinkage long sys_lstat64(const char __user *filename,
439 struct stat64 __user *statbuf); 421 struct stat64 __user *statbuf);
440asmlinkage long sys_truncate64(const char __user *path, loff_t length); 422asmlinkage long sys_truncate64(const char __user *path, loff_t length);
441asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length); 423asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length);
@@ -638,6 +620,7 @@ asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds,
638 long timeout); 620 long timeout);
639asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp, 621asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp,
640 fd_set __user *exp, struct timeval __user *tvp); 622 fd_set __user *exp, struct timeval __user *tvp);
623asmlinkage long sys_old_select(struct sel_arg_struct __user *arg);
641asmlinkage long sys_epoll_create(int size); 624asmlinkage long sys_epoll_create(int size);
642asmlinkage long sys_epoll_create1(int flags); 625asmlinkage long sys_epoll_create1(int flags);
643asmlinkage long sys_epoll_ctl(int epfd, int op, int fd, 626asmlinkage long sys_epoll_ctl(int epfd, int op, int fd,
@@ -652,6 +635,8 @@ asmlinkage long sys_gethostname(char __user *name, int len);
652asmlinkage long sys_sethostname(char __user *name, int len); 635asmlinkage long sys_sethostname(char __user *name, int len);
653asmlinkage long sys_setdomainname(char __user *name, int len); 636asmlinkage long sys_setdomainname(char __user *name, int len);
654asmlinkage long sys_newuname(struct new_utsname __user *name); 637asmlinkage long sys_newuname(struct new_utsname __user *name);
638asmlinkage long sys_uname(struct old_utsname __user *);
639asmlinkage long sys_olduname(struct oldold_utsname __user *);
655 640
656asmlinkage long sys_getrlimit(unsigned int resource, 641asmlinkage long sys_getrlimit(unsigned int resource,
657 struct rlimit __user *rlim); 642 struct rlimit __user *rlim);
@@ -660,6 +645,9 @@ asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *r
660#endif 645#endif
661asmlinkage long sys_setrlimit(unsigned int resource, 646asmlinkage long sys_setrlimit(unsigned int resource,
662 struct rlimit __user *rlim); 647 struct rlimit __user *rlim);
648asmlinkage long sys_prlimit64(pid_t pid, unsigned int resource,
649 const struct rlimit64 __user *new_rlim,
650 struct rlimit64 __user *old_rlim);
663asmlinkage long sys_getrusage(int who, struct rusage __user *ru); 651asmlinkage long sys_getrusage(int who, struct rusage __user *ru);
664asmlinkage long sys_umask(int mask); 652asmlinkage long sys_umask(int mask);
665 653
@@ -681,6 +669,8 @@ asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg);
681asmlinkage long sys_shmget(key_t key, size_t size, int flag); 669asmlinkage long sys_shmget(key_t key, size_t size, int flag);
682asmlinkage long sys_shmdt(char __user *shmaddr); 670asmlinkage long sys_shmdt(char __user *shmaddr);
683asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf); 671asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf);
672asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second,
673 unsigned long third, void __user *ptr, long fifth);
684 674
685asmlinkage long sys_mq_open(const char __user *name, int oflag, mode_t mode, struct mq_attr __user *attr); 675asmlinkage long sys_mq_open(const char __user *name, int oflag, mode_t mode, struct mq_attr __user *attr);
686asmlinkage long sys_mq_unlink(const char __user *name); 676asmlinkage long sys_mq_unlink(const char __user *name);
@@ -770,7 +760,7 @@ asmlinkage long sys_linkat(int olddfd, const char __user *oldname,
770 int newdfd, const char __user *newname, int flags); 760 int newdfd, const char __user *newname, int flags);
771asmlinkage long sys_renameat(int olddfd, const char __user * oldname, 761asmlinkage long sys_renameat(int olddfd, const char __user * oldname,
772 int newdfd, const char __user * newname); 762 int newdfd, const char __user * newname);
773asmlinkage long sys_futimesat(int dfd, char __user *filename, 763asmlinkage long sys_futimesat(int dfd, const char __user *filename,
774 struct timeval __user *utimes); 764 struct timeval __user *utimes);
775asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode); 765asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode);
776asmlinkage long sys_fchmodat(int dfd, const char __user * filename, 766asmlinkage long sys_fchmodat(int dfd, const char __user * filename,
@@ -779,13 +769,13 @@ asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user,
779 gid_t group, int flag); 769 gid_t group, int flag);
780asmlinkage long sys_openat(int dfd, const char __user *filename, int flags, 770asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,
781 int mode); 771 int mode);
782asmlinkage long sys_newfstatat(int dfd, char __user *filename, 772asmlinkage long sys_newfstatat(int dfd, const char __user *filename,
783 struct stat __user *statbuf, int flag); 773 struct stat __user *statbuf, int flag);
784asmlinkage long sys_fstatat64(int dfd, char __user *filename, 774asmlinkage long sys_fstatat64(int dfd, const char __user *filename,
785 struct stat64 __user *statbuf, int flag); 775 struct stat64 __user *statbuf, int flag);
786asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf, 776asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf,
787 int bufsiz); 777 int bufsiz);
788asmlinkage long sys_utimensat(int dfd, char __user *filename, 778asmlinkage long sys_utimensat(int dfd, const char __user *filename,
789 struct timespec __user *utimes, int flags); 779 struct timespec __user *utimes, int flags);
790asmlinkage long sys_unshare(unsigned long unshare_flags); 780asmlinkage long sys_unshare(unsigned long unshare_flags);
791 781
@@ -825,8 +815,12 @@ asmlinkage long sys_pselect6(int, fd_set __user *, fd_set __user *,
825asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int, 815asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int,
826 struct timespec __user *, const sigset_t __user *, 816 struct timespec __user *, const sigset_t __user *,
827 size_t); 817 size_t);
818asmlinkage long sys_fanotify_init(unsigned int flags, unsigned int event_f_flags);
819asmlinkage long sys_fanotify_mark(int fanotify_fd, unsigned int flags,
820 u64 mask, int fd,
821 const char __user *pathname);
828 822
829int kernel_execve(const char *filename, char *const argv[], char *const envp[]); 823int kernel_execve(const char *filename, const char *const argv[], const char *const envp[]);
830 824
831 825
832asmlinkage long sys_perf_event_open( 826asmlinkage long sys_perf_event_open(
@@ -836,4 +830,6 @@ asmlinkage long sys_perf_event_open(
836asmlinkage long sys_mmap_pgoff(unsigned long addr, unsigned long len, 830asmlinkage long sys_mmap_pgoff(unsigned long addr, unsigned long len,
837 unsigned long prot, unsigned long flags, 831 unsigned long prot, unsigned long flags,
838 unsigned long fd, unsigned long pgoff); 832 unsigned long fd, unsigned long pgoff);
833asmlinkage long sys_old_mmap(struct mmap_arg_struct __user *arg);
834
839#endif 835#endif