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
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.
12 .\" Copyright (c) 2017, Joyent, Inc.
15 .Dt SCSI_HBA_IPORTMAP_CREATE 9F
18 .Nm scsi_hba_iportmap_create ,
19 .Nm scsi_hba_iportmap_destroy ,
20 .Nm scsi_hba_iportmap_iport_add ,
21 .Nm scsi_hba_iportmap_iport_remove
22 .Nd create and manage an iportmap
26 .Fo scsi_hba_iportmap_create
30 .Fa "scsi_hba_iportmap_t **iportmapout"
33 .Fo scsi_hba_iportmap_destroy
34 .Fa "scsi_hba_iportmap_t *iportmap"
37 .Fo scsi_hba_iportmap_iport_add
38 .Fa "scsi_hba_iportmap_t *iportmap"
43 .Fo scsi_hba_iportmap_iport_remove
44 .Fa "scsi_hba_iportmap_t *iportmap"
49 This interface is still evolving in illumos.
50 API and ABI stability is not guaranteed.
58 A time in microseconds.
60 A time in microseconds.
62 An allocated iportmap.
64 Pointer where the iportmap is stored.
66 A character string that represents a unit address for an iport.
74 .Fn scsi_hba_iportmap_create
76 .Fn scsi_hba_iportmap_destroy
77 functions are used by HBA drivers to create and destroy an iportmap.
78 For more information on an iportmap and its purpose, see
85 are both times measured in microseconds that control two different
86 properties of the iportmap and how it behaves.
89 indicates the amount of time that the system should wait to quiesce all
90 changes and consider the resulting system stable.
91 Changes will not be reported until after
95 indicates how much time needs to elapse after creation before an initial
96 enumeration has been completed.
100 structure passed into
102 is usually the HBA driver's
107 .Fn scsi_hba_iportmap_iport
110 will be populated with a pointer to an iportmap that can be used to add
113 To destroy the iportmap, drivers should use the
114 .Fn scsi_hba_iportmap_destroy
116 As part of destroying the iportmap, all associated iports will
117 be detached from the system by having the driver's
121 When the driver needs to add an iport to the system, generally in
122 response to a hotplug event, then the driver should call the
123 .Fn scsi_hba_iportmap_iport_add
127 should be a character string that uniquely identifies the device.
128 If the driver is using a phymap, then this unit address should be the
129 same one as the phymap's callback provided.
130 Otherwise, the driver sets
132 to a unique string which is generally the iport's WWN.
134 When the corresponding iport needs to be removed, then the driver should
136 .Fn scsi_hba_iportmap_remove
138 The iport to remove is indicated by the
140 argument, which should match the value passed into the
141 .Fn scsi_hba_iportmap_add
145 .Fn scsi_hba_iportmap_create
146 function is generally called during a driver's
151 .Fn scsi_hba_iportmap_destroy
152 function is generally called during a driver's
157 .Fn scsi_hba_iportmap_iport_add
159 .Fn scsi_hba_iportmap_iport_remove
160 functions should be called from
164 Upon successful completion, the
165 .Fn scsi_hba_iportmap_create ,
166 .Fn scsi_hba_iportmap_iport_add ,
168 .Fn scsi_hba_iportmap_iport_remove