G_PROVIDER(9) | Kernel Developer's Manual | G_PROVIDER(9) |
g_new_providerf
,
g_destroy_provider
,
g_error_provider
— GEOM
providers management
#include
<geom/geom.h>
struct g_provider *
g_new_providerf
(struct
g_geom *gp, const char
*fmt, ...);
void
g_destroy_provider
(struct
g_provider *pp);
void
g_error_provider
(struct
g_provider *pp, int
error);
A GEOM provider is the front gate at which a geom offers service. A provider is “a disk-like thing which appears in /dev” – a logical disk in other words. All providers have three main properties: name, sectorsize and size.
The
g_new_providerf
()
function creates a new provider on given geom gp. The
name of the provider, which will appear as device in
devfs(5), is created in a printf(3)-like
way from the rest of the arguments. After creation, the caller has to set
the provider's mediasize and
sectorsize, as well as other desired initializations,
and then call g_error_provider
() to reset the
provider's error, which is initially set to
ENXIO
.
The
g_destroy_provider
()
function destroys the given provider, cancels all related pending events and
removes the corresponding devfs entry.
The
g_error_provider
()
function is used to set the provider's error value. If set to a nonzero, all
I/O requests will be denied, as well as increasing its access count will not
be possible (error error will be returned).
The g_new_providerf
() function returns a
pointer to the newly created provider.
Create an example provider, set its parameters and make it usable.
struct g_provider * create_example_provider(struct g_geom *gp) { struct g_provider *pp; g_topology_lock(); pp = g_new_providerf(gp, "example_provider"); g_topology_unlock(); pp->mediasize = 65536; pp->sectorsize = 512; g_error_provider(pp, 0); return (pp); }
geom(4), DECLARE_GEOM_CLASS(9), g_access(9), g_attach(9), g_bio(9), g_consumer(9), g_data(9), g_event(9), g_geom(9), g_provider_by_name(9), g_wither_geom(9)
This manual page was written by Pawel Jakub Dawidek <pjd@FreeBSD.org>.
January 16, 2004 | Debian |