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