DDI_UFM_SLOT(9F) Kernel Functions for Drivers DDI_UFM_SLOT(9F)

ddi_ufm_slot, ddi_ufm_slot_set_version, ddi_ufm_slot_set_attrs, ddi_ufm_slot_set_misc, ddi_ufm_slot_set_imgsize
UFM slot property routines

#include <sys/ddi_ufm.h>

ddi_ufm_slot_set_version(ddi_ufm_slot_t *usp, const char *version);

ddi_ufm_slot_set_attrs(ddi_ufm_slot_t *usp, ddi_ufm_attr_t attrs);

ddi_ufm_slot_set_misc(ddi_ufm_slot_t *usp, nvlist_t *nvl);

ddi_ufm_slot_set_imgsize(ddi_ufm_slot_t *usp, uint64_t len);

Evolving - This interface is evolving still in illumos. API and ABI stability is not guaranteed.

A pointer to a UFM slot structure that was passed to the driver in its ddi_ufm_op_fill_slot(9E) entry point.
A device-specific ASCII string that indicates the current version of the firmware image in the slot.
The bitwise-inclusive-OR of one of several attributes of a firmware slot. See the discussion of the ddi_ufm_op_fill_slot() function in ddi_ufm(9E).
An nvlist_t with ancillary, device-specific data.
The length in bytes of a firmware image in a slot.

The ddi_ufm_slot_set_version(), ddi_ufm_slot_set_attrs(), ddi_ufm_slot_set_misc(), and ddi_ufm_slot_set_imgsize() functions are used by device drivers to set information about a firmware slot on the slot structure usp as a part of implementing their ddi_ufm_op_fill_slot(9E) entry point. For more information on slots and the use of these functions, see the description of the ddi_ufm_op_fill_slot() function in ddi_ufm(9E).

The ddi_ufm_slot_set_version() function sets the version property of a firmware slot. The version should be a human-readable ASCII string that describes the current firmware revision in a way that makes sense to an administrator and someone who is referencing the documentation of a vendor.

The ddi_ufm_slot_set_attrs() function describes attributes of a UFM slot as defined by the ddi_ufm_attr_t enum.

The ddi_ufm_slot_set_misc() function is used by the driver to set ancillary key-value data that may be useful to a consumer. For example, a driver may use this method to encode specific information that the firmware provides about how or when it was produced or installed on the device. The driver should create an nvlist for this purpose with nvlist_alloc(9F). Once the driver passes the nvlist to the ddi_ufm_slot_set_misc() function, then the driver must not manipulate or free the nvlist at all. It is the property of the UFM subsystem.

the ddi_ufm_slot_set_imgsize() function is used by the driver to indicate the size of a firmware image in a slot. Consumers use this to determine the amount of data that they should read for a firmware image itself.

These functions should only be called in the context of the ddi_ufm_op_fill_slot(9E) entry point.

May 19, 2020 OmniOS