diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /include/linux/syscalls.h | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (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.h | 57 |
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; | |||
62 | struct getcpu_cache; | 62 | struct getcpu_cache; |
63 | struct old_linux_dirent; | 63 | struct old_linux_dirent; |
64 | struct perf_event_attr; | 64 | struct perf_event_attr; |
65 | struct 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; | |||
125 | extern struct trace_event_functions exit_syscall_print_funcs; | 126 | extern 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); |
314 | asmlinkage long sys_clock_gettime(clockid_t which_clock, | 317 | asmlinkage long sys_clock_gettime(clockid_t which_clock, |
315 | struct timespec __user *tp); | 318 | struct timespec __user *tp); |
319 | asmlinkage long sys_clock_adjtime(clockid_t which_clock, | ||
320 | struct timex __user *tx); | ||
316 | asmlinkage long sys_clock_getres(clockid_t which_clock, | 321 | asmlinkage long sys_clock_getres(clockid_t which_clock, |
317 | struct timespec __user *tp); | 322 | struct timespec __user *tp); |
318 | asmlinkage long sys_clock_nanosleep(clockid_t which_clock, int flags, | 323 | asmlinkage long sys_clock_nanosleep(clockid_t which_clock, int flags, |
@@ -605,6 +610,8 @@ asmlinkage long sys_send(int, void __user *, size_t, unsigned); | |||
605 | asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, | 610 | asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, |
606 | struct sockaddr __user *, int); | 611 | struct sockaddr __user *, int); |
607 | asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags); | 612 | asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags); |
613 | asmlinkage long sys_sendmmsg(int fd, struct mmsghdr __user *msg, | ||
614 | unsigned int vlen, unsigned flags); | ||
608 | asmlinkage long sys_recv(int, void __user *, size_t, unsigned); | 615 | asmlinkage long sys_recv(int, void __user *, size_t, unsigned); |
609 | asmlinkage long sys_recvfrom(int, void __user *, size_t, unsigned, | 616 | asmlinkage 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, | |||
701 | asmlinkage long sys_syslog(int type, char __user *buf, int len); | 708 | asmlinkage long sys_syslog(int type, char __user *buf, int len); |
702 | asmlinkage long sys_uselib(const char __user *library); | 709 | asmlinkage long sys_uselib(const char __user *library); |
703 | asmlinkage long sys_ni_syscall(void); | 710 | asmlinkage long sys_ni_syscall(void); |
704 | asmlinkage long sys_ptrace(long request, long pid, long addr, long data); | 711 | asmlinkage long sys_ptrace(long request, long pid, unsigned long addr, |
712 | unsigned long data); | ||
705 | 713 | ||
706 | asmlinkage long sys_add_key(const char __user *_type, | 714 | asmlinkage 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 | |||
819 | asmlinkage long sys_fanotify_mark(int fanotify_fd, unsigned int flags, | 827 | asmlinkage 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); |
830 | asmlinkage long sys_syncfs(int fd); | ||
822 | 831 | ||
823 | int kernel_execve(const char *filename, const char *const argv[], const char *const envp[]); | 832 | int 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); |
833 | asmlinkage long sys_old_mmap(struct mmap_arg_struct __user *arg); | 842 | asmlinkage long sys_old_mmap(struct mmap_arg_struct __user *arg); |
834 | 843 | asmlinkage 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); | ||
846 | asmlinkage long sys_open_by_handle_at(int mountdirfd, | ||
847 | struct file_handle __user *handle, | ||
848 | int flags); | ||
849 | asmlinkage long sys_setns(int fd, int nstype); | ||
835 | #endif | 850 | #endif |