ASELSANMicrokernel
S223 · SOURCE-BOUND GATE EVIDENCE

G8l: production migration-lifecycle S187 context-switch receipt

Operations --test hedefi → test hedefiyle aynı adlı uygulama/model modülü → kaynak kesiti Bu sayfa yalnız S223 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.

S223Focused kod testiOperations id exactsource SHA exacttest target exact

operation: g8l-s223-production-migration-lifecycle-s187-context-switch-partial

uygulama/model · focused test · Operations · 3 exact excerpt

sequence-bound=true · implementation-bound=true
01 · Testin bağlı olduğu uygulama/model kodu

Kapının yürüttüğü gerçek kaynak

tam Rust öğesiL25–L53
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s187_context_switch.rs::publish_runtime_owner_tuple_from_s187_context_switch_receipt

/// Consume one exact S187 context-switch receipt, commit S188 once, and enter
/// S222. Every downstream error is terminal; no replacement or retry is added.
pub fn publish_runtime_owner_tuple_from_s187_context_switch_receipt(
    queue: &mut G8lRuntimeOwnerS197TupleHandoffQueue,
    mut runtime: G8lRuntimeAuthority,
    authority: G8lSchedulerOwnerAuthority,
    context_switch: G8lTargetDispatchContextSwitchReceipt,
    caller_cpu: usize,
    target_cpu: usize,
    irqs_masked: bool,
) -> Result<(), G8lMigrationLifecycleS187ContextSwitchError> {
    let eret = G8lTargetDispatchEretReceipt::commit_context_switch(
        &mut runtime,
        caller_cpu,
        context_switch,
    )
    .map_err(G8lMigrationLifecycleS187ContextSwitchError::Eret)?;
    publish_runtime_owner_tuple_from_s188_eret_receipt(
        queue,
        runtime,
        authority,
        eret,
        caller_cpu,
        target_cpu,
        irqs_masked,
    )
    .map_err(G8lMigrationLifecycleS187ContextSwitchError::S188)
}
snippet sha256: d1669d7d7237file sha256: 01238a54526f
02 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL230–L249
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s187_context_switch.rs::s223_keeps_scheduler_gic_hardware_and_physical_boundaries_closed

#[test]
fn s223_keeps_scheduler_gic_hardware_and_physical_boundaries_closed() {
    let source = include_str!("../../kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s187_context_switch.rs");
    for forbidden in [
        "task::scheduler",
        "SCHEDULER",
        "gic::",
        "send_sgi",
        "runtime.context_switch(",
        "write_ttbr0",
        "eret()",
        "power_on",
    ] {
        assert!(
            !source.contains(forbidden),
            "forbidden S223 marker: {forbidden}"
        );
    }
}
snippet sha256: 058cb2fc13b0file sha256: 4e0717679234
03 · Kapı kimlik kaydı

Operations sıra, kimlik ve başlık bağı

tam Operations kaydıL20488–L20539
website/src/lib/operations.ts::g8l-s223-production-migration-lifecycle-s187-context-switch-partial
  {
    id: "g8l-s223-production-migration-lifecycle-s187-context-switch-partial",
    date: "2026-08-25",
    sequence: 223,
    status: "passed",
    umbrella_status: "partial",
    title: "G8l: production migration-lifecycle S187 context-switch receipt",
    summary:
      "S223 13/13 PASS ile production adaptörünün non-Copy exact S187 ReadyPublished→ContextSwitched receipt'i by-value kabul edip revalidation sonrası S188/S222 zincirine devretmesi source/ABI olarak bağlandı. Host bounded S187 receipt, ContextSwitchNotConsumed ile S188 ve kuyruk mutasyonundan önce fail-closed reddedildi. Exact production yol runtime'da invoke edilmedi.",
    evidence: [
      "S223 focused grubu iki bağımsız koşuda 13/13 PASS: bir behavioral bounded-negative test ile host receipt'in exact S187 sınırını geçemediği ve kuyruğun boş kaldığı doğrulandı; kalan kontroller by-value ABI, revalidation-before-identity, S187→S188→S222 source order, CPU1 target gate ve explicit IRQ prerequisite forwarding'i sabitledi. Bu sonuç host exact-receipt runtime PASS iddiası değildir.",
      "Focused koşular byte-eşit kaldı: 128 B / SHA-256 02983f1a7d644519bfddb0884a6cd0ce69f40c4b845eb54b71ecdc6e19a8ff09.",
      "S206 callsite/readback + S207–S223 dependency matrix frozen S222 prefix'i üzerine 20 grup / 238/238 PASS ve 2536 B / SHA-256 2c4290528559fec68b3ff14c28a4797ed038ea63637110f4ad1e221fd86cc437 verdi; ilk 2408 B exact S222 dependency prefix'idir.",
      "S155–S223 explicit sequence-ordered matrix frozen S222 prefix'i üzerine 72 grup / 721/721 PASS ve 8947 B / SHA-256 e3b3864d73fb13614d63ab36e311798c9ba75ac2b474c33d107fea1a87fe621f verdi; exact S222 8819 B prefix'i korundu.",
      "RPi5 AArch64 compile PASS: 576 warning envanterlendi; 289090 B / SHA-256 a06ea115133c5fc5f79a53347ba6b7b13c9506d19135fb4a4d5ef22cdbdd3af8. `smp`: 576 warning, 289032 B / SHA-256 cabce38fa6bdef870d639c7f11a1ef7c7a3dfa2d306ae240b4aa98b348b71b8e. Zero-warning iddiası yoktur.",
      "Kalıcı kapsam: `docs/M8.1-RPi5-G8l-S223-Migration-Lifecycle-S187-Context-Switch-Proof.md`.",
      "Production S187 adapter yalnız typed non-Copy receipt'i by-value alır ve exact constructor revalidation'ından sonra S188'e ilerler. Bounded host receipt Eret(ContextSwitch(ContextSwitchNotConsumed)) ile reddedilir; önceki makbuz tüketimini true yapan host yükseltme helper'ları kaldırılmıştır. Downstream wrong-target/occupied-slot kapıları S206–S223 dependency matrisinde korunur.",
      "S223 fiziksel/device operasyonu yapmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S223=NO.",
      "S187→S188 migration-lifecycle callsite wired/AArch64-compiled'dır fakat boot veya migration runtime callsite'ı henüz invoke edilmedi; present request, S207 invocation veya scheduler mutation gözlemi iddia edilmez.",
      "Görünür tarihsel fiziksel sıra: Gücü kapat → SD kartı Pi'den çıkar → SD kartı Mac'e tak → Yetkili write/verify/read-back işlemini tamamla → SD kartı Mac'ten güvenli çıkar → SD kartı güçsüz Pi'ye tak → UART capture pre-arm ve exact identity kapısını doğrula → Güç ver. Bu sıra yalnız S124'te tamamlandı; S223'te uygulanmadı.",
      "Canlı marker: S223_13_OF_13_MIGRATION_LIFECYCLE_S187_CONTEXT_SWITCH_EXACT_PATH_SOURCE_ABI_BOUND_BOUNDED_S187_REJECTED_CONTEXT_SWITCH_NOT_CONSUMED_QUEUE_UNCHANGED_NONCOPY_S187_BY_VALUE_REVALIDATION_BEFORE_S188_S222_S221_S220_S219_S218_S217_S216_S215_S214_S213_S212_DOWNSTREAM_SINGLE_SLOT_INGRESS_AARCH64_COMPILED_NOT_RUNTIME_INVOKED_PRESENT_REQUEST_NOT_OBSERVED_LEGACY_SCHEDULER_ACCESSES_UNCOVERED_WHOLE_SCHEDULER_GIC_HARDWARE_QEMU_PHYSICAL_CPU2_CPU3_HOTPLUG_SOAK_GENERIC_SMP_OPEN_FULL_PHYSICAL_RUNBOOK_VISIBLE_S383_TO_S433_S408_NO_RUNBOOK_EXECUTED_IN_S223_VERIFIED; deployment-specific route/hash evidence is recorded in the project-status manifest.",
    ],
    commands: [
      "cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s187_context_switch -- --test-threads=1",
      "cargo check --quiet --manifest-path kernel/Cargo.toml --target aarch64-unknown-none --no-default-features --features board-rpi5",
      "cargo check --quiet --manifest-path kernel/Cargo.toml --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
    ],
    terminalSessions: [
      {
        id: "s223-g8l-production-migration-lifecycle-s187-context-switch",
        title: "G8l S223 migration-lifecycle S187 context-switch receipt",
        commandLines: [
          "cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s187_context_switch -- --test-threads=1",
        ],
        outputLines: [
          "test result: ok; 13 passed; 0 failed",
          "bounded host S187 receipt: ContextSwitchNotConsumed; S188 and queue mutation: absent",
          "production ABI: non-Copy S187 by-value; revalidate before S188; then existing S222 downstream",
          "exact production receipt/runtime path is AArch64-compiled but not invoked",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
    ],
    terminalSessionsNote:
      "Terminal özeti S223 exact-path source/ABI sınırını ve bounded-negative fail-closed davranışı gösterir; exact production migration runtime, QEMU veya fiziksel cihaz çalıştırması değildir.",
    limitations: [
      "S223 production adapter'ı typed S187 receipt'i by-value kabul eder; host tarafında exact receipt üretilemediği için exact S187→S188 runtime yürütümü iddia edilmez. Bounded receipt'in reddi kanıtlanmıştır.",
      "Whole-scheduler exclusion, legacy scheduler erişimleri, GIC/SGI capture, QEMU present-tuple yolu, fiziksel RPi ve Generic SMP açıktır.",
      "S223 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S223=NO.",
    ],
  },
snippet sha256: 2b5b5d951602file sha256: 9726dbf00f84
Focused test komutu
cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s187_context_switch -- --test-threads=1
proof: docs/M8.1-RPi5-G8l-S223-Migration-Lifecycle-S187-Context-Switch-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9