NET_KSTAT_CREATE(9F) Kernel Functions for Drivers NET_KSTAT_CREATE(9F)
NAME
net_kstat_create - create and initialize a new kstat for a specific
instance of IP
SYNOPSIS
#include <sys/types.h>
#include <sys/kstat.h>
#include <sys/neti.h>
kstat_t *
net_kstat_create(
netid_t netid,
char *
module,
int instance,
char *
name,
char *
class,
uchar_type type,
ulong_t ndata,
uchar_t ks_flag);
INTERFACE LEVEL
illumos DDI specific (illumos DDI).
PARAMETERS
netid IP instance identifier.
module The name of the provider's module (such as "
sd", "
esp",
...). The "
core" kernel uses the name "unix".
instance The provider's instance number, as from
ddi_get_instance(9F). Modules which do not have a
meaningful instance number should use
0.
name A pointer to a string that uniquely identifies this
structure. Only
KSTAT_STRLEN - 1 characters are
significant.
class The general class that this kstat belongs to. The
following classes are currently in use:
disk,
tape,
net,
controller,
vm,
kvm,
hat,
streams,
kstat, and
misc.
type The type of
kstat to allocate. Valid types are:
KSTAT_TYPE_NAMED Allows more than one data record per
kstat.
KSTAT_TYPE_INTR Interrupt; only one data record per
kstat.
KSTAT_TYPE_IO I/O; only one data record per
kstat ndata The number of type-specific data records to allocate.
ks_flag A bit-field of various flags for this
kstat.
ks_flag is
some combination of:
KSTAT_FLAG_VIRTUAL Tells
kstat_create() not to allocate memory for the
kstat data section; instead, the driver will set the
ks_data field to point to the data it wishes to
export. This provides a convenient way to export
existing data structures.
KSTAT_FLAG_WRITABLE Makes the
kstat data section writable by root.
KSTAT_FLAG_PERSISTENT Indicates that this
kstat is to be persistent over
time. For persistent
kstats,
kstat_delete(9F) simply
marks the
kstat as dormant; a subsequent
kstat_create() reactivates the kstat. This feature is
provided so that statistics are not lost across
driver close/open (such as raw disk
I/O on a disk
with no mounted partitions.) Note: Persistent
kstats
cannot be virtual, since
ks_data points to garbage as
soon as the driver goes away.
DESCRIPTION
The
net_kstat_create() function allocates and initializes a
kstat(9S) structure. See
kstat_create(9F) for a complete discussion of this
function.
RETURN VALUES
If successful,
net_kstat_create() returns a pointer to the allocated
kstat.
NULL is returned upon failure.
CONTEXT
The
net_kstat_create() function may be called from user or kernel
context.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
SEE ALSO
ddi_get_instance(9F),
kstat_create(9F),
kstat_delete(9F),
net_kstat_delete(9F),
hook_t(9S),
kstat_named(9S) May 1, 2008 NET_KSTAT_CREATE(9F)