JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
man pages section 9: DDI and DKI Properties and Data Structures     Oracle Solaris 11.1 Information Library
search filter icon
search icon

Document Information

Preface

Introduction

Data Structures for Drivers

aio_req(9S)

audio_engine_ops(9S)

blksize(9P)

buf(9S)

cb_ops(9S)

copyreq(9S)

copyresp(9S)

datab(9S)

dblk(9S)

ddi_device_acc_attr(9S)

ddi_dma_attr(9S)

ddi_dma_cookie(9S)

ddi_dmae_req(9S)

ddi_dma_lim(9S)

ddi_dma_lim_sparc(9S)

ddi_dma_lim_x86(9S)

ddi_dma_req(9S)

ddi_fm_error(9S)

ddi-forceattach(9P)

ddi_idevice_cookie(9S)

ddi-no-autodetach(9P)

ddi-no-modunload(9P)

device-blksize(9P)

device-nblocks(9P)

device-pblksize(9P)

devmap_callback_ctl(9S)

dev_ops(9S)

fmodsw(9S)

free_rtn(9S)

gld_mac_info(9S)

gld_stats(9S)

hook_nic_event(9S)

hook_pkt_event(9S)

hook_t(9S)

inquiry-device-type(9P)

inquiry-product-id(9P)

inquiry-revision-id(9P)

inquiry-serial-no(9P)

inquiry-vendor-id(9P)

iocblk(9S)

iovec(9S)

kstat(9S)

kstat_intr(9S)

kstat_io(9S)

kstat_named(9S)

linkblk(9S)

lso_basic_tcp_ipv4(9S)

mac_callbacks(9S)

mac_capab_lso(9S)

mac_capab_rings(9S)

mac_group_info(9S)

mac_register(9S)

mac_ring_info(9S)

mblk(9S)

modldrv(9S)

modlinkage(9S)

modlmisc(9S)

modlstrmod(9S)

module_info(9S)

msgb(9S)

Nblock(9P)

net_inject_t(9S)

net_instance_t(9S)

no-involuntary-power-cycles(9P)

pblksize(9P)

pm(9P)

pm-components(9P)

qband(9S)

qinit(9S)

queclass(9S)

queue(9S)

removable-media(9P)

scsi_address(9S)

scsi_arq_status(9S)

scsi_asc_key_strings(9S)

scsi_device(9S)

scsi_extended_sense(9S)

scsi_hba_tran(9S)

scsi_inquiry(9S)

scsi_pkt(9S)

scsi_status(9S)

size(9P)

sof_ops(9S)

streamtab(9S)

stroptions(9S)

tuple(9S)

uio(9S)

usb_bulk_request(9S)

usb_callback_flags(9S)

usb_cfg_descr(9S)

usb_client_dev_data(9S)

usb_completion_reason(9S)

usb_ctrl_request(9S)

usb_dev_descr(9S)

usb_dev_qlf_descr(9S)

usb_ep_descr(9S)

usb_if_descr(9S)

usb_intr_request(9S)

usb_isoc_request(9S)

usb_other_speed_cfg_descr(9S)

usb_request_attributes(9S)

usb_string_descr(9S)

size

, Nblock

, blksize

, pblksize

, device-nblocks

, device-blksize

, device-pblksize

- 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 logical block of device. If defined, the value must be a power of two. If not defined, DEV_BSIZE is implied.

device-pblksize

An integer property representing the size in bytes of the physical sector of the device. If defined, the value must be a power of two. If not defined, device-blksize is implied. If neither is 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 logical block of a block minor device (S_IFBLK spec_type in ddi_create_minor_node()). If defined, the value must be a power of two. If not defined, DEV_BSIZE is implied.

pblksize

An integer property representing the size in bytes of a physical block of a block minor device (S_IFBLK spec_type in ddi_create_minor_node()). If defined, the value must be a power of two. If not defined, blksize is implied. If neither is 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 and device-pblksize 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. For all interfaces described on this manual page, 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(5) 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