#ifndef _CPACK_H
#define _CPACK_H
+#include "netdissect.h"
+
struct cpack_state {
const uint8_t *c_buf;
const uint8_t *c_next;
int cpack_init(struct cpack_state *, const uint8_t *, size_t);
-int cpack_uint8(struct cpack_state *, uint8_t *);
-int cpack_int8(struct cpack_state *, int8_t *);
-int cpack_uint16(struct cpack_state *, uint16_t *);
-int cpack_int16(struct cpack_state *, int16_t *);
-int cpack_uint32(struct cpack_state *, uint32_t *);
-int cpack_int32(struct cpack_state *, int32_t *);
-int cpack_uint64(struct cpack_state *, uint64_t *);
-int cpack_int64(struct cpack_state *, int64_t *);
+int cpack_uint8(netdissect_options *, struct cpack_state *, uint8_t *);
+int cpack_int8(netdissect_options *, struct cpack_state *, int8_t *);
+int cpack_uint16(netdissect_options *, struct cpack_state *, uint16_t *);
+int cpack_int16(netdissect_options *, struct cpack_state *, int16_t *);
+int cpack_uint32(netdissect_options *, struct cpack_state *, uint32_t *);
+int cpack_int32(netdissect_options *, struct cpack_state *, int32_t *);
+int cpack_uint64(netdissect_options *, struct cpack_state *, uint64_t *);
+int cpack_int64(netdissect_options *, struct cpack_state *, int64_t *);
const uint8_t *cpack_next_boundary(const uint8_t *buf, const uint8_t *p, size_t alignment);
const uint8_t *cpack_align_and_reserve(struct cpack_state *cs, size_t wordsize);