-#define cpack_int8(__s, __p) cpack_uint8((__s), (u_int8_t*)(__p))
-#define cpack_int16(__s, __p) cpack_uint16((__s), (u_int16_t*)(__p))
-#define cpack_int32(__s, __p) cpack_uint32((__s), (u_int32_t*)(__p))
-#define cpack_int64(__s, __p) cpack_uint64((__s), (u_int64_t*)(__p))
+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);
+
+#define cpack_int8(__s, __p) cpack_uint8((__s), (uint8_t*)(__p))
+#define cpack_int16(__s, __p) cpack_uint16((__s), (uint16_t*)(__p))
+#define cpack_int32(__s, __p) cpack_uint32((__s), (uint32_t*)(__p))
+#define cpack_int64(__s, __p) cpack_uint64((__s), (uint64_t*)(__p))
+
+extern int cpack_advance(struct cpack_state *, const size_t);