rsc | 056fe1b | 2003-11-23 18:19:58 +0000 | [diff] [blame] | 1 | /* |
| 2 | * integer conversion routines |
| 3 | */ |
| 4 | #define U8GET(p) ((p)[0]) |
| 5 | #define U16GET(p) (((p)[0]<<8)|(p)[1]) |
| 6 | #define U32GET(p) ((u32int)(((p)[0]<<24)|((p)[1]<<16)|((p)[2]<<8)|(p)[3])) |
| 7 | #define U48GET(p) (((vlong)U16GET(p)<<32)|(vlong)U32GET((p)+2)) |
| 8 | #define U64GET(p) (((vlong)U32GET(p)<<32)|(vlong)U32GET((p)+4)) |
| 9 | |
| 10 | #define U8PUT(p,v) (p)[0]=(v) |
| 11 | #define U16PUT(p,v) (p)[0]=(v)>>8;(p)[1]=(v) |
| 12 | #define U32PUT(p,v) (p)[0]=(v)>>24;(p)[1]=(v)>>16;(p)[2]=(v)>>8;(p)[3]=(v) |
| 13 | #define U48PUT(p,v,t32) t32=(v)>>32;U16PUT(p,t32);t32=(v);U32PUT((p)+2,t32) |
| 14 | #define U64PUT(p,v,t32) t32=(v)>>32;U32PUT(p,t32);t32=(v);U32PUT((p)+4,t32) |
| 15 | |