xref: /aosp_15_r20/external/musl/src/unistd/mipsn32/lseek.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
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 Worker off_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