return x;
}
-u16 readu8()
+u8 readu8()
{
u8 a;
input1(&a);
u16 readu16()
{
u8 a,b;
- // I'm not using input2(&a) here because our input is
- // little endian.
input1(&a);
input1(&b);
return ((u16)b)*256+a;
}
+u32 readu32()
+{
+ u8 a,b,c,d;
+ input1(&a);
+ input1(&b);
+ input1(&c);
+ input1(&d);
+ return (((((u32)d)*256+(u32)c)*256+(u32)b)*256+(u32)a);
+}
+
void writer_init(struct writer_t*w, u8*data, int maxlength)
{
w->data = data;
writer_write(w, &value, 2);
}
+void writer_writeu32(struct writer_t*w, u32 value)
+{
+ writer_resetbits(w);
+ writer_write(w, &value, 4);
+}
+
void* writer_getpos(struct writer_t*w)
{
return &w->data[w->pos];