S171 · SOURCE-BOUND GATE EVIDENCE
G8l: CPU1-guarded target-AArch64 dispatch source route
Operations --test hedefi → test hedefiyle aynı adlı uygulama/model modülü → kaynak kesiti Bu sayfa yalnız S171 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S171Focused kod testiOperations id exactsource SHA exacttest target exact
operation: g8l-s171-target-aarch64-dispatch-source-partial
uygulama/model · focused test · Operations · 3 exact excerpt
sequence-bound=true · implementation-bound=false
01 · Testin bağlı olduğu uygulama/model kodu
Kapının yürüttüğü gerçek kaynak
tam Rust öğesiL35–L97
kernel/src/g8l_target_aarch64_dispatch.rs::dispatch_target_aarch64
impl G8lTargetAarch64DispatchRoute {
pub fn new(
architecture: G8lArchInstructionSeam,
) -> Result<Self, G8lTargetAarch64DispatchError> {
if architecture.phase() != ArchInstructionPhase::TlbiIssued {
return Err(G8lTargetAarch64DispatchError::InvalidArchitecturePhase);
}
if architecture.runtime_instance_id() == 0 {
return Err(G8lTargetAarch64DispatchError::UnboundRuntimeInstance);
}
Ok(Self {
architecture,
dispatched_receipt: None,
})
}
/// Dispatch the target-only AArch64 instruction seam.
///
/// This is intentionally unavailable to host builds. A successful return
/// proves only that the architecture seam returned its receipt; S167 GIC
/// receipt delivery, S166 scheduler ownership, and context-switch
/// assembly remain separate acceptance gates.
#[cfg(all(target_arch = "aarch64", target_os = "none"))]
pub unsafe fn dispatch_target_aarch64(
&mut self,
) -> Result<ArchInstructionReceipt, G8lTargetAarch64DispatchError> {
if crate::percpu::try_current_cpu_id() != Some(CPU1) {
return Err(G8lTargetAarch64DispatchError::WrongExecutionCpu);
}
let receipt = unsafe { self.architecture.execute_local_aarch64()? };
self.dispatched_receipt = Some(receipt);
Ok(receipt)
}
pub const fn architecture_phase(&self) -> ArchInstructionPhase {
self.architecture.phase()
}
pub const fn source_receipt(&self) -> Option<ArchInstructionReceipt> {
self.architecture.receipt()
}
pub const fn dispatched_receipt(&self) -> Option<ArchInstructionReceipt> {
self.dispatched_receipt
}
pub const fn runtime_instance_id(&self) -> u64 {
self.architecture.runtime_instance_id()
}
pub const fn ticket(&self) -> crate::g8l_authority_contract::MigrationTicket {
self.architecture.ticket()
}
pub const fn gic_delivery_wired(&self) -> bool {
false
}
pub const fn scheduler_runtime_wired(&self) -> bool {
false
}
}snippet sha256: e0ebab7ab4c6…file sha256: c7fa9f65b932…
02 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL145–L158
simulation/tests/g8l_target_aarch64_dispatch.rs::target_route_is_source_audited_without_gic_or_scheduler_claims
#[test]
fn target_route_is_source_audited_without_gic_or_scheduler_claims() {
let source = include_str!("../../kernel/src/g8l_target_aarch64_dispatch.rs");
assert!(source.contains("#[cfg(all(target_arch = \"aarch64\", target_os = \"none\"))]"));
assert!(source.contains("pub unsafe fn dispatch_target_aarch64"));
assert!(source.contains("execute_local_aarch64"));
assert!(source.contains("try_current_cpu_id() != Some(CPU1)"));
assert!(source.contains("UnboundRuntimeInstance"));
assert!(source.contains("gic_delivery_wired(&self) -> bool"));
assert!(source.contains("scheduler_runtime_wired(&self) -> bool"));
assert!(!source.contains("send_sgi("));
assert!(!source.contains("gic::"));
}snippet sha256: 14b3b552cd8c…file sha256: ed687abc0215…
03 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL23029–L23081
website/src/lib/operations.ts::g8l-s171-target-aarch64-dispatch-source-partial
{
id: "g8l-s171-target-aarch64-dispatch-source-partial",
date: "2026-08-24",
sequence: 171,
status: "passed",
umbrella_status: "partial",
title: "G8l: CPU1-guarded target-AArch64 dispatch source route",
summary:
"S171, S168 `TlbiIssued` seam'ine yalnız target_arch=aarch64 + target_os=none altında derlenen açık `dispatch_target_aarch64` route'unu 4/4 host source test ve board-rpi5 derlemesiyle bağladı. Route nonzero exact S166 runtime-instance bağını ister ve unsafe instruction çağrısından hemen önce production MPIDR decoder ile local CPU=CPU1 kapısını fail-closed uygular. S167 GIC/SGI receipt delivery, S166 scheduler ownership, context-switch assembly, QEMU veya fiziksel çalışma yapmaz; S170 bounded witness hardware-derived olarak yeniden etiketlenmedi.",
evidence: [
"g8l_target_aarch64_dispatch: 4/4 PASS; yalnız runtime-bound TlbiIssued kabulü, runtime-unbound/pre-TLBI fail-closed ve production-source audit.",
"Target-only cfg ve `pub unsafe fn dispatch_target_aarch64` source-visible; route production `try_current_cpu_id()==CPU1` guard'ından sonra S168 `execute_local_aarch64` çağrısını kullanır.",
"Value-equal fakat S166 runtime-instance kimliği taşımayan TlbiIssued seam `UnboundRuntimeInstance` ile reddedilir.",
"GIC delivery ve scheduler runtime wiring route üzerinde açıkça false; SGI/GIC/context-switch/QEMU/physical authority iddia edilmez.",
"Board-rpi5 AArch64 source check başarıyla tamamlandı; mevcut workspace warning'leri korunuyor.",
"Kalıcı kapsam: `docs/M8.1-RPi5-G8l-S171-Target-AArch64-Dispatch-Source-Proof.md`.",
"S171 fiziksel/device operasyonu yapmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S171=NO.",
],
commands: [
"cargo test --quiet --test g8l_target_aarch64_dispatch -- --test-threads=1",
"cargo check -p aselsan_kernel --no-default-features --features board-rpi5 --target aarch64-unknown-none",
],
terminalSessions: [
{
id: "s171-g8l-target-aarch64-dispatch",
title: "G8l S171 target-only AArch64 dispatch source route",
commandLines: [
"cargo test --quiet --test g8l_target_aarch64_dispatch -- --test-threads=1",
],
outputLines: ["running 4 tests", "test result: ok; 4 passed; 0 failed"],
exitCode: 0,
outputMode: "selected",
},
{
id: "s171-g8l-target-aarch64-board-check",
title: "G8l S171 board-rpi5 source check",
commandLines: [
"cargo check -p aselsan_kernel --no-default-features --features board-rpi5 --target aarch64-unknown-none",
],
outputLines: ["Finished successfully; existing warnings only"],
exitCode: 0,
outputMode: "selected",
},
],
terminalSessionsNote:
"S171 CPU1-guarded target-AArch64 source route PASS'tir; production callsite, GIC/SGI delivery ve scheduler-owned migration runtime kanıtı değildir.",
limitations: [
"S171 host'ta target-only unsafe method çalıştırmaz; 4/4 test runtime-instance/CPU1 kapılı kaynak rotasını ve fail-closed boundary'yi denetler.",
"CPU1 MPIDR kontrolü production source'tadır; route'u CPU1'e teslim eden gerçek SGI/GIC/scheduler callsite henüz bağlı değildir.",
"S171 S168 architecture receipt'i dışında S167 GIC/SGI, S166 scheduler/context-switch, QEMU ve fiziksel RPi authority'si açmaz.",
"S171 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S171=NO.",
],
},snippet sha256: 229f0eb3488a…file sha256: 9726dbf00f84…
Focused test komutu
cargo test --quiet --test g8l_target_aarch64_dispatch -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S171-Target-AArch64-Dispatch-Source-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9