1*09a5a243SRoy Oursler; <COPYRIGHT_TAG> 2*09a5a243SRoy Oursler 3*09a5a243SRoy Oursler;; START_FIELDS 4*09a5a243SRoy Oursler%macro START_FIELDS 0 5*09a5a243SRoy Oursler%assign _FIELD_OFFSET 0 6*09a5a243SRoy Oursler%assign _STRUCT_ALIGN 0 7*09a5a243SRoy Oursler%endm 8*09a5a243SRoy Oursler 9*09a5a243SRoy Oursler;; FIELD name size align 10*09a5a243SRoy Oursler%macro FIELD 3 11*09a5a243SRoy Oursler%define %%name %1 12*09a5a243SRoy Oursler%define %%size %2 13*09a5a243SRoy Oursler%define %%align %3 14*09a5a243SRoy Oursler 15*09a5a243SRoy Oursler%assign _FIELD_OFFSET (_FIELD_OFFSET + (%%align) - 1) & (~ ((%%align)-1)) 16*09a5a243SRoy Oursler%%name equ _FIELD_OFFSET 17*09a5a243SRoy Oursler%assign _FIELD_OFFSET _FIELD_OFFSET + (%%size) 18*09a5a243SRoy Oursler%if (%%align > _STRUCT_ALIGN) 19*09a5a243SRoy Oursler%assign _STRUCT_ALIGN %%align 20*09a5a243SRoy Oursler%endif 21*09a5a243SRoy Oursler%endm 22*09a5a243SRoy Oursler 23*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 24*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 25*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 26*09a5a243SRoy Oursler 27*09a5a243SRoy OurslerSTART_FIELDS ;; inflate out buffer 28*09a5a243SRoy Oursler 29*09a5a243SRoy Oursler;; name size align 30*09a5a243SRoy OurslerFIELD _start_out, 8, 8 31*09a5a243SRoy OurslerFIELD _next_out, 8, 8 32*09a5a243SRoy OurslerFIELD _avail_out, 4, 4 33*09a5a243SRoy OurslerFIELD _total_out, 4, 4 34*09a5a243SRoy Oursler 35*09a5a243SRoy Oursler%assign _inflate_out_buffer_size _FIELD_OFFSET 36*09a5a243SRoy Oursler%assign _inflate_out_buffer_align _STRUCT_ALIGN 37*09a5a243SRoy Oursler 38*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 39*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 40*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 41*09a5a243SRoy Oursler 42*09a5a243SRoy OurslerSTART_FIELDS ;; inflate in buffer 43*09a5a243SRoy Oursler 44*09a5a243SRoy Oursler;; name size align 45*09a5a243SRoy OurslerFIELD _start_in, 8, 8 46*09a5a243SRoy OurslerFIELD _next_in, 8, 8 47*09a5a243SRoy OurslerFIELD _avail_in, 4, 4 48*09a5a243SRoy OurslerFIELD _read_in, 8, 8 49*09a5a243SRoy OurslerFIELD _read_in_length,4, 4 50*09a5a243SRoy Oursler 51*09a5a243SRoy Oursler%assign _inflate_in_buffer_size _FIELD_OFFSET 52*09a5a243SRoy Oursler%assign _inflate_in_buffer_align _STRUCT_ALIGN 53*09a5a243SRoy Oursler 54*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 55*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 56*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 57*09a5a243SRoy Oursler 58*09a5a243SRoy OurslerSTART_FIELDS ;; inflate huff code 59*09a5a243SRoy Oursler 60*09a5a243SRoy Oursler;; name size align 61*09a5a243SRoy OurslerFIELD _small_code_lookup, 2 * (1 << (DECODE_LOOKUP_SIZE)), 8 62*09a5a243SRoy OurslerFIELD _long_code_lookup, 2 * MAX_LONG_CODE, 2 63*09a5a243SRoy Oursler 64*09a5a243SRoy Oursler%assign _inflate_huff_code_size _FIELD_OFFSET 65*09a5a243SRoy Oursler%assign _inflate_huff_code_align _STRUCT_ALIGN 66*09a5a243SRoy Oursler 67*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 68*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 69*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 70*09a5a243SRoy Oursler 71*09a5a243SRoy OurslerSTART_FIELDS ;; inflate state 72*09a5a243SRoy Oursler 73*09a5a243SRoy Oursler;; name size align 74*09a5a243SRoy OurslerFIELD _out_buffer, _inflate_out_buffer_size, _inflate_out_buffer_align 75*09a5a243SRoy OurslerFIELD _in_buffer, _inflate_in_buffer_size, _inflate_in_buffer_align 76*09a5a243SRoy OurslerFIELD _lit_huff_code, _inflate_huff_code_size, _inflate_huff_code_align 77*09a5a243SRoy OurslerFIELD _dist_huff_code,_inflate_huff_code_size, _inflate_huff_code_align 78*09a5a243SRoy OurslerFIELD _new_block, 1, 1 79*09a5a243SRoy OurslerFIELD _bfinal, 1, 1 80*09a5a243SRoy OurslerFIELD _btype, 1, 1 81*09a5a243SRoy Oursler 82*09a5a243SRoy Oursler%assign _inflate_state_size _FIELD_OFFSET 83*09a5a243SRoy Oursler%assign _inflate_state_align _STRUCT_ALIGN 84*09a5a243SRoy Oursler 85*09a5a243SRoy Oursler_out_buffer_start_out equ _out_buffer+_start_out 86*09a5a243SRoy Oursler_out_buffer_next_out equ _out_buffer+_next_out 87*09a5a243SRoy Oursler_out_buffer_avail_out equ _out_buffer+_avail_out 88*09a5a243SRoy Oursler_out_buffer_total_out equ _out_buffer+_total_out 89*09a5a243SRoy Oursler 90*09a5a243SRoy Oursler_in_buffer_start equ _in_buffer+_start_in 91*09a5a243SRoy Oursler_in_buffer_next_in equ _in_buffer+_next_in 92*09a5a243SRoy Oursler_in_buffer_avail_in equ _in_buffer+_avail_in 93*09a5a243SRoy Oursler_in_buffer_read_in equ _in_buffer+_read_in 94*09a5a243SRoy Oursler_in_buffer_read_in_length equ _in_buffer+_read_in_length 95*09a5a243SRoy Oursler 96*09a5a243SRoy Oursler_lit_huff_code_small_code_lookup equ _lit_huff_code+_small_code_lookup 97*09a5a243SRoy Oursler_lit_huff_code_long_code_lookup equ _lit_huff_code+_long_code_lookup 98*09a5a243SRoy Oursler 99*09a5a243SRoy Oursler_dist_huff_code_small_code_lookup equ _dist_huff_code+_small_code_lookup 100*09a5a243SRoy Oursler_dist_huff_code_long_code_lookup equ _dist_huff_code+_long_code_lookup 101*09a5a243SRoy Oursler 102*09a5a243SRoy Oursler 103*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 104*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 105*09a5a243SRoy Oursler;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 106*09a5a243SRoy Oursler 107