mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-04-27 19:09:47 +03:00
96bd268c8c
- use symbol export helper - move all declarations from common.zig into c.zig - correct documentation - delete dead code
36 lines
981 B
Zig
36 lines
981 B
Zig
const builtin = @import("builtin");
|
|
|
|
const std = @import("std");
|
|
|
|
const symbol = @import("../../c.zig").symbol;
|
|
const errno = @import("../../c.zig").errno;
|
|
|
|
comptime {
|
|
if (builtin.target.isMuslLibC()) {
|
|
symbol(&unameLinux, "uname");
|
|
}
|
|
|
|
if (builtin.target.isWasiLibC()) {
|
|
symbol(&unameWasi, "uname");
|
|
}
|
|
}
|
|
|
|
fn unameLinux(uts: *std.os.linux.utsname) callconv(.c) c_int {
|
|
return errno(std.os.linux.uname(uts));
|
|
}
|
|
|
|
fn unameWasi(uts: *std.c.utsname) callconv(.c) c_int {
|
|
// note the @bitCast's for NUL termination!
|
|
uts.sysname[0..5].* = @bitCast("wasi".*);
|
|
uts.nodename[0..7].* = @bitCast("(none)".*);
|
|
uts.release[0..6].* = @bitCast("0.0.0".*);
|
|
uts.version[0..6].* = @bitCast("0.0.0".*);
|
|
uts.machine[0..7].* = @bitCast(switch (builtin.target.cpu.arch) {
|
|
.wasm32 => "wasm32",
|
|
.wasm64 => "wasm64",
|
|
else => comptime unreachable,
|
|
}.*);
|
|
uts.domainname[0..7].* = @bitCast("(none)".*);
|
|
return 0;
|
|
}
|