xref: /illumos-gate/usr/src/man/man9f/ksensor_kind.9f (revision 71536d92c2013e2e7bf726baf846077b18ddf93d)
1*71536d92SRobert Mustacchi.\"
2*71536d92SRobert Mustacchi.\" This file and its contents are supplied under the terms of the
3*71536d92SRobert Mustacchi.\" Common Development and Distribution License ("CDDL"), version 1.0.
4*71536d92SRobert Mustacchi.\" You may only use this file in accordance with the terms of version
5*71536d92SRobert Mustacchi.\" 1.0 of the CDDL.
6*71536d92SRobert Mustacchi.\"
7*71536d92SRobert Mustacchi.\" A full copy of the text of the CDDL should have accompanied this
8*71536d92SRobert Mustacchi.\" source.  A copy of the CDDL is also available via the Internet at
9*71536d92SRobert Mustacchi.\" http://www.illumos.org/license/CDDL.
10*71536d92SRobert Mustacchi.\"
11*71536d92SRobert Mustacchi.\"
12*71536d92SRobert Mustacchi.\" Copyright 2024 Oxide Computer Company
13*71536d92SRobert Mustacchi.\"
14*71536d92SRobert Mustacchi.Dd May 10, 2024
15*71536d92SRobert Mustacchi.Dt KSENSOR_KIND 9F
16*71536d92SRobert Mustacchi.Os
17*71536d92SRobert Mustacchi.Sh NAME
18*71536d92SRobert Mustacchi.Nm ksensor_kind_current ,
19*71536d92SRobert Mustacchi.Nm ksensor_kind_temperature ,
20*71536d92SRobert Mustacchi.Nm ksensor_kind_voltage
21*71536d92SRobert Mustacchi.Nd ksensor kind implementations
22*71536d92SRobert Mustacchi.Sh SYNOPSIS
23*71536d92SRobert Mustacchi.In sys/sensors.h
24*71536d92SRobert Mustacchi.Ft int
25*71536d92SRobert Mustacchi.Fo ksensor_kind_current
26*71536d92SRobert Mustacchi.Fa "void *driver"
27*71536d92SRobert Mustacchi.Fa "sensor_ioctl_kind_t *kind"
28*71536d92SRobert Mustacchi.Fc
29*71536d92SRobert Mustacchi.Ft int
30*71536d92SRobert Mustacchi.Fo ksensor_kind_temperature
31*71536d92SRobert Mustacchi.Fa "void *driver"
32*71536d92SRobert Mustacchi.Fa "sensor_ioctl_kind_t *kind"
33*71536d92SRobert Mustacchi.Fc
34*71536d92SRobert Mustacchi.Ft int
35*71536d92SRobert Mustacchi.Fo ksensor_kind_voltage
36*71536d92SRobert Mustacchi.Fa "void *driver"
37*71536d92SRobert Mustacchi.Fa "sensor_ioctl_kind_t *kind"
38*71536d92SRobert Mustacchi.Fc
39*71536d92SRobert Mustacchi.Sh INTERFACE LEVEL
40*71536d92SRobert Mustacchi.Sy Volatile -
41*71536d92SRobert MustacchiThis interface is still evolving in illumos.
42*71536d92SRobert MustacchiAPI and ABI stability is not guaranteed.
43*71536d92SRobert Mustacchi.Sh DESCRIPTION
44*71536d92SRobert MustacchiThe
45*71536d92SRobert Mustacchi.Fn ksensor_kind_current ,
46*71536d92SRobert Mustacchi.Fn ksensor_kind_temperature ,
47*71536d92SRobert Mustacchiand
48*71536d92SRobert Mustacchi.Fn ksensor_kind_voltage
49*71536d92SRobert Mustacchifunctions are implementations of the ksensor
50*71536d92SRobert Mustacchi.Xr kso_kind 9E
51*71536d92SRobert Mustacchientry point
52*71536d92SRobert Mustacchiand indicate that a sensor is a current
53*71536d92SRobert Mustacchi.Pq Dv SENSOR_KIND_CURRENT ,
54*71536d92SRobert Mustacchitemperature
55*71536d92SRobert Mustacchi.Pq Dv SENSOR_KIND_TEMPERATURE ,
56*71536d92SRobert Mustacchior voltage
57*71536d92SRobert Mustacchi.Pq Dv SENSOR_KIND_VOLTAGE
58*71536d92SRobert Mustacchisensor respectively.
59*71536d92SRobert Mustacchi.Pp
60*71536d92SRobert MustacchiWhile these functions can be called directly, it is expected that they
61*71536d92SRobert Mustacchiwill be used as part of a ksensor operations vector as described in
62*71536d92SRobert Mustacchi.Xr ksensor_ops 9E ,
63*71536d92SRobert Mustacchiallowing the driver to avoid having to implement the entry point
64*71536d92SRobert Mustacchidirectly.
65*71536d92SRobert MustacchiIf a driver does use this function, it must ensure that the return value
66*71536d92SRobert Mustacchiis passed back to the framework as part of its
67*71536d92SRobert Mustacchi.Xr kso_kind 9E
68*71536d92SRobert Mustacchientry point.
69*71536d92SRobert Mustacchi.Sh CONTEXT
70*71536d92SRobert MustacchiThe
71*71536d92SRobert Mustacchi.Fn ksensor_kind_current ,
72*71536d92SRobert Mustacchi.Fn ksensor_kind_temperature ,
73*71536d92SRobert Mustacchiand
74*71536d92SRobert Mustacchi.Fn ksensor_kind_voltage
75*71536d92SRobert Mustacchifunctions can be called from
76*71536d92SRobert Mustacchi.Sy user ,
77*71536d92SRobert Mustacchior
78*71536d92SRobert Mustacchi.Sy kernel
79*71536d92SRobert Mustacchicontext.
80*71536d92SRobert Mustacchi.Sh RETURN VALUES
81*71536d92SRobert MustacchiUpon successful completion, the
82*71536d92SRobert Mustacchi.Fn ksensor_kind_current ,
83*71536d92SRobert Mustacchi.Fn ksensor_kind_temperature ,
84*71536d92SRobert Mustacchiand
85*71536d92SRobert Mustacchi.Fn ksensor_kind_voltage
86*71536d92SRobert Mustacchifunctions return
87*71536d92SRobert Mustacchi.Sy 0
88*71536d92SRobert Mustacchiand update
89*71536d92SRobert Mustacchi.Fa kind
90*71536d92SRobert Mustacchiwith the corresponding information.
91*71536d92SRobert MustacchiOtherwise, a non-zero error value is returned.
92*71536d92SRobert Mustacchi.Sh EXAMPLES
93*71536d92SRobert Mustacchi.Sy Example 1
94*71536d92SRobert MustacchiUsing
95*71536d92SRobert Mustacchi.Fn ksensor_kind_temperature
96*71536d92SRobert Mustacchias part of the
97*71536d92SRobert Mustacchi.Xr ksensor_ops 9E
98*71536d92SRobert Mustacchientry points.
99*71536d92SRobert Mustacchi.Bd -literal
100*71536d92SRobert Mustacchi#include <sys/sensors.h>
101*71536d92SRobert Mustacchi
102*71536d92SRobert Mustacchistatic int coretemp_read(void *, sensor_ioctl_scalar_t *);
103*71536d92SRobert Mustacchi
104*71536d92SRobert Mustacchistatic const ksensor_ops_t coretemp_temp_ops = {
105*71536d92SRobert Mustacchi        .kso_kind = ksensor_kind_temperature,
106*71536d92SRobert Mustacchi        .kso_scalar = coretemp_read
107*71536d92SRobert Mustacchi};
108*71536d92SRobert Mustacchi.Ed
109*71536d92SRobert Mustacchi.Sh SEE ALSO
110*71536d92SRobert Mustacchi.Xr ksensor 9E ,
111*71536d92SRobert Mustacchi.Xr ksensor_ops 9E ,
112*71536d92SRobert Mustacchi.Xr kso_kind 9E
113