code wiki / _hdl_build / _pe_lane_tlv.nx

_pe_lane_tlv.nx source

↩ module page · 44 lines · 1540 B

1// AUTHORED BY THE NISHI BUILDER (pattern: IO_CONTRACT census lane) -- no Claude logic 2import "_pe_tlv.nx" 3import "nx_syscalls.nx" 4func lc_dec(label: *u8, v: i64) -> i64 { 5 var n: i64 = 0 6 while label[n] != (0 as u8) { n = n + 1 } 7 sys_write(1, label, n) 8 var av: i64 = v 9 if av < 0 { sys_write(1, "-" as *u8, 1); av = 0 - av } 10 if av == 0 { sys_write(1, "0" as *u8, 1) } 11 if av > 0 { 12 let buf: *u8 = sys_mmap(32) 13 var pos: i64 = 0 14 var x: i64 = av 15 while x > 0 { buf[pos] = (48 + (x % 10)) as u8; x = x / 10; pos = pos + 1 } 16 let outb: *u8 = sys_mmap(32) 17 var oi: i64 = 0 18 while oi < pos { outb[oi] = buf[pos - 1 - oi]; oi = oi + 1 } 19 sys_write(1, outb, pos) 20 } 21 sys_write(1, "\n" as *u8, 1) 22 return 0 23} 24func main() -> i64 { 25 let lenp: *i64 = sys_mmap(16) as *i64 26 let b: *u8 = sys_read_file("/tmp/race_input.bin\x00" as *u8, lenp) 27 let n: i64 = lenp[0] 28 let c: i64 = _pe_tlv_count(b, n) 29 lc_dec("EXTN=\x00" as *u8, c) 30 if c < 0 { 31 lc_dec("SNI=\x00" as *u8, 0 - 2) 32 lc_dec("GR=\x00" as *u8, 0 - 2) 33 lc_dec("SG=\x00" as *u8, 0 - 2) 34 lc_dec("SV=\x00" as *u8, 0 - 2) 35 lc_dec("KS=\x00" as *u8, 0 - 2) 36 return 0 37 } 38 lc_dec("SNI=\x00" as *u8, _pe_tlv_find(b, n, 0)) 39 lc_dec("GR=\x00" as *u8, _pe_tlv_find(b, n, 10)) 40 lc_dec("SG=\x00" as *u8, _pe_tlv_find(b, n, 13)) 41 lc_dec("SV=\x00" as *u8, _pe_tlv_find(b, n, 43)) 42 lc_dec("KS=\x00" as *u8, _pe_tlv_find(b, n, 51)) 43 return 0 44}