code wiki / (root) / nx_capture_fixture_t218.nx

nx_capture_fixture_t218.nx source

↩ module page · 14 lines · 675 B

1import "nx_syscalls.nx" 2func main(argc:i64,argv:*i64)->i64{ 3 if argc!=2{return 2} 4 let mode:*u8=argv[1] as *u8 5 if mode[0]==101 as u8{return 0} 6 if mode[0]==102 as u8{sys_write(1,"failure",7);return 7} 7 if mode[0]==116 as u8{sys_write(1,"waiting",7);sys_sleep_ms(5000);return 0} 8 if mode[0]!=108 as u8{return 2} 9 let b:*u8=sys_mmap_try(4096);if (b as i64)<=0{return 3} 10 var total:i64=0 11 while total<196613{var n:i64=196613-total;if n>4096{n=4096};var i:i64=0;while i<n{b[i]=((total+i)%251) as u8;i=i+1} 12 var off:i64=0;while off<n{let w:i64=sys_write(1,b+off,n-off);if w<=0{sys_munmap_direct(b,4096);return 4};off=off+w};total=total+n 13 };sys_munmap_direct(b,4096);return 0 14}