code wiki / (root) / nx_product_full_gate_t40.nx

nx_product_full_gate_t40.nx source

↩ module page · 29 lines · 1452 B

1import "nx_product_decompose.nx" 2import "nx_tool_run.nx" 3const PT_NEEDS:*u8="/tmp/nx_product_full_t40-needs-" 4const PT_CAPS:*u8="/tmp/nx_product_full_t40-caps-" 5const PT_OUTPUT:*u8="/tmp/nx_product_full_t40-output-" 6func main()->i64 { 7 let rows:i64=PD_MAXROW+1 8 let input:*u8=sys_mmap(rows*4) 9 var i:i64=0 10 while i<rows{input[i*4]=110 as u8;input[i*4+1]=101 as u8;input[i*4+2]=100 as u8;input[i*4+3]=10 as u8;i=i+1} 11 if sts_seed(PT_NEEDS,input,rows*4)!=rows{return 2} 12 let caprow:*u8="cap\tcap\tstate\ttype\towner\tvalue\tned\n" 13 if sts_seed(PT_CAPS,caprow,pd_slen(caprow))!=1{return 3} 14 let prior:*u8="prior-assessment\n" 15 if sts_seed(PT_OUTPUT,prior,pd_slen(prior))!=1{return 4} 16 let path:*u8="/volume1/homes/elderwesto/nishihost/buildroot/_build/nx_product_decompose.sov.elf" 17 let av:*i64=sys_mmap(40) as *i64 18 av[0]=path as i64;av[1]=PT_NEEDS as i64;av[2]=PT_CAPS as i64;av[3]=PT_OUTPUT as i64;av[4]=0 19 let output:*u8=sys_mmap(4096);let length:*i64=sys_mmap(16) as *i64 20 let rc:i64=tr_run_capture(path,av,output,4096,length) 21 if length[0]>0{sys_write(1,output,length[0])} 22 if rc!=2{return 5} 23 let flags:*i64=sys_mmap(24) as *i64 24 let n:i64=sts_load_honest(PT_OUTPUT,output,4096,flags) 25 if n!=pd_slen(prior)||flags[0]!=1||flags[1]!=1||flags[2]!=0{return 6} 26 i=0;while i<n{if output[i]!=prior[i]{return 7};i=i+1} 27 pd_w("PASS compiled CLI rejects incomplete65 requirements and preserves prior assessment in real isolated stores\n" as *u8) 28 return 0 29}