fluffy

Network Archaeology tools for Unix
git clone https://git.woozle.org/neale/fluffy.git

Neale Pickett  ·  2017-06-16

stream.h

 1#ifndef _STREAM_H
 2#define _STREAM_H
 3
 4#include <stdbool.h>
 5#include <stdint.h>
 6#include <stddef.h>
 7
 8enum endianness {
 9	ENDIAN_BIG,
10	ENDIAN_LITTLE
11};
12#define ENDIAN_NETWORK ENDIAN_BIG
13
14struct stream {
15	char const *buf;
16	size_t len;
17	enum endianness endian;
18};
19
20void sinit(struct stream *s, char const *buf, size_t len, enum endianness endian);
21bool sskip(struct stream *s, size_t count);
22bool sread(struct stream *s, void *buf, size_t count);
23uint8_t read_uint8(struct stream *s);
24uint16_t read_uint16be(struct stream *s);
25uint16_t read_uint16le(struct stream *s);
26uint16_t read_uint16(struct stream *s);
27uint32_t read_uint32be(struct stream *s);
28uint32_t read_uint32le(struct stream *s);
29uint32_t read_uint32(struct stream *s);
30
31#endif