lib: banner purge + WHY-only comment sweep (rule 8)
Every // ---- section banner dies (132 -> 0): names carry the WHAT. Narration deleted (filename restatements, run-with lines, what-the- next-line-does); every ref/hare cite, task cite, divergence, ABI/ layout contract, and ownership qualifier kept (borrowed-view lines restored where the sweep over-cut). Comment-only proven: all 442 walk-workdir .s and 32 import-probe .s byte-identical before/after; libbyteid 56-roster all-ID.
This commit is contained in:
34
lib/os/os.ww
34
lib/os/os.ww
@@ -1,6 +1,5 @@
|
||||
// os — process and filesystem facade. The body of each call lands
|
||||
// either in libwwrt.a (rt_syscall trampoline) or libc bindings,
|
||||
// depending on how the program was linked.
|
||||
// The body of each call lands either in libwwrt.a (rt_syscall
|
||||
// trampoline) or libc bindings, depending on how the program was linked.
|
||||
|
||||
package os;
|
||||
|
||||
@@ -155,10 +154,8 @@ export fn close(fd: i32) i32 = {
|
||||
return syscall1(nr.CLOSE, fd: i64): i32;
|
||||
};
|
||||
|
||||
// dup2(2): make `newfd` refer to the same description as `oldfd`,
|
||||
// closing `newfd` first if open. Returns `newfd` on success or a
|
||||
// negative errno. Used by w6c_ww to redirect stdout into an output
|
||||
// file without changing the cgen emit path.
|
||||
// Used by w6c_ww to redirect stdout into an output file without
|
||||
// changing the cgen emit path.
|
||||
export fn dup2(oldfd: i32, newfd: i32) i32 = {
|
||||
return syscall2(nr.DUP2, oldfd: i64, newfd: i64): i32;
|
||||
};
|
||||
@@ -208,9 +205,8 @@ export fn tryopen(path: str, flags: flag, mode: i32) (i32 | oserror) = {
|
||||
return fd;
|
||||
};
|
||||
|
||||
// lseek — set/inspect the fd's position. Returns the new offset or
|
||||
// a negative errno. We use this for fstat-free file-size discovery
|
||||
// (open ⇒ lseek to end ⇒ lseek back).
|
||||
// Used for fstat-free file-size discovery (open ⇒ lseek to end ⇒
|
||||
// lseek back).
|
||||
export fn lseek(fd: i32, off: i64, w: whence) i64 = {
|
||||
return syscall3(nr.LSEEK, fd: i64, off, (w as i32): i64);
|
||||
};
|
||||
@@ -273,7 +269,6 @@ export fn strerror(err: errno) str = {
|
||||
return "Unknown error";
|
||||
};
|
||||
|
||||
// filesize — byte length of an open fd via lseek-to-end-and-back.
|
||||
export fn filesize(fd: i32) (i64 | oserror) = {
|
||||
let end: i64 = lseek(fd, 0i64, whence.END);
|
||||
if (end < 0) { return end: oserror; };
|
||||
@@ -282,9 +277,8 @@ export fn filesize(fd: i32) (i64 | oserror) = {
|
||||
return end;
|
||||
};
|
||||
|
||||
// readall — keep reading until `n` bytes have arrived or the fd
|
||||
// closes early. Hare name (io::readall); the buffer is caller-
|
||||
// supplied, matching the Plan 9 subset convention.
|
||||
// Hare name (io::readall); the buffer is caller-supplied, matching
|
||||
// the Plan 9 subset convention.
|
||||
export fn readall(fd: i32, buf: *u8, n: u64) (i64 | oserror) = {
|
||||
let got: u64 = 0u64;
|
||||
for (got < n) {
|
||||
@@ -296,8 +290,7 @@ export fn readall(fd: i32, buf: *u8, n: u64) (i64 | oserror) = {
|
||||
return got: i64;
|
||||
};
|
||||
|
||||
// writeall — keep writing until `n` bytes have been accepted or the
|
||||
// fd refuses progress. Hare name (io::writeall).
|
||||
// Hare name (io::writeall).
|
||||
export fn writeall(fd: i32, buf: *u8, n: u64) (i64 | oserror) = {
|
||||
let sent: u64 = 0u64;
|
||||
for (sent < n) {
|
||||
@@ -309,8 +302,6 @@ export fn writeall(fd: i32, buf: *u8, n: u64) (i64 | oserror) = {
|
||||
return sent: i64;
|
||||
};
|
||||
|
||||
// ---- process and filesystem helpers used by the `ww` driver ----------
|
||||
|
||||
// access(2): returns 0 if the file is reachable, negative errno
|
||||
// otherwise. mode is the bitset described in <unistd.h> (F_OK=0).
|
||||
// Mirrors Hare's os::access (ref/hare/os/+linux/fs.ha:access).
|
||||
@@ -531,8 +522,6 @@ export fn getdents64(fd: i32, buf: *u8, n: u64) i64 = {
|
||||
return syscall3(nr.GETDENTS64, fd: i64, buf: i64, n: i64);
|
||||
};
|
||||
|
||||
// ---- environment ------------------------------------------------------
|
||||
|
||||
// rt_envp — runtime-side getter. rt/start.s captures envp into a DATAW
|
||||
// slot before calling main; this binding lifts the captured pointer
|
||||
// into ww. Same FFI shape as rt_syscall / rt_malloc / rt_abort: a TEXT
|
||||
@@ -688,8 +677,6 @@ export fn args() []str = {
|
||||
return r;
|
||||
};
|
||||
|
||||
// ---- stat / lstat / fstat / exists -----------------------------------
|
||||
//
|
||||
// Ports of Hare's stat family (ref/hare/fs/fs.ha:172,196 +
|
||||
// ref/hare/sys/+linux/stat.ha:24-58). The Hare surface returns
|
||||
// `filestat` by value; ww's cgreturn ABI tops out at 24B today (see
|
||||
@@ -830,8 +817,7 @@ type kstat = struct {
|
||||
let emptypath: [1]u8 = [0u8];
|
||||
|
||||
// fillfilestat — copy a 144B kstat into the 80B Hare-shaped
|
||||
// filestat. Internal helper used by all three public entry points.
|
||||
// Mirrors Hare's st_to_filestat (ref/hare/os/+linux/dirfdfs.ha:259):
|
||||
// filestat. Mirrors Hare's st_to_filestat (ref/hare/os/+linux/dirfdfs.ha:259):
|
||||
// newfstatat populates every field, so the mask is the OR-fold of
|
||||
// all seven Hare stat_mask bits.
|
||||
fn fillfilestat(out: *filestat, k: *kstat) void = {
|
||||
|
||||
Reference in New Issue
Block a user