move os_get_random_bytes to os.zig

master
Andrew Kelley 2016-02-04 01:00:54 -07:00
parent 1f9734d1ee
commit bb4a532785
4 changed files with 19 additions and 12 deletions

View File

@ -126,6 +126,7 @@ set(ZIG_STD_SRC
"${CMAKE_SOURCE_DIR}/std/test_runner_libc.zig"
"${CMAKE_SOURCE_DIR}/std/test_runner_nolibc.zig"
"${CMAKE_SOURCE_DIR}/std/std.zig"
"${CMAKE_SOURCE_DIR}/std/os.zig"
"${CMAKE_SOURCE_DIR}/std/syscall.zig"
"${CMAKE_SOURCE_DIR}/std/errno.zig"
"${CMAKE_SOURCE_DIR}/std/rand.zig"

View File

@ -2,6 +2,7 @@ export executable "guess_number";
import "std.zig";
import "rand.zig";
import "os.zig";
pub fn main(args: [][]u8) -> %void {
%%stderr.print_str("Welcome to the Guess Number Game in Zig.\n");

17
std/os.zig Normal file
View File

@ -0,0 +1,17 @@
import "syscall.zig";
import "errno.zig";
pub error SigInterrupt;
pub error Unexpected;
pub fn os_get_random_bytes(buf: []u8) -> %void {
const amt_got = getrandom(buf.ptr, buf.len, 0);
if (amt_got < 0) {
return switch (-amt_got) {
EINVAL => unreachable{},
EFAULT => unreachable{},
EINTR => error.SigInterrupt,
else => error.Unexpected,
}
}
}

View File

@ -160,18 +160,6 @@ pub struct InStream {
}
}
pub fn os_get_random_bytes(buf: []u8) -> %void {
const amt_got = getrandom(buf.ptr, buf.len, 0);
if (amt_got < 0) {
return switch (-amt_got) {
EINVAL => unreachable{},
EFAULT => unreachable{},
EINTR => error.SigInterrupt,
else => error.Unexpected,
}
}
}
#attribute("cold")
pub fn abort() -> unreachable {
raise(SIGABRT);