base: revert oneshot_async service types, fix local fork deps, migrate remote to RedBear-OS

- Revert initfs/rootfs service types from oneshot_async to blocking
  Scheme/Notify/Oneshot to fix init ordering races.
- Add /scheme/pci retry loop in pcid-spawner.
- Bump redox_event to 0.4.8; use local paths for redox-ioctl and redox-rt.
- Regenerate Cargo.lock / bootstrap/Cargo.lock with only local forks.
- Update submodule origin from redbear-os-base.git to RedBear-OS.git
  branch submodule/base per single-repo policy.
This commit is contained in:
Red Bear OS
2026-07-05 22:25:00 +03:00
parent 4bfb878b55
commit e653ef10d6
36 changed files with 371 additions and 210 deletions
Generated
+165 -125
View File
@@ -13,7 +13,7 @@ dependencies = [
"pcid",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
"spin",
]
@@ -52,11 +52,11 @@ dependencies = [
"log",
"num-derive",
"num-traits",
"parking_lot 0.12.5",
"parking_lot 0.12.3",
"plain",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"rustc-hash",
"scheme-utils",
@@ -76,7 +76,7 @@ dependencies = [
"log",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -100,7 +100,7 @@ dependencies = [
"libredox",
"log",
"pcid",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"serde",
]
@@ -181,9 +181,9 @@ checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3"
[[package]]
name = "arrayvec"
version = "0.7.7"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f02882884d3e1bc524fb12c79f107f6ad0e1cfd498c536ffb494301740995dfe"
checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56"
[[package]]
name = "atty"
@@ -206,7 +206,7 @@ dependencies = [
"libc",
"libredox",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
]
@@ -238,7 +238,7 @@ dependencies = [
"fdt 0.2.0-alpha1",
"libredox",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -342,9 +342,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "cc"
version = "1.2.65"
version = "1.2.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
checksum = "f5d6cac793997bd970000024b2934968efe83b382de4fdcf4fcb46b6ee4ad996"
dependencies = [
"find-msvc-tools",
"shlex",
@@ -436,7 +436,7 @@ dependencies = [
"libredox",
"log",
"redox-log",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -526,7 +526,7 @@ dependencies = [
"libc",
"libredox",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -535,14 +535,14 @@ version = "0.3.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0963443817029b2024136fc4dd07a5107eb8f977eaf18fcd1fdeb11306b64ad"
dependencies = [
"defmt 1.1.0",
"defmt 1.1.1",
]
[[package]]
name = "defmt"
version = "1.1.0"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6e524506490a1953d237cb87b1cfc1e46f88c18f10a22dfe0f507dc6bfc7f7f"
checksum = "e2953bfe4f93bbd20cc71198842756f77d161884c99ebbabc41d80231ded88d1"
dependencies = [
"bitflags 1.3.2",
"defmt-macros",
@@ -550,12 +550,11 @@ dependencies = [
[[package]]
name = "defmt-macros"
version = "1.1.0"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0a27770e9c8f719a79d8b638281f4d828f77d8fd61e0bd94451b9b85e576a0b"
checksum = "bad9c72e7ca2137e0dc3813245a0d282fd6daad32fd800af018306a9169b5fe8"
dependencies = [
"defmt-parser",
"proc-macro-error2",
"proc-macro2",
"quote",
"syn 2.0.118",
@@ -594,7 +593,7 @@ dependencies = [
"log",
"partitionlib",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
]
@@ -611,7 +610,7 @@ dependencies = [
"log",
"redox-ioctl",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
]
@@ -622,7 +621,7 @@ dependencies = [
"daemon",
"libredox",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
]
@@ -678,7 +677,7 @@ dependencies = [
"i2c-interface",
"libredox",
"log",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"serde",
]
@@ -695,7 +694,7 @@ dependencies = [
"log",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -775,7 +774,7 @@ dependencies = [
"ransid",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
]
@@ -795,7 +794,7 @@ dependencies = [
"ransid",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
]
@@ -952,7 +951,7 @@ dependencies = [
"libredox",
"log",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"scheme-utils",
"serde",
@@ -1027,9 +1026,9 @@ dependencies = [
[[package]]
name = "humantime"
version = "2.3.0"
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424"
checksum = "15cdd26707701c53297e2fa6afb323d55fbc1d0810c3aec078ae3ef0424c3c15"
[[package]]
name = "hwd"
@@ -1041,7 +1040,7 @@ dependencies = [
"fdt 0.1.5",
"libredox",
"log",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
]
@@ -1056,7 +1055,7 @@ dependencies = [
"i2c-interface",
"libredox",
"log",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"serde",
]
@@ -1076,7 +1075,7 @@ dependencies = [
"log",
"orbclient",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"scheme-utils",
"serde",
@@ -1086,7 +1085,7 @@ dependencies = [
name = "i2c-interface"
version = "0.1.0"
dependencies = [
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"serde",
]
@@ -1101,7 +1100,7 @@ dependencies = [
"libredox",
"log",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"scheme-utils",
"serde",
@@ -1142,7 +1141,7 @@ dependencies = [
"log",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -1157,7 +1156,7 @@ dependencies = [
"pcid",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
"spin",
]
@@ -1180,7 +1179,7 @@ dependencies = [
"range-alloc",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"void",
]
@@ -1202,7 +1201,7 @@ dependencies = [
"libc",
"libredox",
"plain",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"serde",
"serde_json",
"toml",
@@ -1219,7 +1218,7 @@ dependencies = [
"log",
"orbclient",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
]
@@ -1233,7 +1232,7 @@ dependencies = [
"daemon",
"libredox",
"log",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"serde",
]
@@ -1249,7 +1248,7 @@ dependencies = [
"i2c-interface",
"libredox",
"log",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"serde",
]
@@ -1269,7 +1268,7 @@ dependencies = [
"pci_types",
"pcid",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"scheme-utils",
"serde",
@@ -1293,10 +1292,10 @@ dependencies = [
"daemon",
"libc",
"libredox",
"rand 0.10.1",
"rand 0.10.2",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
]
@@ -1323,7 +1322,7 @@ dependencies = [
"libredox",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -1351,15 +1350,13 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
[[package]]
name = "libredox"
version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f02ab6bace2054fb888a3c16f990117b579d14a3088e472d63c6011fa185c9d3"
version = "0.1.18+rb0.2.5"
dependencies = [
"bitflags 2.13.0",
"ioslice",
"libc",
"plain",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -1383,7 +1380,16 @@ dependencies = [
"driver-block",
"libredox",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
name = "lock_api"
version = "0.4.12"
source = "git+https://github.com/Amanieu/parking_lot.git?rev=0.12.3#a29dd3d4ff661f73fd5cf638584bc4c5de2ad347"
dependencies = [
"autocfg",
"scopeguard",
]
[[package]]
@@ -1408,7 +1414,7 @@ dependencies = [
"daemon",
"libredox",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
]
@@ -1465,7 +1471,7 @@ dependencies = [
"redox-log",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
"smoltcp",
]
@@ -1517,11 +1523,11 @@ dependencies = [
"futures",
"libredox",
"log",
"parking_lot 0.12.5",
"parking_lot 0.12.3",
"partitionlib",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"smallvec 1.15.2",
]
@@ -1575,12 +1581,11 @@ dependencies = [
[[package]]
name = "parking_lot"
version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
version = "0.12.3"
source = "git+https://github.com/Amanieu/parking_lot.git?rev=0.12.3#a29dd3d4ff661f73fd5cf638584bc4c5de2ad347"
dependencies = [
"lock_api",
"parking_lot_core 0.9.12",
"lock_api 0.4.12",
"parking_lot_core 0.9.10",
]
[[package]]
@@ -1597,15 +1602,14 @@ dependencies = [
[[package]]
name = "parking_lot_core"
version = "0.9.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
version = "0.9.10"
source = "git+https://github.com/Amanieu/parking_lot.git?rev=0.12.3#a29dd3d4ff661f73fd5cf638584bc4c5de2ad347"
dependencies = [
"cfg-if 1.0.4",
"libc",
"redox_syscall 0.5.18",
"smallvec 1.15.2",
"windows-link",
"windows-targets",
]
[[package]]
@@ -1648,7 +1652,7 @@ dependencies = [
"pico-args",
"plain",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
"serde",
]
@@ -1661,10 +1665,11 @@ dependencies = [
"common",
"config",
"daemon",
"libredox",
"log",
"pcid",
"pico-args",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"serde",
"toml",
]
@@ -1696,28 +1701,6 @@ dependencies = [
"zerocopy",
]
[[package]]
name = "proc-macro-error-attr2"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
dependencies = [
"proc-macro2",
"quote",
]
[[package]]
name = "proc-macro-error2"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
dependencies = [
"proc-macro-error-attr2",
"proc-macro2",
"quote",
"syn 2.0.118",
]
[[package]]
name = "proc-macro2"
version = "1.0.106"
@@ -1740,7 +1723,7 @@ dependencies = [
"orbclient",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -1751,7 +1734,7 @@ dependencies = [
"libredox",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"redox_termios",
"scheme-utils",
]
@@ -1785,7 +1768,7 @@ dependencies = [
"indexmap",
"libredox",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
"slab",
]
@@ -1816,9 +1799,9 @@ dependencies = [
[[package]]
name = "rand"
version = "0.10.1"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207"
checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80"
dependencies = [
"chacha20",
"getrandom 0.4.3",
@@ -1891,7 +1874,7 @@ dependencies = [
"rand_core 0.5.1",
"raw-cpuid",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
"sha2",
]
@@ -1953,10 +1936,9 @@ dependencies = [
[[package]]
name = "redox-ioctl"
version = "0.1.0"
source = "git+https://gitlab.redox-os.org/redox-os/relibc.git#15a4a27a467a5c355b2a6ac50f2cf26e33c251c2"
dependencies = [
"drm-sys",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -1972,19 +1954,17 @@ dependencies = [
[[package]]
name = "redox-scheme"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecd26e368655cb4fdda914512c46c5640221ebe5fa6df5da19c941b9f06ed153"
version = "0.11.2+rb0.2.5"
dependencies = [
"libredox",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
name = "redox_event"
version = "0.4.7"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c07d0d6d291e3a951bd847b1cd4af32fc6243d64116cf7702838c02797688b7"
checksum = "c5018d583d6d2f5499352aea8d177e9067d1eb03ab17c78169d5ba7a30001b15"
dependencies = [
"bitflags 2.13.0",
"libredox",
@@ -2001,7 +1981,7 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.8.1"
version = "0.9.0+rb0.2.5"
dependencies = [
"bitflags 2.13.0",
]
@@ -2021,7 +2001,7 @@ dependencies = [
"libredox",
"qemu-exit",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"redox_termios",
]
@@ -2097,7 +2077,7 @@ dependencies = [
"log",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -2112,7 +2092,7 @@ dependencies = [
"log",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -2151,7 +2131,7 @@ dependencies = [
"log",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
"spin",
]
@@ -2162,7 +2142,7 @@ version = "0.0.0"
dependencies = [
"libredox",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -2329,7 +2309,7 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591"
dependencies = [
"lock_api",
"lock_api 0.4.14",
]
[[package]]
@@ -2338,7 +2318,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300"
dependencies = [
"lock_api",
"lock_api 0.4.14",
]
[[package]]
@@ -2526,7 +2506,7 @@ dependencies = [
"libredox",
"log",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"ron",
"scheme-utils",
"serde",
@@ -2557,7 +2537,7 @@ dependencies = [
"inputd",
"log",
"orbclient",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"rehid",
"xhcid",
]
@@ -2568,7 +2548,7 @@ version = "0.1.0"
dependencies = [
"common",
"log",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"xhcid",
]
@@ -2582,7 +2562,7 @@ dependencies = [
"libredox",
"plain",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"thiserror 2.0.18",
"xhcid",
]
@@ -2620,7 +2600,7 @@ dependencies = [
"orbclient",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -2641,7 +2621,7 @@ dependencies = [
"orbclient",
"ransid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
]
[[package]]
@@ -2657,7 +2637,7 @@ dependencies = [
"log",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"spin",
"static_assertions",
"thiserror 2.0.18",
@@ -2676,7 +2656,7 @@ dependencies = [
"log",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"static_assertions",
"thiserror 2.0.18",
]
@@ -2696,7 +2676,7 @@ dependencies = [
"orbclient",
"pcid",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"spin",
"static_assertions",
"virtio-core",
@@ -2713,7 +2693,7 @@ dependencies = [
"libredox",
"log",
"pcid",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"static_assertions",
"virtio-core",
]
@@ -2883,6 +2863,70 @@ dependencies = [
"windows-link",
]
[[package]]
name = "windows-targets"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_gnullvm",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "winnow"
version = "1.0.3"
@@ -2906,7 +2950,7 @@ dependencies = [
"plain",
"redox-scheme",
"redox_event",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"regex",
"scheme-utils",
"serde",
@@ -2943,7 +2987,7 @@ dependencies = [
"daemon",
"libredox",
"redox-scheme",
"redox_syscall 0.8.1",
"redox_syscall 0.9.0+rb0.2.5",
"scheme-utils",
]
@@ -2952,7 +2996,3 @@ name = "zmij"
version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
[[patch.unused]]
name = "libredox"
version = "0.1.18"
+18 -6
View File
@@ -100,17 +100,17 @@ edid = "0.3.0" #TODO: edid is abandoned, fork it and maintain?
fdt = "0.1.5"
libc = "0.2.181"
log = "0.4"
libredox = "0.1.17"
libredox = { path = "../libredox", default-features = true }
orbclient = "0.3.51"
parking_lot = "0.12"
parking_lot = { git = "https://github.com/Amanieu/parking_lot.git", rev = "0.12.3", default-features = false }
pico-args = "0.5"
plain = "0.2.3"
ransid = "0.4"
redox_event = "0.4.6"
redox-ioctl = { git = "https://gitlab.redox-os.org/redox-os/relibc.git" }
redox_event = "0.4.8"
redox-ioctl = { path = "../relibc/redox-ioctl" }
redox-log = { git = "https://gitlab.redox-os.org/redox-os/redox-log.git" }
redox-rt = { git = "https://gitlab.redox-os.org/redox-os/relibc.git", default-features = false }
redox-scheme = "0.11.0"
redox-rt = { path = "../relibc/redox-rt", default-features = false }
redox-scheme = { path = "../redox-scheme" }
redox_syscall = { path = "../syscall", features = ["std"] }
redox_termios = "0.1.3"
ron = "0.8.1"
@@ -155,6 +155,18 @@ redox_syscall = { path = "../syscall" }
# the local syscall fork). Now libredox::error::Error and
# syscall::Error are the same type.
libredox = { path = "../libredox" }
# Red Bear OS Phase J (extended): redox-scheme 0.11.x from crates.io
# pins redox_syscall = "0.9.0" exactly, which Cargo refuses to
# satisfy with the local +rb0.2.5 fork (0.9.0+rb0.2.5). Without this
# patch, Cargo pulls crates.io redox-scheme which transitively
# pulls crates.io redox_syscall 0.9.0, leading to two different
# `syscall::Error` types and E0277 errors in scheme-utils / daemon.
# Patch redox-scheme to the local fork at ../redox-scheme/ which
# has its redox_syscall and libredox dep requirements bumped to
# the +rb0.2.5 versions. The local fork is a thin pass-through of
# upstream redox-scheme 0.11.2 source with only the dep versions
# updated — no behavioural changes.
redox-scheme = { path = "../redox-scheme" }
[patch."https://gitlab.redox-os.org/redox-os/relibc.git"]
#redox-ioctl = { path = "../../relibc/source/redox-ioctl" }
+21 -29
View File
@@ -4,15 +4,15 @@ version = 4
[[package]]
name = "arrayvec"
version = "0.7.6"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56"
[[package]]
name = "bitflags"
version = "2.10.0"
version = "2.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
[[package]]
name = "bootstrap"
@@ -41,13 +41,12 @@ checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
[[package]]
name = "generic-rt"
version = "0.1.0"
source = "git+https://gitlab.redox-os.org/redox-os/relibc.git#2b69838a481b7be9826b41e06a0b8f1346b80f9e"
[[package]]
name = "goblin"
version = "0.10.5"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "983a6aafb3b12d4c41ea78d39e189af4298ce747353945ff5105b54a056e5cd9"
checksum = "17582616a7718cca54cec18e534a76c7c4aec11a8b9a85695712f262fd15a4c8"
dependencies = [
"log",
"plain",
@@ -71,15 +70,13 @@ checksum = "5e571352c8a3b89074d12e3ee5173ffe162159105352aaaf1fc5764da747e31b"
[[package]]
name = "libc"
version = "0.2.181"
version = "0.2.186"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5"
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
[[package]]
name = "libredox"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c"
version = "0.1.18+rb0.2.5"
dependencies = [
"bitflags",
"libc",
@@ -89,9 +86,9 @@ dependencies = [
[[package]]
name = "linked_list_allocator"
version = "0.10.5"
version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286"
checksum = "2b23ac50abb8261cb38c6e2a7192d3302e0836dac1628f6a93b82b4fad185897"
dependencies = [
"spinning_top",
]
@@ -107,9 +104,9 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.29"
version = "0.4.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
[[package]]
name = "plain"
@@ -128,9 +125,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.44"
version = "1.0.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
dependencies = [
"proc-macro2",
]
@@ -151,7 +148,6 @@ checksum = "436d45c2b6a5b159d43da708e62b25be3a4a3d5550d654b72216ade4c4bfd717"
[[package]]
name = "redox-rt"
version = "0.1.0"
source = "git+https://gitlab.redox-os.org/redox-os/relibc.git#2b69838a481b7be9826b41e06a0b8f1346b80f9e"
dependencies = [
"bitflags",
"generic-rt",
@@ -165,9 +161,7 @@ dependencies = [
[[package]]
name = "redox-scheme"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e58cb7dee1058575f320f9bfa32c7c0eda857e285c2a163a0eb595d37add09cd"
version = "0.11.2+rb0.2.5"
dependencies = [
"libredox",
"redox_syscall",
@@ -175,9 +169,7 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f450ad9c3b1da563fb6948a8e0fb0fb9269711c9c73d9ea1de5058c79c8d643a"
version = "0.9.0+rb0.2.5"
dependencies = [
"bitflags",
]
@@ -225,9 +217,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.114"
version = "2.0.118"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
dependencies = [
"proc-macro2",
"quote",
@@ -236,6 +228,6 @@ dependencies = [
[[package]]
name = "unicode-ident"
version = "1.0.23"
version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
+13 -4
View File
@@ -6,6 +6,11 @@ authors = ["4lDO2 <4lDO2@protonmail.com>"]
edition = "2024"
license = "MIT"
[workspace.dependencies]
libredox = { path = "../../libredox", default-features = false, features = ["base", "protocol", "redox_syscall"] }
redox_syscall = { path = "../../syscall" }
redox-scheme = { path = "../../redox-scheme", default-features = false }
[workspace]
[dependencies]
@@ -14,18 +19,18 @@ hashbrown = { version = "0.15", default-features = false, features = [
"default-hasher",
] }
linked_list_allocator = "0.10"
libredox = { version = "0.1.16", default-features = false, features = ["protocol"] }
libredox = { workspace = true }
log = { version = "0.4", default-features = false }
plain = "0.2"
redox-initfs = { path = "../initfs", default-features = false }
redox_syscall = "0.7.4"
redox-scheme = { version = "0.11.0", default-features = false }
redox_syscall = { workspace = true }
redox-scheme = { workspace = true }
redox-path = "0.3.1"
slab = { version = "0.4.9", default-features = false }
arrayvec = { version = "0.7.6", default-features = false }
[target.'cfg(target_os = "redox")'.dependencies]
redox-rt = { git = "https://gitlab.redox-os.org/redox-os/relibc.git", default-features = false }
redox-rt = { path = "../../relibc/redox-rt", default-features = false }
[profile.release]
panic = "abort"
@@ -35,3 +40,7 @@ opt-level = "s"
[profile.dev]
panic = "abort"
opt-level = "s"
[patch.crates-io]
redox_syscall = { path = "../../syscall" }
libredox = { path = "../../libredox" }
+10 -10
View File
@@ -26,7 +26,7 @@ impl log::Log for Logger {
let line = record.line().unwrap_or(0);
let level = record.level();
let msg = record.args();
let _ = syscall::write(
let _ = libredox::call::write(
1,
alloc::format!("[{file}:{line} {level}] {msg}\n").as_bytes(),
);
@@ -70,13 +70,13 @@ pub fn main() -> ! {
let mut env_bytes = [0_u8; 4096];
let mut envs = {
let fd = FdGuard::new(
syscall::openat(
libredox::call::openat(
kernel_schemes
.get(GlobalSchemes::Sys)
.expect("failed to get sys fd")
.as_raw_fd(),
"env",
O_RDONLY | O_CLOEXEC,
(O_RDONLY | O_CLOEXEC) as i32,
0,
)
.expect("bootstrap: failed to open env"),
@@ -206,7 +206,7 @@ pub fn main() -> ! {
const CWD: &[u8] = b"/scheme/initfs";
let cwd_fd = FdGuard::new(
syscall::openat(initns_fd.as_raw_fd(), "/scheme/initfs", O_STAT, 0)
libredox::call::openat(initns_fd.as_raw_fd(), "/scheme/initfs", O_STAT as i32, 0)
.expect("failed to open cwd fd"),
)
.to_upper()
@@ -225,7 +225,7 @@ pub fn main() -> ! {
let path = "/scheme/initfs/bin/init";
let image_file = FdGuard::new(
syscall::openat(extrainfo.ns_fd.unwrap(), path, O_RDONLY | O_CLOEXEC, 0)
libredox::call::openat(extrainfo.ns_fd.unwrap(), path, (O_RDONLY | O_CLOEXEC) as i32, 0)
.expect("failed to open init"),
)
.to_upper()
@@ -252,10 +252,10 @@ pub fn main() -> ! {
// null-terminated. Violating this should therefore give the "format error" ENOEXEC.
let interp_cstr = CStr::from_bytes_with_nul(&interp_path).expect("interpreter not valid C str");
let interp_file = FdGuard::new(
syscall::openat(
libredox::call::openat(
extrainfo.ns_fd.unwrap(), // initns, not initfs!
interp_cstr.to_str().expect("interpreter not UTF-8"),
O_RDONLY | O_CLOEXEC,
(O_RDONLY | O_CLOEXEC) as i32,
0,
)
.expect("failed to open dynamic linker"),
@@ -288,13 +288,13 @@ pub(crate) fn spawn(
inner: impl FnOnce(FdGuard, Socket, FdGuard, KernelSchemeMap) -> !,
) -> (FdGuard, FdGuard, KernelSchemeMap, FdGuard) {
let read = FdGuard::new(
syscall::openat(
libredox::call::openat(
kernel_schemes
.get(GlobalSchemes::Pipe)
.expect("failed to get pipe fd")
.as_raw_fd(),
"",
O_CLOEXEC,
O_CLOEXEC as i32,
0,
)
.expect("failed to open sync read pipe"),
@@ -302,7 +302,7 @@ pub(crate) fn spawn(
// The write pipe will not inherit O_CLOEXEC, but is closed by the daemon later.
let write = FdGuard::new(
syscall::dup(read.as_raw_fd(), b"write").expect("failed to open sync write pipe"),
libredox::call::dup(read.as_raw_fd(), b"write").expect("failed to open sync write pipe"),
);
match fork_impl(&ForkArgs::Init {
+56
View File
@@ -446,6 +446,22 @@ pub unsafe extern "C" fn redox_write_v1(fd: usize, ptr: *const u8, len: usize) -
})) as isize
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn redox_openat_v1(
fd: usize,
buf: *const u8,
path_len: usize,
flags: u32,
fcntl_flags: u32,
) -> isize {
let path = unsafe { core::slice::from_raw_parts(buf, path_len) };
let path_str = match core::str::from_utf8(path) {
Ok(s) => s,
Err(_) => return -(syscall::EINVAL as isize),
};
Error::mux(syscall::openat(fd, path_str, flags as usize, fcntl_flags as usize)) as isize
}
#[unsafe(no_mangle)]
pub unsafe fn redox_dup_v1(fd: usize, buf: *const u8, len: usize) -> isize {
Error::mux(syscall::dup(fd, unsafe {
@@ -458,6 +474,46 @@ pub extern "C" fn redox_close_v1(fd: usize) -> isize {
Error::mux(syscall::close(fd)) as isize
}
#[unsafe(no_mangle)]
pub extern "C" fn redox_fcntl_v0(fd: usize, cmd: usize, arg: usize) -> isize {
Error::mux(syscall::fcntl(fd, cmd, arg)) as isize
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn redox_strerror_v1(
dst: *mut u8,
dst_len: *mut usize,
error: u32,
) -> isize {
let msg = match error {
x if x == syscall::EPERM as u32 => "Operation not permitted",
x if x == syscall::ENOENT as u32 => "No such file or directory",
x if x == syscall::EINTR as u32 => "Interrupted system call",
x if x == syscall::EIO as u32 => "I/O error",
x if x == syscall::EBADF as u32 => "Bad file descriptor",
x if x == syscall::EAGAIN as u32 => "Resource temporarily unavailable",
x if x == syscall::ENOMEM as u32 => "Cannot allocate memory",
x if x == syscall::EACCES as u32 => "Permission denied",
x if x == syscall::EFAULT as u32 => "Bad address",
x if x == syscall::EBUSY as u32 => "Device or resource busy",
x if x == syscall::EEXIST as u32 => "File exists",
x if x == syscall::ENOTDIR as u32 => "Not a directory",
x if x == syscall::EISDIR as u32 => "Is a directory",
x if x == syscall::EINVAL as u32 => "Invalid argument",
x if x == syscall::ENOSYS as u32 => "Function not implemented",
x if x == syscall::ENOTEMPTY as u32 => "Directory not empty",
_ => "Unknown error",
};
let msg_bytes = msg.as_bytes();
unsafe {
let avail = *dst_len;
let copy_len = avail.min(msg_bytes.len());
core::ptr::copy_nonoverlapping(msg_bytes.as_ptr(), dst, copy_len);
*dst_len = copy_len;
copy_len as isize
}
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn redox_sys_call_v0(
fd: usize,
+1 -1
View File
@@ -150,7 +150,7 @@ impl<'sock> NamespaceScheme<'sock> {
error!("Permission denied to get scheme creation capability");
return Err(Error::new(EACCES));
}
Ok(syscall::dup(self.scheme_creation_cap.as_raw_fd(), &[])?)
Ok(libredox::call::dup(self.scheme_creation_cap.as_raw_fd(), &[])?)
}
_ => {
error!("Unknown special reference: {}", reference);
+1 -1
View File
@@ -43,7 +43,7 @@ fn panic_handler(info: &core::panic::PanicInfo) -> ! {
impl Write for Writer {
fn write_str(&mut self, s: &str) -> core::fmt::Result {
syscall::write(1, s.as_bytes())
libredox::call::write(1, s.as_bytes())
.map_err(|_| core::fmt::Error)
.map(|_| ())
}
+5 -4
View File
@@ -549,7 +549,8 @@ enum WaitpidTarget {
struct RawEventQueue(FdGuard);
impl RawEventQueue {
pub fn new(cap_fd: usize) -> Result<Self> {
syscall::openat(cap_fd, "", O_CREAT, 0)
libredox::call::openat(cap_fd, "", O_CREAT as i32, 0)
.map_err(Into::into)
.map(FdGuard::new)
.map(Self)
}
@@ -919,7 +920,7 @@ impl<'a> ProcScheme<'a> {
mut op: OpCall,
awoken: &mut VecDeque<VirtualId>,
) -> Poll<Response> {
let id = op.fd;
let id = op.fd();
let (payload, metadata) = op.payload_and_metadata();
match self.handles[id] {
Handle::Init => Response::ready_err(EBADF, op),
@@ -2542,8 +2543,8 @@ impl<'a> ProcScheme<'a> {
// Useful for debugging memory leaks.
log::trace!("NEXT FD: {}", {
let nextfd = syscall::dup(0, &[]).unwrap();
let _ = syscall::close(nextfd);
let nextfd = libredox::call::dup(0, &[]).unwrap();
let _ = libredox::call::close(nextfd);
nextfd
});
log::trace!("{} processes", self.processes.len());
+3 -3
View File
@@ -48,9 +48,9 @@ pub unsafe extern "C" fn start() -> ! {
// NOTE: Assuming the debug scheme root fd is always placed at this position
let debug_fd = syscall::UPPER_FDTBL_TAG + syscall::data::GlobalSchemes::Debug as usize;
let _ = syscall::openat(debug_fd, "", syscall::O_RDONLY, 0); // stdin
let _ = syscall::openat(debug_fd, "", syscall::O_WRONLY, 0); // stdout
let _ = syscall::openat(debug_fd, "", syscall::O_WRONLY, 0); // stderr
let _ = libredox::call::openat(debug_fd, "", syscall::O_RDONLY as i32, 0); // stdin
let _ = libredox::call::openat(debug_fd, "", syscall::O_WRONLY as i32, 0); // stdout
let _ = libredox::call::openat(debug_fd, "", syscall::O_WRONLY as i32, 0); // stderr
unsafe {
let _ = syscall::mprotect(4096, 4096, MapFlags::PROT_READ | MapFlags::MAP_PRIVATE)
+2 -2
View File
@@ -294,14 +294,14 @@ pub fn acquire_port_io_rights() -> Result<()> {
extern "C" {
fn redox_cur_thrfd_v0() -> usize;
}
let kernel_fd = syscall::dup(unsafe { redox_cur_thrfd_v0() }, b"open_via_dup")?;
let kernel_fd = libredox::call::dup(unsafe { redox_cur_thrfd_v0() }, b"open_via_dup")?;
let res = libredox::call::call_wo(
kernel_fd,
&[],
syscall::CallFlags::empty(),
&[ProcSchemeVerb::Iopl as u64],
);
let _ = syscall::close(kernel_fd);
let _ = libredox::call::close(kernel_fd);
res?;
Ok(())
}
+1
View File
@@ -8,6 +8,7 @@ license = "MIT"
[dependencies]
anyhow.workspace = true
libredox.workspace = true
log.workspace = true
pico-args.workspace = true
redox_syscall.workspace = true
+22 -1
View File
@@ -1,11 +1,30 @@
use std::fs;
use std::process::Command;
use std::thread;
use std::time::Duration;
use anyhow::{anyhow, Context, Result};
use pcid_interface::config::Config;
use pcid_interface::PciFunctionHandle;
fn wait_for_pci_scheme() -> Result<()> {
let mut last_err = None;
for i in 0..40 {
match fs::read_dir("/scheme/pci") {
Ok(_) => return Ok(()),
Err(err) => {
last_err = Some(err);
if i == 0 {
log::debug!("pcid-spawner: waiting for /scheme/pci to become available");
}
thread::sleep(Duration::from_millis(50));
}
}
}
Err(last_err.unwrap().into())
}
fn main() -> Result<()> {
let mut args = pico_args::Arguments::from_env();
let initfs = args.contains("--initfs");
@@ -31,6 +50,8 @@ fn main() -> Result<()> {
let config: Config = toml::from_str(&config_data)?;
wait_for_pci_scheme().context("/scheme/pci is not available")?;
for entry in fs::read_dir("/scheme/pci")? {
let entry = entry.context("failed to get entry")?;
let device_path = entry.path();
@@ -94,7 +115,7 @@ fn main() -> Result<()> {
#[allow(deprecated, reason = "we can't yet move this to init")]
daemon::Daemon::spawn(command);
syscall::close(channel_fd as usize).unwrap();
libredox::call::close(channel_fd as usize).unwrap();
}
Ok(())
+1 -1
View File
@@ -3,4 +3,4 @@ description = "IPC daemon"
[service]
cmd = "ipcd"
type = "oneshot_async"
type = "notify"
+1 -1
View File
@@ -3,4 +3,4 @@ description = "PCI driver spawner"
[service]
cmd = "pcid-spawner"
type = "oneshot_async"
type = "oneshot"
+1 -1
View File
@@ -3,4 +3,4 @@ description = "PTY daemon"
[service]
cmd = "ptyd"
type = "oneshot_async"
type = "notify"
+8
View File
@@ -0,0 +1,8 @@
[unit]
description = "Serial boot marker: services stage"
requires_weak = ["06_services.target"]
[service]
cmd = "echo"
args = ["RB_STAGE_06_SERVICES"]
type = "oneshot"
+8
View File
@@ -0,0 +1,8 @@
[unit]
description = "Serial boot marker: userland stage"
requires_weak = ["08_userland.target"]
[service]
cmd = "echo"
args = ["RB_STAGE_08_USERLAND"]
type = "oneshot"
+10
View File
@@ -0,0 +1,10 @@
[unit]
description = "Evdev input daemon"
requires_weak = [
"12_boot-late.target",
"00_pcid-spawner.service",
]
[service]
cmd = "evdevd"
type = "oneshot_async"
+2 -2
View File
@@ -7,5 +7,5 @@ requires_weak = [
]
[service]
cmd = "netstack"
type = "oneshot_async"
cmd = "smolnetd"
type = "notify"
+1 -1
View File
@@ -6,4 +6,4 @@ requires_weak = [
[service]
cmd = "audiod"
type = "oneshot_async"
type = { scheme = "audio" }
+1 -1
View File
@@ -3,4 +3,4 @@ description = "VT input and graphics multiplexer"
[service]
cmd = "inputd"
type = "oneshot_async"
type = { scheme = "input" }
+1 -1
View File
@@ -4,4 +4,4 @@ description = "Live disk"
[service]
cmd = "lived"
type = "oneshot_async"
type = "notify"
+1 -1
View File
@@ -4,4 +4,4 @@ requires_weak = ["10_inputd.service", "20_vesad.service"]
[service]
cmd = "fbbootlogd"
type = "oneshot_async"
type = { scheme = "fbbootlog" }
+1 -1
View File
@@ -5,4 +5,4 @@ requires_weak = ["10_inputd.service", "20_vesad.service"]
[service]
cmd = "fbcond"
args = ["2"]
type = "oneshot_async"
type = { scheme = "fbcon" }
+1 -1
View File
@@ -10,4 +10,4 @@ inherit_envs = [
"FRAMEBUFFER_HEIGHT",
"FRAMEBUFFER_STRIDE",
]
type = "oneshot_async"
type = "notify"
+1 -1
View File
@@ -6,4 +6,4 @@ condition_board = ["raspi3bp"]
[service]
cmd = "bcm2835-sdhcid"
type = "oneshot_async"
type = "notify"
+1 -1
View File
@@ -5,4 +5,4 @@ requires_weak = ["10_inputd.service", "10_lived.service", "20_graphics.target"]
[service]
cmd = "hwd"
inherit_envs = ["RSDP_ADDR", "RSDP_SIZE"]
type = "oneshot_async"
type = "notify"
+1 -1
View File
@@ -5,4 +5,4 @@ condition_architecture = ["x86", "x86_64"]
[service]
cmd = "ps2d"
type = "oneshot_async"
type = "notify"
+3
View File
@@ -87,6 +87,9 @@ impl Scheduler {
self.pending.push_back(job);
continue 'a;
}
if let Ok(mut f) = std::fs::OpenOptions::new().write(true).open("/scheme/debug/no-preserve") {
let _ = writeln!(f, "FORCE {}", job.unit.0);
}
}
run(unit, init_config);
+1 -1
View File
@@ -18,7 +18,7 @@ fn nonblock(file: &File) -> io::Result<()> {
}
fn dup(file: &File, buf: &str) -> io::Result<File> {
let stream =
syscall::dup(file.as_raw_fd() as usize, buf.as_bytes()).map_err(from_syscall_error)?;
libredox::call::dup(file.as_raw_fd() as usize, buf.as_bytes()).map_err(from_syscall_error)?;
Ok(unsafe { File::from_raw_fd(stream as RawFd) })
}
+1 -1
View File
@@ -13,7 +13,7 @@ fn main() -> io::Result<()> {
loop {
let stream =
syscall::dup(server.as_raw_fd() as usize, b"listen").map_err(from_syscall_error)?;
libredox::call::dup(server.as_raw_fd() as usize, b"listen").map_err(from_syscall_error)?;
let mut stream = unsafe { File::from_raw_fd(stream as RawFd) };
stream.write(b"Hello World!\n")?;
+1 -1
View File
@@ -38,7 +38,7 @@ fn main() -> io::Result<()> {
println!("Listener recevied flags: {:?}", event.flags);
if event.flags & syscall::EVENT_WRITE == syscall::EVENT_WRITE {
loop {
let stream = match syscall::dup(server.as_raw_fd() as usize, b"listen")
let stream = match libredox::call::dup(server.as_raw_fd() as usize, b"listen")
.map_err(from_syscall_error)
{
Err(ref err) if err.kind() == io::ErrorKind::WouldBlock => break,
+1 -1
View File
@@ -20,7 +20,7 @@ fn nonblock(file: &File) -> io::Result<()> {
}
fn dup(file: &File, buf: &str) -> io::Result<File> {
let stream =
syscall::dup(file.as_raw_fd() as usize, buf.as_bytes()).map_err(from_syscall_error)?;
libredox::call::dup(file.as_raw_fd() as usize, buf.as_bytes()).map_err(from_syscall_error)?;
Ok(unsafe { File::from_raw_fd(stream as RawFd) })
}
+1 -1
View File
@@ -9,7 +9,7 @@ fn from_syscall_error(error: syscall::Error) -> io::Error {
}
fn dup(file: &File, buf: &str) -> io::Result<File> {
let stream =
syscall::dup(file.as_raw_fd() as usize, buf.as_bytes()).map_err(from_syscall_error)?;
libredox::call::dup(file.as_raw_fd() as usize, buf.as_bytes()).map_err(from_syscall_error)?;
Ok(unsafe { File::from_raw_fd(stream as RawFd) })
}
+5 -5
View File
@@ -112,7 +112,7 @@ fn run(daemon: daemon::Daemon) -> Result<()> {
event_queue
.subscribe(ip_fd.inner().raw(), EventSource::IpScheme, EventFlags::READ)
.context("failed to listen to ip scheme events")?;
.map_err(|e| anyhow!("failed to listen to ip scheme events: {:?}", e))?;
event_queue
.subscribe(
@@ -120,7 +120,7 @@ fn run(daemon: daemon::Daemon) -> Result<()> {
EventSource::UdpScheme,
EventFlags::READ,
)
.context("failed to listen to udp scheme events")?;
.map_err(|e| anyhow!("failed to listen to udp scheme events: {:?}", e))?;
event_queue
.subscribe(
@@ -128,7 +128,7 @@ fn run(daemon: daemon::Daemon) -> Result<()> {
EventSource::TcpScheme,
EventFlags::READ,
)
.context("failed to listen to tcp scheme events")?;
.map_err(|e| anyhow!("failed to listen to tcp scheme events: {:?}", e))?;
event_queue
.subscribe(
@@ -136,7 +136,7 @@ fn run(daemon: daemon::Daemon) -> Result<()> {
EventSource::IcmpScheme,
EventFlags::READ,
)
.context("failed to listen to icmp scheme events")?;
.map_err(|e| anyhow!("failed to listen to icmp scheme events: {:?}", e))?;
event_queue
.subscribe(
@@ -144,7 +144,7 @@ fn run(daemon: daemon::Daemon) -> Result<()> {
EventSource::NetcfgScheme,
EventFlags::READ,
)
.context("failed to listen to netcfg scheme events")?;
.map_err(|e| anyhow!("failed to listen to netcfg scheme events: {:?}", e))?;
let mut smolnetd = Smolnetd::new(
network_fd,