g_write_data(9)

g_write_data9

Read/write data from/to geom consumer

Part of g_data(9).

Usage

#include <geom/geom.h>

void *

g_read_data(struct g_consumer *cp, off_t offset, off_t length, int *error);

int

g_write_data(struct g_consumer *cp, off_t offset, void *ptr, off_t length);

Overview

The g_read_data() function reads length bytes of data from the provider attached to consumer cp, starting at offset offset. The buffer returned from g_read_data() is allocated with g_malloc(), so it should be freed by the caller with g_free() after use. If the operation fails, an error value will be stored in the error argument if it is not NULL.

The g_write_data() function writes length bytes of data from the buffer pointed to by ptr to the provider attached to consumer cp, starting at offset offset.

Restrictions/conditions

The length argument should be a multiple of the provider's sectorsize and less than or equal to DFLTPHYS (DFLTPHYS is defined in ⟨sys/param.h⟩).

The topology lock must not be held.

Return values

The g_read_data() function returns a pointer to a data buffer or NULL if an error occurred. In that case an error value is stored in the error argument unless it is NULL.

The g_write_data() function returns 0 if successful; otherwise an error code is returned.

Errors

Possible errors:

[EIO]

An I/O error occurred while reading from or writing to the consumer.

[EINTEGRITY]

Corrupted data was detected while reading from the consumer.

Releases

52 releases since FreeBSD 5.3-RELEASE; the text changed 34 times.

  1. 5.3
  2. 5.4–5.5
  3. 6.0–6.3
  4. 6.4
  5. 7.0
  6. 7.1
  7. 7.2
  8. 7.3
  9. 7.4
  10. 8.0
  11. 8.1
  12. 8.2
  13. 8.3
  14. 8.4
  15. 9.0
  16. 9.1
  17. 9.2
  18. 9.3
  19. 10.0
  20. 10.1
  21. 10.2
  22. 10.3
  23. 10.4
  24. 11.0
  25. 11.1
  26. 11.2
  27. 11.3
  28. 11.4
  29. 12.0
  30. 12.1
  31. 12.2
  32. 12.3
  33. 12.4
  34. 13.0–13.2
  35. 13.3–16.0

Authors

This manual page was written by Pawel Jakub Dawidek ⟨[email protected]⟩.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.