You also have sys_llseek (syscall 140). However it uses 32-bit regs but allows to specify a 64-bit offset.
sys_llseek [fs/read_write.c]
Repositions read/write file offset of an open file.
Arguments
eax 140
ebx File descriptor of an open file.
ecx The low order 32-bits of a signed value that specifies the distance to move.
edx The high order 32-bits of a signed value that specifies the distance to move.
esi Pointer to an integer which will receive the resulting file position.
edi The starting point for the file offset to move. It may be one of the following values: SEEK_SET The starting point is the beginning of the file.
SEEK_CUR The starting point is the current offset.
SEEK_END The starting point is the end of the file.
Return values
If the system call succeeds the return value is 0.
If the system call fails the return value is one of the following errno values:
-EBADF ebx is not an open file descriptor.
-EFAULT Problem with copying results to user space.
-EINVAL edi is invalid.