nx_gzip_replay_gate_t253.nx source
↩ module page · 13 lines · 962 B
1import "nx_fetch_decode_capture_t253.nx"
2func main(argc:i64,argv:*i64)->i64{
3 if argc!=4{return 2}
4 let ln:*i64=sys_mmap_try(8) as *i64;let src:*u8=sys_map_file(argv[1] as *u8,ln)
5 if (src as i64)==0{return 3};if ln[0]<18{return 3}
6 let cap:i64=hsl_size(argv[2] as *u8)
7 fa_puts("gzip_flags=");fa_putn(src[3] as i64);fa_puts(" trailer_size_hint=");fa_putn(_gz_read_u32_le(src,ln[0]-4));fa_puts(" trailer_crc=");fa_putn(_gz_read_u32_le(src,ln[0]-8));fa_puts("\n")
8 if cap<=0{return 0}
9 let r:*NxGzipResult=nx_gzip_inflate(src,ln[0],cap)
10 fa_puts("gzip_error=");fa_putn(r.error_code);fa_puts(" decoded_bytes=");fa_putn(r.output_size);fa_puts(" consumed=");fa_putn(r.bytes_consumed);fa_puts(" crc_expected=");fa_putn(r.crc_expected);fa_puts(" crc_computed=");fa_putn(r.crc_computed);fa_puts(" size_expected=");fa_putn(r.size_expected);fa_puts("\n")
11 if r.error_code!=0{return 4}
12 return (hd_save(argv[3] as *u8,r.output_data,r.output_size)!=r.output_size) as i64
13}