xref: /illumos-gate/usr/src/man/man9f/ddi_ufm_slot.9f (revision 4e5ef1cee66fbfbbd2b3e56b81e2bb5700f4a59e)
1.\"
2.\" This file and its contents are supplied under the terms of the
3.\" Common Development and Distribution License ("CDDL"), version 1.0.
4.\" You may only use this file in accordance with the terms of version
5.\" 1.0 of the CDDL.
6.\"
7.\" A full copy of the text of the CDDL should have accompanied this
8.\" source.  A copy of the CDDL is also available via the Internet at
9.\" http://www.illumos.org/license/CDDL.
10.\"
11.\"
12.\" Copyright 2019 Joyent, Inc.
13.\"
14.Dd Apr 30, 2019
15.Dt DDI_UFM_SLOT 9F
16.Os
17.Sh NAME
18.Nm ddi_ufm_slot ,
19.Nm ddi_ufm_slot_set_version ,
20.Nm ddi_ufm_slot_set_attrs ,
21.Nm ddi_ufm_slot_set_misc
22.Nd UFM slot property routines
23.Sh SYNOPSIS
24#include <sys/ddi_ufm.h>
25.sp
26.Ft void
27.Fo ddi_ufm_slot_set_version
28.Fa "ddi_ufm_slot_t *usp"
29.Fa "const char *version"
30.Fc
31.Ft void
32.Fo ddi_ufm_slot_set_attrs
33.Fa "ddi_ufm_slot_t *usp"
34.Fa "ddi_ufm_attr_t attrs"
35.Fc
36.Ft void
37.Fo ddi_ufm_slot_set_misc
38.Fa "ddi_ufm_slot_t *usp"
39.Fa "nvlist_t *nvl"
40.Fc
41.Sh INTERFACE LEVEL
42.Sy Evolving -
43This interface is evolving still in illumos.
44API and ABI stability is not guaranteed.
45.Sh PARAMETERS
46.Bl -tag -width Fa
47.It Fa usp
48A pointer to a UFM slot structure that was passed to the driver in its
49.Xr ddi_ufm_op_fill_slot 9E
50entry point.
51.It Fa version
52A device-specific ASCII string that indicates the current version of the
53firmware image in the slot.
54.It Fa attrs
55The bitwise-inclusive-OR of one of several attributes of a firmware
56slot.
57See the discussion of the
58.Fn ddi_ufm_op_fill_slot
59function in
60.Xr ddi_ufm 9E .
61.It Fa nvl
62An nvlist_t with ancillary, device-specific data.
63.El
64.Sh DESCRIPTION
65The
66.Fn ddi_ufm_slot_set_version ,
67.Fn ddi_ufm_slot_set_attrs ,
68and
69.Fn ddi_ufm_slot_set_misc
70functions are used by device drivers to set information about a firmware
71slot on the slot structure
72.Fa usp
73as a part of implementing their
74.Xr ddi_ufm_op_fill_slot 9E
75entry point.
76For more information on slots and the use of these functions, see the
77description of the
78.Fn ddi_ufm_op_fill_slot
79function in
80.Xr ddi_ufm 9E .
81.Pp
82The
83.Fn ddi_ufm_slot_set_version
84function sets the version property of a firmware slot.
85The version should be a human-readable ASCII string that describes the current
86firmware revision in a way that makes sense to an administrator and someone
87who is referencing the documentation of a vendor.
88.Pp
89The
90.Fn ddi_ufm_slot_set_attrs
91function describes attributes of a UFM slot as defined by the
92ddi_ufm_attr_t enum.
93.Pp
94The
95.Fn ddi_ufm_slot_set_misc
96function is used by the driver to set ancillary key-value data that may
97be useful to a consumer.
98For example, a driver may use this method to encode specific information that
99the firmware provides about how or when it was produced or installed on the
100device.
101The driver should create an nvlist for this purpose with
102.Xr nvlist_alloc 9F .
103Once the driver passes the nvlist to the
104.Fn ddi_ufm_slot_set_misc
105function, then the driver must not manipulate or free the nvlist at all.
106It is the property of the UFM subsystem.
107.Sh CONTEXT
108These functions should only be called in the context of the
109.Xr ddi_ufm_op_fill_slot 9E
110entry point.
111.Sh SEE ALSO
112