Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemathinc
GitHub Repository: sagemathinc/wapython
Path: blob/main/core/kernel/src/wasm/posix/constants.zig
1068 views
1
pub fn keepalive() void {}
2
const errno = @import("errno.zig");
3
const netdb = @import("netdb.zig");
4
const netif = @import("netif.zig");
5
const signal = @import("./signal.zig");
6
const socket = @import("./socket.zig");
7
const termios = @import("termios.zig");
8
const unistd = @import("unistd.zig");
9
const util = @import("util.zig");
10
const wait = @import("wait.zig");
11
12
const _names = errno.constants.names ++ netdb.constants.names ++ netif.constants.names ++ signal.constants.names ++ socket.constants.names ++ termios.constants.names ++ unistd.constants.names ++ wait.constants.names;
13
14
const _values = getValues(errno.constants) ++ getValues(netdb.constants) ++ getValues(netif.constants) ++ getValues(signal.constants) ++ getValues(socket.constants) ++ getValues(termios.constants) ++ getValues(unistd.constants) ++ getValues(wait.constants);
15
16
const _constants = .{ .names = _names, .values = _values };
17
18
// Caller must std.c.free the string it gets back.
19
export fn getConstants() ?[*:0]u8 {
20
return util.structToNullTerminatedJsonString(@TypeOf(_constants), _constants) catch {
21
return null;
22
};
23
}
24
25
fn getValues(comptime constants: anytype) [constants.names.len]i32 {
26
return _getValues(constants.c_import, constants.names.len, constants.names);
27
}
28
29
fn _getValues(comptime c_import: anytype, comptime len: usize, comptime names: [len][:0]const u8) [len]i32 {
30
var x: [names.len]i32 = undefined;
31
var i = 0;
32
for (names) |constant| {
33
x[i] = @field(c_import, constant);
34
i += 1;
35
}
36
return x;
37
}
38
39