g_read_data,
g_write_data — read/write
data from/to GEOM consumer
#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);
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.
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.
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.
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.
geom(4),
DECLARE_GEOM_CLASS(9),
g_access(9),
g_attach(9),
g_bio(9),
g_consumer(9),
g_event(9),
g_geom(9),
g_provider(9),
g_provider_by_name(9),
g_wither_geom(9)