code wiki / (root) / nx_tools_denial_observation_candidate_t316.nx

nx_tools_denial_observation_candidate_t316.nx source

↩ module page · 16 lines · 894 B

1// Isolated candidate: merge functions into nx_tools_api after review; no production journal used by gate. 2import "nx_tools_api.nx" 3func ta_denial_observe_to(path:*u8,tool:*u8,n:i64,decision:i64,begin:i64,end:i64)->i64 { 4 if decision>=0||n<=0{return -1} 5 if ta_timing_field_ok(tool,n)!=1{return -1} 6 ta_timing_bind(tool,n) 7 let elapsed:i64=ta_timing_elapsed(begin,end) 8 var duration:i64=TT_UNKNOWN 9 if elapsed>=0{duration=elapsed/1000} 10 let call_rc:i64=ta_actlog_x_to(path,tool,n,"authorization","denied",decision,0,duration," dispatched=false decision_domain=capability") 11 let timing_rc:i64=ta_timing_emit_to(path,tool,n,"authorization","authorization_denied",TT_UNKNOWN,begin,end,decision,0) 12 if call_rc<0{return call_rc};return timing_rc 13} 14func ta_denial_observe(tool:*u8,n:i64,decision:i64)->i64 { 15 return ta_denial_observe_to(0 as *u8,tool,n,decision,tt_handle_begin,ta_timing_now_us()) 16}