@ai-ecoverse/slicc-kernel 1.122.0 → 1.122.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -737,7 +737,7 @@ WASI and WASIX have no call for file modes, so the kernel adds the import module
737
737
  | `path_owner(dirfd, path, path_len, flags, out)` | those of a path, of the link itself with `flags & 1` |
738
738
  | `fd_filestat_owner(fd, filestat_out, out)` | `fd_filestat_get` and `fd_owner` in one call |
739
739
  | `path_filestat_owner(dirfd, lookupflags, path, path_len, filestat_out, out)` | `path_filestat_get` (with its preview1 lookup flags: `1` follows a symlink) and the owner of the same path, in one call, so a libc's `stat` costs one call either way |
740
- | `path_mkfifo(dirfd, path, path_len, mode)` | `mkfifo`/`mkfifoat` and `mknod(S_IFIFO)` (homescoop#878): makes a [FIFO](#filesystem) with `mode & ~umask`, relative to `dirfd` (`AT_FDCWD` is `-2`). It doesn't follow a link in the last component, so an existing name, also a FIFO or a dangling link, is `EEXIST`. A mount without FIFOs answers `EPERM` |
740
+ | `path_mkfifo(dirfd, path, path_len, mode)` | `mkfifo`/`mkfifoat` and `mknod(S_IFIFO)` (homescoop#878): makes a [FIFO](#filesystem) with `mode & ~umask`, relative to `dirfd` (`AT_FDCWD` is `-2`). It doesn't follow a link in the last component, so an existing name, also a FIFO, a dangling link, a directory or the root, is `EEXIST`, and an empty name is `ENOENT` (#972). A mount without FIFOs answers `EPERM` |
741
741
  | `path_access(dirfd, path, path_len, amode, flags)` | `faccessat`: `amode` is `R_OK` 4, `W_OK` 2, `X_OK` 1 or `F_OK` 0; the check uses the real uid and gid, or the effective ones with `flags & 2` (`AT_EACCESS`), and the link itself with `flags & 1`. With `users: 'off'` it checks only that the path exists, as a libc without it does (see [Permissions](#permissions)) |
742
742
 
743
743
  The owner calls follow [File owners](#file-owners): with `users: 'off'`, `fd_chown` and `path_chown` succeed and change nothing, and the four owner calls answer `ENOTSUP`, "owners not tracked", before looking at anything, so a libc can remember that once and take its own `getuid()` and `getgid()` as every file's owner, which is what an Emscripten program built against the credential calls sees. Devices are root's. A pipe's owner is the caller.
@@ -2061,6 +2061,7 @@ var OpfsFs = class {
2061
2061
  });
2062
2062
  }
2063
2063
  async createExclusive(path, owner) {
2064
+ if (normalizePath(path) === "/") throw fsError("EEXIST", path);
2064
2065
  const parent = await this.locate(parentOf3(path), true);
2065
2066
  if (parent.handle?.kind !== "directory") throw fsError("ENOTDIR", path);
2066
2067
  const dir = parent.handle;
@@ -6405,7 +6406,7 @@ function satisfies(version, range2) {
6405
6406
  }
6406
6407
 
6407
6408
  // src/version.ts
6408
- var KERNEL_VERSION = true ? "1.122.0" : "0.0.0-dev";
6409
+ var KERNEL_VERSION = true ? "1.122.1" : "0.0.0-dev";
6409
6410
  var OS_RELEASE = "6.0.0-slicc";
6410
6411
  function procVersion() {
6411
6412
  return `Linux version ${OS_RELEASE} (slicc-kernel ${KERNEL_VERSION}) #1 SMP PREEMPT_DYNAMIC