* \return An offset to space allocated within \blob to which \to_write bytes
* can be written, (or -1 in case of any allocation error).
*/
-ssize_t
+intptr_t
blob_reserve_bytes(struct blob *blob, size_t to_write);
/**
* space. Note that this must be used if later reading with \sa
* blob_read_uint32, since it aligns the offset correctly.
*/
-ssize_t
+intptr_t
blob_reserve_uint32(struct blob *blob);
/**
* space. Note that this must be used if later reading with \sa
* blob_read_intptr, since it aligns the offset correctly.
*/
-ssize_t
+intptr_t
blob_reserve_intptr(struct blob *blob);
/**
* current value is unchanged before and after the call.
*/
void
-blob_reader_init(struct blob_reader *blob, const uint8_t *data, size_t size);
+blob_reader_init(struct blob_reader *blob, const void *data, size_t size);
/**
* Read some unstructured, fixed-size data from the current location, (and
* it to \dest (and update the current location to just past this data)
*/
void
-blob_copy_bytes(struct blob_reader *blob, uint8_t *dest, size_t size);
+blob_copy_bytes(struct blob_reader *blob, void *dest, size_t size);
+
+/**
+ * Skip \size bytes within the blob.
+ */
+void
+blob_skip_bytes(struct blob_reader *blob, size_t size);
/**
* Read a uint32_t from the current location, (and update the current location