summaryrefslogtreecommitdiffstats
path: root/libc-top-half/musl/src/unistd/lseek.c
blob: 48a638a37cfe93b6b997e3d9773b1c82da0841fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <unistd.h>
#include "syscall.h"

off_t __lseek(int fd, off_t offset, int whence)
{
#ifdef SYS__llseek
	off_t result;
#ifdef __wasilibc_unmodified_upstream // WASI has no syscall
	return syscall(SYS__llseek, fd, offset>>32, offset, &result, whence) ? -1 : result;
#else
	return llseek(fd, offset>>32, offset, &result, whence) ? -1 : result;
#endif
#else
#ifdef __wasilibc_unmodified_upstream // WASI has no syscall
	return syscall(SYS_lseek, fd, offset, whence);
#else
	return lseek(fd, offset, whence);
#endif
#endif
}

weak_alias(__lseek, lseek);
weak_alias(__lseek, lseek64);