1*508a0e8cSRob Johnston.\" 2*508a0e8cSRob Johnston.\" This file and its contents are supplied under the terms of the 3*508a0e8cSRob Johnston.\" Common Development and Distribution License ("CDDL"), version 1.0. 4*508a0e8cSRob Johnston.\" You may only use this file in accordance with the terms of version 5*508a0e8cSRob Johnston.\" 1.0 of the CDDL. 6*508a0e8cSRob Johnston.\" 7*508a0e8cSRob Johnston.\" A full copy of the text of the CDDL should have accompanied this 8*508a0e8cSRob Johnston.\" source. A copy of the CDDL is also available via the Internet at 9*508a0e8cSRob Johnston.\" http://www.illumos.org/license/CDDL. 10*508a0e8cSRob Johnston.\" 11*508a0e8cSRob Johnston.\" 12*508a0e8cSRob Johnston.\" Copyright 2019 Joyent, Inc. 13*508a0e8cSRob Johnston.\" 14*508a0e8cSRob Johnston.Dd Apr 30, 2019 15*508a0e8cSRob Johnston.Dt DDI_UFM_IMAGE 9F 16*508a0e8cSRob Johnston.Os 17*508a0e8cSRob Johnston.Sh NAME 18*508a0e8cSRob Johnston.Nm ddi_ufm_image_set_desc , 19*508a0e8cSRob Johnston.Nm ddi_ufm_image_set_misc , 20*508a0e8cSRob Johnston.Nm ddi_ufm_image_set_nslots 21*508a0e8cSRob Johnston.Nd UFM image property routines 22*508a0e8cSRob Johnston.Sh SYNOPSIS 23*508a0e8cSRob Johnston.In sys/ddi_ufm.h 24*508a0e8cSRob Johnston.Ft void 25*508a0e8cSRob Johnston.Fo ddi_ufm_image_set_desc 26*508a0e8cSRob Johnston.Fa "ddi_ufm_image_t *uip" 27*508a0e8cSRob Johnston.Fa "const char *description" 28*508a0e8cSRob Johnston.Fc 29*508a0e8cSRob Johnston.Ft void 30*508a0e8cSRob Johnston.Fo ddi_ufm_image_set_misc 31*508a0e8cSRob Johnston.Fa "ddi_ufm_image_t *uip" 32*508a0e8cSRob Johnston.Fa "nvlist_t *nvl" 33*508a0e8cSRob Johnston.Fc 34*508a0e8cSRob Johnston.Ft void 35*508a0e8cSRob Johnston.Fo ddi_ufm_image_set_nslots 36*508a0e8cSRob Johnston.Fa "ddi_ufm_image_t *uip" 37*508a0e8cSRob Johnston.Fa "uint_t nslots" 38*508a0e8cSRob Johnston.Fc 39*508a0e8cSRob Johnston.Sh INTERFACE LEVEL 40*508a0e8cSRob Johnston.Sy Evolving - 41*508a0e8cSRob JohnstonThis interface is evolving still in illumos. 42*508a0e8cSRob JohnstonAPI and ABI stability is not guaranteed. 43*508a0e8cSRob Johnston.Sh PARAMETERS 44*508a0e8cSRob Johnston.Bl -tag -width Fa 45*508a0e8cSRob Johnston.It Fa uip 46*508a0e8cSRob JohnstonA pointer to a UFM image that was passed to the driver in its 47*508a0e8cSRob Johnston.Xr ddi_ufm_op_fill_image 9E 48*508a0e8cSRob Johnstonentry point. 49*508a0e8cSRob Johnston.It Fa description 50*508a0e8cSRob JohnstonA human-readable description of the firmware image. 51*508a0e8cSRob Johnston.It Fa nvl 52*508a0e8cSRob JohnstonAn nvlist_t with ancillary, device-specific data. 53*508a0e8cSRob Johnston.It Fa nslots 54*508a0e8cSRob JohnstonThe number of firmware slots supported by this firmare image. 55*508a0e8cSRob Johnston.El 56*508a0e8cSRob Johnston.Sh DESCRIPTION 57*508a0e8cSRob JohnstonThe 58*508a0e8cSRob Johnston.Fn ddi_ufm_image_set_desc , 59*508a0e8cSRob Johnston.Fn ddi_ufm_image_set_misc 60*508a0e8cSRob Johnstonand 61*508a0e8cSRob Johnston.Fn ddi_ufm_image_set_nslots 62*508a0e8cSRob Johnstonfunctions are used by device drivers to set information about a firmware 63*508a0e8cSRob Johnstonimage on the image structure 64*508a0e8cSRob Johnston.Fa uip 65*508a0e8cSRob Johnstonas a part of implementing their 66*508a0e8cSRob Johnston.Xr ddi_ufm_op_fill_image 9E 67*508a0e8cSRob Johnstonentry point. 68*508a0e8cSRob JohnstonFor more information on images and the use of these functions, see the 69*508a0e8cSRob Johnstondescription of the 70*508a0e8cSRob Johnston.Fn ddi_ufm_op_fill_image 71*508a0e8cSRob Johnstonfunction in 72*508a0e8cSRob Johnston.Xr ddi_ufm 9E . 73*508a0e8cSRob Johnston.Pp 74*508a0e8cSRob JohnstonThe 75*508a0e8cSRob Johnston.Fn ddi_ufm_image_set_desc 76*508a0e8cSRob Johnstonfunction sets the description of the firmware image. 77*508a0e8cSRob JohnstonThis description is intended for administrators and should convey the intended 78*508a0e8cSRob Johnstonuse of the image. 79*508a0e8cSRob Johnston.Pp 80*508a0e8cSRob JohnstonThe 81*508a0e8cSRob Johnston.Fn ddi_ufm_image_set_misc 82*508a0e8cSRob Johnstonfunction is used by drivers to set ancillary key-value data that may be 83*508a0e8cSRob Johnstonuseful to a consumer. 84*508a0e8cSRob JohnstonThe driver should create an nvlist for this purpose with 85*508a0e8cSRob Johnston.Xr nvlist_alloc 9F 86*508a0e8cSRob JohnstonOnce the driver passes the nvlist to the 87*508a0e8cSRob Johnston.Fn ddi_ufm_image_set_misc 88*508a0e8cSRob Johnstonfunction, then the driver must not manipulate or free the nvlist at all. 89*508a0e8cSRob JohnstonIt is the property of the UFM subsystem. 90*508a0e8cSRob Johnston.Pp 91*508a0e8cSRob JohnstonThe 92*508a0e8cSRob Johnston.Fn ddi_ufm_image_set_nslots 93*508a0e8cSRob Johnstonfunction should be called to indicate the number of firmware slots supported 94*508a0e8cSRob Johnstonby this firmware image. 95*508a0e8cSRob Johnston.Sh CONTEXT 96*508a0e8cSRob JohnstonThese functions should only be called in the context of the 97*508a0e8cSRob Johnston.Xr ddi_ufm_op_fill_image 9E 98*508a0e8cSRob Johnstonentry point. 99*508a0e8cSRob Johnston.Sh SEE ALSO 100*508a0e8cSRob Johnston.Xr ddi_ufm 9E , 101*508a0e8cSRob Johnston.Xr ddi_ufm_op_fill_image 9E , 102*508a0e8cSRob Johnston.Xr nvlist_alloc 9F 103