MCPcopy Create free account
hub / github.com/WasmVM/WasmVM / write_wasm_stat

Function write_wasm_stat

host/sysenv/sys_fs.cpp:55–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53// ---- Helper: write a struct stat into wasm memory --------------------------
54
55static void write_wasm_stat(Stack& stack, i64_t stat_buf, const stat_t& st) {
56 uint8_t buf[WASM_STAT_SIZE] = {};
57 uint32_t dev = (uint32_t)st.st_dev;
58 uint32_t ino = (uint32_t)st.st_ino;
59 uint32_t mode = (uint32_t)st.st_mode;
60 uint32_t nlink = (uint32_t)st.st_nlink;
61 uint32_t uid = (uint32_t)st.st_uid;
62 uint32_t gid = (uint32_t)st.st_gid;
63 uint64_t size = (uint64_t)st.st_size;
64 uint64_t atime_ns = stat_atime_ns(st);
65 uint64_t mtime_ns = stat_mtime_ns(st);
66 uint64_t ctime_ns = stat_ctime_ns(st);
67
68 std::memcpy(buf + 0, &dev, 4);
69 std::memcpy(buf + 4, &ino, 4);
70 std::memcpy(buf + 8, &mode, 4);
71 std::memcpy(buf + 12, &nlink, 4);
72 std::memcpy(buf + 16, &uid, 4);
73 std::memcpy(buf + 20, &gid, 4);
74 std::memcpy(buf + 24, &size, 8);
75 std::memcpy(buf + 32, &atime_ns, 8);
76 std::memcpy(buf + 40, &mtime_ns, 8);
77 std::memcpy(buf + 48, &ctime_ns, 8);
78
79 mem_write(stack, stat_buf, buf, WASM_STAT_SIZE);
80}
81
82// ---- sys_fs host functions --------------------------------------------------
83// Each function uses get_ptr() to extract pointer/length locals (wasm64: i64).

Callers 2

fs_statFunction · 0.85
fs_fstatFunction · 0.85

Calls 4

stat_atime_nsFunction · 0.85
stat_mtime_nsFunction · 0.85
stat_ctime_nsFunction · 0.85
mem_writeFunction · 0.85

Tested by

no test coverage detected