struct timespec *timeout argument is an optional argument that points to an absolute timeout. You need to specify the type of clock being used at clockid argument. CLOCK_MONOTONIC and CLOCK_REALTIME are supported. This syscall accepts only 64bit timespec structs.