util/blob: Add overwrite function for uint8
authorMark Menzynski <mmenzyns@redhat.com>
Tue, 10 Dec 2019 10:28:11 +0000 (11:28 +0100)
committermmenzyns <mmenzyns@redhat.com>
Fri, 20 Mar 2020 17:25:25 +0000 (17:25 +0000)
Overwrite function for this type  was missing and I needed it for my project.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Mark Menzynski <mmenzyns@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3903>

src/util/blob.c
src/util/blob.h

index e4000334e0aee0ee7143da305445bf98980b50a2..f830eb480768517e398dc3d4ce32d118e364ccf9 100644 (file)
@@ -214,6 +214,15 @@ BLOB_WRITE_TYPE(blob_write_intptr, intptr_t)
 #define ASSERT_ALIGNED(_offset, _align) \
    assert(ALIGN((_offset), (_align)) == (_offset))
 
+bool
+blob_overwrite_uint8 (struct blob *blob,
+                      size_t offset,
+                      uint8_t value)
+{
+   ASSERT_ALIGNED(offset, sizeof(value));
+   return blob_overwrite_bytes(blob, offset, &value, sizeof(value));
+}
+
 bool
 blob_overwrite_uint32 (struct blob *blob,
                        size_t offset,
index 9113331254afad0cb620d15e68a6da297944ba48..e1e156eb43fa1e40f9dc34d20a80f826f48c42f5 100644 (file)
@@ -183,6 +183,21 @@ blob_overwrite_bytes(struct blob *blob,
 bool
 blob_write_uint8(struct blob *blob, uint8_t value);
 
+/**
+ * Overwrite a uint8_t previously written to the blob.
+ *
+ * Writes a uint8_t value to an existing portion of the blob at an offset of
+ * \offset.  This data range must have previously been written to the blob by
+ * one of the blob_write_* calls.
+ *
+ * \return True unless the requested position or position+to_write lie outside
+ * the current blob's size.
+ */
+bool
+blob_overwrite_uint8(struct blob *blob,
+                     size_t offset,
+                     uint8_t value);
+
 /**
  * Add a uint16_t to a blob.
  *