Skip to content

Implement Phase 2 syscalls: rename, renameat, pread64, pwrite64, nanosleep, uname #853

@dburkart

Description

@dburkart

Motivation

Implements RFC 0009 — Rust std on vibix. Phase 2 syscalls enable std::fs::rename(), positional I/O (pread/pwrite), std::thread::sleep(), and platform identification. Without these, std::fs and std::process cannot be fully implemented.

Work

  • Wire sys_rename(82): connect existing fs::ext2::rename to syscall dispatch
  • Add sys_renameat(264): *at variant of rename, relative to dirfd
  • Add sys_pread64(17): read at offset without changing file position
  • Add sys_pwrite64(18): write at offset without changing file position
  • Add sys_nanosleep(35): sleep for specified timespec duration, return remaining time on signal interruption
  • Add sys_uname(63): fill struct utsname with sysname="vibix", nodename, release, version, machine="x86_64"

Context

  • docs/RFC/0009-std-on-vibix.md (merged via PR RFC 0009: Rust std on vibix #847)
  • Rename impl exists: kernel/src/fs/ext2/rename.rs
  • Shell helper: kernel/src/shell/vfs_helpers.rs:316

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions