9ce09e423f24823d52f19ab8247e078977100132 |
|
12-Nov-2015 |
Mingwei Shi <mingwei.shi@intel.com> |
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. Bug: http://b/27533895 Change-ID: Ib340c604d02c6c25714a95793737e3cfdc3fc5d7 Signed-off-by: Mingwei Shi <mingwei.shi@intel.com> (cherry picked from commit be910529322b461148debefd50b9e0d67ae84f8e)
|
940d3122c9c88eb3e46f8862a02a668fa0f4cf2b |
|
15-Apr-2015 |
Christopher Ferris <cferris@google.com> |
Fix addition of extra arg to cfi_restore. Change-Id: I8fdcc1ae3e91b69ccbcec756a89e1ccb4fa1be53
|
605ee81b0660760dd191f2e2de4c4c92dca5192f |
|
13-Apr-2015 |
Christopher Ferris <cferris@google.com> |
Add missing cfi directives for x86 assembler. Change-Id: I80d3e33a71bbaeab5f39b667ebe61e865fd54b80
|
011e111d299284b65af07add523a9dccac356244 |
|
09-Sep-2014 |
Elliott Hughes <enh@google.com> |
Ensure __set_errno is still visible on LP32. The use of the .hidden directive to avoid going via the PLT for __set_errno had the side-effect of actually making __set_errno hidden (which is odd because assembler directives don't usually affect symbols defined in a different file --- you can't even create a weak reference to a symbol that's defined in a different file). This change switches the system call stubs over to a new always-hidden __set_errno_internal and has a visible __set_errno on LP32 just for binary compatibility with old NDK apps. (cherry-pick of 7efad83d430f4d824f2aaa75edea5106f6ff8aae.) Bug: 17423135 Change-Id: I6b6d7a05dda85f923d22e5ffd169a91e23499b7b
|
7efad83d430f4d824f2aaa75edea5106f6ff8aae |
|
09-Sep-2014 |
Elliott Hughes <enh@google.com> |
Ensure __set_errno is still visible on LP32. The use of the .hidden directive to avoid going via the PLT for __set_errno had the side-effect of actually making __set_errno hidden (which is odd because assembler directives don't usually affect symbols defined in a different file --- you can't even create a weak reference to a symbol that's defined in a different file). This change switches the system call stubs over to a new always-hidden __set_errno_internal and has a visible __set_errno on LP32 just for binary compatibility with old NDK apps. Bug: 17423135 Change-Id: I6b6d7a05dda85f923d22e5ffd169a91e23499b7b
|
3726f9c38b4b27b492e378e20c52be859225e5f3 |
|
09-Aug-2014 |
Dan Albert <danalbert@google.com> |
Revert "Fix incorrect relocations for x86." Bug: 16853291 This reverts commit 512bc5232689bec9c763c8247b59de970096ff87.
|
512bc5232689bec9c763c8247b59de970096ff87 |
|
07-Aug-2014 |
Dan Albert <danalbert@google.com> |
Fix incorrect relocations for x86. These calls were not going through the PLT like they should have been. Bug: 16853291 Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c
|
15a0456d0b7618554ed3d49287e77b6d43a2812a |
|
06-Jun-2014 |
Elliott Hughes <enh@google.com> |
Remove unnecessary instructions from x86/x86_64 syscalls. __set_errno returns -1 exactly so that callers don't need to bother. The other architectures were already taking advantage of this, but no one had ever fixed x86 and x86_64. Change-Id: Ie131494be664f6c4a1bbf8c61bbbed58eac56122
|
a85aaf11fafd52b1304cc288d0699411ae510cc8 |
|
03-Jan-2014 |
Elliott Hughes <enh@google.com> |
Use the MAX_ERRNO constant. If you're going to hardcode a constant, you could at least try to get the constant right... Change-Id: I886a2593357d1c4dfd6c42649c63e8a35c15a441
|
4cdde5f12364079a2b55fa4fc4ed53364cb8465d |
|
22-Mar-2013 |
Elliott Hughes <enh@google.com> |
Replace unnecessary x86 uses of <sys/linux-syscalls.h> with <asm/unistd.h>. Change-Id: I9d016ee8e8329cccf244d27c336d9524348af996
|
bdff26df2749d8d66e5d4eb5a2ecf4a9ff50fad2 |
|
12-Feb-2013 |
Elliott Hughes <enh@google.com> |
Use ENTRY/END in custom x86 assembler too. Change-Id: Ic2e482e5daff29c65d3b2ab0b2111c996bbc6226
|
c164f2a9694fa8c373ec72d237ee16b412aa5c53 |
|
12-Apr-2012 |
Jin Wei <wei.a.jin@intel.com> |
bionic: modify syscall to use 6 registers to pass parameter. Kernel allows to use 6 registers(exclude eax) to pass parameter. But in syscall's implementation, it only uses five registers. It will lead to error when 6 parameters passed. Change-Id: I92d663194e6334c3847f0c0c257ca3b9dee0edef Author: Jin Wei <wei.a.jin@intel.com> Signed-off-by: Xiaokang Qin <xiaokang.qin@intel.com> Signed-off-by: Beare, Bruce J <bruce.j.beare@intel.com> Signed-off-by: Jack Ren <jack.ren@intel.com> Author-tracking-BZ: 30838
|
5288fee835a6e52d7870b3ee3320a5a3ddb96f34 |
|
17-Jun-2011 |
Jun Nakajima <jun.nakajima@intel.com> |
x86 libc: Fix the range to check the error The spec says "A value in the range between -4095 to -1 indicates an error" (not -129). This was pointed out in the comment in 22039. Change-Id: I11b7c45015a9e4ccf09aed5364a889437eab6ab8 Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
|
8488efaa0913f8484cbfdb61180e47bc19fff5d8 |
|
28-Mar-2011 |
Kan-Ru Chen <kanru@0xlab.org> |
x86 libc: fix the wrong return value of syscall According to Intel ABI spec, there is no need to save %eax, %ecx, %edx on the stack. Worse, popping %eax will wipe out the return value. Change-Id: Ida536c3b98174b8deef88f8f3b9352eaaeb7c0c0
|
3c543e1da9a2780a70b25299f39734bf0a18c4a0 |
|
04-Mar-2010 |
Bruce Beare <brucex.j.beare@intel.com> |
x86 syscall system call implementation
|