1*3385b472SRobert Mustacchi.\"
2*3385b472SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
3*3385b472SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
4*3385b472SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
5*3385b472SRobert Mustacchi.\" 1.0 of the CDDL.
6*3385b472SRobert Mustacchi.\"
7*3385b472SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
8*3385b472SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
9*3385b472SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
10*3385b472SRobert Mustacchi.\"
11*3385b472SRobert Mustacchi.\"
12*3385b472SRobert Mustacchi.\" Copyright (c) 2017, Joyent, Inc.
13*3385b472SRobert Mustacchi.\"
14*3385b472SRobert Mustacchi.Dd Apr 18, 2017
15*3385b472SRobert Mustacchi.Dt SCSI_HBA_IPORT_EXIST 9F
16*3385b472SRobert Mustacchi.Os
17*3385b472SRobert Mustacchi.Sh NAME
18*3385b472SRobert Mustacchi.Nm scsi_hba_iport_exist ,
19*3385b472SRobert Mustacchi.Nm scsi_hba_iport_find
20*3385b472SRobert Mustacchi.Nd find and check if an iport exists
21*3385b472SRobert Mustacchi.Sh SYNOPSIS
22*3385b472SRobert Mustacchi.In sys/scsi/scsi.h
23*3385b472SRobert Mustacchi.Ft int
24*3385b472SRobert Mustacchi.Fo scsi_hba_iport_exist
25*3385b472SRobert Mustacchi.Fa "dev_info_t *dip"
26*3385b472SRobert Mustacchi.Fc
27*3385b472SRobert Mustacchi.Ft "dev_info_t *"
28*3385b472SRobert Mustacchi.Fo scsi_hba_iport_find
29*3385b472SRobert Mustacchi.Fa "dev_info_t *dip"
30*3385b472SRobert Mustacchi.Fa "char *ua"
31*3385b472SRobert Mustacchi.Fc
32*3385b472SRobert Mustacchi.Sh INTERFACE LEVEL
33*3385b472SRobert Mustacchi.Sy Evolving -
34*3385b472SRobert MustacchiThis interface is still evolving in illumos.
35*3385b472SRobert MustacchiAPI and ABI stability is not guaranteed.
36*3385b472SRobert Mustacchi.Sh PARAMETERS
37*3385b472SRobert Mustacchi.Bl -tag -width Fa
38*3385b472SRobert Mustacchi.It Fa dip
39*3385b472SRobert MustacchiPointer to
40*3385b472SRobert Mustacchi.Vt dev_info
41*3385b472SRobert Mustacchistructure.
42*3385b472SRobert Mustacchi.It Fa ua
43*3385b472SRobert MustacchiThe unit address of the iport being searched for.
44*3385b472SRobert Mustacchi.El
45*3385b472SRobert Mustacchi.Sh DESCRIPTION
46*3385b472SRobert MustacchiThe
47*3385b472SRobert Mustacchi.Fn scsi_hba_iport_exists
48*3385b472SRobert Mustacchifunction is used to determine whether or not
49*3385b472SRobert Mustacchi.Fa dip
50*3385b472SRobert Mustacchihas any child devices that are iports which have been added through
51*3385b472SRobert Mustacchi.Xr scsi_hba_iport_register 9F
52*3385b472SRobert Mustacchior
53*3385b472SRobert Mustacchi.Xr scsi_hba_iportmap_iport_add 9F .
54*3385b472SRobert MustacchiFor more information on iports, see
55*3385b472SRobert Mustacchi.Xr iport 9 .
56*3385b472SRobert Mustacchi.Pp
57*3385b472SRobert MustacchiThe
58*3385b472SRobert Mustacchi.Fn scsi_hba_iport_find
59*3385b472SRobert Mustacchifunction attempts to find a child iport and return its
60*3385b472SRobert Mustacchi.Vt dev_info
61*3385b472SRobert Mustacchistructure if it exists.
62*3385b472SRobert MustacchiThe iport is searched for by its unit address, which is passed in the
63*3385b472SRobert Mustacchi.Fa ua
64*3385b472SRobert Mustacchiargument.
65*3385b472SRobert MustacchiThe unit address for an iport is established when the iport is created.
66*3385b472SRobert Mustacchi.Sh CONTEXT
67*3385b472SRobert MustacchiThe
68*3385b472SRobert Mustacchi.Fn scsi_hba_iport_exist
69*3385b472SRobert Mustacchiand
70*3385b472SRobert Mustacchi.Fn scsi_hba_iport_find
71*3385b472SRobert Mustacchifunctions may be called in either
72*3385b472SRobert Mustacchi.Sy user
73*3385b472SRobert Mustacchior
74*3385b472SRobert Mustacchi.Sy kernel
75*3385b472SRobert Mustacchicontext.
76*3385b472SRobert Mustacchi.Sh RETURN VALUES
77*3385b472SRobert MustacchiThe
78*3385b472SRobert Mustacchi.Fn scsi_hba_iport_exists
79*3385b472SRobert Mustacchifunction returns
80*3385b472SRobert Mustacchi.Sy 1
81*3385b472SRobert Mustacchiwhen there is a child iport of
82*3385b472SRobert Mustacchi.Fa dip .
83*3385b472SRobert MustacchiOtherwise, it returns
84*3385b472SRobert Mustacchi.Sy 0.
85*3385b472SRobert Mustacchi.Pp
86*3385b472SRobert MustacchiThe
87*3385b472SRobert Mustacchi.Fn scsi_hba_iport_find
88*3385b472SRobert Mustacchifunction returns a pointer to the iport's
89*3385b472SRobert Mustacchi.Vt dev_info
90*3385b472SRobert Mustacchistructure, if found.
91*3385b472SRobert MustacchiOtherwise,
92*3385b472SRobert Mustacchi.Dv NULL
93*3385b472SRobert Mustacchiis returned.
94*3385b472SRobert Mustacchi.Sh SEE ALSO
95*3385b472SRobert Mustacchi.Xr iport 9 ,
96*3385b472SRobert Mustacchi.Xr iportmap 9 ,
97*3385b472SRobert Mustacchi.Xr scsi_hba_iport_register 9F ,
98*3385b472SRobert Mustacchi.Xr scsi_hba_iportmap_iport_add 9F
99