S360 · SOURCE-BOUND GATE EVIDENCE
S360 · Endpoint-grant revoke production writer guard integration
production acquire → S247 guard modülü → Operations-bound focused test Bu sayfa yalnız S360 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S360Production writer guardOperations id exactsource SHA exacttest target exact
operation: g8l-s360-endpoint-grant-revoke-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 öğesiL2068–L2163
kernel/src/ui/capability.rs::revoke_endpoint_grant
/// Revoke exactly one task's derived endpoint grant. Even a FULL grant can
/// only delete itself through this API; it never destroys the shared object
/// or another holder's slot.
pub fn revoke_endpoint_grant(grant: Capability, actor: u64) -> Result<(), EndpointAuthorityError> {
validate_endpoint_grant_shape(grant, actor)?;
let s360_irq_guard = crate::arch::aarch64::IrqGuard::new();
let s360_transaction = crate::task::scheduler::IPC_TRANSACTION_LOCK.lock();
let mut registry = ENDPOINT_REGISTRY.lock();
let matching_objects = registry
.iter()
.filter(|endpoint| endpoint.id == grant.id)
.count();
if matching_objects == 0 {
return Err(EndpointAuthorityError::ObjectNotFound);
}
if matching_objects != 1 {
return Err(EndpointAuthorityError::AuthorityGraphMismatch);
}
let endpoint_index = registry
.iter()
.position(|endpoint| endpoint.id == grant.id)
.expect("counted endpoint object disappeared while registry is locked");
if registry[endpoint_index].is_reply_cap {
return Err(EndpointAuthorityError::ReplyObject);
}
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s360_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s360_endpoint_grant_revoke_writer_guard_integration::acquire_s360_production_scheduler_writer_access()
.unwrap_or_else(|error| {
panic!(
"S360 endpoint-grant revoke scheduler writer guard failed closed: {:?}",
error
)
});
let scheduler = unsafe { &mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER) };
let commit_result = (|| {
let authority_revalidation =
if scheduler.capability_for_task(grant.owner, grant.id) != Some(grant) {
Err(EndpointAuthorityError::StaleAuthority)
} else {
Ok(())
};
authority_revalidation?;
let waiting_receiver = registry[endpoint_index]
.rendezvous
.waiting_receiver()
.filter(|waiter| waiter.task_id() == grant.owner);
let graph_revalidation = if let Some(waiter) = waiting_receiver {
if waiter.cap_generation() != grant.generation
|| scheduler.ipc_blocked_count_on(grant.id) != 1
|| scheduler.ipc_blocked_task_count_on(grant.owner, grant.id, false) != 1
{
Err(EndpointAuthorityError::AuthorityGraphMismatch)
} else if !scheduler.try_reserve_ipc_wake_capacity(1) {
Err(EndpointAuthorityError::WakeCapacityUnavailable)
} else {
Ok(())
}
} else {
Ok(())
};
graph_revalidation?;
let exact_revoke = if scheduler.revoke_cap_for_task_exact(&grant) {
Ok(())
} else {
Err(EndpointAuthorityError::StaleAuthority)
};
exact_revoke?;
if let Some(waiter) = waiting_receiver {
registry[endpoint_index]
.rendezvous
.cancel_receiver(waiter)
.expect("preflighted endpoint grant receiver cancellation failed");
}
Ok(waiting_receiver)
})();
drop(registry);
let commit_result = match commit_result {
Ok(waiting_receiver) => {
if waiting_receiver.is_some() {
scheduler.wake_tasks_on_revoked_endpoint(grant.id);
}
Ok::<(), EndpointAuthorityError>(())
}
Err(error) => Err(error),
};
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s360_writer_access);
drop(s360_transaction);
drop(s360_irq_guard);
commit_result
}snippet sha256: b9274f584143…file sha256: 304e1227daf9…
02 · Ortak exclusion üyeliği
S247 production writer guard
tam Rust öğesiL164–L176
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s360_endpoint_grant_revoke_writer_guard_integration.rs::acquire_s360_production_scheduler_writer_access
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s360_production_scheduler_writer_access(
) -> Result<G8lS360ProductionSchedulerWriterAccess, 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(G8lS360ProductionSchedulerWriterAccess { _access: access })
}snippet sha256: 482df313b9e9…file sha256: 7e816613ae44…
03 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL353–L364
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s360_endpoint_grant_revoke_writer_guard_integration.rs::boundary_has_exactly_one_s360_acquire_and_one_shared_cleanup_release
#[test]
fn boundary_has_exactly_one_s360_acquire_and_one_shared_cleanup_release() {
let boundary = endpoint_revoke_boundary();
assert_eq!(
boundary
.matches("acquire_s360_production_scheduler_writer_access")
.count(),
1
);
assert_eq!(boundary.matches("drop(s360_writer_access)").count(), 1);
}snippet sha256: 55b452a5a8a0…file sha256: 5021f0299869…
04 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL11968–L12117
website/src/lib/operations.ts::g8l-s360-endpoint-grant-revoke-writer-guard-integration-partial
{
id: "g8l-s360-endpoint-grant-revoke-writer-guard-integration-partial",
date: "2026-08-28",
sequence: 360,
status: "passed",
umbrella_status: "partial",
title: "S360 · Endpoint-grant revoke production writer guard integration",
summary:
"S360, revoke_endpoint_grant içindeki exact derived endpoint authority transaction'ını S359 ile 44 production reader'ın kullandığı aynı statik S247 state word'e bağlar. Capability kind, nonzero owner/generation, actor/owner, self-parent ve rights alt-kümesi ile unique non-reply endpoint object writer'dan önce kapanır. Ardından local IRQ ve IPC transaction altında gerçek per-CPU kimliğinden yalnız CPU0 için S360 exclusive writer alınır ve exact tek mutable scheduler aliası kurulur. Exact task CNode grant'i, optional waiting receiver generation'ı ve scheduler blocked endpoint/task graph'ı writer altında yeniden doğrulanır; receiver varsa wake kapasitesi destructive commit'ten önce reserve edilir. Exact CNode revoke, optional rendezvous receiver cancel ve registry bırakıldıktan sonraki optional scheduler wake aynı writer membership'indedir. Writer, IPC transaction ve IRQ owned Result öncesinde explicit bırakılır. Guarded writer 33/69, açık writer 36, provider authority 0 ve whole-scheduler exclusion false'dur. Capability::revoke içindeki tek forwarding yolu static source path'tir; supported-profile runtime observation=0'dır. Timed IPC CALL cancellation writer sınırı S361 için ayrı açık kalır.",
evidence: [
"Focused S360 endpoint-grant revoke writer-integration kapısının ilk koşusu 22/43 PASS ve 21 RED verdi. RED'ler gerçek production eksikleriydi: S360 modülü/registrasyonu ve CPU1 service'i yoktu; revoke_endpoint_grant exact shared writer'ı almıyor, CNode/receiver graph/capacity/revoke/cancel/wake transaction'ını tek lease içinde tutmuyor ve owned cleanup sırasını göstermiyordu. Kaynak entegrasyonu sonrasında ilk GREEN adayı 42/43, exact doküman satırı düzeltmesinden sonra taze final koşu 43/43 PASS verdi.",
"Kaynak sınırı validate_endpoint_grant_shape → s360_irq_guard → s360_transaction → endpoint registry unique/non-reply preflight → CPU0-only S360 writer → exact tek mutable scheduler aliası → exact CNode authority revalidation → waiting receiver generation ve blocked graph revalidation → optional wake-capacity reserve → exact CNode revoke → optional rendezvous cancel → registry drop → optional endpoint wake → writer/transaction/IRQ drop → owned Result olarak kilitlidir.",
"Shape preflight grant.kind=Endpoint, owner!=0, generation!=0, actor==owner, parent==Some(id), rights!=NONE ve rights'in FULL alt-kümesi olmasını ister. Bu hatalar IrqGuard, IPC transaction, endpoint registry, S247 writer ve mutable scheduler aliasından önce public EndpointAuthorityError ile kapanır.",
"Endpoint registry writer öncesinde exact id için identity_count=1 ister. Object yoksa ObjectNotFound, duplicate ise AuthorityGraphMismatch ve exact object reply capability ise ReplyObject döner. Böylece S360 lease yalnız ordinary unique endpoint grant için denenir; object shape reddi production writer envanterini sahte invocation ile büyütmez.",
"Production wrapper exact target_arch=aarch64, target_os=none ve feature=board-rpi5 cfg kesişimindedir. Literal CPU0 impersonation yapmaz; try_current_cpu_id ile gerçek kimliği okur, CPU0 dışını mutable pointer ve callback öncesinde InvalidCpu ile reddeder ve exact S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE üzerinde try_acquire_exclusive_for_valid_cpu kullanır.",
"revoke_endpoint_grant sınırında exact bir acquire_s360_production_scheduler_writer_access occurrence'ı, exact bir addr_of_mut!(SCHEDULER) aliası ve ortak cleanup tail'inde exact bir drop(s360_writer_access) vardır. S331, S359 veya gelecek S361 acquire sembolü boundary içinde yoktur; nested exclusive membership oluşturulmaz.",
"Task CNode authority scheduler.capability_for_task(grant.owner, grant.id) != Some(grant) exact stale-authority sözleşmesiyle writer altında yeniden doğrulanır. Bu kıyas yalnız id/owner değil, generation, rights, kind ve parent dahil bütün Copy capability değerini bağlar; mismatch destructive state'e dokunmadan owned StaleAuthority üretir.",
"Optional rendezvous waiter yalnız task_id==grant.owner ise bu grant transaction'ına bağlanır. Bağlanan waiter'ın cap_generation değeri grant.generation ile, scheduler ipc_blocked_count_on(endpoint) değeri 1 ile ve ipc_blocked_task_count_on(owner, endpoint, false) değeri 1 ile exact eşleşmelidir; aksi halde AuthorityGraphMismatch olur.",
"Matching receiver varsa scheduler.try_reserve_ipc_wake_capacity(1) exact revoke, receiver cancellation ve wake'ten önce çalışır. Kapasite yokluğu WakeCapacityUnavailable olarak commit_result'a alınır; grant CNode kaydı, rendezvous kaydı ve wake queue destructive mutation görmez.",
"Exact CNode removal scheduler.revoke_cap_for_task_exact(&grant) ile bir kez yürür ve false sonucu StaleAuthority'dir. Generic revoke veya S331 writer helper'ı çağrılmaz; live S360 exclusive membership mevcut mutable scheduler state'ini doğrudan kapsar.",
"Optional receiver cancellation registry[endpoint_index].rendezvous.cancel_receiver(waiter) ile preflighted exact waiter snapshot'ına uygulanır. Cancellation yalnız matching receiver varsa çalışır; receiver yokken scheduler graph veya capacity için uydurma mutation yapılmaz.",
"Endpoint registry lock optional scheduler wake'ten önce explicit bırakılır. waiting_receiver Some ise wake_tasks_on_revoked_endpoint(grant.id) registry dışındayken fakat S360 writer hâlâ canlıyken yürür. Bu sıra nested registry/wake locks riskini daraltırken scheduler mutation'ın exclusive kapsam dışına kaçmasını engeller.",
"Writer sonrası StaleAuthority, AuthorityGraphMismatch ve WakeCapacityUnavailable yolları let commit_result=(|| { ... })() ile owned edilir. Guarded source diliminde doğrudan return Err yoktur; success ve error ortak drop(s360_writer_access) → drop(s360_transaction) → drop(s360_irq_guard) → commit_result tail'inden geçer.",
"Host-testable execute_s360_guarded_endpoint_grant_revoke_commit gerçek CPU0 sabitini şart koşar, access reddinde callback'i çalıştırmaz, callback error sonrasında exclusive membership'i exact bırakır ve success receipt'te nonzero token/output döndürür. Live reader writer'ı; live writer ikinci writer ile yeni reader'ı reddeder; release sonrasında gate yeniden alınabilir.",
"S359→S360 token monotonluğu ve iki ayrı exclusive transaction doğrulandı. Notification-object destroy lease'i endpoint-grant revoke transaction'ına taşınmaz. S360 preflight S359'un 44 guarded reader / 32 guarded writer / 37 open snapshot'ını exact doğrular; yalnız doğru zincir 33/69 guarded ve 36 open üretir.",
"Pending S245 request yalnız non-consuming pending_view ile incelenir; request take edilmez, request id değişmez, S244 admission yayınlanmaz ve provider authority üretilmez. CPU1 service S359 service'inden sonra ve tarihsel S242 consumer'dan önce bağlıdır; yalnız coverage/preflight observation'dır, S247 writer edinmez.",
"Static source inventory Capability::revoke içindeki revoke_endpoint_grant(self, actor) forwarding kolunu exact bir path olarak sayar. Bu kaynak yolu supported RPi5 runtime telemetry, invocation veya cihaz kabulü değildir; S360-specific runtime observation=0 kalır.",
"Focused 43-test sözleşmesi 33/69 envanter ve 36-open aritmetiği, idle/pending/wrong-CPU preflight, S245 non-consumption, contention, callback-error exact release, S359→S360 token/transaction ayrılığı, production cfg/static gate/CPU identity, source sırası, S283 tarihsel ayrılık ve provider/admission yokluğunu ayrı ayrı doğrular.",
"İlk GREEN adayındaki tek RED product behavior veya coverage assertion'ı değildi: modül üst açıklamasındaki S361 timed IPC CALL cancel remains open exact sözcükleri satır sarımıyla iki fiziksel satıra ayrılmıştı. S361 açık sınır cümlesi tek satırda tutuldu; semantik, production scope veya test eşiği zayıflatılmadı ve final 43/43 PASS alındı.",
"Final seçili regresyon 6 grup / 149/149 PASS'tir: S360 43/43, S359 49/49, tarihsel S283 endpoint revoke audit 15/15, S287 endpoint teardown audit 15/15, capability-mint source 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 / 6dda701f593fa25edb7df335b7a6edf8c0d5d46eac2afb63f888e7e8986dfefb / 293 warning header; board-rpi4 150347 B / ca6e021065660cb0ae0781d70238971c4601c5b4db46336f7538a324d2f85a9b / 391; board-rpi5 581236 B / e566a5370eb516ea85b264474852d919294633f2b9dadb81fbf52189a097ef54 / 1312 ve board-rpi5+smp 581282 B / 86321f88b8c208edb31e427b94bc89c2b37986171d0be00cbf273ba08b7f7fd2 / 1312'dir. Zero-warning iddiası yoktur.",
"Build log ölçüsü ELF ölçüsü gibi sunulmaz. Fresh ELF artifact'leri board-qemu 12621920 B / 57079c1ef3bbef2bfca4bd230114e5b9fbf61f840b2f575fb5738e88ecee7f54; board-rpi4 7735240 B / d48fffd7571679a8d086fc880d2f7d518a85424a77878ed992e0ddd8b5f38cb2; board-rpi5 13526624 B / c5ae1e2e516b7f1c76ccd3262ff6e06960e6713508fa7fdaa6b742162de79c1a ve board-rpi5+smp 13532456 B / 7db09227ee836b08e54b0126f8ed28936a3c79ef61df38fa433db1841b501076 olarak ayrı ölçüldü.",
"S238–S360 dependency matrisi 124 gruptur ve iki bağımsız seri koşunun her biri 2377/2377 PASS verdi. 28965 B ham özetler 6b79aa6cc6b7aa9fb18605dcd6d711a799f98b7e35e67aa485c72b59986c4013 / ed54f0f2aec98af90b34615b5841153d9edbcdf7936aefb65ea6c9093fc54fb8; 40 diff satırı timing alanıdır. 29213 B normalize özetler 60e52d5f4bad79e2b43fa41f92223b916282f21aabe27eec349857600b10b933 ile byte-eşittir.",
"Exact yedi tarihsel frozen assertion dışındaki seri workspace 323 sonuç grubu / 4228 PASS / 0 fail / 7 filtered verdi; 70109 B log SHA-256 fefc62966af674ee1950188ea47557753754b855ee6e0def02981060a4c841b4'tür.",
"Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope source-identity reddinde durdu; 276 sonuç grubunda 3973 PASS / 1 fail, 65331 B log SHA-256 f85ecf782fb1e88a69c621ab2da3b43cbe6c1e975d1716064d2cce2daa498cd6'dır ve global workspace GREEN iddia edilmez.",
"make verify-qemu 116271 B / 5f55b8271f392a1c779bb1275347732dd540a7c8e8f3d8554038f7497465fa54 ile strict ELF W^X 31/31, S130–S154, S271, RuntimePmm baseline, EL0x4096, IPC reply 20/20, scheduler SEC5 ve kernel fault/panic marker 0 PASS verdi. Ortak board-qemu regresyonu S360 RPi5 production writer invocation kanıtı değildir.",
"Scoped S360 modül/test rustfmt check'i boş çıktılı PASS'tir. İlk scoped check 12797 B farkla RED oldu ve yalnız bu iki yeni dosya mekanik rustfmt ile düzenlendi. Global cargo fmt 83715 B / 49c907fe0c145e31ea5e2a0cc8844042503f42b058831d9dfb50fa249a232826 ile miras farklarda RED'dir; global format GREEN iddia edilmez.",
"Source-order doğrulaması yalnız sembollerin varlığını saymaz. Focused test shape'in IRQ'dan; IRQ'nun transaction'dan; unique/reply object preflight'ının writer'dan; writer'ın mutable alias ve CNode revalidation'dan; receiver graph'ın capacity'den; capacity'nin exact revoke'dan; revoke'un cancel ve wake'ten; wake'in writer drop'tan; writer drop'ın transaction/IRQ ve public output'tan önce olduğunu ayrı index karşılaştırmalarıyla kilitler.",
"Authority graph iki farklı registry'yi tek fail-closed transaction'da bağlar: endpoint registry ordinary object kimliğini ve optional rendezvous waiter'ı taşır; scheduler CNode ve blocked graph exact task authority'sini taşır. Registry kimliği writer öncesi sabitlenir, CNode ve blocked graph writer altında yeniden doğrulanır; bu ayrım stale capability ile yanlış receiver wake'inin birleşmesini engeller.",
"Receiver yokluğu success için geçerli dar durumdur: exact grant CNode'dan kaldırılır, cancel ve wake çalışmaz. Receiver varsa task/generation/blocked graph ve capacity dört koşulu birlikte kapanmadan revoke başlamaz. Bu nedenle optional path, unconditional wake veya best-effort cancel biçimine düşürülmez.",
"S360 object lifecycle kapsamını genişletmez. Endpoint object registry'den kaldırılmaz, diğer holder'lar purge edilmez, reply provenance retire edilmez ve shared endpoint kapatılmaz; yalnız actor'ın exact self-parent derived grant'i kaldırılır. Root endpoint teardown tarihsel S287 audit ve gelecekteki ayrı production sınır olarak kalır.",
"Tarihsel S283 endpoint-grant revoke writer-authority audit'i model-only exclusive lease olanağını doğrulamıştı; production static wrapper ve gerçek revoke_endpoint_grant acquisition'ı değildi. S360 bu farkı korur: S283 constructor çağrılmaz, S360 exact shared gate wrapper'ını production boundary'ye bağlar ve runtime observation uydurmaz.",
"S359 notification-object destroy ile S360 endpoint-grant revoke semantic olarak da ayrıdır. S359 root notification object/provenance/holder/wait teardown transaction'ını 32. writer olarak kapatır; S360 ordinary endpoint derived grant/CNode/receiver cancel-wake transaction'ını 33. writer yapar. Token ve source sınırları birbirine taşınmaz.",
"S360 modülü provider constructor, ProviderAuthority, request take veya S244 publisher sembolü taşımaz. preflight yalnız S359 coverage sonucunu ve S245 pending view'ini kullanır. Bu nedenle 33/69 coverage bütün scheduler exclusion veya cross-CPU admission ispatı değildir.",
"Early-return topolojisi writer öncesi ve writer sonrası olarak ayrılmıştır. validate_endpoint_grant_shape, ObjectNotFound, duplicate object ve ReplyObject yolları exclusive membership alınmadan döner ve Rust RAII ile registry/transaction/IRQ state'ini kapatır. Writer alındıktan sonraki authority, graph ve capacity hataları ise doğrudan return kullanamaz; hepsi owned commit_result üzerinden tek görünür release tail'ine bağlanır. Focused kaynak testi bu iki hata ailesini ayrı assertion'larla denetler.",
"Shape doğrulamasındaki parent==Some(grant.id) şartı root endpoint authority ile derived holder authority'yi ayırır. S360 shared endpoint object'i yok etme hakkı vermez; self-parent derived grant yalnız kendi task CNode slotunu hedefler. Rights NONE reddi boş yetkiyi, rights.intersect(FULL)==rights şartı tanımsız bitleri kapatır. Actor exact owner olmadıkça full-looking bir grant bile transaction'a giremez.",
"Object identity preflight'i registry lock altında id eşleşmelerini sayar ve exact bir ordinary endpoint ister. position lookup count sonrasında aynı lock canlıyken yapıldığı için counted object arada kaybolamaz; expect mesajı bu invariant'ı açık eder. Reply-cap object'i derived endpoint revoke API'sine sokulmaz; one-shot reply retirement kendi ayrı lifecycle ve writer sınırlarında kalır.",
"CNode revalidation yalnız bir boolean kaynak kontrolü değildir. capability_for_task owner/id lookup'ının Some(grant) ile Copy-equality karşılaştırması generation, rights, kind ve parent drift'ini tek noktada kapatır. Registry object hâlâ mevcut olsa bile task slotu revoke edilmiş, değiştirilmiş veya yeniden mint edilmişse exact revoke'a geçilmez. Bu lease-altı ikinci kontrol, writer öncesi shape kontrolünün yerine değil onun üstüne gelir.",
"Receiver graph üç scheduler görünümünü tek tuple'a bağlar: rendezvous waiter task_id, waiter cap_generation ve scheduler'ın endpoint/task blocked sayıları. Endpoint üzerinde başka blocked task, owner için yanlış send/receive yönü veya generation replay varsa count/generation sözleşmesi exact 1/1 değerini üretemez. Bu kapı receiver'ın gerçekten revoke edilen grant ile park edildiğini destructive mutation öncesinde kanıtlar.",
"Wake capacity reservation bir performans tahmini değil fail-closed mutation prerequisite'idir. try_reserve_ipc_wake_capacity(1) false olduğunda CNode record kaldırılmaz ve rendezvous waiter iptal edilmez. True olduğunda reservation, revoke→cancel→registry drop→wake sırasının kapasite dayanağıdır. S360 ürün seviyesinde queue sizing veya liveness garantisi vermez; yalnız bu tek optional receiver transaction'ını yarım commit'ten korur.",
"Nested-lock release sırası özellikle endpoint registry ile scheduler wake arasındaki bağı daraltır. Registry, waiter snapshot ve revoke sonucu owned değerlere çıkarıldıktan sonra bırakılır; mutable scheduler alias ve exclusive S247 membership ise wake tamamlanana dek canlı kalır. Böylece registry kilidi wake queue çalışmasına taşınmaz, fakat wake mutation shared scheduler exclusion dışına da kaçmaz. Writer daha sonra transaction ve IRQ'dan önce düşer.",
"Source-bound Kod kartı için generator S360 Operations kimliğini sequence=360 ile, production excerpt'i revoke_endpoint_grant sembolüyle, guard excerpt'i acquire_s360 ve exact S247 static state word ile, focused excerpt'i exact acquire/source-order testiyle eşler. Her kesit satır aralığı, snippet SHA-256 ve tam dosya SHA-256 taşır; kaynak veya Operations sıra drift'i generated registry check'ini fail-closed durdurur. S328 öncesi katalog kapsamı korunur ve S109 için kod uydurulmaz.",
"Dependency acceptance yalnız S360 focused grubunun geçmesi değildir. Önceki S238–S359 kronolojik zincir korunur, S360 exact sona eklenir ve iki seri koşunun normalize özetleri byte-eşit olmalıdır. Ham 40 satır farkın timing alanı olduğu ayrıca ölçülmüştür; raw eşitlik iddia edilmez. Bu ayrım test determinism kanıtı ile wall-clock ölçüm varyansını birbirine karıştırmaz.",
"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; S360 focused veya endpoint grant behavior failure'ı değildir. Buna rağmen global workspace GREEN söylenmez. Benzer biçimde scoped S360 rustfmt PASS, global cargo fmt RED gerçeğini örtemez.",
"QEMU ortak acceptance W^X, Runtime-OOM/deadline, S271 return witness, IPC reply ve scheduler progress zincirini korur; S360 production wrapper board-rpi5 cfg'sinde olduğu için bu koşuda exact writer acquisition çalışmış sayılmaz. Capability::revoke forwarding occurrence'ı yalnız reachable source wiring sayısıdır. runtime observation=0, cihaz operation=0 ve physical runbook NO değerleri bu nedenle birlikte tutulur.",
"S361 sınırı kaynak sırasına göre cancel_timed_ipc_call_under_transaction'dır. S360 modülü ve revoke_endpoint_grant boundary'si acquire_s361 sembolünü içermez; timed CALL deadline retirement, caller wake ve reply teardown işlemleri bu kapıya dahil edilmez. Böylece S360 PASS, kalan 36 writer'ın veya bir sonraki cancellation transaction'ının toplu kapanışı olarak yorumlanamaz.",
"Fresh build artifact dizinleri board-qemu /tmp/aselsanos-s360-final-qemu.bVWRMO, board-rpi4 /tmp/aselsanos-s360-final-rpi4.15lRFn, board-rpi5 /tmp/aselsanos-s360-final-rpi5.furjEZ ve board-rpi5+smp /tmp/aselsanos-s360-final-rpi5-smp.kYHWMr'dir. Dependency, workspace, QEMU ve format artifact dizinleri sırasıyla /tmp/aselsanos-s360-final-dependency.D3ILH5, /tmp/aselsanos-s360-final-workspace.NNrywT, /tmp/aselsanos-s360-final-qemu-verify.Zvda2p ve /tmp/aselsanos-s360-format.80hH3L olarak kaydedildi. Geçici path'ler kalıcı proof/status kaydının yerine geçmez.",
"Status manifest S360'ı ayrı g8l_s360_endpoint_grant_revoke_writer_guard_integration nesnesi ve ayrı gate marker'ıyla kaydeder. JSON parse, generated status README write/check ve 243/243 project-status testi PASS'tir. Physical operations_not_performed_s360 listesi exact yedi girdidir. Bu status kabulü publication, runtime invocation, provider authority veya fiziksel cihaz işlemi uydurmaz.",
"Source-bound Kod registry Operations'taki bütün yayımlanmış kapıları S1–S360 aralığında tarar; tarihsel Operations kaydı bulunmayan S109'u tek missing sequence olarak gösterir. S360 kartı production revoke_endpoint_grant boundary, exact S360 S247 guard wrapper, focused test ve Operations identity olmak üzere dört exact kaynak kesiti taşır. Bütün registry 359 yayımlanmış kapı / 1001 exact excerpt'tir; canonical registry SHA-256 generated payload ve status kaydında tutulur. Satır veya tam dosya hash drift'i test/build/deploy'u durdurur; self-referential digest Operations metnine hard-code edilmez.",
"S360 çekirdek ve yayın-öncesi web kabulü 597/597 website test, lint, boş çıktılı TypeScript ve 24/24 static route build PASS verdi. Export 200 dosyadır; Timeline ile yol-haritasi S360 dahil 199 ayrı data-gate-policy kartı, /code/ ise S109 boşluğunu uydurmadan 359 data-code-gate kartı taşır. Yayın kanıtı eklenmeden önce S360 core policy 19776 karakter / 20582 UTF-8 byte ölçüldü; S359'un 18046 karakterlik core yoğunluğundan kısa değildir.",
"S360'ı taşıyan ilk Cloudflare Pages production/main yayını 732925c2-b6d2-412d-b720-cb63c9154fba kimliğiyle 116 upload + 84 existing = 200 export dosyası olarak tamamlandı. İlk cache-busted custom-domain doğrulaması dört rotada HTTP 200 ve ilgili deployment build yerel out dosyalarıyla byte-exact PASS verdi: code 9111199 B / 1a99000f9d5ccc01bea9db9da94fe2bfde0954f53f011b273300221ada5f48fe; operations 11652296 B / db360164474cd6e1e3883e84bd85f8318af964dcb3b369897b5a9b9ef3747a92; timeline 3740809 B / 47c3ff655d12aaeb523e59db07e94e4fc095ef590f83f7012d1068b12e56c35d ve yol-haritasi 3740557 B / b86095943e9064b28a73f765bb9eb118f0229b36b152ae952563d1a98433b3f2. Immutable 732925c2 hostname probe'u connection reset nedeniyle curl exit 35 / HTTP 000 verdi; custom-domain PASS bu erişim sınırını gizlemez.",
"İlk custom-domain kontrol harness'i zsh'nin salt-okunur status değişkenine assignment nedeniyle herhangi bir route sonucu üretmeden durdu. Değişken http_code olarak düzeltildi ve dört route sıfırdan indirildi; kabul yalnız düzeltilmiş koşunun HTTP 200 + cmp exit 0 + byte/hash sonuçlarına dayanır. Harness tanısı product veya deployment RED'i olarak gizlenmez, fakat başarısız komut çıktısı PASS kanıtı sayılmaz.",
"S360 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_S360=NO.",
"S360 bazlı bağlayıcı olmayan planlama görünümü R1 S360–S390, R2 S415–S465, R3 S544+, kaba S520–S570 ve risk paylı merkez ≈S545'tir. 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_s360_endpoint_grant_revoke_writer_guard_integration -- --test-threads=1",
"run S360, S359, S283, S287, capability-mint-source and ipc-queue-source groups serially",
"run four fresh AArch64 profile builds; run S238-S360 dependency list twice; run filtered and unfiltered serial workspace audits; make verify-qemu",
"npm run code:generate && npm test && npm run lint && npx tsc --noEmit && npm run build && npm run deploy",
],
terminalSessions: [
{
id: "g8l-s360-focused-source-contract",
title: "S360 focused endpoint-grant revoke writer membership",
commandLines: [
"cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s360_endpoint_grant_revoke_writer_guard_integration -- --test-threads=1",
],
outputLines: [
"initial test result: RED; S360 focused 22 passed; 21 failed; production module/boundary/service not yet wired",
"first integrated result: 42 passed; 1 failed; exact S361-open documentation line wrapped",
"final test result: ok; S360 focused 1 group / 43 passed; 0 failed",
"shared S247 gate: 44 guarded readers + 33/69 guarded writers; 36 writers open",
"shape/object preflight < S360 writer < CNode/receiver graph/capacity revalidation < exact revoke/cancel/wake < writer/transaction/IRQ release",
"static source paths=1; supported-profile runtime observations=0; provider authority=0",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s360-selected-regression",
title: "S360 selected endpoint revoke and queue regression",
commandLines: [
"run S360, S359, S283, S287, capability-mint-source and ipc-queue-source serially",
],
outputLines: [
"S360 focused 43/43 PASS; S359 focused 49/49 PASS",
"S283 15/15; S287 15/15; capability-mint source 9/9; IPC-queue source 18/18",
"final result: 6 groups / 149 passed / 0 failed",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s360-acceptance-matrix",
title: "S360 four-profile, dependency, workspace and QEMU acceptance",
commandLines: [
"run four fresh AArch64 profile builds after scoped rustfmt",
"run S238-S360 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 124 groups / 2377/2377 twice; normalized 29213-byte summaries are SHA-256 identical",
"filtered workspace 323 groups / 4228 PASS / 7 filtered; unfiltered frozen-S96 remains RED",
"QEMU W^X 31/31 + S130-S154 + S271 + IPC 20/20 + SEC5 PASS; not an S360 runtime observation",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s360-source-bound-code-and-production-publication",
title: "S1–S360 Code registry and S360 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: [
"code registry S1-S360: 359 published gates / 1001 exact source excerpts / missing only S109",
"website 597/597 PASS; lint PASS; TypeScript exit 0 with empty output; static routes 24/24",
"export files=200; Timeline/yol-haritasi gate cards=199; /code/ cards=359; pre-publication S360 core policy=19776 chars / 20582 bytes",
"deployment 732925c2-b6d2-412d-b720-cb63c9154fba; 116 upload + 84 existing",
"custom-domain four routes HTTP 200 and byte-exact=true; immutable hostname curl exit 35 / HTTP 000",
],
exitCode: 0,
outputMode: "complete",
},
],
terminalSessionsNote:
"Terminal kartları komut ve 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 S360 RPi5 runtime invocation veya fiziksel acceptance olarak yükseltilmez.",
limitations: [
"S360 otuz üçüncü production writer'ın dar kaynak entegrasyonudur. Yalnız exact endpoint derived-grant CNode/receiver cancel-wake transaction'ı guarded'dır; S361 timed IPC CALL cancel ayrı kalır ve supported-profile runtime invocation uydurulmaz.",
"Production provider authority ve whole-scheduler exclusion tamamlanmadı; S245 request tüketilmez ve S244 admission yayınlanmaz.",
"Tek static source path wiring envanteridir; S360-specific supported-profile invocation/observation kanıtı yoktur.",
"Kalan 36 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_S360=NO.",
],
},snippet sha256: 51c07c385e53…file sha256: 9726dbf00f84…
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s360_endpoint_grant_revoke_writer_guard_integration -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S360-Endpoint-Grant-Revoke-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9