ASELSANMicrokernel
S239 · SOURCE-BOUND GATE EVIDENCE

G8l: production migration-lifecycle exact S179 notification delivery descriptor

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

S239Focused kod testiOperations id exactsource SHA exacttest target exact

operation: g8l-s239-production-migration-lifecycle-s179-execution-caller-notification-delivery-descriptor-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 öğesiL102–L132
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_descriptor.rs::consume_s179_execution_caller_notification_delivery_descriptor_on_cpu0

/// Convert the S238 request into one CPU0 descriptor and consume it.
///
/// No GIC register, SGI/IPI, wake, scheduler, or ERET operation is performed.
#[cfg(all(target_arch = "aarch64", target_os = "none"))]
pub unsafe fn consume_s179_execution_caller_notification_delivery_descriptor_on_cpu0(
    request: G8lS179ExecutionCallerNotificationDeliveryRequest,
) -> Result<
    G8lS179ExecutionCallerNotificationDeliveryDescriptor,
    G8lProductionS179ExecutionCallerNotificationDeliveryDescriptorError,
> {
    use crate::g8l_runtime_contract::CPU0;

    if crate::percpu::try_current_cpu_id() != Some(CPU0) {
        return Err(
            G8lS179ExecutionCallerNotificationDeliveryDescriptorPrepareError::WrongTargetCpu,
        );
    }
    let mut descriptor =
        G8lS179ExecutionCallerNotificationDeliveryDescriptor::from_consumed_request(
            request,
            S179_TYPED_DELIVERY_TARGET_CPU0,
            S179_TYPED_DELIVERY_CHANNEL,
        )?;
    descriptor.consume().map_err(|error| match error {
        G8lS179ExecutionCallerNotificationDeliveryDescriptorConsumeError::AlreadyConsumed => {
            G8lS179ExecutionCallerNotificationDeliveryDescriptorPrepareError::RequestNotConsumed
        }
    })?;
    Ok(descriptor)
}
snippet sha256: 712895d8680dfile sha256: cdf9899a2ec7
02 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL35–L53
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_descriptor.rs::s238_request_is_consumed_before_s239_descriptor

#[test]
fn s238_request_is_consumed_before_s239_descriptor() {
    let mut request = G8lS179ExecutionCallerNotificationDeliveryRequest::new();
    request.issue().unwrap();
    assert_eq!(
        request.phase(),
        G8lS179ExecutionCallerNotificationDeliveryRequestPhase::Issued
    );
    let request = request.take().unwrap();
    assert_eq!(
        request.phase(),
        G8lS179ExecutionCallerNotificationDeliveryRequestPhase::Consumed
    );
    assert!(
        G8lS179ExecutionCallerNotificationDeliveryDescriptor::from_consumed_request(request, 0, 0,)
            .is_ok()
    );
}
snippet sha256: 0c6fd29646ccfile sha256: 27f800c1635e
03 · Kapı kimlik kaydı

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

tam Operations kaydıL19663–L19711
website/src/lib/operations.ts::g8l-s239-production-migration-lifecycle-s179-execution-caller-notification-delivery-descriptor-partial
  {
    id: "g8l-s239-production-migration-lifecycle-s179-execution-caller-notification-delivery-descriptor-partial",
    date: "2026-08-25",
    sequence: 239,
    status: "passed",
    umbrella_status: "partial",
    title:
      "G8l: production migration-lifecycle exact S179 notification delivery descriptor",
    summary:
      "S239 17/17 PASS ile S238'de tüketilen allocation-free delivery request'i non-Copy/non-Clone CPU0 hedefli Prepared→Consumed typed delivery descriptor'a bağladı; descriptor mevcut S236 consumer sırasından önce terminal olarak tüketilir. Bu source/ABI ordering boundary gerçek GIC/SGI/IPI delivery, CPU0 wake, runtime-authority transportu, scheduler mutation, ERET veya fiziksel runtime değildir.",
    evidence: [
      "İlk kaynak denetiminde descriptor'ın Copy/Clone olduğu görüldü ve kabul edilmedi; lineerlik düzeltmesinden sonra S239 focused grubu iki bağımsız byte-equal koşuda 17/17 PASS verdi: 132 B / SHA-256 8eb5a71ff5112cf797b68def417e9438ddfec64914b3c2d303de6a51cf61f6d4.",
      "S238 delivery request + S239 delivery descriptor matrisi iki byte-equal koşuda 2 grup / 33/33 PASS verdi: 263 B / SHA-256 ae826c38a01a7e5e3af22d68451142511b684f2d5faa5fd75e6d81738e81dcd8.",
      "RPi5 AArch64 compile PASS: 666 warning envanterlendi; 325302 B / SHA-256 99233d523f7b64cd1e7ba64c241dfe52fad7858fe3a1ee106706c6364aabca3f. smp: 666 warning, 325244 B / SHA-256 ede0155412bcf70763ca747f4fd7ce33b5fba926012e8e1dc769aa964844e478. Zero-warning iddiası yoktur.",
      "Taze full-workspace koşusunda 153 tam yeşil grup / 1508 test ve kırmızı gruptaki 8 test PASS verdi; yalnız frozen S96 exceptions.S identity assertion'ı kırmızı kaldı. Log 48839 B / SHA-256 2f19349fbb651193932f31cfe4aeac50861835580d41ca3075354945c5e5c044; tam-workspace GREEN iddia edilmez.",
      "Kalıcı kapsam: docs/M8.1-RPi5-G8l-S239-Migration-Lifecycle-S179-Execution-Caller-Notification-Delivery-Descriptor-Proof.md.",
      "S239 source/ABI sırası exact S238 request consumed → CPU0-targeted Prepared descriptor → descriptor Consumed → S236 consumer'dır; replacement/reset/retry authority yoktur.",
      "S239 fiziksel/device operasyonu yapmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S239=NO.",
      "Canlı marker: S239_17_OF_17_MIGRATION_LIFECYCLE_S179_EXECUTION_CALLER_NOTIFICATION_DELIVERY_DESCRIPTOR_NONCOPY_NONCLONE_S238_REQUEST_CONSUMED_ONCE_S239_CPU0_TARGET_DESCRIPTOR_PREPARED_CONSUMED_S236_CONSUMER_ORDER_NO_GIC_SGI_IPI_NO_CPU0_WAKE_NO_RUNTIME_AUTHORITY_TRANSPORT_NO_RETRY_NO_REPLACEMENT_NO_RESET_AARCH64_COMPILED_PRESENT_REQUEST_NOT_OBSERVED_SCHEDULER_MUTATION_NOT_OBSERVED_ERET_HARDWARE_QEMU_PHYSICAL_CPU2_CPU3_HOTPLUG_SOAK_GENERIC_SMP_OPEN_FULL_PHYSICAL_RUNBOOK_VISIBLE_S399_TO_S449_S424_NO_RUNBOOK_EXECUTED_IN_S239_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_s179_execution_caller_notification_delivery_descriptor -- --test-threads=1",
      "cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5",
      "cargo check -p aselsan_kernel --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
    ],
    terminalSessions: [
      {
        id: "s239-g8l-production-migration-lifecycle-s179-execution-caller-notification-delivery-descriptor",
        title: "G8l S239 one-shot S179 notification delivery descriptor",
        commandLines: [
          "cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_descriptor -- --test-threads=1",
        ],
        outputLines: [
          "test result: ok; 17 passed; 0 failed",
          "S238 request is consumed before the CPU0-targeted Prepared → Consumed descriptor",
          "descriptor is consumed before S236; no GIC/SGI/IPI, wake, scheduler or physical path",
        ],
        exitCode: 0,
        outputMode: "selected",
      },
    ],
    terminalSessionsNote:
      "Terminal özeti S239'un S238 delivery request'ini CPU0 hedefli typed descriptor'a bağladığını gösterir; gerçek interrupt delivery veya production scheduler/hardware execution kanıtı değildir.",
    limitations: [
      "S239 yalnızca CPU0-targeted typed delivery descriptor Prepared→Consumed sınırıdır; GIC/SGI/IPI delivery ve CPU0 wake/dispatch bağlı değildir.",
      "S236/S231 typed S187 handoff sınırında durur; scheduler mutation, ERET/context-switch, QEMU present-tuple, fiziksel RPi, CPU2/CPU3, hotplug, soak ve Generic SMP açıktır.",
      "S239 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S239=NO.",
    ],
  },
snippet sha256: 9b3a76e17517file sha256: 9726dbf00f84
Focused test komutu
cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller_notification_delivery_descriptor -- --test-threads=1
proof: docs/M8.1-RPi5-G8l-S239-Migration-Lifecycle-S179-Execution-Caller-Notification-Delivery-Descriptor-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06