OSDN Git Service

libc: implement kernel vdso syscalls for i386
authorMingwei Shi <mingwei.shi@intel.com>
Thu, 12 Nov 2015 07:02:14 +0000 (07:02 +0000)
committerElliott Hughes <enh@google.com>
Fri, 25 Mar 2016 21:10:05 +0000 (14:10 -0700)
commitbe910529322b461148debefd50b9e0d67ae84f8e
tree67d5538b8f6af5fbc2ce29f1a18886321e6fe4a1
parent2846ae70fb967269e8fcd2d854d04c9aeb5d01d3
libc: implement kernel vdso syscalls for i386

This patch uses __kernel_vsyscall instead of "int 0x80"
as the syscall entry point. AT_SYSINFO points to
an adapter to mask the arch specific difference and gives a
performance boost on i386 architecture.

Change-ID: Ib340c604d02c6c25714a95793737e3cfdc3fc5d7
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
210 files changed:
libc/arch-x86/bionic/syscall.S
libc/arch-x86/syscalls/___clock_nanosleep.S
libc/arch-x86/syscalls/___close.S
libc/arch-x86/syscalls/___faccessat.S
libc/arch-x86/syscalls/___fchmod.S
libc/arch-x86/syscalls/___fchmodat.S
libc/arch-x86/syscalls/___fgetxattr.S
libc/arch-x86/syscalls/___flistxattr.S
libc/arch-x86/syscalls/___fsetxattr.S
libc/arch-x86/syscalls/___mremap.S
libc/arch-x86/syscalls/___rt_sigqueueinfo.S
libc/arch-x86/syscalls/__accept4.S
libc/arch-x86/syscalls/__brk.S
libc/arch-x86/syscalls/__clock_gettime.S
libc/arch-x86/syscalls/__connect.S
libc/arch-x86/syscalls/__epoll_pwait.S
libc/arch-x86/syscalls/__exit.S
libc/arch-x86/syscalls/__fadvise64.S
libc/arch-x86/syscalls/__fcntl64.S
libc/arch-x86/syscalls/__fstatfs64.S
libc/arch-x86/syscalls/__getcpu.S
libc/arch-x86/syscalls/__getcwd.S
libc/arch-x86/syscalls/__getdents64.S
libc/arch-x86/syscalls/__getpid.S
libc/arch-x86/syscalls/__getpriority.S
libc/arch-x86/syscalls/__gettimeofday.S
libc/arch-x86/syscalls/__ioctl.S
libc/arch-x86/syscalls/__llseek.S
libc/arch-x86/syscalls/__mmap2.S
libc/arch-x86/syscalls/__openat.S
libc/arch-x86/syscalls/__ppoll.S
libc/arch-x86/syscalls/__preadv64.S
libc/arch-x86/syscalls/__pselect6.S
libc/arch-x86/syscalls/__ptrace.S
libc/arch-x86/syscalls/__pwritev64.S
libc/arch-x86/syscalls/__reboot.S
libc/arch-x86/syscalls/__rt_sigaction.S
libc/arch-x86/syscalls/__rt_sigpending.S
libc/arch-x86/syscalls/__rt_sigprocmask.S
libc/arch-x86/syscalls/__rt_sigsuspend.S
libc/arch-x86/syscalls/__rt_sigtimedwait.S
libc/arch-x86/syscalls/__sched_getaffinity.S
libc/arch-x86/syscalls/__set_thread_area.S
libc/arch-x86/syscalls/__set_tid_address.S
libc/arch-x86/syscalls/__sigaction.S
libc/arch-x86/syscalls/__signalfd4.S
libc/arch-x86/syscalls/__socket.S
libc/arch-x86/syscalls/__statfs64.S
libc/arch-x86/syscalls/__timer_create.S
libc/arch-x86/syscalls/__timer_delete.S
libc/arch-x86/syscalls/__timer_getoverrun.S
libc/arch-x86/syscalls/__timer_gettime.S
libc/arch-x86/syscalls/__timer_settime.S
libc/arch-x86/syscalls/__waitid.S
libc/arch-x86/syscalls/_exit.S
libc/arch-x86/syscalls/acct.S
libc/arch-x86/syscalls/adjtimex.S
libc/arch-x86/syscalls/bind.S
libc/arch-x86/syscalls/capget.S
libc/arch-x86/syscalls/capset.S
libc/arch-x86/syscalls/chdir.S
libc/arch-x86/syscalls/chroot.S
libc/arch-x86/syscalls/clock_adjtime.S
libc/arch-x86/syscalls/clock_getres.S
libc/arch-x86/syscalls/clock_settime.S
libc/arch-x86/syscalls/delete_module.S
libc/arch-x86/syscalls/dup.S
libc/arch-x86/syscalls/dup3.S
libc/arch-x86/syscalls/epoll_create1.S
libc/arch-x86/syscalls/epoll_ctl.S
libc/arch-x86/syscalls/eventfd.S
libc/arch-x86/syscalls/execve.S
libc/arch-x86/syscalls/fallocate64.S
libc/arch-x86/syscalls/fchdir.S
libc/arch-x86/syscalls/fchown.S
libc/arch-x86/syscalls/fchownat.S
libc/arch-x86/syscalls/fdatasync.S
libc/arch-x86/syscalls/flock.S
libc/arch-x86/syscalls/fremovexattr.S
libc/arch-x86/syscalls/fstat64.S
libc/arch-x86/syscalls/fstatat64.S
libc/arch-x86/syscalls/fsync.S
libc/arch-x86/syscalls/ftruncate64.S
libc/arch-x86/syscalls/getegid.S
libc/arch-x86/syscalls/geteuid.S
libc/arch-x86/syscalls/getgid.S
libc/arch-x86/syscalls/getgroups.S
libc/arch-x86/syscalls/getitimer.S
libc/arch-x86/syscalls/getpeername.S
libc/arch-x86/syscalls/getpgid.S
libc/arch-x86/syscalls/getppid.S
libc/arch-x86/syscalls/getresgid.S
libc/arch-x86/syscalls/getresuid.S
libc/arch-x86/syscalls/getrlimit.S
libc/arch-x86/syscalls/getrusage.S
libc/arch-x86/syscalls/getsid.S
libc/arch-x86/syscalls/getsockname.S
libc/arch-x86/syscalls/getsockopt.S
libc/arch-x86/syscalls/getuid.S
libc/arch-x86/syscalls/getxattr.S
libc/arch-x86/syscalls/init_module.S
libc/arch-x86/syscalls/inotify_add_watch.S
libc/arch-x86/syscalls/inotify_init1.S
libc/arch-x86/syscalls/inotify_rm_watch.S
libc/arch-x86/syscalls/kill.S
libc/arch-x86/syscalls/klogctl.S
libc/arch-x86/syscalls/lgetxattr.S
libc/arch-x86/syscalls/linkat.S
libc/arch-x86/syscalls/listen.S
libc/arch-x86/syscalls/listxattr.S
libc/arch-x86/syscalls/llistxattr.S
libc/arch-x86/syscalls/lremovexattr.S
libc/arch-x86/syscalls/lseek.S
libc/arch-x86/syscalls/lsetxattr.S
libc/arch-x86/syscalls/madvise.S
libc/arch-x86/syscalls/mincore.S
libc/arch-x86/syscalls/mkdirat.S
libc/arch-x86/syscalls/mknodat.S
libc/arch-x86/syscalls/mlock.S
libc/arch-x86/syscalls/mlockall.S
libc/arch-x86/syscalls/mount.S
libc/arch-x86/syscalls/mprotect.S
libc/arch-x86/syscalls/msync.S
libc/arch-x86/syscalls/munlock.S
libc/arch-x86/syscalls/munlockall.S
libc/arch-x86/syscalls/munmap.S
libc/arch-x86/syscalls/nanosleep.S
libc/arch-x86/syscalls/personality.S
libc/arch-x86/syscalls/pipe2.S
libc/arch-x86/syscalls/prctl.S
libc/arch-x86/syscalls/pread64.S
libc/arch-x86/syscalls/prlimit64.S
libc/arch-x86/syscalls/process_vm_readv.S
libc/arch-x86/syscalls/process_vm_writev.S
libc/arch-x86/syscalls/pwrite64.S
libc/arch-x86/syscalls/read.S
libc/arch-x86/syscalls/readahead.S
libc/arch-x86/syscalls/readlinkat.S
libc/arch-x86/syscalls/readv.S
libc/arch-x86/syscalls/recvfrom.S
libc/arch-x86/syscalls/recvmmsg.S
libc/arch-x86/syscalls/recvmsg.S
libc/arch-x86/syscalls/removexattr.S
libc/arch-x86/syscalls/renameat.S
libc/arch-x86/syscalls/sched_get_priority_max.S
libc/arch-x86/syscalls/sched_get_priority_min.S
libc/arch-x86/syscalls/sched_getparam.S
libc/arch-x86/syscalls/sched_getscheduler.S
libc/arch-x86/syscalls/sched_rr_get_interval.S
libc/arch-x86/syscalls/sched_setaffinity.S
libc/arch-x86/syscalls/sched_setparam.S
libc/arch-x86/syscalls/sched_setscheduler.S
libc/arch-x86/syscalls/sched_yield.S
libc/arch-x86/syscalls/sendfile.S
libc/arch-x86/syscalls/sendfile64.S
libc/arch-x86/syscalls/sendmmsg.S
libc/arch-x86/syscalls/sendmsg.S
libc/arch-x86/syscalls/sendto.S
libc/arch-x86/syscalls/setfsgid.S
libc/arch-x86/syscalls/setfsuid.S
libc/arch-x86/syscalls/setgid.S
libc/arch-x86/syscalls/setgroups.S
libc/arch-x86/syscalls/sethostname.S
libc/arch-x86/syscalls/setitimer.S
libc/arch-x86/syscalls/setns.S
libc/arch-x86/syscalls/setpgid.S
libc/arch-x86/syscalls/setpriority.S
libc/arch-x86/syscalls/setregid.S
libc/arch-x86/syscalls/setresgid.S
libc/arch-x86/syscalls/setresuid.S
libc/arch-x86/syscalls/setreuid.S
libc/arch-x86/syscalls/setrlimit.S
libc/arch-x86/syscalls/setsid.S
libc/arch-x86/syscalls/setsockopt.S
libc/arch-x86/syscalls/settimeofday.S
libc/arch-x86/syscalls/setuid.S
libc/arch-x86/syscalls/setxattr.S
libc/arch-x86/syscalls/shutdown.S
libc/arch-x86/syscalls/sigaltstack.S
libc/arch-x86/syscalls/socketpair.S
libc/arch-x86/syscalls/splice.S
libc/arch-x86/syscalls/swapoff.S
libc/arch-x86/syscalls/swapon.S
libc/arch-x86/syscalls/symlinkat.S
libc/arch-x86/syscalls/sync.S
libc/arch-x86/syscalls/sysinfo.S
libc/arch-x86/syscalls/tee.S
libc/arch-x86/syscalls/tgkill.S
libc/arch-x86/syscalls/timerfd_create.S
libc/arch-x86/syscalls/timerfd_gettime.S
libc/arch-x86/syscalls/timerfd_settime.S
libc/arch-x86/syscalls/times.S
libc/arch-x86/syscalls/truncate.S
libc/arch-x86/syscalls/truncate64.S
libc/arch-x86/syscalls/umask.S
libc/arch-x86/syscalls/umount2.S
libc/arch-x86/syscalls/uname.S
libc/arch-x86/syscalls/unlinkat.S
libc/arch-x86/syscalls/unshare.S
libc/arch-x86/syscalls/utimensat.S
libc/arch-x86/syscalls/vmsplice.S
libc/arch-x86/syscalls/wait4.S
libc/arch-x86/syscalls/write.S
libc/arch-x86/syscalls/writev.S
libc/bionic/__libc_init_main_thread.cpp
libc/bionic/libc_init_common.cpp
libc/private/bionic_globals.h
libc/tools/gensyscalls.py
linker/linker.cpp
linker/linker.h