S337 · SOURCE-BOUND GATE EVIDENCE
S337 · IPC-block context-save production writer guard integration
production acquire → S247 guard modülü → Operations-bound focused test Bu sayfa yalnız S337 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S337Production writer guardOperations id exactsource SHA exacttest target exact
operation: g8l-s337-ipc-block-context-save-writer-guard-integration-partial
production · S247 guard · focused test · Operations · 4 exact excerpt
sequence-bound=true · implementation-bound=true
01 · Test edilen uygulama/model kodu
Kapının yürüttüğü gerçek kaynak
tam Rust öğesiL6173–L6200
kernel/src/task/scheduler.rs::save_user_context_for_ipc_block
/// M6.2 — IPC block için user context kaydet (yield ile neredeyse aynı)
pub unsafe fn save_user_context_for_ipc_block(ctx: &ExceptionContext, user_sp: u64) {
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s337_irq_guard = crate::arch::aarch64::IrqGuard::new();
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s337_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s337_ipc_block_context_save_writer_guard_integration::acquire_s337_production_scheduler_writer_access()
.unwrap_or_else(|error| {
panic!(
"S337 IPC-block context-save scheduler writer guard failed closed: {:?}",
error
)
});
let sched = &mut *core::ptr::addr_of_mut!(SCHEDULER);
if let Some(curr) = &mut sched.current_task {
curr.is_user = true;
curr.user_sp = user_sp;
curr.saved_user_elr = ctx.elr_el1;
curr.saved_user_spsr = ctx.spsr_el1;
curr.saved_user_gprs[..30].copy_from_slice(&ctx.gpr[..]);
curr.saved_user_gprs[30] = ctx.lr;
}
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s337_writer_access);
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s337_irq_guard);
}snippet sha256: e183dddf2d66…file sha256: 838dd474448c…
02 · Ortak exclusion üyeliği
S247 production writer guard
tam Rust öğesiL153–L165
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s337_ipc_block_context_save_writer_guard_integration.rs::acquire_s337_production_scheduler_writer_access
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s337_production_scheduler_writer_access(
) -> Result<G8lS337ProductionSchedulerWriterAccess, G8lS247WholeSchedulerAccessError> {
let caller_cpu =
crate::percpu::try_current_cpu_id().ok_or(G8lS247WholeSchedulerAccessError::InvalidCpu)?;
if caller_cpu != crate::g8l_runtime_contract::CPU0 {
return Err(G8lS247WholeSchedulerAccessError::InvalidCpu);
}
let access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s246_whole_scheduler_read_access_guard::S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE
.try_acquire_exclusive_for_valid_cpu(caller_cpu)?;
Ok(G8lS337ProductionSchedulerWriterAccess { _access: access })
}snippet sha256: e314afd45573…file sha256: 13af0e01b83c…
03 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL228–L245
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s337_ipc_block_context_save_writer_guard_integration.rs::target_function_contains_one_scheduler_writer_and_one_s337_guard
#[test]
fn target_function_contains_one_scheduler_writer_and_one_s337_guard() {
let target = ipc_block_context_save_boundary();
assert_eq!(target.matches("addr_of_mut!(SCHEDULER)").count(), 1);
assert_eq!(
target
.matches("acquire_s337_production_scheduler_writer_access()")
.count(),
1
);
assert_eq!(
target
.matches("if let Some(curr) = &mut sched.current_task")
.count(),
1
);
}snippet sha256: 356413215db7…file sha256: d5fa510006f3…
04 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL14132–L14205
website/src/lib/operations.ts::g8l-s337-ipc-block-context-save-writer-guard-integration-partial
{
id: "g8l-s337-ipc-block-context-save-writer-guard-integration-partial",
date: "2026-08-27",
sequence: 337,
status: "passed",
umbrella_status: "partial",
title: "S337 · IPC-block context-save production writer guard integration",
summary:
"S337, save_user_context_for_ipc_block içindeki tek mutable SCHEDULER yolunu IRQ-masked CPU0 sınırında S336 ve 44 production reader'ın kullandığı aynı S247 state word'e bağlar. Writer üyeliği koşullu current-task kontrolü ile user/SP/ELR/SPSR/x0–x29/LR snapshot'ını kapsar; writer IRQ restore'dan önce düşer ve current task yoksa tarihsel no-op korunur. Guarded writer 10/69, açık writer 59 ve provider authority 0'dır. Fonksiyon export edilmiştir fakat direct runtime callsite sayısı 0'dır; downstream first-ERET writer açıktır.",
evidence: [
"Focused IPC-block context-save writer-integration kapısı iki bağımsız seri koşuda 24/24 PASS verdi.",
"Aynı S247 state word üzerinde CPU0-only writer membership, non-CPU0 pre-commit rejection, reader→writer ve writer→reader exclusion, exact-once commit/error release ve S336→S337 token monotonluğu doğrulandı.",
"Production kaynak sırası IRQ guard → acquire_s337 writer → tek mutable alias → koşullu current-task user/SP/ELR/SPSR/x0–x29/LR snapshot → writer drop → IRQ restore olarak kilitlendi. Missing-current-task yolu tarihsel no-op kalır.",
"Exact tarihsel S299 IPC-block context-save semantiği korunur. Önceki S336 yield-context-save writer ayrı kalır ve downstream first_eret_to_user_direct writer değiştirilmez.",
"Guarded fonksiyon task modülünden export edilir ancak mevcut production kaynakta direct runtime callsite=0'dır; supported-profile compile invocation veya runtime observation kanıtı değildir.",
"QEMU, RPi4, RPi5 ve RPi5+SMP AArch64 compile profilleri fresh ve izole target dizinlerinde 4/4 exit 0 verdi; zero-warning iddiası yoktur.",
"S238–S337 dependency matrisi iki bağımsız koşuda 101 grup / 1518/1518 PASS verdi.",
"Exact yedi tarihsel G8h assertion adı dışlanıp kayıtlı --test-threads=1 kabulü kullanıldığında tam workspace 299 sonuç grubu / 3344 PASS / 0 fail / 7 filtered verdi. Filtresiz frozen S96 identity reddi nedeniyle global workspace GREEN iddia edilmez.",
"make verify-qemu ortak regresyonu strict ELF W^X 31/31 ve S130–S154 kabul zinciriyle bir kez PASS verdi. Bu, S337 fonksiyon invocation veya fiziksel cihaz gözlemi değildir.",
"Website 521/521 test ile PASS; lint, boş çıktılı TypeScript kontrolü ve 23/23 static route ayrıca geçti. Cloudflare Pages production/main ilk içerik yayını 5a4ce4b8 ile tamamlandı; cache-busted custom-domain /operations/ ve /timeline/ HTTP 200 döndü ve yerel out ile byte-exact eşleşti.",
"Timeline yayın politikaları tek birleşik kutudan ayrıldı: canlı/statik çıktıda 176 bağımsız gate kartı vardır; S324 ve S323 kartları ayrı ayrı tam birer kez bulunur.",
"S245 request ve S244 admission dokunulmadan kalır; production provider authority=0, whole-scheduler exclusion=false ve toplam 59 production writer açık kalır.",
"Fiziksel/device işlem yapılmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S337=NO.",
],
commands: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s337_ipc_block_context_save_writer_guard_integration -- --test-threads=1",
"cargo build --manifest-path kernel/Cargo.toml --target aarch64-unknown-none --no-default-features --features board-rpi5",
"cargo build --manifest-path kernel/Cargo.toml --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
"cargo test --workspace --quiet -- --test-threads=1 [seven exact historical --skip filters]",
"make verify-qemu",
],
terminalSessions: [
{
id: "g8l-s337-ipc-block-context-save-writer-guard-integration",
title: "G8l S337 IPC-block context-save writer guard integration",
commandLines: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s337_ipc_block_context_save_writer_guard_integration -- --test-threads=1",
],
outputLines: [
"test result: ok; S337 focused 1 group / 24 passed; 0 failed",
"shared S247 gate: 44 guarded readers + 10/69 guarded writers; 59 writers open",
"guarded definition exported; direct runtime callsite 0; next first-ERET writer open",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s337-operations-timeline-production-publication",
title: "S337 Operations/Timeline production publication",
commandLines: [
"npm run deploy",
"curl --cache-busted https://aselsan.kerege.net/{operations,timeline}/ and compare with local out",
],
outputLines: [
"Cloudflare Pages production/main initial content deployment: 5a4ce4b8",
"custom domain: operations HTTP 200 / timeline HTTP 200; both byte-exact with local out",
"timeline gate-policy cards=176; S324=1; S323=1; combined gate-policy box absent",
"direct immutable pages.dev fetch: curl exit 28 / HTTP 000 timeout; direct-host equality not claimed",
],
exitCode: 0,
outputMode: "complete",
},
],
terminalSessionsNote:
"S337 onuncu production writer'ın kaynak entegrasyonudur. Guarded definition dört profilde derlenmiştir fakat direct runtime callsite veya cihaz gözlemi yoktur; global exclusion ya da provider authority oluşmamıştır.",
limitations: [
"59 production writer aynı shared gate dışında kaldığı için whole-scheduler exclusion ve provider authority açık kalır.",
"Guarded fonksiyon export edilir ve dört profilde derlenir; direct runtime callsite ve runtime/cihaz gözlemi yoktur.",
"Downstream first_eret_to_user_direct writer entegrasyonu özellikle açık bırakılmıştır.",
"Default-parallel PTY determinism S331'den açık taşınır; kayıtlı seri kabul matrisi kullanılır.",
"Transient-contention liveness/soak, Generic SMP ve fiziksel RPi kabulü açık kalır.",
"Immutable pages.dev adresi bu hosttan timeout verdi; yalnız custom-domain HTTP 200 ve byte-exact artifact eşitliği iddia edilir.",
],
},snippet sha256: e71c0eaaabc1…file sha256: 9726dbf00f84…
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s337_ipc_block_context_save_writer_guard_integration -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S337-IPC-Block-Context-Save-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9