Commit Graph

73 Commits

Author SHA1 Message Date
vasilito 65889dbd92 libredox: reference syscall::flag::O_CLOEXEC instead of duplicating
O_CLOEXEC was defined in both libredox (0x0100_0000) and syscall
(0x0100_0000). Per the Single Source of Truth principle (and the
Local Fork Supremacy Policy: 'never version-string-duplicate a
Cat 2 fork crate'), a primitive constant should be defined once
in the most-primitive crate that has it (syscall) and re-exported
by higher-level crates (libredox).

Change: libredox::flag::O_CLOEXEC is now
'syscall::flag::O_CLOEXEC' instead of a literal 0x0100_0000. The
F_DUPFD_CLOEXEC constant stays as a literal since syscall does not
define it (it's a Linux-specific fcntl flag that Redox may not need).
2026-07-27 18:17:28 +09:00
vasilito 5bb745ec6f libredox: Fd::ftruncate and Fd::futimens take &self, not self
POSIX ftruncate(2) and futimens(2) do not close the file descriptor.
The previous 'self' (by-value) signature consumed the Fd on call, which
would trigger Fd::drop and close the fd as a side effect. After a
successful ftruncate the user could no longer use the fd, which is
the opposite of the intended semantics.

Change to '&self' to match the surrounding methods (fsync, fdatasync
both already use &self) and to match POSIX behaviour. The drop-on-
failure semantics is preserved by Rust's normal borrow checker: if
ftruncate returns Err, the caller's borrow is still valid and the
fd stays open.
2026-07-27 17:05:08 +09:00
vasilito bfb5f8b2ca libredox: replace demux() .expect() with .unwrap_or(u16::MAX)
CRITICAL F3.1 from NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md
§3.4: demux() panicked on edge-case errno via '.expect("2^BITS - res < 4096")'.
Called from every syscall wrapper (~40 call sites). A kernel returning
errno outside the 0..=4095 range would panic the entire process.

Fix: saturate to u16::MAX on overflow rather than panic. The errno
field is u16; values above u16::MAX indicate a kernel ABI violation,
and surfacing u16::MAX is safer than crashing every caller.

Trivial change (one line: .expect -> .unwrap_or(u16::MAX)) with a
comment explaining the saturate-vs-panic tradeoff.
2026-07-27 16:09:41 +09:00
vasilito d787867f8c libredox: add minimal # Safety comments to lib.rs
Adds 45 minimal SAFETY: comments above unsafe blocks in lib.rs:
- demux(): caller guarantees errno fits in u16 (handled with unwrap_or)
- Fd::Drop munmap: caller guarantees fd is still valid at drop time
- SocketCall enum: caller validates discriminator
- from_raw_fd: caller guarantees fd is valid, open, not aliased
- copy_nonoverlapping: caller guarantees non-overlapping regions
- generic catch-all: caller must verify the safety contract

Part of the systematic fix for ZERO # Safety docs across libredox
(NETWORKING-AND-DRIVERS-CODE-ASSESSMENT-2026-07-27.md §3.4,
Finding 9.2).
2026-07-27 15:07:59 +09:00
vasilito b99b204c96 libredox: remove cargo metadata + tighten .gitignore
The .cargo-ok and .cargo_vcs_info.json files were cargo-published
metadata that got committed to the fork. Upstream libredox 0.1.18
does not have these files in source control — they're cargo workspace
artifacts that should be in .gitignore.

This commit:
- Removes .cargo-ok and .cargo_vcs_info.json from tracking
- Adds /Cargo.lock to .gitignore (matches upstream)
- Brings fork structure back in line with upstream conventions

Fixes verify-fork-versions.sh content-check for libredox 0.1.18.
2026-07-12 02:12:57 +03:00
vasilito 6908adc9a4 libredox: apply Red Bear patches on latest upstream
- Use local path dep for redox_syscall
- Protocol constants and fixes
- Version suffix +rb0.3.1
- Author attribution
2026-07-11 11:34:24 +03:00
Jeremy Soller bedf0129b9 Merge branch 'fcntl' into 'master'
feat: Add fcntl

See merge request redox-os/libredox!27
2026-07-01 08:01:38 -06:00
Ibuki Omatsu 0899f212c0 feat: Add fcntl 2026-07-01 08:01:37 -06:00
Jacob Lorentzon 7040cf71b3 Merge branch 'relpathat' into 'master'
feat: Add relpathat

See merge request redox-os/libredox!26
2026-05-27 16:02:55 +02:00
Ibuki Omatsu 5cc70f148f feat: Add relpathat 2026-05-27 16:02:55 +02:00
Jeremy Soller f14358d4d8 Merge branch 'prio-sched-version' into 'master'
Bump version

See merge request redox-os/libredox!25
2026-04-09 15:21:52 -06:00
Akshit Gaur 65aa9e1272 Bump version 2026-04-06 14:46:33 +05:30
Jeremy Soller eb3b30ed33 Merge branch 'priority-sched' into 'master'
{Get/Set}ProcPriority

See merge request redox-os/libredox!24
2026-04-04 07:40:47 -06:00
Jeremy Soller c2f1a4f763 Merge branch 'MSG_FLAGS' into 'master'
Add MSG flags for sockets

See merge request redox-os/libredox!22
2026-03-24 11:02:02 -06:00
Akshit Gaur 33192ebab7 {Get/Set}ProcPriority 2026-03-23 22:50:21 +05:30
Benton60 477f6e6ae9 bump version 2026-03-22 12:13:02 -04:00
Benton60 c7b39521e4 add MSG flags for sockets 2026-03-22 12:13:02 -04:00
Jeremy Soller 0076e6e034 Merge branch 'priority-sched' into 'master'
Add Set and Get Priority

See merge request redox-os/libredox!23
2026-03-22 06:59:27 -06:00
Akshit Gaur 1b859147f5 Add Set and Get Priority 2026-03-22 17:51:09 +05:30
Jeremy Soller 094dc72d36 Merge branch 'base-libc' into 'master'
fix: Fix feature dependencies

See merge request redox-os/libredox!21
2026-02-28 07:10:06 -07:00
Ibuki Omatsu 35d51ab014 fix: Fix feature dependencies 2026-02-28 07:10:05 -07:00
Jeremy Soller 653c5b41b9 Merge branch 'protocol' into 'master'
feat: Move redox-rt::protocol into libredox::protocol. Add getdents and futimens.

See merge request redox-os/libredox!20
2026-02-27 08:37:26 -07:00
Ibuki Omatsu 17f21113a0 feat: Move redox-rt::protocol into libredox::protocol. Add getdents and futimens. 2026-02-27 08:37:26 -07:00
Jeremy Soller 6a75c953a6 Merge branch 'nsmgr' into 'master'
Add Fd::new, setns, getns, and register_scheme_to_ns.

See merge request redox-os/libredox!18
2025-12-27 07:47:25 -07:00
Ibuki Omatsu 6c5a628461 Add Fd::new, setns, getns, and register_scheme_to_ns. 2025-12-27 07:47:25 -07:00
Jeremy Soller cfbb2c3d39 Merge branch 'update-syscall' into 'master'
chore: Bump version and update redox_syscall.

See merge request redox-os/libredox!19
2025-12-16 07:43:30 -07:00
Ibuki Omatsu 9db478544d chore: Bump version and update redox_syscall. 2025-12-16 07:43:30 -07:00
Jeremy Soller 616d2e81f7 Merge branch 'getens' into 'master'
Add getens.

See merge request redox-os/libredox!15
2025-09-09 07:36:12 -06:00
Ibuki Omatsu fd13f1b8dd Add getens. 2025-09-09 07:36:12 -06:00
Jeremy Soller 33c6543c67 Merge branch 'waitpid-flags' into 'master'
Add waitpid flags

See merge request redox-os/libredox!14
2025-08-11 14:12:30 -06:00
Wildan M b4c4fb9fd1 Add waitpid flags 2025-08-09 07:31:24 +07:00
Jeremy Soller f0b019173e Merge branch 'master' into 'master'
Bump version to 0.1.9

See merge request redox-os/libredox!12
2025-07-30 19:48:52 -06:00
Ibuki Omatsu dc9aee240a Bump version to 0.1.9 2025-07-30 19:48:52 -06:00
Jeremy Soller 53fd2f4530 Merge branch 'call_redox_syscall_feature' into 'master'
fix: Add cfg attribute for the redox_syscall feature to all call functions.

See merge request redox-os/libredox!11
2025-07-30 15:34:25 -06:00
Ibuki Omatsu 86444c59a2 fix: Add cfg attribute for the redox_syscall feature to all call functions. 2025-07-30 15:34:25 -06:00
Jeremy Soller c6c2ae6ce6 Merge branch 'call' into 'master'
feat: Add call_ro, call_wo and call_wr to call module.

See merge request redox-os/libredox!10
2025-07-28 09:33:13 -06:00
Ibuki Omatsu c8ad74b402 feat: Add call_ro, call_wo and call_wr to call module. 2025-07-28 09:33:13 -06:00
Jacob Lorentzon c2e45479c9 Merge branch 'fd-call' into 'master'
feat: Add call as a new method of Fd.

See merge request redox-os/libredox!9
2025-07-26 16:21:23 +02:00
Ibuki Omatsu 144500e2c9 feat: Add call as a new method of Fd. 2025-07-26 16:21:22 +02:00
Jeremy Soller 2cacc86d93 Merge branch 'redox_get_socket_token' into 'master'
refactor: Use redox_get_socket_token from relibc

See merge request redox-os/libredox!8
2025-07-19 07:36:33 -06:00
Ibuki Omatsu c21fcb6847 refactor: Use redox_get_socket_token from relibc 2025-07-19 07:36:33 -06:00
Jeremy Soller 927f8f0578 Merge branch 'get_proc_creds_cap' into 'master'
feat: Change get_proc_credentials to use capability fd and add get_socket_token.

See merge request redox-os/libredox!6
2025-07-18 18:27:36 -06:00
Ibuki Omatsu 690884e0a6 feat: Change get_proc_credentials to use capability fd and add get_socket_token. 2025-07-18 18:27:36 -06:00
Jeremy Soller 69d53bef29 Merge branch 'openat-update' into 'master'
Add fcntl_flags to openat

See merge request redox-os/libredox!7
2025-07-07 15:18:41 -06:00
Darley Barreto 6e05857046 Add fcntl_flags to openat 2025-07-05 12:55:13 -03:00
Jeremy Soller 540f302456 Merge branch 'redox_get_proc_credentials' into 'master'
feat: Add get_proc_credentials functions.

See merge request redox-os/libredox!3
2025-06-25 08:48:33 -06:00
Ibuki Omatsu 7bb0cff932 feat: Add get_proc_credentials functions. 2025-06-25 08:48:33 -06:00
Jacob Lorentzon 4273b8ac67 Merge branch 'openat' into 'master'
Add openat

See merge request redox-os/libredox!1
2025-04-05 18:00:33 +00:00
Darley Barreto 2a04c02f36 Add openat 2025-04-05 12:35:10 -03:00
4lDO2 70bf561aef 0.1.3 2024-03-18 17:08:27 +01:00