aboutsummaryrefslogtreecommitdiffstats
path: root/pack.h
diff options
context:
space:
mode:
Diffstat (limited to 'pack.h')
-rw-r--r--pack.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/pack.h b/pack.h
index 7fd54a5..d43bdcf 100644
--- a/pack.h
+++ b/pack.h
@@ -42,8 +42,21 @@ enum pack_endian {
PACK_ENDIAN_LITTLE
};
+struct pack_field {
+ enum pack_type type;
+ size_t count;
+ size_t offset;
+};
+
+struct pack_args {
+ enum pack_endian endian;
+ struct pack_field *fields;
+ size_t num_fields;
+};
+
enum pack_status pack(void *dest, size_t size, const char *fmt, ...);
enum pack_status unpack(const void *buf, size_t size, const char *fmt, ...);
+enum pack_status unpack_struct(const void *buf, size_t size, const struct pack_args *args, void *dest);
const char *pack_strerror(enum pack_status status);