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.
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)
This manual page was written by
Pawel Jakub
Dawidek
<
pjd@FreeBSD.org>.