#define UNSTUFF_BITS(resp,start,size) \ ({ \ const unsigned long __mask = (1 << (size)) - 1; \ const int __off = 3 - ((start) / 32); \ const int __shft = (start) & 31; \ unsigned long __res; \ \ __res = resp[__off] >> __shft; \ if ((size) + __shft >= 32) \ __res |= resp[__off-1] << (32 - __shft); \ __res & __mask; \ })