code wiki / (root) / nx_scene_light_emitter_canonical_gate_t364.nx

nx_scene_light_emitter_canonical_gate_t364.nx source

↩ module page · 59 lines · 2388 B

1import "nx_cast_shader_src.nx" 2import "nx_gate_verdict.nx" 3static gsb_failed:i64 4func gpe_ap(out: *u8, pos: i64, s: *u8) -> i64 { 5 var k: i64 = 0 6 var p: i64 = pos 7 while s[k] != (0 as u8) { out[p] = s[k]; p = p + 1; k = k + 1 } 8 return p 9} 10 11struct GpeSceneWriter { output:i64, capacity:i64, position:i64, failed:i64 } 12func gpe_scene_light_recipe_emit(out:*u8,pos:i64)->i64{ 13 let extent:i64=__size_of(GpeSceneWriter) 14 let w:*i64=sys_mmap_try(extent) as *i64 15 if (w as i64)<=0{gsb_failed=1;return pos} 16 w[0]=0;w[1]=0;w[2]=0;w[3]=0 17 var p:i64=pos 18 var b:*u8=0 as *u8 19 var bytes:i64=0 20 if cs_scene_light_recipe_write(w)!=0||w[2]<=0||w[2]>=GLW_I64_MAX{gsb_failed=1} 21 if gsb_failed==0{ 22 let n:i64=w[2];bytes=n+1;b=sys_mmap_try(bytes) 23 if (b as i64)<=0{gsb_failed=1} 24 if gsb_failed==0{ 25 w[0]=b as i64;w[1]=n;w[2]=0;w[3]=0 26 if cs_scene_light_recipe_write(w)!=0||w[2]!=n{gsb_failed=1} 27 if gsb_failed==0{ 28 b[n]=0 as u8 29 p=gpe_ap(out,pos,"const NX_SCENE_LIGHT_RECIPE=Object.freeze(") 30 p=gpe_ap(out,p,b);p=gpe_ap(out,p,");\n") 31 } 32 } 33 } 34 if (b as i64)>0{if sys_munmap_direct(b,bytes)!=0{gsb_failed=1}} 35 if sys_munmap_direct(w as *u8,extent)!=0{gsb_failed=1} 36 return p 37} 38 39func main(argc:i64,argv:*i64)->i64{ 40 let ctr:*i64=gv_ctr() 41 let extent:i64=__size_of(GpeSceneWriter) 42 let w:*i64=sys_mmap_try(extent) as *i64 43 if (w as i64)<=0{return 3} 44 w[0]=0;w[1]=0;w[2]=0;w[3]=0 45 if cs_scene_light_recipe_write(w)!=0{return 4} 46 let n:i64=w[2] 47 let total:i64=n+glw_len("const NX_SCENE_LIGHT_RECIPE=Object.freeze(")+glw_len(");\n") 48 let b:*u8=sys_mmap_try(total+1) 49 if (b as i64)<=0{sys_munmap_direct(w as *u8,extent);return 5} 50 let p:i64=gpe_scene_light_recipe_emit(b,0) 51 gv_check("measured writer ABI extent",extent==4*__size_of(i64),ctr) 52 gv_check("exact recipe emission and cleanup",gsb_failed==0&&p==total,ctr) 53 gv_check("emitted declaration delimiters",b[0]==(99 as u8)&&b[p-1]==(10 as u8),ctr) 54 gsb_failed=1;b[0]=71 as u8 55 gv_check("prior failure preserved without output",gpe_scene_light_recipe_emit(b,0)==0&&gsb_failed==1&&b[0]==(71 as u8),ctr) 56 gv_check("direct output release",sys_munmap_direct(b,total+1)==0,ctr) 57 gv_check("direct descriptor release",sys_munmap_direct(w as *u8,extent)==0,ctr) 58 return gv_verdict("SCENE-EMITTER-OWNERSHIP",ctr,"Measured descriptor, direct fallible mapping and matched release; kernel ENOMEM and munmap failure not fault-injected") 59}