ASELSANMicrokernel
S362 · SOURCE-BOUND GATE EVIDENCE

S362 · Timed IPC RECEIVE-cancel production writer guard integration

production acquire → S247 guard modülü → Operations-bound focused test Bu sayfa yalnız S362 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.

S362Production writer guardOperations id exactsource SHA exacttest target exact

operation: g8l-s362-timed-ipc-receive-cancel-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 öğesiL2512–L2610
kernel/src/ui/capability.rs::cancel_timed_ipc_receive_under_transaction

/// Cancel one exact deadline-bearing RECV. The caller already owns the outer
/// IPC transaction and shared deadline-registry locks, so an ordinary CALL
/// cannot consume the waiter between graph preflight and `cancel_receiver`.
pub(crate) fn cancel_timed_ipc_receive_under_transaction(
    expected: crate::ipc_wait::WaitRecord,
) -> Result<TimedIpcReceiveCancellation, TimedIpcReceiveCancelError> {
    use crate::ipc_wait::WaitKindTag;

    if expected.kind().tag() != WaitKindTag::Receive {
        return Err(TimedIpcReceiveCancelError::NotReceiveWait);
    }
    let receiver_task = expected.key().task_id();
    let endpoint_id = expected.kind().object_id();
    let endpoint_generation = expected.kind().object_generation();

    let mut registry = ENDPOINT_REGISTRY.lock();
    if registry
        .iter()
        .filter(|object| object.id == endpoint_id)
        .count()
        != 1
    {
        return Err(TimedIpcReceiveCancelError::AuthorityGraphMismatch);
    }
    let endpoint_index = registry
        .iter()
        .position(|endpoint| endpoint.id == endpoint_id && !endpoint.is_reply_cap)
        .ok_or(TimedIpcReceiveCancelError::AuthorityGraphMismatch)?;
    let waiter = registry[endpoint_index]
        .rendezvous
        .waiting_receiver()
        .filter(|waiter| {
            waiter.task_id() == receiver_task
                && waiter.wait_token() == endpoint_id
                && waiter.cap_generation() == endpoint_generation
        })
        .ok_or(TimedIpcReceiveCancelError::ReceiverNotParked)?;

    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    let s362_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s362_timed_ipc_receive_cancel_writer_guard_integration::acquire_s362_production_scheduler_writer_access()
        .unwrap_or_else(|error| {
            panic!(
                "S362 timed IPC RECV-cancel scheduler writer guard failed closed: {:?}",
                error
            )
        });
    let scheduler = unsafe { &mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER) };
    let commit_result = (|| {
        let endpoint_authority = scheduler
            .capability_for_task(receiver_task, endpoint_id)
            .filter(|capability| {
                capability.id == endpoint_id
                    && capability.owner == receiver_task
                    && capability.generation == endpoint_generation
                    && capability.kind == CapabilityKind::Endpoint
                    && capability.rights.contains(CapabilityRights::ENDPOINT_RECV)
            })
            .ok_or(TimedIpcReceiveCancelError::AuthorityGraphMismatch)?;
        let waiter_is_exact = registry[endpoint_index]
            .rendezvous
            .waiting_receiver()
            .is_some_and(|current| {
                current.task_id() == receiver_task
                    && current.wait_token() == endpoint_id
                    && current.cap_generation() == endpoint_generation
                    && current == waiter
            });
        let parked_graph_revalidation = if !waiter_is_exact
            || scheduler.ipc_blocked_count_on(endpoint_id) != 1
            || scheduler.ipc_blocked_task_count_on(receiver_task, endpoint_id, false) != 1
        {
            Err(TimedIpcReceiveCancelError::ReceiverNotParked)
        } else {
            Ok(())
        };
        parked_graph_revalidation?;
        let capacity_revalidation = if scheduler.ipc_wake_capacity_available(1) {
            Ok(())
        } else {
            Err(TimedIpcReceiveCancelError::WakeCapacityUnavailable)
        };
        capacity_revalidation?;

        registry[endpoint_index]
            .rendezvous
            .cancel_receiver(waiter)
            .expect("preflighted timed RECV waiter changed inside one IPC transaction");
        scheduler.wake_timed_out_ipc_receiver_exact(receiver_task, endpoint_authority);

        Ok::<TimedIpcReceiveCancellation, TimedIpcReceiveCancelError>(TimedIpcReceiveCancellation {
            receiver_task,
            endpoint_id,
        })
    })();
    #[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
    drop(s362_writer_access);
    commit_result
}
snippet sha256: a03bc9cd2b14file sha256: 304e1227daf9
02 · Ortak exclusion üyeliği

S247 production writer guard

tam Rust öğesiL171–L183
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s362_timed_ipc_receive_cancel_writer_guard_integration.rs::acquire_s362_production_scheduler_writer_access

#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s362_production_scheduler_writer_access(
) -> Result<G8lS362ProductionSchedulerWriterAccess, 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(G8lS362ProductionSchedulerWriterAccess { _access: access })
}
snippet sha256: 36a6f24b94c0file sha256: f7682f632ea8
03 · Doğrulayan test kodu

Operations komutuna bağlı focused test

tam Rust öğesiL413–L424
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s362_timed_ipc_receive_cancel_writer_guard_integration.rs::boundary_has_exactly_one_s362_acquire_and_one_shared_cleanup_release

#[test]
fn boundary_has_exactly_one_s362_acquire_and_one_shared_cleanup_release() {
    let boundary = receive_cancel_boundary();
    assert_eq!(
        boundary
            .matches("acquire_s362_production_scheduler_writer_access")
            .count(),
        1
    );
    assert_eq!(boundary.matches("drop(s362_writer_access)").count(), 1);
}
snippet sha256: a47d7d19c7fcfile sha256: 5548871d6e54
04 · Kapı kimlik kaydı

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

tam Operations kaydıL11642–L11809
website/src/lib/operations.ts::g8l-s362-timed-ipc-receive-cancel-writer-guard-integration-partial
  {
    id: "g8l-s362-timed-ipc-receive-cancel-writer-guard-integration-partial",
    date: "2026-08-28",
    sequence: 362,
    status: "passed",
    umbrella_status: "partial",
    title:
      "S362 · Timed IPC RECEIVE-cancel production writer guard integration",
    summary:
      "S362, cancel_timed_ipc_receive_under_transaction içindeki exact deadline-bearing RECEIVE cancellation transaction'ını S361 ile 44 production reader'ın kullandığı aynı statik S247 state word'e bağlar. Caller outer IPC transaction ve deadline-registry lock'unu zaten taşır. RECEIVE kind, immutable receiver/endpoint identity+generation değerleri, unique ordinary endpoint ve exact waiting-receiver shape'i writer'dan önce kapanır. Gerçek per-CPU kimliğinden yalnız CPU0 için S362 exclusive writer exact tek mutable scheduler aliasından önce alınır. Endpoint CNode RECV authority, waiter ve scheduler blocked-task graph'ı lease altında yeniden doğrulanır; wake kapasitesi destructive commit'ten önce kontrol edilir. Exact cancel_receiver ve timed-out receiver wake aynı writer membership'indedir. Writer owned commit_result dönüşünden önce explicit bırakılır. Guarded writer 35/69, açık writer 34, provider authority 0 ve whole-scheduler exclusion false'dur. Bir direct production source path vardır; supported-profile runtime observation=0'dır. Timed notification cancellation S363 için ayrı açık kalır.",
    evidence: [
      "Focused S362 timed IPC RECEIVE-cancel writer-integration kapısının production değişikliğinden önceki ilk koşusu 33/48 PASS ve 15 RED verdi. RED'ler S362 modül/registrasyonu, production wrapper, CPU1 service, exact boundary acquire, endpoint CNode+waiter+blocked graph+capacity revalidation, cancel/wake transaction'ı ve S363-open ayrımı henüz bulunmadığı için beklenen gerçek kaynak eksikleriydi; entegrasyon sonrası final sonuç 48/48 PASS, 1 grup / 48 passed / 0 failed oldu.",
      "Kaynak sınırı WaitKindTag::Receive → immutable receiver/endpoint id+generation → endpoint-registry exact identity count → ordinary endpoint ve waiting-receiver shape → S362 CPU0-only writer → exact tek mutable SCHEDULER aliası → endpoint CNode RECV authority → waiter ve blocked-task graph → wake capacity → cancel_receiver → timed-out receiver wake → writer drop → owned Result olarak kilitlidir.",
      "Public helper outer IPC transaction ve shared deadline-registry lock'unun caller tarafından zaten tutulduğunu sözleşmesine yazar. S362 bu kilitleri nested edinmez; bu nedenle kapı yalnız mevcut deadline-service RECEIVE cancellation transaction'ındaki scheduler mutation membership'ini ekler ve CALL/notification yollarını topluca kapsamaz.",
      "Wait kind exact Receive değilse NotReceiveWait döner. Receiver task, endpoint id ve endpoint generation immutable wait record'dan owned scalar olarak çıkarılır. Kind ve identity hataları endpoint registry, S247 writer ve mutable scheduler aliasından önce kapanır.",
      "Endpoint registry exact id için identity_count=1 ister. Object yalnız id eşleşen ve !is_reply_cap ordinary endpoint olduğunda kabul edilir. Missing, duplicate veya reply object AuthorityGraphMismatch ile exclusive membership denenmeden reddedilir.",
      "Waiting receiver writer öncesinde task_id==receiver_task, wait_token==endpoint_id ve cap_generation==endpoint_generation tuple'ıyla exact doğrulanır. Missing veya stale waiter ReceiverNotParked döndürür ve mutable scheduler pointer kurulmaz.",
      "Production wrapper exact target_arch=aarch64, target_os=none ve feature=board-rpi5 cfg kesişimindedir. Literal CPU0 kabul etmez; try_current_cpu_id ile gerçek kimliği okur, CPU0 dışını mutable pointer ve callback öncesi InvalidCpu ile kapatır ve exact S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE üzerinde try_acquire_exclusive_for_valid_cpu kullanır.",
      "cancel_timed_ipc_receive_under_transaction boundary'sinde exact bir acquire_s362 occurrence'ı, exact bir addr_of_mut!(SCHEDULER) aliası ve ortak tail'de exact bir drop(s362_writer_access) vardır. S361 ve S363 acquire sembolleri bu boundary'de yoktur; nested exclusive membership kurulmaz.",
      "Writer altındaki endpoint authority scheduler.capability_for_task(receiver_task, endpoint_id) ile alınır ve id, owner, generation, Endpoint kind ve ENDPOINT_RECV hakkı birlikte yeniden doğrulanır. Stale, wrong-owner, wrong-generation, wrong-kind veya RECV hakkı olmayan CNode authority destructive mutation'dan önce AuthorityGraphMismatch verir.",
      "Waiter writer altında ikinci kez waiting_receiver üzerinden okunur; current task/token/generation tuple'ı ve writer öncesi owned waiter snapshot'ı birlikte eşleşmelidir. Böylece aynı endpoint üzerinde waiter replacement veya generation drift'i cancellation'a dönüşmez.",
      "Scheduler blocked graph aynı lease altında ipc_blocked_count_on(endpoint_id)==1 ve ipc_blocked_task_count_on(receiver_task, endpoint_id, false)==1 ister. Endpoint waiter modeli ile scheduler graph ancak bütün koşullar aynı anda exact ise destructive commit'e geçer.",
      "Wake capacity ipc_wake_capacity_available(1) ile cancel_receiver öncesinde doğrulanır. Kapasite yokluğu WakeCapacityUnavailable olarak owned commit_result'a alınır; rendezvous waiter ve receiver scheduler state'i destructive mutation görmez.",
      "Rendezvous cancellation exact preflighted waiter value'sunu cancel_receiver(waiter) çağrısına verir. Aynı outer IPC transaction içinde waiter kaybı veya drift'i sessiz kısmi başarı değil fail-stop expect invariant'ıdır.",
      "Timed-out receiver wake_timed_out_ipc_receiver_exact(receiver_task, endpoint_authority) ile writer lease hâlâ canlıyken yapılır. Generic endpoint wake, CALL caller wake veya best-effort task taraması kullanılmaz; exact RECEIVE authority by-value taşınır.",
      "S362 endpoint object'i registry'den kaldırmaz, endpoint CNode grant'ini revoke etmez, linked reply object/provenance retire etmez ve notification waiter'a dokunmaz. Kapı yalnız exact timed RECEIVE waiter cancellation ve receiver wake transaction'ıdır.",
      "Writer sonrası recoverable authority, parked-graph ve capacity hataları let commit_result=(|| { ... })() içinde owned edilir. Guarded dilimde doğrudan return Err yoktur. Success ve error tek görünür drop(s362_writer_access) tail'inden geçer; output exclusive scheduler üyeliğini taşımaz.",
      "Host-testable execute_s362_guarded_timed_ipc_receive_cancel_commit gerçek CPU0 sabitini şart koşar. Non-CPU0, active reader veya active writer callback'ten önce fail-closed olur; callback error membership'i exact bırakır; success receipt nonzero token ve owned output döndürür; release sonrasında gate yeniden alınabilir.",
      "S361→S362 token monotonluğu ve iki ayrı exclusive transaction doğrulandı. Timed CALL cancellation lease'i timed RECEIVE cancellation'a taşınmaz. S362 preflight S361'in 44 reader / 34 guarded writer / 35 open snapshot'ını exact doğrular ve yalnız doğru zincir 35/69 guarded, 34 open üretir.",
      "Pending S245 request yalnız non-consuming pending_view ile incelenir. request id değişmez, request take edilmez, S244 admission yayınlanmaz ve provider authority üretilmez. CPU1 service S361 service'inden sonra ve tarihsel S242 consumer'dan önce yalnız coverage/preflight observation olarak bağlıdır; S247 writer edinmez.",
      "S362 module constants timed RECEIVE cancel, exact endpoint-authority revalidation, receiver cancel ve timed-out receiver wake için ayrı ayrı exact bir site kaydeder. Direct production source path=1, runtime observation=0 ve provider authority=0 sabitleri aynı outcome'da görünür.",
      "Focused 48-test sözleşmesi 35/69 envanter ile 34-open aritmetiği, idle/pending/wrong-CPU preflight, S245 non-consumption, contention, callback-error release, S361→S362 token ayrılığı, production cfg/static gate/CPU identity, source order, RECEIVE-only kapsam, exact graph/commit/release ve provider/admission yokluğunu ayrı ayrı doğrular.",
      "İlk seçili regresyonda tarihsel S361 focused grup, tüm capability.rs içinde S362 sembolü yokluğunu isteyen artık geçersiz global absence assertion'ı nedeniyle 47/48 oldu. Assertion zayıflatılmadı: S361 CALL boundary'sinin S362 acquire içermediği ve distinct timed-RECEIVE boundary'sinin exact bir S362 acquire içerdiği birlikte kilitlendi.",
      "Final seçili regresyon 7 grup / 158/158 PASS'tir: S362 48/48, S361 48/48, tarihsel S285 timed RECEIVE cancel audit 15/15, IPC RECEIVE deadline runtime 10/10, IPC CALL deadline runtime 10/10, deadline saturation runtime 9/9 ve IPC queue source 18/18.",
      "Fresh izole AArch64 profilleri scoped rustfmt sonrasında 4/4 exit 0 verdi. Build logları board-qemu 111658 B / d8bf581fb7a00da850c5b2ef39d48a856ffb3810b4ec2b734b2462677754e5fc / 293 warning header; board-rpi4 150295 B / d121d31cc09da8d7753c1519f0f6b795f834bdb752371e845e8e057d938251e1 / 391; board-rpi5 585931 B / dc660df0a279e4f9a5a04dac4f02507e60d5cf2339cd07643a78997d59937f89 / 1324 ve board-rpi5+smp 585925 B / b866ef4424ea1852dfb800766f9f6e1573210f25590808a2949d6b6a080e312a / 1324'tür. Zero-warning iddiası yoktur.",
      "Build log ölçüsü ELF ölçüsü gibi sunulmaz. Fresh ELF artifact'leri board-qemu 12621080 B / c359dd23735d5f7694842cd55e91b66ce097be38feff1928382e17675cc8e646; board-rpi4 7734928 B / b944aa5a4ac5db615a06aa8914db6e62a83f16b5e6d73d4c711c0176904a8682; board-rpi5 13616608 B / e13ef8328f37b2aa25a8b218c1f00b3bd000347177d4a967e26a7d524c071d54 ve board-rpi5+smp 13614872 B / 00714b3952038373ad98378f48221c644aeb79bf719390c5ead15ad26027dabd olarak ayrı ölçüldü.",
      "S238–S362 dependency matrisi 126 gruptur ve iki bağımsız seri koşunun her biri 2473/2473 PASS verdi. 11969 B ham özetler e9a75dd2c5471c802d88ca4f723047071d58d110f0594319c32083cf26590f96 / ad5caf16587605c6d29a947587266915c669abe6663fd6f32235c35cbe74999a; 76 diff satırı timing alanıdır. 12221 B normalize özetler 7d949c83178c6bd71c9010833fad2f9f8e299ec208a7a1f32e2a2c2e4e69c56b ile byte-eşittir.",
      "Exact yedi tarihsel frozen assertion dışındaki seri workspace 325 sonuç grubu / 4326 PASS / 0 fail / 7 filtered verdi; 30757 B summary SHA-256 8ae9ac272930752ceb2fe1c14ba2b2da3f0e6a6d62f5b88a8e9498cd626f72ce'dir.",
      "Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope source-identity reddinde durdu; 278 sonuç grubunda 4071 PASS / 1 fail, 26338 B summary SHA-256 1eed11fbd285b6e2ba71ac6ea534a66ca3e3fc98bf8d9ce5d7df98455c1a5d57'dir ve global workspace GREEN iddia edilmez.",
      "make verify-qemu 116271 B / 8e87d58b1a8341af400abd380518c50b0c2e2d3ded61edb637d518fd9351d0e6 ile strict ELF W^X 31/31, S130–S154, S271, RuntimePmm baseline, EL0x4096, IPC reply 20/20, scheduler SEC 5 ve kernel fault/panic marker 0 PASS verdi. Ortak board-qemu regresyonu S362 RPi5 production writer invocation kanıtı değildir.",
      "Scoped S362 modül/test rustfmt check'i exit 0 ve boş çıktılı PASS'tir; empty SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'tir. Seçili changed-file diff check de boş çıktı verdi. Global cargo fmt 92469 B / f69091f6a603d10c55aaebeeac4f29694104d83a468826503b4b0d45cddb030c ile miras farklarda RED'dir; global format GREEN iddia edilmez.",
      "Source-order testi yalnız sembol occurrence saymaz. RECEIVE kind'in registry'den; identity ve waiter shape'in writer'dan; writer'ın mutable alias ve endpoint CNode revalidation'dan; CNode'un waiter+blocked graph'tan; graph'ın capacity'den; capacity'nin cancel/wake zincirinden; zincirin writer drop'tan ve drop'ın public output'tan önce olduğunu ayrı index karşılaştırmalarıyla kilitler.",
      "Authority graph endpoint registry, rendezvous waiter, scheduler CNode ve blocked-task state'ini tek outer transaction'da bağlar. Registry shape writer öncesi sabitlenir; scheduler authority, waiter ve graph writer altında yeniden doğrulanır. Bu iki aşama stale endpoint generation'ın yanlış receiver wake'e dönüşmesini engeller.",
      "S285 tarihsel timed RECEIVE cancel writer-authority audit'i production tekrar adı değildir. S285 model-level exclusive lease olanağını ve source ordering'i saymıştı; production static wrapper ve gerçek cancel_timed_ipc_receive_under_transaction acquire değildi. S362 aynı shared S247 state word'ü exact boundary'ye bağlar ve runtime observation uydurmaz.",
      "S361 timed CALL cancellation ile S362 timed RECEIVE cancellation semantik olarak ayrıdır. S361 linked reply CNode/rendezvous/blocked caller/reply lifecycle transaction'ını 34. writer yapar; S362 ordinary endpoint RECV CNode/waiter/blocked receiver transaction'ını 35. writer yapar. Token, boundary ve cleanup scope birbirine taşınmaz.",
      "S363 timed notification cancellation ayrı source boundary'dir. S362 boundary'si TimedNotificationCancelError tanımından önce biter ve acquire_s363 sembolü taşımaz. Notification mask, waiter, deadline retirement ve notification wake bu PASS kapsamına sokulmaz.",
      "Release topolojisi writer öncesi ve writer sonrası hata ailelerini ayırır. Kind/identity/waiter-shape hataları exclusive lease alınmadan normal return eder. Writer altındaki authority/graph/capacity hataları owned commit_result üzerinden ortak explicit release tail'ine girer. Preflight sonrası impossible cancellation drift'i fail-stop invariant'tır.",
      "S362 modülü ProviderAuthority, request take veya S244 publisher sembolü taşımaz. CPU1 coverage service exact pending request view'ini yalnız okur. 35/69 coverage bütün scheduler exclusion, provider constructor, cross-CPU admission veya safe migration runtime ispatı değildir.",
      "Fresh build artifact root'u /tmp/aselsanos-s362-builds-final.YamMz8; dependency, workspace, QEMU ve format artifact dizinleri sırasıyla /tmp/aselsanos-s362-dependency-final.BElPJM, /tmp/aselsanos-s362-workspace-final.lzIl4r, /tmp/aselsanos-s362-qemu-final.Uc8Oa8 ve /tmp/aselsanos-s362-format-final.ovoUyO olarak kaydedildi. Geçici path'ler kalıcı proof/status kaydının yerine geçmez.",
      "Status manifest S362'yi ayrı g8l_s362_timed_ipc_receive_cancel_writer_guard_integration nesnesi ve ayrı gate marker'ıyla kaydeder. JSON parse, generated status README write/check ve ilk publication-öncesi project-status koşusu 245/245 PASS'tir. Physical operations_not_performed_s362 listesi exact yedi girdidir; publication tamamlanmadan publication PASS yazılmaz.",
      "Source-bound Kod generator sequence=362 Operations identity'sini production cancel_timed_ipc_receive_under_transaction acquire satırı, exact S362 S247 guard wrapper'ı ve focused test ile eşler. Dört excerpt satır aralığı, snippet SHA-256 ve tam dosya SHA-256 taşır; source/Operations drift'i generated registry check, site test, build ve deploy'u fail-closed durdurur.",
      "S328 öncesindeki Operations kayıtları /code/ kapsamından çıkarılmaz. Generator S1'den güncel sıraya kadar gerçek Operations sequence'lerini tarar. S109 artık Timeline'daki mantıksal storage kimliği, S119 kapanış kanıtı ve exact fail-closed Make hedefiyle yayımlanır; S1–S362 aralığında missing sequence yoktur ve S109 için sahte production/test kodu üretilmez.",
      "S109 tarihsel kimliği eklendikten sonraki tam web kabulü 607/607 PASS, lint PASS, boş çıktılı TypeScript ve 24/24 static route build verdi. Edge dönüşümünü kapatan /code/* Cache-Control no-transform sözleşmesi ayrıca 21/21 source-bound Kod testiyle doğrulandı; deploy build'i yeniden 24/24 statik rota üretti.",
      "bb5c7f49 publication snapshot'ındaki generated source registry S1–S362 aralığında 362/362 ayrı kapı, 1011 exact excerpt ve missing=none üretir; o snapshot'ın registry SHA-256 değeri 0faa33ceef27de9324a27c882084f896ab77d5ce066c49cd14713c2d12fa7a97'dir. Canlı /code HTML'inde 362/362 literal kapı etiketi, S328 öncesinde 327/327 etiket ve missing 0 ayrıca sayıldı. Sonraki publication-evidence sync registry kimliği self-reference oluşturmamak için bu Operations metnine hard-code edilmez; proof/status amendment'ında tutulur.",
      "S362 ile kesintisiz S1–S362 Kod kataloğunun production/main yayını bb5c7f49-660f-4503-9dcc-c3b0e633ce7c kimliğiyle 116 upload + 84 existing = 200 export dosyası olarak tamamlandı. /code yanıtı Cache-Control: public, max-age=0, must-revalidate, no-transform taşır; Cloudflare email-protection dönüşümü 0 occurrence'dır.",
      "Cache-busted custom-domain doğrulaması deployment build'in yerel out dosyalarıyla dört rotada HTTP 200 ve raw byte-exact PASS verdi: /code/ 19680231 B / 19fec1f94eb2bc49f283931b4b77deb0dc3756c966792ea0182d78bf6b2004e5; /operations/ 11943036 B / 0e804358a3f58bdb2f4f800992c6fcc2d243894dfaa1904aee2bdf3265dc2987; /timeline/ 4028930 B / b17b85625c08e70fdc92a084032b7491bd377b7c1a332e2813e0f799c11eac4d ve /yol-haritasi/ 4028678 B / 6e8362d46102b74fdfce0340d7e32017151004f1a6169757cee366b6b20b48a9. Immutable bb5c7f49 hostname probe'u connection reset nedeniyle curl exit 35 / HTTP 000 verdi; custom-domain PASS bunun yerine geçirilmez.",
      "Direct production source path=1 sayısı public API veya runtime call-frequency sayısı değildir. Deadline service RECEIVE kind'i seçtikten sonra exact bir cancel_timed_ipc_receive_under_transaction çağrısına gelir; helper içindeki S362 acquisition tek production membership'tir. Test, modül wrapper'ı ve CPU1 coverage service bu sayıya invocation olarak eklenmez.",
      "Deadline lock ile endpoint registry lock'un yaşamları scheduler writer'dan daha geniştir; bu durum bilinçli outer transaction sözleşmesidir. S362 writer yalnız mutable scheduler ile aynı logical RECEIVE cancellation commit'ine katılan waiter/wake aralığını kapatır. Lock ordering'i yeniden düzenlemez, yeni allocation yapmaz ve timer IRQ başına servis bütçesini değiştirmez; ürün seviyesinde deadlock/liveness garantisi çıkarılmaz.",
      "RECEIVE timeout sonucu receiver'a generic InvalidCapability veya endpoint-close wake olarak dönmez. Exact helper preflighted endpoint RECV authority ile wake_timed_out_ipc_receiver_exact çağrısını kullanır; deadline runtime testleri timed-out continuation semantiğini korur. S362 yeni ABI, syscall numarası, userspace message layout veya deadline ordering policy'si eklemez.",
      "Rendezvous waiter ile scheduler blocked graph farklı ledger'lardır. waiting_receiver endpoint modelindeki tek waiter'ı, blocked graph scheduler task durumunu temsil eder. İkisi destructive commit'ten önce ayrı ayrı exact doğrulanır; birindeki başarı diğerindeki drift'i örtmez.",
      "cancel_receiver exact waiter witness'i tüketmeden scheduler wake başlamaz. Wake exact endpoint authority'yi by-value alır ve aynı receiver task'i hedefler. Bu sıra waiter'ı canlı bırakıp receiver'ı uyandırma veya waiter'ı silip task'i BlockedOnIpc durumunda bırakma yarım commit'lerini fail-closed kılar.",
      "Focused source testi module/service registration'ını kernel main, simulation lib ve CPU1 exceptions chain'de ayrı ayrı arar. Service sırasının S361'den sonra, S242 consumer'dan önce olduğunu; boundary'nin TimedNotificationCancelError öncesinde bittiğini; acquisition wrapper'ın board-rpi5 cfg ve real CPU identity kullandığını; outcome'un exact site sayılarını taşıdığını bağımsız assertion'larla doğrular.",
      "Kronolojik dependency listesi yalnız dosya adını lexical sıralamaz. Tarihsel target-name drift'leri explicit manifest mapping'leriyle korunur, S362 focused target exact son elemana eklenir ve iki koşunun timing alanları normalize edildikten sonra byte-eşit olması istenir. Böylece 2473 PASS toplamı önceki 125 kapıyı sessizce atlayan seçme bir subset değildir.",
      "Filtered workspace sonucu yalnız adı sabit yedi tarihsel G8h assertion'ı dışlar. Unfiltered koşunun ilk ve tek gözlenen reddi frozen S96 exceptions source identity'dir; S362 focused veya RECEIVE cancellation behavior failure'ı değildir. Buna rağmen global workspace GREEN söylenmez. Scoped S362 rustfmt PASS de global cargo fmt RED gerçeğini örtemez.",
      "Focused testte coverage_constants_record_only_thirty_five_real_writer_integrations, önceki 34 guarded writer sabitinden yalnız +1 üretildiğini; total 69 ve reader 44 değerlerinin değişmediğini doğrular. pending_request_reports_thirty_fifth_writer_and_34_open aynı aritmetiği gerçek S245 pending view outcome'undan okur. Böylece dokümanda yazan 35/69 sayısı yalnız elle girilmiş bir metin değildir; modül sabiti, preflight sonucu ve test assertion'ı üçlü bağlıdır.",
      "preflight_never_takes_the_s245_request testi pending request'i preflight öncesi ve sonrasında inspect ederek aynı request id ile canlı bulur. cpu1_service_only_inspects_the_s245_request kaynakta inspect_s245_exclusion_admission_request_on_cpu1 çağrısını arar ve take/publish/provider sembollerini dışlar. Bu iki katman, coverage sayımının CPU1 provider authority veya S244 admission üretmiş gibi yorumlanmasını fail-closed engeller.",
      "cpu0_can_join_the_shared_writer_state_word, live_reader_blocks_commit_before_callback, live_writer_blocks_second_commit_before_callback ve commit_membership_blocks_new_reader_until_release testleri aynı S247 atomic state üzerinde iki yönlü exclusion davranışını ayrı ayrı yürütür. Bunlar lock-free ürün liveness/soak kanıtı değildir; yalnız callback'in conflict varken başlamadığını ve live writer süresince yeni reader'ın kabul edilmediğini kanıtlar.",
      "callback_error_releases_exclusive_membership_exactly_once testi commit callback'inden dönen owned error sonrasında state word'ün tekrar alınabildiğini doğrular. Success receipt token'ı ile release token'ı eşit, S361→S362 token değeri monotoniktir. Error yolu coverage sayısını düşürmez, request tüketmez veya ikinci bir release denemez; RAII membership'in error propagation ile kaybolmadığı ayrı kanıttır.",
      "immutable_wait_kind_and_identities_precede_writer ile unique_normal_endpoint_and_exact_waiter_shape_close_before_writer testleri, index tabanlı source-order assertion'larıyla kind/owned scalar çıkarımı, identity_count=1, !is_reply_cap ve task/token/generation waiter şartlarını acquisition'dan önce kilitler. Yalnız fonksiyon içinde bu ifadelerin bulunması yeterli sayılmaz; fiziksel kaynak sıraları tersine dönerse focused kapı RED olur.",
      "writer_precedes_the_only_mutable_scheduler_alias ve boundary_preserves_one_mutable_alias_and_one_of_each_destructive_commit testleri boundary'de acquire occurrence=1, addr_of_mut!(SCHEDULER)=1, cancel_receiver=1 ve wake_timed_out_ipc_receiver_exact=1 ister. Ek bir alias, duplicate cancel/wake veya guard dışına kaçan destructive commit kaynakta belirdiğinde test fail-closed durur.",
      "exact_endpoint_cnode_authority_is_revalidated_under_writer testi capability_for_task(receiver_task, endpoint_id) çağrısından sonra id, owner, generation, Endpoint kind ve ENDPOINT_RECV hakkının tamamını arar. Bu authority writer'dan önceki registry object shape'inin yerine geçirilmez: registry global object identity'sini, CNode ise exact receiver task'in kullanma hakkını temsil eder ve ikisi aynı transaction'da ayrı ledger olarak doğrulanır.",
      "waiter_and_blocked_graph_are_revalidated_under_writer testi current waiter'ın preflight snapshot ile eşitliğini, ipc_blocked_count_on(endpoint_id)==1 ve ipc_blocked_task_count_on(receiver_task, endpoint_id, false)==1 şartlarını birlikte ister. false yön biti RECEIVE'i SEND/CALL blocked kaydından ayırır. Bu değerlerden biri drift ederse ReceiverNotParked owned error'ı ortak writer-release tail'ine gider.",
      "existing_wake_capacity_proof_precedes_receive_cancel testi allocation-free wake slotu kontrolünün cancel_receiver'dan önce olduğunu exact index sırasıyla doğrular. S362 yeni kapasite rezervasyon mekanizması veya queue büyütme yapmaz; mevcut scheduler kapasite sorgusunu transaction prerequisite'i olarak kullanır. Bu nedenle kapı kapasite=ürün-yeterli veya yoğun yükte starvation-yok iddiası çıkarmaz.",
      "caller_acquires_transaction_then_deadline_lock_before_dispatch ve receive_cancel_boundary_does_not_reacquire_outer_transaction_or_irq_guard testleri çağıran deadline service'in IPC transaction→deadline lock→RECEIVE dispatch sırasını, helper'ın ise bu üç guard'ı yeniden edinmediğini birlikte kanıtlar. S362 yalnız inner scheduler exclusion membership'idir; outer lock order korunur ve ayrı bir IRQ guard eklenerek lock inversion oluşturulmaz.",
      "timer_irq_cpu1_local_path_returns_before_global_deadline_service testi CPU1 local-timer yolunun global deadline cancellation'a düşmeden erken döndüğünü korur. Böylece S362 CPU0-only writer wrapper'ı ile CPU1 coverage service'i karıştırılmaz: CPU1 service yalnız source/status preflight zinciridir; timer IRQ'nın CPU1 üzerinde RECEIVE cancellation writer'ını çağırdığına dair runtime iddia yoktur.",
      "only_receive_variant_dispatches_into_this_boundary testi deadline service match'inde yalnız WaitKindTag::Receive kolunun cancel_timed_ipc_receive_under_transaction çağrısını yaptığını doğrular. CALL kolu S361 helper'ında, Notification kolu S363 açık sınırında kalır. Aynı public service içindeki üç varyantın yakınlığı toplu writer coverage sayılmaz; her biri kendi sıra ve exact production acquisition'ıyla kapanır.",
      "owned_result_preserves_exact_public_cancellation_payload testi başarılı çıktıdaki receiver_task ve endpoint_id alanlarının immutable wait record kimlikleriyle exact eşleştiğini doğrular. Guard token, scheduler referansı, endpoint registry borcu veya waiter referansı public output'a sızmaz. Writer drop bu owned payload caller'a dönmeden önce gerçekleştiği için üst lock'lar sonucu güvenli biçimde tüketebilir.",
      "boundary_never_context_switches_or_claims_runtime_observation testi RECEIVE cancel helper'ında context_switch, eret, runtime observation counter veya provider/admission publication bulunmadığını doğrular. Wake yalnız scheduler state mutation'ıdır; task'in gerçekten supported-profile üzerinde koşup kullanıcı moduna döndüğü S362 kapsamında gözlenmemiştir. Bu yüzden source path=1 ve runtime observations=0 birlikte doğru kalır.",
      "S362 için güç, SD kart, Mac kart erişimi, UART capture, raw validation, archive veya promotion işlemi yapılmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S362=NO.",
      "S362 bazlı bağlayıcı olmayan planlama görünümü R1 S362–S392, R2 S417–S467, R3 S546+, kaba S522–S572 ve risk paylı merkez ≈S547'dir. Bu projeksiyon yeni sıra veya ürün taahhüdü oluşturmaz.",
    ],
    commands: [
      "cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s362_timed_ipc_receive_cancel_writer_guard_integration -- --test-threads=1",
      "run S362, S361, S285, ipc-recv-deadline-runtime, ipc-call-deadline-runtime, ipc-deadline-saturation-runtime and ipc-queue-source groups serially",
      "run four fresh AArch64 profile builds; run S238-S362 dependency list twice; run filtered and unfiltered serial workspace audits; make verify-qemu",
      "python3 scripts/render-project-status.py --write; python3 scripts/render-project-status.py --check; cargo test -p aselsan_microkernel_simulation --test project_status_manifest -- --test-threads=1",
      "npm run code:generate; npm test; npm run lint; npx tsc --noEmit; npm run build; npm run deploy; cache-busted curl + cmp for four custom-domain routes",
    ],
    terminalSessions: [
      {
        id: "g8l-s362-focused-source-contract",
        title: "S362 focused timed IPC RECEIVE-cancel writer membership",
        commandLines: [
          "cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s362_timed_ipc_receive_cancel_writer_guard_integration -- --test-threads=1",
        ],
        outputLines: [
          "initial test result: RED; S362 focused 33 passed; 15 failed; production module/boundary/service not yet wired",
          "final test result: ok; S362 focused 1 group / 48 passed; 0 failed",
          "shared S247 gate: 44 guarded readers + 35/69 guarded writers; 34 writers open",
          "RECEIVE/identity/waiter shape < S362 writer < endpoint CNode/waiter/blocked graph/capacity < cancel/wake < writer/output release",
          "static source paths=1; supported-profile runtime observations=0; provider authority=0",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s362-selected-receive-cancel-regression",
        title: "S362 selected timed RECEIVE cancellation regression",
        commandLines: [
          "run S362, S361, S285 and four IPC deadline/queue groups serially",
        ],
        outputLines: [
          "initial historical assertion: S361 47/48 RED on obsolete global S362 absence",
          "preserved S361 CALL-boundary absence and bound exact one S362 acquire to the separate timed RECEIVE boundary",
          "final result: 7 groups / 158 passed / 0 failed",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s362-core-acceptance",
        title: "S362 four-profile, dependency, workspace and QEMU acceptance",
        commandLines: [
          "run four fresh AArch64 profile builds",
          "run S238-S362 dependency list twice and normalize timing fields",
          "run filtered and unfiltered serial workspace audits",
          "make verify-qemu",
        ],
        outputLines: [
          "four profiles 4/4 exit 0; log and ELF byte/hash measurements recorded separately; zero-warning not claimed",
          "dependency 126 groups / 2473/2473 twice; normalized 12221-byte summaries are SHA-256 identical",
          "filtered workspace 325 groups / 4326 PASS / 7 filtered; unfiltered frozen-S96 remains RED",
          "QEMU W^X 31/31 + S130-S154 + S271 + RuntimePmm + EL0x4096 + IPC 20/20 + SEC5 PASS; not an S362 runtime observation",
          "status JSON + renderer write/check + project-status 245/245 PASS before publication",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
      {
        id: "g8l-s362-contiguous-code-catalog-production-publication",
        title: "S362 and S1-S362 source-bound Code production publication",
        commandLines: [
          "npm run code:generate && npm test && npm run lint && npx tsc --noEmit && npm run build",
          "npm run deploy",
          "cache-busted curl + cmp for /code/, /operations/, /timeline/ and /yol-haritasi/",
        ],
        outputLines: [
          "bb5c7f49 snapshot registry S1-S362: 362/362 gates / 1011 exact excerpts / missing=none / SHA-256 0faa33ceef27de9324a27c882084f896ab77d5ce066c49cd14713c2d12fa7a97",
          "pre-S328 Code coverage: 327/327 gate labels present; missing=0",
          "website 607/607 PASS; lint PASS; TypeScript empty; static routes 24/24; no-transform Code suite 21/21 PASS",
          "deployment bb5c7f49-660f-4503-9dcc-c3b0e633ce7c; 116 upload + 84 existing = 200 export files",
          "custom-domain routes HTTP 200 and raw byte-exact=true; /code Cache-Control includes no-transform; edge email rewrite count=0",
          "immutable bb5c7f49 hostname curl exit 35 / HTTP 000",
        ],
        exitCode: 0,
        outputMode: "complete",
      },
    ],
    terminalSessionsNote:
      "Terminal kartları komut ile tam karar özetini ayrı gösterir; raw test/build günlüklerinin byte/hash kimlikleri kalıcı proof ve status manifestinde tutulur. Ortak QEMU sonucu S362 RPi5 runtime invocation veya fiziksel kabul olarak yükseltilmez. S362 ve kesintisiz S1–S362 source-bound Kod kataloğunun ilk raw-byte-exact production publication'ı tamamlandı; publication-evidence sync deployment kimliği proof/status amendment'ında ayrıca tutulur.",
    limitations: [
      "S362 otuz beşinci production writer'ın dar kaynak entegrasyonudur. Yalnız exact timed IPC RECEIVE waiter/receiver timeout transaction'ı guarded'dır; S363 timed notification cancellation ayrı kalır.",
      "Production provider authority ve whole-scheduler exclusion tamamlanmadı; S245 request tüketilmez ve S244 admission yayınlanmaz.",
      "Tek static source path wiring envanteridir; S362-specific supported-profile invocation/observation kanıtı yoktur.",
      "Kalan 34 production writer, global rustfmt, frozen-S96 filtresiz workspace, default-parallel PTY determinism, transient-contention liveness/soak, Generic SMP ve fiziksel kabul açıktır.",
      "physical/device operations=0 · RUNBOOK_EXECUTED_IN_S362=NO.",
    ],
  },
snippet sha256: ca9794ff02eefile sha256: 9726dbf00f84
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s362_timed_ipc_receive_cancel_writer_guard_integration -- --test-threads=1
proof: docs/M8.1-RPi5-G8l-S362-Timed-IPC-Receive-Cancel-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06