1 typedef struct Chain Chain; 2 3 extern uchar rtab[]; /* generated by genrtab.c */ 4 5 #define MSK(nbits) ((1UL<<(nbits))-1) 6 7 enum{ 8 MaxChLen = 128, /* bytes */ 9 }; 10 11 12 /* bit chain, can put at the beginning, get at the end */ 13 struct Chain { 14 int b; /* offset start in bits, (first full) */ 15 int e; /* offset end in bits (first empty) */ 16 uchar buf[MaxChLen]; 17 }; 18 19 extern void getbits(void *p, Chain *ch, int nbits); 20 extern u32int hmsbputl(u32int *v); 21 extern u32int msbhgetl(u32int *v); 22 extern void printchain(Chain *ch); 23 extern void putbits(Chain *ch, void *p, int nbits); 24