1*c9945492SAndroid Build Coastguard Worker #include <unistd.h> 2*c9945492SAndroid Build Coastguard Worker #include "syscall.h" 3*c9945492SAndroid Build Coastguard Worker __lseek(int fd,off_t offset,int whence)4*c9945492SAndroid Build Coastguard Workeroff_t __lseek(int fd, off_t offset, int whence) 5*c9945492SAndroid Build Coastguard Worker { 6*c9945492SAndroid Build Coastguard Worker register long long r4 __asm__("$4") = fd; 7*c9945492SAndroid Build Coastguard Worker register long long r5 __asm__("$5") = offset; 8*c9945492SAndroid Build Coastguard Worker register long long r6 __asm__("$6") = whence; 9*c9945492SAndroid Build Coastguard Worker register long long r7 __asm__("$7"); 10*c9945492SAndroid Build Coastguard Worker register long long r2 __asm__("$2") = SYS_lseek; 11*c9945492SAndroid Build Coastguard Worker __asm__ __volatile__ ( 12*c9945492SAndroid Build Coastguard Worker "syscall" 13*c9945492SAndroid Build Coastguard Worker : "+&r"(r2), "=r"(r7) 14*c9945492SAndroid Build Coastguard Worker : "r"(r4), "r"(r5), "r"(r6) 15*c9945492SAndroid Build Coastguard Worker : SYSCALL_CLOBBERLIST); 16*c9945492SAndroid Build Coastguard Worker return r7 ? __syscall_ret(-r2) : r2; 17*c9945492SAndroid Build Coastguard Worker } 18*c9945492SAndroid Build Coastguard Worker 19*c9945492SAndroid Build Coastguard Worker weak_alias(__lseek, lseek); 20