diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2018-03-25 17:04:48 -0400 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2018-04-02 14:16:17 -0400 |
commit | c679a08983db7c1eb09930570b92ff7c9fd59c1c (patch) | |
tree | 0509fae68343f86403f4a15305ccaa823733899c /include/linux/compat.h | |
parent | 0621150d4a4e17ca6c104ec6e6bcfe6127b33c90 (diff) |
syscalls: sort syscall prototypes in include/linux/compat.h
Shuffle the syscall prototypes in include/linux/compat.h around so
that they are kept in the same order as in
include/uapi/asm-generic/unistd.h. The individual entries are kept
the same, and neither modified to bring them in line with kernel coding
style nor wrapped in proper ifdefs -- as an exception to this, add the
prefix "asmlinkage" where it was missing.
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'include/linux/compat.h')
-rw-r--r-- | include/linux/compat.h | 655 |
1 files changed, 378 insertions, 277 deletions
diff --git a/include/linux/compat.h b/include/linux/compat.h index f1649a5e6716..f881cce627f6 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
@@ -305,10 +305,6 @@ extern int put_compat_rusage(const struct rusage *, | |||
305 | 305 | ||
306 | struct compat_siginfo; | 306 | struct compat_siginfo; |
307 | 307 | ||
308 | extern asmlinkage long compat_sys_waitid(int, compat_pid_t, | ||
309 | struct compat_siginfo __user *, int, | ||
310 | struct compat_rusage __user *); | ||
311 | |||
312 | struct compat_dirent { | 308 | struct compat_dirent { |
313 | u32 d_ino; | 309 | u32 d_ino; |
314 | compat_off_t d_off; | 310 | compat_off_t d_off; |
@@ -422,90 +418,6 @@ struct compat_msgbuf; | |||
422 | 418 | ||
423 | extern void compat_exit_robust_list(struct task_struct *curr); | 419 | extern void compat_exit_robust_list(struct task_struct *curr); |
424 | 420 | ||
425 | asmlinkage long | ||
426 | compat_sys_set_robust_list(struct compat_robust_list_head __user *head, | ||
427 | compat_size_t len); | ||
428 | asmlinkage long | ||
429 | compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr, | ||
430 | compat_size_t __user *len_ptr); | ||
431 | |||
432 | asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32); | ||
433 | asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg); | ||
434 | asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg); | ||
435 | asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp, | ||
436 | compat_ssize_t msgsz, int msgflg); | ||
437 | asmlinkage long compat_sys_msgrcv(int msqid, compat_uptr_t msgp, | ||
438 | compat_ssize_t msgsz, compat_long_t msgtyp, int msgflg); | ||
439 | long compat_sys_msgctl(int first, int second, void __user *uptr); | ||
440 | long compat_sys_shmctl(int first, int second, void __user *uptr); | ||
441 | long compat_sys_semtimedop(int semid, struct sembuf __user *tsems, | ||
442 | unsigned nsems, const struct compat_timespec __user *timeout); | ||
443 | asmlinkage long compat_sys_keyctl(u32 option, | ||
444 | u32 arg2, u32 arg3, u32 arg4, u32 arg5); | ||
445 | asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u32); | ||
446 | |||
447 | asmlinkage ssize_t compat_sys_readv(compat_ulong_t fd, | ||
448 | const struct compat_iovec __user *vec, compat_ulong_t vlen); | ||
449 | asmlinkage ssize_t compat_sys_writev(compat_ulong_t fd, | ||
450 | const struct compat_iovec __user *vec, compat_ulong_t vlen); | ||
451 | asmlinkage ssize_t compat_sys_preadv(compat_ulong_t fd, | ||
452 | const struct compat_iovec __user *vec, | ||
453 | compat_ulong_t vlen, u32 pos_low, u32 pos_high); | ||
454 | asmlinkage ssize_t compat_sys_pwritev(compat_ulong_t fd, | ||
455 | const struct compat_iovec __user *vec, | ||
456 | compat_ulong_t vlen, u32 pos_low, u32 pos_high); | ||
457 | asmlinkage ssize_t compat_sys_preadv2(compat_ulong_t fd, | ||
458 | const struct compat_iovec __user *vec, | ||
459 | compat_ulong_t vlen, u32 pos_low, u32 pos_high, rwf_t flags); | ||
460 | asmlinkage ssize_t compat_sys_pwritev2(compat_ulong_t fd, | ||
461 | const struct compat_iovec __user *vec, | ||
462 | compat_ulong_t vlen, u32 pos_low, u32 pos_high, rwf_t flags); | ||
463 | |||
464 | asmlinkage long compat_sys_quotactl32(unsigned int cmd, | ||
465 | const char __user *special, qid_t id, void __user *addr); | ||
466 | |||
467 | #ifdef __ARCH_WANT_COMPAT_SYS_PREADV64 | ||
468 | asmlinkage long compat_sys_preadv64(unsigned long fd, | ||
469 | const struct compat_iovec __user *vec, | ||
470 | unsigned long vlen, loff_t pos); | ||
471 | #endif | ||
472 | |||
473 | #ifdef __ARCH_WANT_COMPAT_SYS_PWRITEV64 | ||
474 | asmlinkage long compat_sys_pwritev64(unsigned long fd, | ||
475 | const struct compat_iovec __user *vec, | ||
476 | unsigned long vlen, loff_t pos); | ||
477 | #endif | ||
478 | |||
479 | #ifdef __ARCH_WANT_COMPAT_SYS_PREADV64V2 | ||
480 | asmlinkage long compat_sys_readv64v2(unsigned long fd, | ||
481 | const struct compat_iovec __user *vec, | ||
482 | unsigned long vlen, loff_t pos, rwf_t flags); | ||
483 | #endif | ||
484 | |||
485 | #ifdef __ARCH_WANT_COMPAT_SYS_PWRITEV64V2 | ||
486 | asmlinkage long compat_sys_pwritev64v2(unsigned long fd, | ||
487 | const struct compat_iovec __user *vec, | ||
488 | unsigned long vlen, loff_t pos, rwf_t flags); | ||
489 | #endif | ||
490 | |||
491 | asmlinkage long compat_sys_lseek(unsigned int, compat_off_t, unsigned int); | ||
492 | |||
493 | asmlinkage long compat_sys_execve(const char __user *filename, const compat_uptr_t __user *argv, | ||
494 | const compat_uptr_t __user *envp); | ||
495 | asmlinkage long compat_sys_execveat(int dfd, const char __user *filename, | ||
496 | const compat_uptr_t __user *argv, | ||
497 | const compat_uptr_t __user *envp, int flags); | ||
498 | |||
499 | asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp, | ||
500 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, | ||
501 | struct compat_timeval __user *tvp); | ||
502 | |||
503 | asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg); | ||
504 | |||
505 | asmlinkage long compat_sys_wait4(compat_pid_t pid, | ||
506 | compat_uint_t __user *stat_addr, int options, | ||
507 | struct compat_rusage __user *ru); | ||
508 | |||
509 | #define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t)) | 421 | #define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t)) |
510 | 422 | ||
511 | #define BITS_TO_COMPAT_LONGS(bits) DIV_ROUND_UP(bits, BITS_PER_COMPAT_LONG) | 423 | #define BITS_TO_COMPAT_LONGS(bits) DIV_ROUND_UP(bits, BITS_PER_COMPAT_LONG) |
@@ -518,13 +430,6 @@ int copy_siginfo_from_user32(siginfo_t *to, const struct compat_siginfo __user * | |||
518 | int copy_siginfo_to_user32(struct compat_siginfo __user *to, const siginfo_t *from); | 430 | int copy_siginfo_to_user32(struct compat_siginfo __user *to, const siginfo_t *from); |
519 | int get_compat_sigevent(struct sigevent *event, | 431 | int get_compat_sigevent(struct sigevent *event, |
520 | const struct compat_sigevent __user *u_event); | 432 | const struct compat_sigevent __user *u_event); |
521 | long compat_sys_rt_tgsigqueueinfo(compat_pid_t tgid, compat_pid_t pid, int sig, | ||
522 | struct compat_siginfo __user *uinfo); | ||
523 | #ifdef CONFIG_COMPAT_OLD_SIGACTION | ||
524 | asmlinkage long compat_sys_sigaction(int sig, | ||
525 | const struct compat_old_sigaction __user *act, | ||
526 | struct compat_old_sigaction __user *oact); | ||
527 | #endif | ||
528 | 433 | ||
529 | static inline int compat_timeval_compare(struct compat_timeval *lhs, | 434 | static inline int compat_timeval_compare(struct compat_timeval *lhs, |
530 | struct compat_timeval *rhs) | 435 | struct compat_timeval *rhs) |
@@ -546,13 +451,6 @@ static inline int compat_timespec_compare(struct compat_timespec *lhs, | |||
546 | return lhs->tv_nsec - rhs->tv_nsec; | 451 | return lhs->tv_nsec - rhs->tv_nsec; |
547 | } | 452 | } |
548 | 453 | ||
549 | asmlinkage long compat_sys_gettimeofday(struct compat_timeval __user *tv, | ||
550 | struct timezone __user *tz); | ||
551 | asmlinkage long compat_sys_settimeofday(struct compat_timeval __user *tv, | ||
552 | struct timezone __user *tz); | ||
553 | |||
554 | asmlinkage long compat_sys_adjtimex(struct compat_timex __user *utp); | ||
555 | |||
556 | extern int get_compat_sigset(sigset_t *set, const compat_sigset_t __user *compat); | 454 | extern int get_compat_sigset(sigset_t *set, const compat_sigset_t __user *compat); |
557 | 455 | ||
558 | /* | 456 | /* |
@@ -578,110 +476,132 @@ put_compat_sigset(compat_sigset_t __user *compat, const sigset_t *set, | |||
578 | #endif | 476 | #endif |
579 | } | 477 | } |
580 | 478 | ||
581 | asmlinkage long compat_sys_migrate_pages(compat_pid_t pid, | ||
582 | compat_ulong_t maxnode, const compat_ulong_t __user *old_nodes, | ||
583 | const compat_ulong_t __user *new_nodes); | ||
584 | |||
585 | extern int compat_ptrace_request(struct task_struct *child, | 479 | extern int compat_ptrace_request(struct task_struct *child, |
586 | compat_long_t request, | 480 | compat_long_t request, |
587 | compat_ulong_t addr, compat_ulong_t data); | 481 | compat_ulong_t addr, compat_ulong_t data); |
588 | 482 | ||
589 | extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request, | 483 | extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request, |
590 | compat_ulong_t addr, compat_ulong_t data); | 484 | compat_ulong_t addr, compat_ulong_t data); |
591 | asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, | ||
592 | compat_long_t addr, compat_long_t data); | ||
593 | 485 | ||
594 | asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t); | 486 | struct epoll_event; /* fortunately, this one is fixed-layout */ |
487 | |||
488 | extern ssize_t compat_rw_copy_check_uvector(int type, | ||
489 | const struct compat_iovec __user *uvector, | ||
490 | unsigned long nr_segs, | ||
491 | unsigned long fast_segs, struct iovec *fast_pointer, | ||
492 | struct iovec **ret_pointer); | ||
493 | |||
494 | extern void __user *compat_alloc_user_space(unsigned long len); | ||
495 | |||
496 | int compat_restore_altstack(const compat_stack_t __user *uss); | ||
497 | int __compat_save_altstack(compat_stack_t __user *, unsigned long); | ||
498 | #define compat_save_altstack_ex(uss, sp) do { \ | ||
499 | compat_stack_t __user *__uss = uss; \ | ||
500 | struct task_struct *t = current; \ | ||
501 | put_user_ex(ptr_to_compat((void __user *)t->sas_ss_sp), &__uss->ss_sp); \ | ||
502 | put_user_ex(t->sas_ss_flags, &__uss->ss_flags); \ | ||
503 | put_user_ex(t->sas_ss_size, &__uss->ss_size); \ | ||
504 | if (t->sas_ss_flags & SS_AUTODISARM) \ | ||
505 | sas_ss_reset(t); \ | ||
506 | } while (0); | ||
507 | |||
595 | /* | 508 | /* |
596 | * epoll (fs/eventpoll.c) compat bits follow ... | 509 | * These syscall function prototypes are kept in the same order as |
510 | * include/uapi/asm-generic/unistd.h. Architecture specific entries go below, | ||
511 | * followed by deprecated or obsolete system calls. | ||
512 | * | ||
513 | * Please note that these prototypes here are only provided for information | ||
514 | * purposes, for static analysis, and for linking from the syscall table. | ||
515 | * These functions should not be called elsewhere from kernel code. | ||
597 | */ | 516 | */ |
598 | struct epoll_event; /* fortunately, this one is fixed-layout */ | 517 | asmlinkage long compat_sys_io_setup(unsigned nr_reqs, u32 __user *ctx32p); |
518 | asmlinkage long compat_sys_io_submit(compat_aio_context_t ctx_id, int nr, | ||
519 | u32 __user *iocb); | ||
520 | asmlinkage long compat_sys_io_getevents(compat_aio_context_t ctx_id, | ||
521 | compat_long_t min_nr, | ||
522 | compat_long_t nr, | ||
523 | struct io_event __user *events, | ||
524 | struct compat_timespec __user *timeout); | ||
525 | |||
526 | /* fs/cookies.c */ | ||
527 | asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t); | ||
528 | |||
529 | /* fs/eventpoll.c */ | ||
599 | asmlinkage long compat_sys_epoll_pwait(int epfd, | 530 | asmlinkage long compat_sys_epoll_pwait(int epfd, |
600 | struct epoll_event __user *events, | 531 | struct epoll_event __user *events, |
601 | int maxevents, int timeout, | 532 | int maxevents, int timeout, |
602 | const compat_sigset_t __user *sigmask, | 533 | const compat_sigset_t __user *sigmask, |
603 | compat_size_t sigsetsize); | 534 | compat_size_t sigsetsize); |
604 | 535 | ||
605 | asmlinkage long compat_sys_utime(const char __user *filename, | 536 | /* fs/fcntl.c */ |
606 | struct compat_utimbuf __user *t); | 537 | asmlinkage long compat_sys_fcntl(unsigned int fd, unsigned int cmd, |
607 | asmlinkage long compat_sys_utimensat(unsigned int dfd, | 538 | compat_ulong_t arg); |
608 | const char __user *filename, | 539 | asmlinkage long compat_sys_fcntl64(unsigned int fd, unsigned int cmd, |
609 | struct compat_timespec __user *t, | 540 | compat_ulong_t arg); |
610 | int flags); | ||
611 | 541 | ||
612 | asmlinkage long compat_sys_time(compat_time_t __user *tloc); | 542 | /* fs/ioctl.c */ |
613 | asmlinkage long compat_sys_stime(compat_time_t __user *tptr); | 543 | asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd, |
614 | asmlinkage long compat_sys_signalfd(int ufd, | 544 | compat_ulong_t arg); |
615 | const compat_sigset_t __user *sigmask, | ||
616 | compat_size_t sigsetsize); | ||
617 | asmlinkage long compat_sys_timerfd_settime(int ufd, int flags, | ||
618 | const struct compat_itimerspec __user *utmr, | ||
619 | struct compat_itimerspec __user *otmr); | ||
620 | asmlinkage long compat_sys_timerfd_gettime(int ufd, | ||
621 | struct compat_itimerspec __user *otmr); | ||
622 | 545 | ||
623 | asmlinkage long compat_sys_move_pages(pid_t pid, compat_ulong_t nr_pages, | 546 | /* fs/namespace.c */ |
624 | __u32 __user *pages, | 547 | asmlinkage long compat_sys_mount(const char __user *dev_name, |
625 | const int __user *nodes, | 548 | const char __user *dir_name, |
626 | int __user *status, | 549 | const char __user *type, compat_ulong_t flags, |
627 | int flags); | 550 | const void __user *data); |
628 | asmlinkage long compat_sys_futimesat(unsigned int dfd, | 551 | |
629 | const char __user *filename, | 552 | /* fs/open.c */ |
630 | struct compat_timeval __user *t); | ||
631 | asmlinkage long compat_sys_utimes(const char __user *filename, | ||
632 | struct compat_timeval __user *t); | ||
633 | asmlinkage long compat_sys_newstat(const char __user *filename, | ||
634 | struct compat_stat __user *statbuf); | ||
635 | asmlinkage long compat_sys_newlstat(const char __user *filename, | ||
636 | struct compat_stat __user *statbuf); | ||
637 | asmlinkage long compat_sys_newfstatat(unsigned int dfd, | ||
638 | const char __user *filename, | ||
639 | struct compat_stat __user *statbuf, | ||
640 | int flag); | ||
641 | asmlinkage long compat_sys_newfstat(unsigned int fd, | ||
642 | struct compat_stat __user *statbuf); | ||
643 | asmlinkage long compat_sys_statfs(const char __user *pathname, | 553 | asmlinkage long compat_sys_statfs(const char __user *pathname, |
644 | struct compat_statfs __user *buf); | 554 | struct compat_statfs __user *buf); |
645 | asmlinkage long compat_sys_fstatfs(unsigned int fd, | ||
646 | struct compat_statfs __user *buf); | ||
647 | asmlinkage long compat_sys_statfs64(const char __user *pathname, | 555 | asmlinkage long compat_sys_statfs64(const char __user *pathname, |
648 | compat_size_t sz, | 556 | compat_size_t sz, |
649 | struct compat_statfs64 __user *buf); | 557 | struct compat_statfs64 __user *buf); |
558 | asmlinkage long compat_sys_fstatfs(unsigned int fd, | ||
559 | struct compat_statfs __user *buf); | ||
650 | asmlinkage long compat_sys_fstatfs64(unsigned int fd, compat_size_t sz, | 560 | asmlinkage long compat_sys_fstatfs64(unsigned int fd, compat_size_t sz, |
651 | struct compat_statfs64 __user *buf); | 561 | struct compat_statfs64 __user *buf); |
652 | asmlinkage long compat_sys_fcntl64(unsigned int fd, unsigned int cmd, | 562 | asmlinkage long compat_sys_truncate(const char __user *, compat_off_t); |
653 | compat_ulong_t arg); | 563 | asmlinkage long compat_sys_ftruncate(unsigned int, compat_ulong_t); |
654 | asmlinkage long compat_sys_fcntl(unsigned int fd, unsigned int cmd, | 564 | /* No generic prototype for truncate64, ftruncate64, fallocate */ |
655 | compat_ulong_t arg); | 565 | asmlinkage long compat_sys_openat(int dfd, const char __user *filename, |
656 | asmlinkage long compat_sys_io_setup(unsigned nr_reqs, u32 __user *ctx32p); | 566 | int flags, umode_t mode); |
657 | asmlinkage long compat_sys_io_getevents(compat_aio_context_t ctx_id, | 567 | |
658 | compat_long_t min_nr, | 568 | /* fs/readdir.c */ |
659 | compat_long_t nr, | ||
660 | struct io_event __user *events, | ||
661 | struct compat_timespec __user *timeout); | ||
662 | asmlinkage long compat_sys_io_submit(compat_aio_context_t ctx_id, int nr, | ||
663 | u32 __user *iocb); | ||
664 | asmlinkage long compat_sys_mount(const char __user *dev_name, | ||
665 | const char __user *dir_name, | ||
666 | const char __user *type, compat_ulong_t flags, | ||
667 | const void __user *data); | ||
668 | asmlinkage long compat_sys_old_readdir(unsigned int fd, | ||
669 | struct compat_old_linux_dirent __user *, | ||
670 | unsigned int count); | ||
671 | asmlinkage long compat_sys_getdents(unsigned int fd, | 569 | asmlinkage long compat_sys_getdents(unsigned int fd, |
672 | struct compat_linux_dirent __user *dirent, | 570 | struct compat_linux_dirent __user *dirent, |
673 | unsigned int count); | 571 | unsigned int count); |
674 | asmlinkage long compat_sys_vmsplice(int fd, const struct compat_iovec __user *, | 572 | |
675 | unsigned int nr_segs, unsigned int flags); | 573 | /* fs/read_write.c */ |
676 | asmlinkage long compat_sys_open(const char __user *filename, int flags, | 574 | asmlinkage long compat_sys_lseek(unsigned int, compat_off_t, unsigned int); |
677 | umode_t mode); | 575 | asmlinkage ssize_t compat_sys_readv(compat_ulong_t fd, |
678 | asmlinkage long compat_sys_openat(int dfd, const char __user *filename, | 576 | const struct compat_iovec __user *vec, compat_ulong_t vlen); |
679 | int flags, umode_t mode); | 577 | asmlinkage ssize_t compat_sys_writev(compat_ulong_t fd, |
680 | asmlinkage long compat_sys_open_by_handle_at(int mountdirfd, | 578 | const struct compat_iovec __user *vec, compat_ulong_t vlen); |
681 | struct file_handle __user *handle, | 579 | /* No generic prototype for pread64 and pwrite64 */ |
682 | int flags); | 580 | asmlinkage ssize_t compat_sys_preadv(compat_ulong_t fd, |
683 | asmlinkage long compat_sys_truncate(const char __user *, compat_off_t); | 581 | const struct compat_iovec __user *vec, |
684 | asmlinkage long compat_sys_ftruncate(unsigned int, compat_ulong_t); | 582 | compat_ulong_t vlen, u32 pos_low, u32 pos_high); |
583 | asmlinkage ssize_t compat_sys_pwritev(compat_ulong_t fd, | ||
584 | const struct compat_iovec __user *vec, | ||
585 | compat_ulong_t vlen, u32 pos_low, u32 pos_high); | ||
586 | #ifdef __ARCH_WANT_COMPAT_SYS_PREADV64 | ||
587 | asmlinkage long compat_sys_preadv64(unsigned long fd, | ||
588 | const struct compat_iovec __user *vec, | ||
589 | unsigned long vlen, loff_t pos); | ||
590 | #endif | ||
591 | |||
592 | #ifdef __ARCH_WANT_COMPAT_SYS_PWRITEV64 | ||
593 | asmlinkage long compat_sys_pwritev64(unsigned long fd, | ||
594 | const struct compat_iovec __user *vec, | ||
595 | unsigned long vlen, loff_t pos); | ||
596 | #endif | ||
597 | |||
598 | /* fs/sendfile.c */ | ||
599 | asmlinkage long compat_sys_sendfile(int out_fd, int in_fd, | ||
600 | compat_off_t __user *offset, compat_size_t count); | ||
601 | asmlinkage long compat_sys_sendfile64(int out_fd, int in_fd, | ||
602 | compat_loff_t __user *offset, compat_size_t count); | ||
603 | |||
604 | /* fs/select.c */ | ||
685 | asmlinkage long compat_sys_pselect6(int n, compat_ulong_t __user *inp, | 605 | asmlinkage long compat_sys_pselect6(int n, compat_ulong_t __user *inp, |
686 | compat_ulong_t __user *outp, | 606 | compat_ulong_t __user *outp, |
687 | compat_ulong_t __user *exp, | 607 | compat_ulong_t __user *exp, |
@@ -692,110 +612,149 @@ asmlinkage long compat_sys_ppoll(struct pollfd __user *ufds, | |||
692 | struct compat_timespec __user *tsp, | 612 | struct compat_timespec __user *tsp, |
693 | const compat_sigset_t __user *sigmask, | 613 | const compat_sigset_t __user *sigmask, |
694 | compat_size_t sigsetsize); | 614 | compat_size_t sigsetsize); |
615 | |||
616 | /* fs/signalfd.c */ | ||
695 | asmlinkage long compat_sys_signalfd4(int ufd, | 617 | asmlinkage long compat_sys_signalfd4(int ufd, |
696 | const compat_sigset_t __user *sigmask, | 618 | const compat_sigset_t __user *sigmask, |
697 | compat_size_t sigsetsize, int flags); | 619 | compat_size_t sigsetsize, int flags); |
698 | asmlinkage long compat_sys_get_mempolicy(int __user *policy, | ||
699 | compat_ulong_t __user *nmask, | ||
700 | compat_ulong_t maxnode, | ||
701 | compat_ulong_t addr, | ||
702 | compat_ulong_t flags); | ||
703 | asmlinkage long compat_sys_set_mempolicy(int mode, compat_ulong_t __user *nmask, | ||
704 | compat_ulong_t maxnode); | ||
705 | asmlinkage long compat_sys_mbind(compat_ulong_t start, compat_ulong_t len, | ||
706 | compat_ulong_t mode, | ||
707 | compat_ulong_t __user *nmask, | ||
708 | compat_ulong_t maxnode, compat_ulong_t flags); | ||
709 | 620 | ||
710 | asmlinkage long compat_sys_setsockopt(int fd, int level, int optname, | 621 | /* fs/splice.c */ |
711 | char __user *optval, unsigned int optlen); | 622 | asmlinkage long compat_sys_vmsplice(int fd, const struct compat_iovec __user *, |
712 | asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg, | 623 | unsigned int nr_segs, unsigned int flags); |
713 | unsigned flags); | 624 | |
714 | asmlinkage long compat_sys_sendmmsg(int fd, struct compat_mmsghdr __user *mmsg, | 625 | /* fs/stat.c */ |
715 | unsigned vlen, unsigned int flags); | 626 | asmlinkage long compat_sys_newfstatat(unsigned int dfd, |
716 | asmlinkage long compat_sys_recvmsg(int fd, struct compat_msghdr __user *msg, | 627 | const char __user *filename, |
717 | unsigned int flags); | 628 | struct compat_stat __user *statbuf, |
718 | asmlinkage long compat_sys_recv(int fd, void __user *buf, compat_size_t len, | 629 | int flag); |
719 | unsigned flags); | 630 | asmlinkage long compat_sys_newfstat(unsigned int fd, |
720 | asmlinkage long compat_sys_recvfrom(int fd, void __user *buf, compat_size_t len, | 631 | struct compat_stat __user *statbuf); |
721 | unsigned flags, struct sockaddr __user *addr, | 632 | |
722 | int __user *addrlen); | 633 | /* fs/sync.c: No generic prototype for sync_file_range and sync_file_range2 */ |
723 | asmlinkage long compat_sys_recvmmsg(int fd, struct compat_mmsghdr __user *mmsg, | 634 | |
724 | unsigned vlen, unsigned int flags, | 635 | /* fs/timerfd.c */ |
725 | struct compat_timespec __user *timeout); | 636 | asmlinkage long compat_sys_timerfd_gettime(int ufd, |
637 | struct compat_itimerspec __user *otmr); | ||
638 | asmlinkage long compat_sys_timerfd_settime(int ufd, int flags, | ||
639 | const struct compat_itimerspec __user *utmr, | ||
640 | struct compat_itimerspec __user *otmr); | ||
641 | |||
642 | /* fs/utimes.c */ | ||
643 | asmlinkage long compat_sys_utimensat(unsigned int dfd, | ||
644 | const char __user *filename, | ||
645 | struct compat_timespec __user *t, | ||
646 | int flags); | ||
647 | |||
648 | /* kernel/exit.c */ | ||
649 | asmlinkage long compat_sys_waitid(int, compat_pid_t, | ||
650 | struct compat_siginfo __user *, int, | ||
651 | struct compat_rusage __user *); | ||
652 | |||
653 | |||
654 | |||
655 | /* kernel/futex.c */ | ||
656 | asmlinkage long compat_sys_futex(u32 __user *uaddr, int op, u32 val, | ||
657 | struct compat_timespec __user *utime, u32 __user *uaddr2, | ||
658 | u32 val3); | ||
659 | asmlinkage long | ||
660 | compat_sys_set_robust_list(struct compat_robust_list_head __user *head, | ||
661 | compat_size_t len); | ||
662 | asmlinkage long | ||
663 | compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr, | ||
664 | compat_size_t __user *len_ptr); | ||
665 | |||
666 | /* kernel/hrtimer.c */ | ||
726 | asmlinkage long compat_sys_nanosleep(struct compat_timespec __user *rqtp, | 667 | asmlinkage long compat_sys_nanosleep(struct compat_timespec __user *rqtp, |
727 | struct compat_timespec __user *rmtp); | 668 | struct compat_timespec __user *rmtp); |
669 | |||
670 | /* kernel/itimer.c */ | ||
728 | asmlinkage long compat_sys_getitimer(int which, | 671 | asmlinkage long compat_sys_getitimer(int which, |
729 | struct compat_itimerval __user *it); | 672 | struct compat_itimerval __user *it); |
730 | asmlinkage long compat_sys_setitimer(int which, | 673 | asmlinkage long compat_sys_setitimer(int which, |
731 | struct compat_itimerval __user *in, | 674 | struct compat_itimerval __user *in, |
732 | struct compat_itimerval __user *out); | 675 | struct compat_itimerval __user *out); |
733 | asmlinkage long compat_sys_times(struct compat_tms __user *tbuf); | 676 | |
734 | asmlinkage long compat_sys_setrlimit(unsigned int resource, | 677 | /* kernel/kexec.c */ |
735 | struct compat_rlimit __user *rlim); | 678 | asmlinkage long compat_sys_kexec_load(compat_ulong_t entry, |
736 | asmlinkage long compat_sys_getrlimit(unsigned int resource, | 679 | compat_ulong_t nr_segments, |
737 | struct compat_rlimit __user *rlim); | 680 | struct compat_kexec_segment __user *, |
738 | asmlinkage long compat_sys_getrusage(int who, struct compat_rusage __user *ru); | 681 | compat_ulong_t flags); |
739 | asmlinkage long compat_sys_sched_setaffinity(compat_pid_t pid, | 682 | |
740 | unsigned int len, | 683 | /* kernel/posix-timers.c */ |
741 | compat_ulong_t __user *user_mask_ptr); | ||
742 | asmlinkage long compat_sys_sched_getaffinity(compat_pid_t pid, | ||
743 | unsigned int len, | ||
744 | compat_ulong_t __user *user_mask_ptr); | ||
745 | asmlinkage long compat_sys_timer_create(clockid_t which_clock, | 684 | asmlinkage long compat_sys_timer_create(clockid_t which_clock, |
746 | struct compat_sigevent __user *timer_event_spec, | 685 | struct compat_sigevent __user *timer_event_spec, |
747 | timer_t __user *created_timer_id); | 686 | timer_t __user *created_timer_id); |
687 | asmlinkage long compat_sys_timer_gettime(timer_t timer_id, | ||
688 | struct compat_itimerspec __user *setting); | ||
748 | asmlinkage long compat_sys_timer_settime(timer_t timer_id, int flags, | 689 | asmlinkage long compat_sys_timer_settime(timer_t timer_id, int flags, |
749 | struct compat_itimerspec __user *new, | 690 | struct compat_itimerspec __user *new, |
750 | struct compat_itimerspec __user *old); | 691 | struct compat_itimerspec __user *old); |
751 | asmlinkage long compat_sys_timer_gettime(timer_t timer_id, | ||
752 | struct compat_itimerspec __user *setting); | ||
753 | asmlinkage long compat_sys_clock_settime(clockid_t which_clock, | 692 | asmlinkage long compat_sys_clock_settime(clockid_t which_clock, |
754 | struct compat_timespec __user *tp); | 693 | struct compat_timespec __user *tp); |
755 | asmlinkage long compat_sys_clock_gettime(clockid_t which_clock, | 694 | asmlinkage long compat_sys_clock_gettime(clockid_t which_clock, |
756 | struct compat_timespec __user *tp); | 695 | struct compat_timespec __user *tp); |
757 | asmlinkage long compat_sys_clock_adjtime(clockid_t which_clock, | ||
758 | struct compat_timex __user *tp); | ||
759 | asmlinkage long compat_sys_clock_getres(clockid_t which_clock, | 696 | asmlinkage long compat_sys_clock_getres(clockid_t which_clock, |
760 | struct compat_timespec __user *tp); | 697 | struct compat_timespec __user *tp); |
761 | asmlinkage long compat_sys_clock_nanosleep(clockid_t which_clock, int flags, | 698 | asmlinkage long compat_sys_clock_nanosleep(clockid_t which_clock, int flags, |
762 | struct compat_timespec __user *rqtp, | 699 | struct compat_timespec __user *rqtp, |
763 | struct compat_timespec __user *rmtp); | 700 | struct compat_timespec __user *rmtp); |
764 | asmlinkage long compat_sys_rt_sigtimedwait(compat_sigset_t __user *uthese, | 701 | |
765 | struct compat_siginfo __user *uinfo, | 702 | /* kernel/ptrace.c */ |
766 | struct compat_timespec __user *uts, compat_size_t sigsetsize); | 703 | asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, |
704 | compat_long_t addr, compat_long_t data); | ||
705 | |||
706 | /* kernel/sched/core.c */ | ||
707 | asmlinkage long compat_sys_sched_setaffinity(compat_pid_t pid, | ||
708 | unsigned int len, | ||
709 | compat_ulong_t __user *user_mask_ptr); | ||
710 | asmlinkage long compat_sys_sched_getaffinity(compat_pid_t pid, | ||
711 | unsigned int len, | ||
712 | compat_ulong_t __user *user_mask_ptr); | ||
713 | asmlinkage long compat_sys_sched_rr_get_interval(compat_pid_t pid, | ||
714 | struct compat_timespec __user *interval); | ||
715 | |||
716 | /* kernel/signal.c */ | ||
717 | asmlinkage long compat_sys_sigaltstack(const compat_stack_t __user *uss_ptr, | ||
718 | compat_stack_t __user *uoss_ptr); | ||
767 | asmlinkage long compat_sys_rt_sigsuspend(compat_sigset_t __user *unewset, | 719 | asmlinkage long compat_sys_rt_sigsuspend(compat_sigset_t __user *unewset, |
768 | compat_size_t sigsetsize); | 720 | compat_size_t sigsetsize); |
769 | asmlinkage long compat_sys_rt_sigprocmask(int how, compat_sigset_t __user *set, | ||
770 | compat_sigset_t __user *oset, | ||
771 | compat_size_t sigsetsize); | ||
772 | asmlinkage long compat_sys_rt_sigpending(compat_sigset_t __user *uset, | ||
773 | compat_size_t sigsetsize); | ||
774 | #ifndef CONFIG_ODD_RT_SIGACTION | 721 | #ifndef CONFIG_ODD_RT_SIGACTION |
775 | asmlinkage long compat_sys_rt_sigaction(int, | 722 | asmlinkage long compat_sys_rt_sigaction(int, |
776 | const struct compat_sigaction __user *, | 723 | const struct compat_sigaction __user *, |
777 | struct compat_sigaction __user *, | 724 | struct compat_sigaction __user *, |
778 | compat_size_t); | 725 | compat_size_t); |
779 | #endif | 726 | #endif |
727 | asmlinkage long compat_sys_rt_sigprocmask(int how, compat_sigset_t __user *set, | ||
728 | compat_sigset_t __user *oset, | ||
729 | compat_size_t sigsetsize); | ||
730 | asmlinkage long compat_sys_rt_sigpending(compat_sigset_t __user *uset, | ||
731 | compat_size_t sigsetsize); | ||
732 | asmlinkage long compat_sys_rt_sigtimedwait(compat_sigset_t __user *uthese, | ||
733 | struct compat_siginfo __user *uinfo, | ||
734 | struct compat_timespec __user *uts, compat_size_t sigsetsize); | ||
780 | asmlinkage long compat_sys_rt_sigqueueinfo(compat_pid_t pid, int sig, | 735 | asmlinkage long compat_sys_rt_sigqueueinfo(compat_pid_t pid, int sig, |
781 | struct compat_siginfo __user *uinfo); | 736 | struct compat_siginfo __user *uinfo); |
737 | /* No generic prototype for rt_sigreturn */ | ||
738 | |||
739 | /* kernel/sys.c */ | ||
740 | asmlinkage long compat_sys_times(struct compat_tms __user *tbuf); | ||
741 | asmlinkage long compat_sys_getrlimit(unsigned int resource, | ||
742 | struct compat_rlimit __user *rlim); | ||
743 | asmlinkage long compat_sys_setrlimit(unsigned int resource, | ||
744 | struct compat_rlimit __user *rlim); | ||
745 | asmlinkage long compat_sys_getrusage(int who, struct compat_rusage __user *ru); | ||
746 | |||
747 | /* kernel/time.c */ | ||
748 | asmlinkage long compat_sys_gettimeofday(struct compat_timeval __user *tv, | ||
749 | struct timezone __user *tz); | ||
750 | asmlinkage long compat_sys_settimeofday(struct compat_timeval __user *tv, | ||
751 | struct timezone __user *tz); | ||
752 | asmlinkage long compat_sys_adjtimex(struct compat_timex __user *utp); | ||
753 | |||
754 | /* kernel/timer.c */ | ||
782 | asmlinkage long compat_sys_sysinfo(struct compat_sysinfo __user *info); | 755 | asmlinkage long compat_sys_sysinfo(struct compat_sysinfo __user *info); |
783 | asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd, | 756 | |
784 | compat_ulong_t arg); | 757 | /* ipc/mqueue.c */ |
785 | asmlinkage long compat_sys_futex(u32 __user *uaddr, int op, u32 val, | ||
786 | struct compat_timespec __user *utime, u32 __user *uaddr2, | ||
787 | u32 val3); | ||
788 | asmlinkage long compat_sys_getsockopt(int fd, int level, int optname, | ||
789 | char __user *optval, int __user *optlen); | ||
790 | asmlinkage long compat_sys_kexec_load(compat_ulong_t entry, | ||
791 | compat_ulong_t nr_segments, | ||
792 | struct compat_kexec_segment __user *, | ||
793 | compat_ulong_t flags); | ||
794 | asmlinkage long compat_sys_mq_getsetattr(mqd_t mqdes, | ||
795 | const struct compat_mq_attr __user *u_mqstat, | ||
796 | struct compat_mq_attr __user *u_omqstat); | ||
797 | asmlinkage long compat_sys_mq_notify(mqd_t mqdes, | ||
798 | const struct compat_sigevent __user *u_notification); | ||
799 | asmlinkage long compat_sys_mq_open(const char __user *u_name, | 758 | asmlinkage long compat_sys_mq_open(const char __user *u_name, |
800 | int oflag, compat_mode_t mode, | 759 | int oflag, compat_mode_t mode, |
801 | struct compat_mq_attr __user *u_attr); | 760 | struct compat_mq_attr __user *u_attr); |
@@ -807,17 +766,92 @@ asmlinkage ssize_t compat_sys_mq_timedreceive(mqd_t mqdes, | |||
807 | char __user *u_msg_ptr, | 766 | char __user *u_msg_ptr, |
808 | compat_size_t msg_len, unsigned int __user *u_msg_prio, | 767 | compat_size_t msg_len, unsigned int __user *u_msg_prio, |
809 | const struct compat_timespec __user *u_abs_timeout); | 768 | const struct compat_timespec __user *u_abs_timeout); |
810 | asmlinkage long compat_sys_socketcall(int call, u32 __user *args); | 769 | asmlinkage long compat_sys_mq_notify(mqd_t mqdes, |
811 | asmlinkage long compat_sys_sysctl(struct compat_sysctl_args __user *args); | 770 | const struct compat_sigevent __user *u_notification); |
771 | asmlinkage long compat_sys_mq_getsetattr(mqd_t mqdes, | ||
772 | const struct compat_mq_attr __user *u_mqstat, | ||
773 | struct compat_mq_attr __user *u_omqstat); | ||
812 | 774 | ||
813 | extern ssize_t compat_rw_copy_check_uvector(int type, | 775 | /* ipc/msg.c */ |
814 | const struct compat_iovec __user *uvector, | 776 | asmlinkage long compat_sys_msgctl(int first, int second, void __user *uptr); |
815 | unsigned long nr_segs, | 777 | asmlinkage long compat_sys_msgrcv(int msqid, compat_uptr_t msgp, |
816 | unsigned long fast_segs, struct iovec *fast_pointer, | 778 | compat_ssize_t msgsz, compat_long_t msgtyp, int msgflg); |
817 | struct iovec **ret_pointer); | 779 | asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp, |
780 | compat_ssize_t msgsz, int msgflg); | ||
818 | 781 | ||
819 | extern void __user *compat_alloc_user_space(unsigned long len); | 782 | /* ipc/sem.c */ |
783 | asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg); | ||
784 | asmlinkage long compat_sys_semtimedop(int semid, struct sembuf __user *tsems, | ||
785 | unsigned nsems, const struct compat_timespec __user *timeout); | ||
786 | |||
787 | /* ipc/shm.c */ | ||
788 | asmlinkage long compat_sys_shmctl(int first, int second, void __user *uptr); | ||
789 | asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg); | ||
820 | 790 | ||
791 | /* net/socket.c */ | ||
792 | asmlinkage long compat_sys_recvfrom(int fd, void __user *buf, compat_size_t len, | ||
793 | unsigned flags, struct sockaddr __user *addr, | ||
794 | int __user *addrlen); | ||
795 | asmlinkage long compat_sys_setsockopt(int fd, int level, int optname, | ||
796 | char __user *optval, unsigned int optlen); | ||
797 | asmlinkage long compat_sys_getsockopt(int fd, int level, int optname, | ||
798 | char __user *optval, int __user *optlen); | ||
799 | asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg, | ||
800 | unsigned flags); | ||
801 | asmlinkage long compat_sys_recvmsg(int fd, struct compat_msghdr __user *msg, | ||
802 | unsigned int flags); | ||
803 | |||
804 | /* mm/filemap.c: No generic prototype for readahead */ | ||
805 | |||
806 | /* security/keys/keyctl.c */ | ||
807 | asmlinkage long compat_sys_keyctl(u32 option, | ||
808 | u32 arg2, u32 arg3, u32 arg4, u32 arg5); | ||
809 | |||
810 | /* arch/example/kernel/sys_example.c */ | ||
811 | asmlinkage long compat_sys_execve(const char __user *filename, const compat_uptr_t __user *argv, | ||
812 | const compat_uptr_t __user *envp); | ||
813 | |||
814 | /* mm/fadvise.c: No generic prototype for fadvise64_64 */ | ||
815 | |||
816 | /* mm/, CONFIG_MMU only */ | ||
817 | asmlinkage long compat_sys_mbind(compat_ulong_t start, compat_ulong_t len, | ||
818 | compat_ulong_t mode, | ||
819 | compat_ulong_t __user *nmask, | ||
820 | compat_ulong_t maxnode, compat_ulong_t flags); | ||
821 | asmlinkage long compat_sys_get_mempolicy(int __user *policy, | ||
822 | compat_ulong_t __user *nmask, | ||
823 | compat_ulong_t maxnode, | ||
824 | compat_ulong_t addr, | ||
825 | compat_ulong_t flags); | ||
826 | asmlinkage long compat_sys_set_mempolicy(int mode, compat_ulong_t __user *nmask, | ||
827 | compat_ulong_t maxnode); | ||
828 | asmlinkage long compat_sys_migrate_pages(compat_pid_t pid, | ||
829 | compat_ulong_t maxnode, const compat_ulong_t __user *old_nodes, | ||
830 | const compat_ulong_t __user *new_nodes); | ||
831 | asmlinkage long compat_sys_move_pages(pid_t pid, compat_ulong_t nr_pages, | ||
832 | __u32 __user *pages, | ||
833 | const int __user *nodes, | ||
834 | int __user *status, | ||
835 | int flags); | ||
836 | |||
837 | asmlinkage long compat_sys_rt_tgsigqueueinfo(compat_pid_t tgid, | ||
838 | compat_pid_t pid, int sig, | ||
839 | struct compat_siginfo __user *uinfo); | ||
840 | asmlinkage long compat_sys_recvmmsg(int fd, struct compat_mmsghdr __user *mmsg, | ||
841 | unsigned vlen, unsigned int flags, | ||
842 | struct compat_timespec __user *timeout); | ||
843 | asmlinkage long compat_sys_wait4(compat_pid_t pid, | ||
844 | compat_uint_t __user *stat_addr, int options, | ||
845 | struct compat_rusage __user *ru); | ||
846 | asmlinkage long compat_sys_fanotify_mark(int, unsigned int, __u32, __u32, | ||
847 | int, const char __user *); | ||
848 | asmlinkage long compat_sys_open_by_handle_at(int mountdirfd, | ||
849 | struct file_handle __user *handle, | ||
850 | int flags); | ||
851 | asmlinkage long compat_sys_clock_adjtime(clockid_t which_clock, | ||
852 | struct compat_timex __user *tp); | ||
853 | asmlinkage long compat_sys_sendmmsg(int fd, struct compat_mmsghdr __user *mmsg, | ||
854 | unsigned vlen, unsigned int flags); | ||
821 | asmlinkage ssize_t compat_sys_process_vm_readv(compat_pid_t pid, | 855 | asmlinkage ssize_t compat_sys_process_vm_readv(compat_pid_t pid, |
822 | const struct compat_iovec __user *lvec, | 856 | const struct compat_iovec __user *lvec, |
823 | compat_ulong_t liovcnt, const struct compat_iovec __user *rvec, | 857 | compat_ulong_t liovcnt, const struct compat_iovec __user *rvec, |
@@ -826,14 +860,89 @@ asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid, | |||
826 | const struct compat_iovec __user *lvec, | 860 | const struct compat_iovec __user *lvec, |
827 | compat_ulong_t liovcnt, const struct compat_iovec __user *rvec, | 861 | compat_ulong_t liovcnt, const struct compat_iovec __user *rvec, |
828 | compat_ulong_t riovcnt, compat_ulong_t flags); | 862 | compat_ulong_t riovcnt, compat_ulong_t flags); |
863 | asmlinkage long compat_sys_execveat(int dfd, const char __user *filename, | ||
864 | const compat_uptr_t __user *argv, | ||
865 | const compat_uptr_t __user *envp, int flags); | ||
866 | asmlinkage ssize_t compat_sys_preadv2(compat_ulong_t fd, | ||
867 | const struct compat_iovec __user *vec, | ||
868 | compat_ulong_t vlen, u32 pos_low, u32 pos_high, rwf_t flags); | ||
869 | asmlinkage ssize_t compat_sys_pwritev2(compat_ulong_t fd, | ||
870 | const struct compat_iovec __user *vec, | ||
871 | compat_ulong_t vlen, u32 pos_low, u32 pos_high, rwf_t flags); | ||
872 | #ifdef __ARCH_WANT_COMPAT_SYS_PREADV64V2 | ||
873 | asmlinkage long compat_sys_readv64v2(unsigned long fd, | ||
874 | const struct compat_iovec __user *vec, | ||
875 | unsigned long vlen, loff_t pos, rwf_t flags); | ||
876 | #endif | ||
877 | |||
878 | #ifdef __ARCH_WANT_COMPAT_SYS_PWRITEV64V2 | ||
879 | asmlinkage long compat_sys_pwritev64v2(unsigned long fd, | ||
880 | const struct compat_iovec __user *vec, | ||
881 | unsigned long vlen, loff_t pos, rwf_t flags); | ||
882 | #endif | ||
829 | 883 | ||
830 | asmlinkage long compat_sys_sendfile(int out_fd, int in_fd, | ||
831 | compat_off_t __user *offset, compat_size_t count); | ||
832 | asmlinkage long compat_sys_sendfile64(int out_fd, int in_fd, | ||
833 | compat_loff_t __user *offset, compat_size_t count); | ||
834 | asmlinkage long compat_sys_sigaltstack(const compat_stack_t __user *uss_ptr, | ||
835 | compat_stack_t __user *uoss_ptr); | ||
836 | 884 | ||
885 | /* | ||
886 | * Architecture-specific system calls | ||
887 | */ | ||
888 | |||
889 | /* fs/quota/compat.c -- x86 only */ | ||
890 | asmlinkage long compat_sys_quotactl32(unsigned int cmd, | ||
891 | const char __user *special, qid_t id, void __user *addr); | ||
892 | |||
893 | /* arch_prctl -- x86 */ | ||
894 | asmlinkage long compat_sys_arch_prctl(int option, unsigned long arg2); | ||
895 | |||
896 | |||
897 | /* | ||
898 | * Deprecated system calls which are still defined in | ||
899 | * include/uapi/asm-generic/unistd.h and wanted by >= 1 arch | ||
900 | */ | ||
901 | |||
902 | /* __ARCH_WANT_SYSCALL_NO_AT */ | ||
903 | asmlinkage long compat_sys_open(const char __user *filename, int flags, | ||
904 | umode_t mode); | ||
905 | asmlinkage long compat_sys_utimes(const char __user *filename, | ||
906 | struct compat_timeval __user *t); | ||
907 | |||
908 | /* __ARCH_WANT_SYSCALL_NO_FLAGS */ | ||
909 | asmlinkage long compat_sys_signalfd(int ufd, | ||
910 | const compat_sigset_t __user *sigmask, | ||
911 | compat_size_t sigsetsize); | ||
912 | |||
913 | /* __ARCH_WANT_SYSCALL_OFF_T */ | ||
914 | asmlinkage long compat_sys_newstat(const char __user *filename, | ||
915 | struct compat_stat __user *statbuf); | ||
916 | asmlinkage long compat_sys_newlstat(const char __user *filename, | ||
917 | struct compat_stat __user *statbuf); | ||
918 | |||
919 | /* __ARCH_WANT_SYSCALL_DEPRECATED */ | ||
920 | asmlinkage long compat_sys_time(compat_time_t __user *tloc); | ||
921 | asmlinkage long compat_sys_utime(const char __user *filename, | ||
922 | struct compat_utimbuf __user *t); | ||
923 | asmlinkage long compat_sys_futimesat(unsigned int dfd, | ||
924 | const char __user *filename, | ||
925 | struct compat_timeval __user *t); | ||
926 | asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp, | ||
927 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, | ||
928 | struct compat_timeval __user *tvp); | ||
929 | asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u32); | ||
930 | asmlinkage long compat_sys_recv(int fd, void __user *buf, compat_size_t len, | ||
931 | unsigned flags); | ||
932 | asmlinkage long compat_sys_sysctl(struct compat_sysctl_args __user *args); | ||
933 | |||
934 | /* obsolete: fs/readdir.c */ | ||
935 | asmlinkage long compat_sys_old_readdir(unsigned int fd, | ||
936 | struct compat_old_linux_dirent __user *, | ||
937 | unsigned int count); | ||
938 | |||
939 | /* obsolete: fs/select.c */ | ||
940 | asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg); | ||
941 | |||
942 | /* obsolete: ipc */ | ||
943 | asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32); | ||
944 | |||
945 | /* obsolete: kernel/signal.c */ | ||
837 | #ifdef __ARCH_WANT_SYS_SIGPENDING | 946 | #ifdef __ARCH_WANT_SYS_SIGPENDING |
838 | asmlinkage long compat_sys_sigpending(compat_old_sigset_t __user *set); | 947 | asmlinkage long compat_sys_sigpending(compat_old_sigset_t __user *set); |
839 | #endif | 948 | #endif |
@@ -842,26 +951,18 @@ asmlinkage long compat_sys_sigpending(compat_old_sigset_t __user *set); | |||
842 | asmlinkage long compat_sys_sigprocmask(int how, compat_old_sigset_t __user *nset, | 951 | asmlinkage long compat_sys_sigprocmask(int how, compat_old_sigset_t __user *nset, |
843 | compat_old_sigset_t __user *oset); | 952 | compat_old_sigset_t __user *oset); |
844 | #endif | 953 | #endif |
954 | #ifdef CONFIG_COMPAT_OLD_SIGACTION | ||
955 | asmlinkage long compat_sys_sigaction(int sig, | ||
956 | const struct compat_old_sigaction __user *act, | ||
957 | struct compat_old_sigaction __user *oact); | ||
958 | #endif | ||
845 | 959 | ||
846 | int compat_restore_altstack(const compat_stack_t __user *uss); | 960 | /* obsolete: kernel/time/time.c */ |
847 | int __compat_save_altstack(compat_stack_t __user *, unsigned long); | 961 | asmlinkage long compat_sys_stime(compat_time_t __user *tptr); |
848 | #define compat_save_altstack_ex(uss, sp) do { \ | ||
849 | compat_stack_t __user *__uss = uss; \ | ||
850 | struct task_struct *t = current; \ | ||
851 | put_user_ex(ptr_to_compat((void __user *)t->sas_ss_sp), &__uss->ss_sp); \ | ||
852 | put_user_ex(t->sas_ss_flags, &__uss->ss_flags); \ | ||
853 | put_user_ex(t->sas_ss_size, &__uss->ss_size); \ | ||
854 | if (t->sas_ss_flags & SS_AUTODISARM) \ | ||
855 | sas_ss_reset(t); \ | ||
856 | } while (0); | ||
857 | |||
858 | asmlinkage long compat_sys_sched_rr_get_interval(compat_pid_t pid, | ||
859 | struct compat_timespec __user *interval); | ||
860 | 962 | ||
861 | asmlinkage long compat_sys_fanotify_mark(int, unsigned int, __u32, __u32, | 963 | /* obsolete: net/socket.c */ |
862 | int, const char __user *); | 964 | asmlinkage long compat_sys_socketcall(int call, u32 __user *args); |
863 | 965 | ||
864 | asmlinkage long compat_sys_arch_prctl(int option, unsigned long arg2); | ||
865 | 966 | ||
866 | /* | 967 | /* |
867 | * For most but not all architectures, "am I in a compat syscall?" and | 968 | * For most but not all architectures, "am I in a compat syscall?" and |