code wiki / (root) / nx_face_feature_gate_t367r5.nx

nx_face_feature_gate_t367r5.nx source

↩ module page · 35 lines · 1669 B

1// nx_face_feature_gate_t367r5.nx -- exact native buffer reuse pattern with contract checks. 2import "nx_syscalls.nx" 3import "nx_gatekit_lib.nx" 4import "nx_sdfrender.nx" 5import "nx_faceanat.nx" 6const X_USAGE:i64=2 7const X_REFUSE:i64=1 8const X_SIZE:i64=1 9const X_LEFT:i64=0-1 10const X_RIGHT:i64=1 11const X_A0:i64=48 12const X_MINUS:i64=45 13const X_NL:i64=10 14func xnum(t:*u8,v:i64)->i64 { 15 let b:*u8=sys_mmap(96); let d:*u8=sys_mmap(64); var n:i64=0; var x:i64=v 16 if x<0 { b[n]=X_MINUS; n=n+1; x=0-x }; var m:i64=0 17 if x==0 { d[m]=X_A0; m=m+1 }; while x>0 { let q:i64=x/10; d[m]=X_A0+(x-q*10); m=m+1; x=q } 18 while m>0 { m=m-1; b[n]=d[m]; n=n+1 }; b[n]=X_NL; n=n+1; sys_write(1,t,gk_len(t)); sys_write(1,b,n); return v 19} 20func main(argc:i64,argv:*i64)->i64 { 21 if argc!=X_SIZE { return X_USAGE } 22 let b:i64=sys_mmap(sdf_bytes()) as i64 23 xnum("build=",faceanat_build(b)) 24 let o:*i64=sys_mmap(FA_PF_O_FIELDS*8+FA_LIP_SLACK) as *i64 25 let l1:i64=fa_palpebral_fissure(b,X_LEFT,o); xnum("l1=",l1); xnum("l1r=",o[FA_PF_O_REASON]) 26 let q:*i64=sys_mmap(FA_LIP_O_FIELDS*8+FA_LIP_SLACK) as *i64 27 let p1:i64=fa_lip_ratio(b,q); xnum("p1=",p1); xnum("p1r=",q[FA_LIP_O_REASON]) 28 let g:*i64=sys_mmap(6*8) as *i64; g[0]=50;g[1]=100;g[2]=100;g[3]=581;g[4]=0;g[5]=0 29 xnum("g=",faceanat_eye_genes(b,g)); xnum("rebuild=",faceanat_build(b)) 30 let l2:i64=fa_palpebral_fissure(b,X_LEFT,o); xnum("l2=",l2); xnum("l2r=",o[FA_PF_O_REASON]) 31 let r2:i64=fa_palpebral_fissure(b,X_RIGHT,o); xnum("r2=",r2); xnum("r2r=",o[FA_PF_O_REASON]) 32 let p2:i64=fa_lip_ratio(b,q); xnum("p2=",p2); xnum("p2r=",q[FA_LIP_O_REASON]) 33 if l1!=0||r2!=0||p1==FA_LIP_UNMEASURED||p2==FA_LIP_UNMEASURED { return X_REFUSE } 34 return 0 35}