# std.os.linux: Define timespec as kernel_timespec \(64-bit\) for riscv32\. · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/890433e292da449e79c5a8c2efb91f65555da775)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 890433e292da449e79c5a8c2efb91f65555da775

Requested commit: 890433e292da449e79c5a8c2efb91f65555da775

Commit: 890433e292da449e79c5a8c2efb91f65555da775

Tree: 458ce0f353eaee091e8ea35c0fc8450dcb336629

Author: Alex Rønne Petersen

Committer: Alex Rønne Petersen

## Message

```
std.os.linux: Define timespec as kernel_timespec (64-bit) for riscv32.

This is kind of a hack because the timespec in UAPI headers is actually still
32-bit while __kernel_timespec is 64-bit. But, importantly, all the syscalls
take __kernel_timespec from the get-go (because riscv32 support is so recent).

Defining our timespec this way will allow all the syscall wrappers in
std.os.linux to do the right thing for riscv32. For other 32-bit architectures,
we have to use the 64-bit time syscalls explicitly to solve the Y2038 problem.

```

## Parents

- [cafce8c7670e90969b1bedae0efab3df583b11dd](https://git.cafe/gitcafe/zig/commit/cafce8c7670e90969b1bedae0efab3df583b11dd?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/890433e292da449e79c5a8c2efb91f65555da775?format=markdown)
