aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/syscalls.h
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-03-04 19:47:13 -0500
commitc71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch)
treeecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /include/linux/syscalls.h
parentea53c912f8a86a8567697115b6a0d8152beee5c8 (diff)
parent6a00f206debf8a5c8899055726ad127dbeeed098 (diff)
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts: litmus/sched_cedf.c
Diffstat (limited to 'include/linux/syscalls.h')
-rw-r--r--include/linux/syscalls.h57
1 files changed, 36 insertions, 21 deletions
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index e6319d18a55d..8c03b98df5f9 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -62,6 +62,7 @@ struct robust_list_head;
62struct getcpu_cache; 62struct getcpu_cache;
63struct old_linux_dirent; 63struct old_linux_dirent;
64struct perf_event_attr; 64struct perf_event_attr;
65struct file_handle;
65 66
66#include <linux/types.h> 67#include <linux/types.h>
67#include <linux/aio_abi.h> 68#include <linux/aio_abi.h>
@@ -125,64 +126,66 @@ extern struct trace_event_functions enter_syscall_print_funcs;
125extern struct trace_event_functions exit_syscall_print_funcs; 126extern struct trace_event_functions exit_syscall_print_funcs;
126 127
127#define SYSCALL_TRACE_ENTER_EVENT(sname) \ 128#define SYSCALL_TRACE_ENTER_EVENT(sname) \
128 static struct syscall_metadata \ 129 static struct syscall_metadata __syscall_meta_##sname; \
129 __attribute__((__aligned__(4))) __syscall_meta_##sname; \
130 static struct ftrace_event_call \
131 __attribute__((__aligned__(4))) event_enter_##sname; \
132 static struct ftrace_event_call __used \ 130 static struct ftrace_event_call __used \
133 __attribute__((__aligned__(4))) \
134 __attribute__((section("_ftrace_events"))) \
135 event_enter_##sname = { \ 131 event_enter_##sname = { \
136 .name = "sys_enter"#sname, \ 132 .name = "sys_enter"#sname, \
137 .class = &event_class_syscall_enter, \ 133 .class = &event_class_syscall_enter, \
138 .event.funcs = &enter_syscall_print_funcs, \ 134 .event.funcs = &enter_syscall_print_funcs, \
139 .data = (void *)&__syscall_meta_##sname,\ 135 .data = (void *)&__syscall_meta_##sname,\
140 } 136 .flags = TRACE_EVENT_FL_CAP_ANY, \
137 }; \
138 static struct ftrace_event_call __used \
139 __attribute__((section("_ftrace_events"))) \
140 *__event_enter_##sname = &event_enter_##sname;
141 141
142#define SYSCALL_TRACE_EXIT_EVENT(sname) \ 142#define SYSCALL_TRACE_EXIT_EVENT(sname) \
143 static struct syscall_metadata \ 143 static struct syscall_metadata __syscall_meta_##sname; \
144 __attribute__((__aligned__(4))) __syscall_meta_##sname; \
145 static struct ftrace_event_call \
146 __attribute__((__aligned__(4))) event_exit_##sname; \
147 static struct ftrace_event_call __used \ 144 static struct ftrace_event_call __used \
148 __attribute__((__aligned__(4))) \
149 __attribute__((section("_ftrace_events"))) \
150 event_exit_##sname = { \ 145 event_exit_##sname = { \
151 .name = "sys_exit"#sname, \ 146 .name = "sys_exit"#sname, \
152 .class = &event_class_syscall_exit, \ 147 .class = &event_class_syscall_exit, \
153 .event.funcs = &exit_syscall_print_funcs, \ 148 .event.funcs = &exit_syscall_print_funcs, \
154 .data = (void *)&__syscall_meta_##sname,\ 149 .data = (void *)&__syscall_meta_##sname,\
155 } 150 .flags = TRACE_EVENT_FL_CAP_ANY, \
151 }; \
152 static struct ftrace_event_call __used \
153 __attribute__((section("_ftrace_events"))) \
154 *__event_exit_##sname = &event_exit_##sname;
156 155
157#define SYSCALL_METADATA(sname, nb) \ 156#define SYSCALL_METADATA(sname, nb) \
158 SYSCALL_TRACE_ENTER_EVENT(sname); \ 157 SYSCALL_TRACE_ENTER_EVENT(sname); \
159 SYSCALL_TRACE_EXIT_EVENT(sname); \ 158 SYSCALL_TRACE_EXIT_EVENT(sname); \
160 static struct syscall_metadata __used \ 159 static struct syscall_metadata __used \
161 __attribute__((__aligned__(4))) \
162 __attribute__((section("__syscalls_metadata"))) \
163 __syscall_meta_##sname = { \ 160 __syscall_meta_##sname = { \
164 .name = "sys"#sname, \ 161 .name = "sys"#sname, \
162 .syscall_nr = -1, /* Filled in at boot */ \
165 .nb_args = nb, \ 163 .nb_args = nb, \
166 .types = types_##sname, \ 164 .types = types_##sname, \
167 .args = args_##sname, \ 165 .args = args_##sname, \
168 .enter_event = &event_enter_##sname, \ 166 .enter_event = &event_enter_##sname, \
169 .exit_event = &event_exit_##sname, \ 167 .exit_event = &event_exit_##sname, \
170 .enter_fields = LIST_HEAD_INIT(__syscall_meta_##sname.enter_fields), \ 168 .enter_fields = LIST_HEAD_INIT(__syscall_meta_##sname.enter_fields), \
171 }; 169 }; \
170 static struct syscall_metadata __used \
171 __attribute__((section("__syscalls_metadata"))) \
172 *__p_syscall_meta_##sname = &__syscall_meta_##sname;
172 173
173#define SYSCALL_DEFINE0(sname) \ 174#define SYSCALL_DEFINE0(sname) \
174 SYSCALL_TRACE_ENTER_EVENT(_##sname); \ 175 SYSCALL_TRACE_ENTER_EVENT(_##sname); \
175 SYSCALL_TRACE_EXIT_EVENT(_##sname); \ 176 SYSCALL_TRACE_EXIT_EVENT(_##sname); \
176 static struct syscall_metadata __used \ 177 static struct syscall_metadata __used \
177 __attribute__((__aligned__(4))) \
178 __attribute__((section("__syscalls_metadata"))) \
179 __syscall_meta__##sname = { \ 178 __syscall_meta__##sname = { \
180 .name = "sys_"#sname, \ 179 .name = "sys_"#sname, \
180 .syscall_nr = -1, /* Filled in at boot */ \
181 .nb_args = 0, \ 181 .nb_args = 0, \
182 .enter_event = &event_enter__##sname, \ 182 .enter_event = &event_enter__##sname, \
183 .exit_event = &event_exit__##sname, \ 183 .exit_event = &event_exit__##sname, \
184 .enter_fields = LIST_HEAD_INIT(__syscall_meta__##sname.enter_fields), \ 184 .enter_fields = LIST_HEAD_INIT(__syscall_meta__##sname.enter_fields), \
185 }; \ 185 }; \
186 static struct syscall_metadata __used \
187 __attribute__((section("__syscalls_metadata"))) \
188 *__p_syscall_meta_##sname = &__syscall_meta__##sname; \
186 asmlinkage long sys_##sname(void) 189 asmlinkage long sys_##sname(void)
187#else 190#else
188#define SYSCALL_DEFINE0(name) asmlinkage long sys_##name(void) 191#define SYSCALL_DEFINE0(name) asmlinkage long sys_##name(void)
@@ -313,6 +316,8 @@ asmlinkage long sys_clock_settime(clockid_t which_clock,
313 const struct timespec __user *tp); 316 const struct timespec __user *tp);
314asmlinkage long sys_clock_gettime(clockid_t which_clock, 317asmlinkage long sys_clock_gettime(clockid_t which_clock,
315 struct timespec __user *tp); 318 struct timespec __user *tp);
319asmlinkage long sys_clock_adjtime(clockid_t which_clock,
320 struct timex __user *tx);
316asmlinkage long sys_clock_getres(clockid_t which_clock, 321asmlinkage long sys_clock_getres(clockid_t which_clock,
317 struct timespec __user *tp); 322 struct timespec __user *tp);
318asmlinkage long sys_clock_nanosleep(clockid_t which_clock, int flags, 323asmlinkage long sys_clock_nanosleep(clockid_t which_clock, int flags,
@@ -605,6 +610,8 @@ asmlinkage long sys_send(int, void __user *, size_t, unsigned);
605asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, 610asmlinkage long sys_sendto(int, void __user *, size_t, unsigned,
606 struct sockaddr __user *, int); 611 struct sockaddr __user *, int);
607asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags); 612asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags);
613asmlinkage long sys_sendmmsg(int fd, struct mmsghdr __user *msg,
614 unsigned int vlen, unsigned flags);
608asmlinkage long sys_recv(int, void __user *, size_t, unsigned); 615asmlinkage long sys_recv(int, void __user *, size_t, unsigned);
609asmlinkage long sys_recvfrom(int, void __user *, size_t, unsigned, 616asmlinkage long sys_recvfrom(int, void __user *, size_t, unsigned,
610 struct sockaddr __user *, int __user *); 617 struct sockaddr __user *, int __user *);
@@ -701,7 +708,8 @@ asmlinkage long sys_nfsservctl(int cmd,
701asmlinkage long sys_syslog(int type, char __user *buf, int len); 708asmlinkage long sys_syslog(int type, char __user *buf, int len);
702asmlinkage long sys_uselib(const char __user *library); 709asmlinkage long sys_uselib(const char __user *library);
703asmlinkage long sys_ni_syscall(void); 710asmlinkage long sys_ni_syscall(void);
704asmlinkage long sys_ptrace(long request, long pid, long addr, long data); 711asmlinkage long sys_ptrace(long request, long pid, unsigned long addr,
712 unsigned long data);
705 713
706asmlinkage long sys_add_key(const char __user *_type, 714asmlinkage long sys_add_key(const char __user *_type,
707 const char __user *_description, 715 const char __user *_description,
@@ -819,6 +827,7 @@ asmlinkage long sys_fanotify_init(unsigned int flags, unsigned int event_f_flags
819asmlinkage long sys_fanotify_mark(int fanotify_fd, unsigned int flags, 827asmlinkage long sys_fanotify_mark(int fanotify_fd, unsigned int flags,
820 u64 mask, int fd, 828 u64 mask, int fd,
821 const char __user *pathname); 829 const char __user *pathname);
830asmlinkage long sys_syncfs(int fd);
822 831
823int kernel_execve(const char *filename, const char *const argv[], const char *const envp[]); 832int kernel_execve(const char *filename, const char *const argv[], const char *const envp[]);
824 833
@@ -831,5 +840,11 @@ asmlinkage long sys_mmap_pgoff(unsigned long addr, unsigned long len,
831 unsigned long prot, unsigned long flags, 840 unsigned long prot, unsigned long flags,
832 unsigned long fd, unsigned long pgoff); 841 unsigned long fd, unsigned long pgoff);
833asmlinkage long sys_old_mmap(struct mmap_arg_struct __user *arg); 842asmlinkage long sys_old_mmap(struct mmap_arg_struct __user *arg);
834 843asmlinkage long sys_name_to_handle_at(int dfd, const char __user *name,
844 struct file_handle __user *handle,
845 int __user *mnt_id, int flag);
846asmlinkage long sys_open_by_handle_at(int mountdirfd,
847 struct file_handle __user *handle,
848 int flags);
849asmlinkage long sys_setns(int fd, int nstype);
835#endif 850#endif