Commit bb4a532785
Changed files (4)
example/guess_number/main.zig
@@ -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");
std/os.zig
@@ -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,
+ }
+ }
+}
std/std.zig
@@ -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);
CMakeLists.txt
@@ -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"