SIZE(9P) Kernel Properties for Drivers SIZE(9P)
NAME
size, Nblock, blksize, device-nblocks, device-blksize - device size
properties
DESCRIPTION
A driver can communicate size information to the system by the values
associated with following properties. Size information falls into two
categories: device size associated with a
dev_info_t node, and minor
node size associated with a
ddi_create_minor_node(9F) dev_t (partition).
device size property names:
device-nblocks An
int64_t property representing device size in
device-blksize blocks.
device-blksize An integer property representing the size in bytes
of a block. If defined, the value must be a power
of two. If not defined,
DEV_BSIZE is implied.
minor size property names:
Size An
int64_t property representing the size in bytes of a
character minor device (
S_IFCHR spec_type in
ddi_create_minor_node).
Nblocks An
int64_t property representing the number blocks, in
device-blksize units, of a block minor device (
S_IFBLK spec_type in ddi_create_minor_node).
blksize An integer property representing the size in bytes of a
block. If defined, the value must be a power of two. If
not defined,
DEV_BSIZE is implied.
A driver that implements both block and character minor device nodes
should support both "Size" and "Nblocks". Typically, the following is
true: Size =
Nblocks *
blksize.
A driver where all
ddi_create_minor_node(9F) calls for a given
instance are associated with the same physical block device should
implement "
device-nblocks". If the device has a fixed block size with
a value other than
DEV_BSIZE then "
device-blksize" should be
implemented.
The driver is responsible for ensuring that property values are
updated when device, media, or partition sizes change. For each
represented item, if its size is know to be zero, the property value
should be zero. If its size is unknown, the property should not be
defined.
A driver may choose to implement size properties within its
prop_op(9E) implementation. This reduces system memory since no space
is used to store the properties.
The DDI property interfaces deal in signed numbers. All
size(9P) values should be considered unsigned. It is the responsibility of the
code dealing with the property value to ensure that an unsigned
interpretation occurs.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
SEE ALSO
attach(9E),
detach(9E),
prop_op(9E),
ddi_create_minor_node(9F),
inquiry-vendor-id(9P) Writing Device Drivers June 20, 2021 SIZE(9P)