xref: /illumos-gate/usr/src/man/man9f/mac_devt_to_instance.9f (revision 86e5bb7983583c7ce83d5235abc95df1fb570d5e)
1*86e5bb79SLuqman Aden.\"
2*86e5bb79SLuqman Aden.\" This file and its contents are supplied under the terms of the
3*86e5bb79SLuqman Aden.\" Common Development and Distribution License ("CDDL"), version 1.0.
4*86e5bb79SLuqman Aden.\" You may only use this file in accordance with the terms of version
5*86e5bb79SLuqman Aden.\" 1.0 of the CDDL.
6*86e5bb79SLuqman Aden.\"
7*86e5bb79SLuqman Aden.\" A full copy of the text of the CDDL should have accompanied this
8*86e5bb79SLuqman Aden.\" source.  A copy of the CDDL is also available via the Internet at
9*86e5bb79SLuqman Aden.\" http://www.illumos.org/license/CDDL.
10*86e5bb79SLuqman Aden.\"
11*86e5bb79SLuqman Aden.\"
12*86e5bb79SLuqman Aden.\" Copyright 2023 Oxide Computer Company
13*86e5bb79SLuqman Aden.\"
14*86e5bb79SLuqman Aden.Dd January 30, 2023
15*86e5bb79SLuqman Aden.Dt MAC_DEVT_TO_INSTANCE 9F
16*86e5bb79SLuqman Aden.Os
17*86e5bb79SLuqman Aden.Sh NAME
18*86e5bb79SLuqman Aden.Nm mac_devt_to_instance
19*86e5bb79SLuqman Aden.Nd return the instance number for the given device number
20*86e5bb79SLuqman Aden.Sh SYNOPSIS
21*86e5bb79SLuqman Aden.In sys/mac_provider.h
22*86e5bb79SLuqman Aden.Ft int
23*86e5bb79SLuqman Aden.Fo mac_devt_to_instance
24*86e5bb79SLuqman Aden.Fa "dev_t devt"
25*86e5bb79SLuqman Aden.Fc
26*86e5bb79SLuqman Aden.Sh INTERFACE LEVEL
27*86e5bb79SLuqman Adenillumos DDI specific
28*86e5bb79SLuqman Aden.Sh PARAMETERS
29*86e5bb79SLuqman Aden.Bl -tag -width Fa
30*86e5bb79SLuqman Aden.It Fa "devt"
31*86e5bb79SLuqman AdenDevice number.
32*86e5bb79SLuqman Aden.El
33*86e5bb79SLuqman Aden.Sh DESCRIPTION
34*86e5bb79SLuqman AdenThe
35*86e5bb79SLuqman Aden.Fn mac_devt_to_instance
36*86e5bb79SLuqman Adenfunction returns the device instance number associated with the given device
37*86e5bb79SLuqman Adennumber managed by the
38*86e5bb79SLuqman Aden.Xr mac 9E
39*86e5bb79SLuqman Adenframework.
40*86e5bb79SLuqman Aden.Pp
41*86e5bb79SLuqman AdenGenerally the MAC framework is responsible for managing device instance
42*86e5bb79SLuqman Adenmapping and provides a default
43*86e5bb79SLuqman Aden.Xr getinfo 9E
44*86e5bb79SLuqman Adenimplementation to that effect.
45*86e5bb79SLuqman Aden.Pp
46*86e5bb79SLuqman AdenHowever, if a driver wants to expose additional device nodes or relies on some
47*86e5bb79SLuqman Adenspecial mapping of device instance to MAC instance then it must provide its own
48*86e5bb79SLuqman Aden.Xr getinfo 9E
49*86e5bb79SLuqman Adenentry point.
50*86e5bb79SLuqman AdenIn that case, the driver can call the
51*86e5bb79SLuqman Aden.Fn mac_devt_to_instance
52*86e5bb79SLuqman Adenfunction to obtain the MAC specific instance number and translate it as
53*86e5bb79SLuqman Adenappropriate to a devinfo instance.
54*86e5bb79SLuqman Aden.Sh CONTEXT
55*86e5bb79SLuqman AdenThe
56*86e5bb79SLuqman Aden.Fn mac_devt_to_instance
57*86e5bb79SLuqman Adenfunction should be called from a
58*86e5bb79SLuqman Aden.Sy kernel
59*86e5bb79SLuqman Adencontext and is generally used during the execution of a driver's
60*86e5bb79SLuqman Aden.Xr getinfo 9E
61*86e5bb79SLuqman Adenentry point.
62*86e5bb79SLuqman Aden.Sh RETURN VALUES
63*86e5bb79SLuqman AdenUpon successful completion, the
64*86e5bb79SLuqman Aden.Fn mac_devt_to_instance
65*86e5bb79SLuqman Adenfunction returns the instance number associated with the minor.
66*86e5bb79SLuqman AdenOtherwise
67*86e5bb79SLuqman Aden.Sy -1
68*86e5bb79SLuqman Adenis returned to indicate failure.
69*86e5bb79SLuqman Aden.Sh SEE ALSO
70*86e5bb79SLuqman Aden.Xr getinfo 9E ,
71*86e5bb79SLuqman Aden.Xr mac 9E ,
72*86e5bb79SLuqman Aden.Xr ddi_get_instance 9F ,
73*86e5bb79SLuqman Aden.Xr mac_getinfo 9F ,
74*86e5bb79SLuqman Aden.Xr mac_private_minor 9F
75