5851974b20
Release fork infrastructure: - REDBEAR_RELEASE=0.1.1 with offline enforcement (fetch/distclean/unfetch blocked) - 195 BLAKE3-verified source archives in standard format - Atomic provisioning via provision-release.sh (staging + .complete sentry) - 5-phase improvement plan: restore format auto-detection, source tree validation (validate-source-trees.py), archive-map.json, REPO_BINARY fallback Archive normalization: - Removed 87 duplicate/unversioned archives from shared pool - Regenerated all archives in consistent format with source/ + recipe.toml - BLAKE3SUMS and manifest.json generated from stable tarball set Patch management: - verify-patches.sh: pre-sync dry-run report (OK/REVERSED/CONFLICT) - 121 upstream-absorbed patches moved to absorbed/ directories - 43 active patches verified clean against rebased sources - Stress test: base updated to upstream HEAD, relibc reset and patched Compilation fixes: - relibc: Vec imports in redox-rt (proc.rs, lib.rs, sys.rs) - relibc: unsafe from_raw_parts in mod.rs (2024 edition) - fetch.rs: rev comparison handles short/full hash prefixes - kibi recipe: corrected rev mismatch New scripts: restore-sources.sh, provision-release.sh, verify-sources-archived.sh, check-upstream-releases.sh, validate-source-trees.py, verify-patches.sh, repair-archive-format.sh, generate-manifest.py Documentation: AGENTS.md, README.md, local/AGENTS.md updated for release fork model
48 lines
2.0 KiB
Diff
48 lines
2.0 KiB
Diff
diff --git a/src/scheme/proc.rs b/src/scheme/proc.rs
|
|
--- a/src/scheme/proc.rs
|
|
+++ b/src/scheme/proc.rs
|
|
@@ -147,6 +147,7 @@ enum ContextHandle {
|
|
Priority,
|
|
SchedAffinity,
|
|
SchedPolicy,
|
|
+ Name,
|
|
|
|
MmapMinAddr(Arc<AddrSpaceWrapper>),
|
|
}
|
|
@@ -267,7 +268,8 @@ impl ProcScheme {
|
|
"sched-affinity" => (ContextHandle::SchedAffinity, true),
|
|
// TODO: Switch this kernel-local proc handle over to a stable upstream
|
|
// redox_syscall ProcCall::SetSchedPolicy opcode once that lands.
|
|
"sched-policy" => (ContextHandle::SchedPolicy, false),
|
|
+ "name" => (ContextHandle::Name, false),
|
|
"status" => (ContextHandle::Status { privileged: false }, false),
|
|
_ if path.starts_with("auth-") => {
|
|
let nonprefix = &path["auth-".len()..];
|
|
@@ -1218,5 +1220,15 @@ impl ContextHandle {
|
|
Ok(2)
|
|
}
|
|
+ ContextHandle::Name => {
|
|
+ let mut name_buf = [0u8; 32];
|
|
+ let len = buf.copy_common_bytes_to_slice(&mut name_buf[..31]).unwrap_or(0);
|
|
+ let mut context = context.write(token.token());
|
|
+ context.name.clear();
|
|
+ if let Ok(s) = core::str::from_utf8(&name_buf[..len]) {
|
|
+ context.name.push_str(s);
|
|
+ }
|
|
+ Ok(len)
|
|
+ }
|
|
ContextHandle::Status { privileged } => {
|
|
let mut args = buf.usizes();
|
|
|
|
@@ -1532,6 +1544,10 @@ impl ContextHandle {
|
|
let data = [context.sched_policy as u8, context.sched_rt_priority];
|
|
buf.copy_common_bytes_from_slice(&data)
|
|
}
|
|
+ ContextHandle::Name => {
|
|
+ let context = context.read(token.token());
|
|
+ buf.copy_common_bytes_from_slice(context.name.as_bytes())
|
|
+ }
|
|
ContextHandle::Status { .. } => {
|
|
let status = {
|
|
let context = context.read(token.token());
|