| 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 |