blob: 2e6d6eb16c924c0e23042763ce89a5bb9d3c6b72 [file] [edit]
/**
* @license
* Copyright 2026 The Emscripten Authors
* SPDX-License-Identifier: MIT
*
* Syscalls that are shared between WasmFS and the old-FS.
* Unlike `libsyscalls.js` this file is included under both filesystem backends.
*/
addToLibrary({
#if NODERAWFS
// NODERAWFS reports the real host process credentials (0 on Windows, which
// has no uid/gid concept).
__syscall_getuid32: () => process.getuid?.() ?? 0,
__syscall_geteuid32: () => process.geteuid?.() ?? 0,
__syscall_getgid32: () => process.getgid?.() ?? 0,
__syscall_getegid32: () => process.getegid?.() ?? 0,
#else
__syscall_getuid32: () => 0,
__syscall_geteuid32: () => 0,
__syscall_getgid32: () => 0,
__syscall_getegid32: () => 0,
#endif
__syscall_uname__deps: ['$stringToUTF8'],
__syscall_uname: (buf) => {
if (!buf) {
return -{{{ cDefs.EFAULT }}};
}
var copyString = (offset, value) => stringToUTF8(value, buf + offset, {{{ C_STRUCTS.utsname.nodename }}});
#if NODERAWFS
var os = require('node:os');
copyString({{{ C_STRUCTS.utsname.sysname }}}, os.type());
copyString({{{ C_STRUCTS.utsname.nodename }}}, os.hostname());
copyString({{{ C_STRUCTS.utsname.release }}}, os.release());
copyString({{{ C_STRUCTS.utsname.version }}}, os.version());
copyString({{{ C_STRUCTS.utsname.machine }}}, os.machine());
#else
copyString({{{ C_STRUCTS.utsname.sysname }}}, 'Emscripten');
copyString({{{ C_STRUCTS.utsname.nodename }}}, 'emscripten');
copyString({{{ C_STRUCTS.utsname.release }}}, '{{{ EMSCRIPTEN_VERSION.split("-")[0] }}}');
copyString({{{ C_STRUCTS.utsname.version }}}, '#1');
copyString({{{ C_STRUCTS.utsname.machine }}}, '{{{ MEMORY64 ? "wasm64" : "wasm32" }}}');
#endif
return 0;
},
});