10Sstevel@tonic-gate /* 20Sstevel@tonic-gate * CDDL HEADER START 30Sstevel@tonic-gate * 40Sstevel@tonic-gate * The contents of this file are subject to the terms of the 50Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only 60Sstevel@tonic-gate * (the "License"). You may not use this file except in compliance 70Sstevel@tonic-gate * with the License. 80Sstevel@tonic-gate * 90Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 100Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 110Sstevel@tonic-gate * See the License for the specific language governing permissions 120Sstevel@tonic-gate * and limitations under the License. 130Sstevel@tonic-gate * 140Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 150Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 160Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 170Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 180Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 190Sstevel@tonic-gate * 200Sstevel@tonic-gate * CDDL HEADER END 210Sstevel@tonic-gate */ 220Sstevel@tonic-gate /* 23796Smathue * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 240Sstevel@tonic-gate * Use is subject to license terms. 250Sstevel@tonic-gate */ 260Sstevel@tonic-gate 270Sstevel@tonic-gate #ifndef _PSVC_OBJECTS_H 280Sstevel@tonic-gate #define _PSVC_OBJECTS_H 290Sstevel@tonic-gate 300Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" 310Sstevel@tonic-gate 320Sstevel@tonic-gate #ifdef __cplusplus 330Sstevel@tonic-gate extern "C" { 340Sstevel@tonic-gate #endif 350Sstevel@tonic-gate 360Sstevel@tonic-gate /* 370Sstevel@tonic-gate * Platform Services Framework definitions 380Sstevel@tonic-gate */ 390Sstevel@tonic-gate 400Sstevel@tonic-gate #include <sys/types.h> 410Sstevel@tonic-gate #include <pthread.h> 420Sstevel@tonic-gate 430Sstevel@tonic-gate typedef struct psvc_opaque *psvc_opaque_t; 440Sstevel@tonic-gate 450Sstevel@tonic-gate /* Return values */ 460Sstevel@tonic-gate #define PSVC_SUCCESS 0 470Sstevel@tonic-gate #define PSVC_FAILURE -1 480Sstevel@tonic-gate #define PSVC_NOT_USED -1 490Sstevel@tonic-gate 500Sstevel@tonic-gate /* Class definitions */ 510Sstevel@tonic-gate #define PSVC_TEMPERATURE_SENSOR_CLASS 0 520Sstevel@tonic-gate #define PSVC_FAN_CLASS 1 530Sstevel@tonic-gate #define PSVC_LED_CLASS 2 540Sstevel@tonic-gate #define PSVC_SYSTEM_CLASS 3 550Sstevel@tonic-gate #define PSVC_DIGITAL_SENSOR_CLASS 4 560Sstevel@tonic-gate #define PSVC_DIGITAL_CONTROL_CLASS 5 570Sstevel@tonic-gate #define PSVC_BOOLEAN_GPIO_CLASS 6 580Sstevel@tonic-gate #define PSVC_FAN_TACHOMETER_CLASS 7 590Sstevel@tonic-gate #define PSVC_ON_OFF_SWITCH_CLASS 8 600Sstevel@tonic-gate #define PSVC_KEYSWITCH_CLASS 9 610Sstevel@tonic-gate #define PSVC_8BIT_GPIO_CLASS 10 620Sstevel@tonic-gate #define PSVC_PHYSICAL_DEVICE_CLASS 11 630Sstevel@tonic-gate 640Sstevel@tonic-gate #define PSVC_CHASSIS "SYSTEM" 650Sstevel@tonic-gate 660Sstevel@tonic-gate /* Associations */ 670Sstevel@tonic-gate #define PSVC_PRESENCE_SENSOR 0 680Sstevel@tonic-gate #define PSVC_FAN_ONOFF_SENSOR 1 690Sstevel@tonic-gate #define PSVC_FAN_SPEED_TACHOMETER 2 700Sstevel@tonic-gate #define PSVC_FAN_PRIM_SEC_SELECTOR 3 710Sstevel@tonic-gate #define PSVC_DEV_TEMP_SENSOR 4 720Sstevel@tonic-gate #define PSVC_FAN_DRIVE_CONTROL 5 730Sstevel@tonic-gate #define PSVC_KS_NORMAL_POS_SENSOR 6 740Sstevel@tonic-gate #define PSVC_KS_DIAG_POS_SENSOR 7 750Sstevel@tonic-gate #define PSVC_KS_LOCK_POS_SENSOR 8 760Sstevel@tonic-gate #define PSVC_KS_OFF_POS_SENSOR 9 770Sstevel@tonic-gate #define PSVC_SLOT_FAULT_LED 10 780Sstevel@tonic-gate #define PSVC_SLOT_REMOVE_LED 11 790Sstevel@tonic-gate #define PSVC_TS_OVERTEMP_LED 12 800Sstevel@tonic-gate #define PSVC_PS_I_SENSOR 13 810Sstevel@tonic-gate #define PSVC_DEV_FAULT_SENSOR 14 820Sstevel@tonic-gate #define PSVC_DEV_FAULT_LED 15 830Sstevel@tonic-gate #define PSVC_TABLE 16 840Sstevel@tonic-gate #define PSVC_PARENT 17 850Sstevel@tonic-gate #define PSVC_CPU 18 860Sstevel@tonic-gate #define PSVC_ALTERNATE 19 870Sstevel@tonic-gate #define PSVC_HOTPLUG_ENABLE_SWITCH 20 880Sstevel@tonic-gate #define PSVC_PS 21 890Sstevel@tonic-gate #define PSVC_FAN 22 900Sstevel@tonic-gate #define PSVC_TS 23 910Sstevel@tonic-gate #define PSVC_DISK 24 920Sstevel@tonic-gate #define PSVC_LED 25 930Sstevel@tonic-gate #define PSVC_FSP_LED 26 940Sstevel@tonic-gate #define PSVC_KEYSWITCH 27 950Sstevel@tonic-gate #define PSVC_PCI_CARD 28 960Sstevel@tonic-gate #define PSVC_PHYSICAL_DEVICE 29 970Sstevel@tonic-gate #define PSVC_DEV_TYPE_SENSOR 30 980Sstevel@tonic-gate #define PSVC_FAN_TRAY_FANS 31 990Sstevel@tonic-gate #define PSVC_FRU 32 1000Sstevel@tonic-gate 1010Sstevel@tonic-gate 1020Sstevel@tonic-gate /* Device "feature" definitions */ 103796Smathue #define PSVC_DEV_PERM 0x0000000000000001ULL /* Permanently in sys */ 104796Smathue #define PSVC_DEV_HOTPLUG 0x0000000000000002ULL /* Hot-pluggable device */ 105796Smathue #define PSVC_DEV_OPTION 0x0000000000000004ULL /* Option (not hot-pluggable) */ 106796Smathue #define PSVC_DEV_PRIMARY 0x0000000000000010ULL /* Primary device */ 107796Smathue #define PSVC_DEV_SECONDARY 0x0000000000000020ULL /* Secondary device */ 108796Smathue #define PSVC_DEV_RDONLY 0x0000000000000100ULL /* Read only device */ 109796Smathue #define PSVC_DEV_RDWR 0x0000000000000400ULL /* read/write device */ 110796Smathue #define PSVC_DEV_FRU 0x0000000000000800ULL /* device is a FRU */ 111796Smathue #define PSVC_LOW_WARN 0x0000000000001000ULL 112796Smathue #define PSVC_LOW_SHUT 0x0000000000002000ULL 113796Smathue #define PSVC_HIGH_WARN 0x0000000000004000ULL 114796Smathue #define PSVC_HIGH_SHUT 0x0000000000008000ULL 115796Smathue #define PSVC_CONVERSION_TABLE 0x0000000000010000ULL /* Conversion table */ 116796Smathue #define PSVC_OPT_TEMP 0x0000000000020000ULL /* Optimal Temperature */ 117796Smathue #define PSVC_HW_LOW_SHUT 0x0000000000040000ULL 118796Smathue #define PSVC_HW_HIGH_SHUT 0x0000000000080000ULL 119796Smathue #define PSVC_FAN_DRIVE_PR 0x0001000000000000ULL 120796Smathue #define PSVC_TEMP_DRIVEN 0x0002000000000000ULL /* Temperature driven */ 121796Smathue #define PSVC_SPEED_CTRL_PR 0x0004000000000000ULL /* Variable speed ctrl */ 122796Smathue #define PSVC_FAN_ON_OFF 0x0008000000000000ULL /* On/off fans */ 123796Smathue #define PSVC_CLOSED_LOOP_CTRL 0x0010000000000000ULL /* Closed loop control */ 124796Smathue #define PSVC_FAN_DRIVE_TABLE_PR 0x0010000000000000ULL /* oC to fan input tbl */ 125796Smathue #define PSVC_DIE_TEMP 0x0001000000000000ULL 126796Smathue #define PSVC_AMB_TEMP 0x0002000000000000ULL 127796Smathue #define PSVC_DIGI_SENSOR 0x0100000000000000ULL /* A to D converter */ 128796Smathue #define PSVC_BI_STATE 0x0001000000000000ULL 129796Smathue #define PSVC_TRI_STATE 0x0002000000000000ULL 130796Smathue #define PSVC_GREEN 0x0010000000000000ULL 131796Smathue #define PSVC_AMBER 0x0020000000000000ULL 132796Smathue #define PSVC_OUTPUT 0x0100000000000000ULL 133796Smathue #define PSVC_INPUT 0x0200000000000000ULL 134796Smathue #define PSVC_BIDIR 0x0400000000000000ULL 135796Smathue #define PSVC_BIT_POS 0x0001000000000000ULL /* One bit per key positon */ 136796Smathue #define PSVC_VAL_POS 0x0002000000000000ULL /* One value per key position */ 137796Smathue #define PSVC_NORMAL_POS_AV 0x0010000000000000ULL 138796Smathue #define PSVC_DIAG_POS_AV 0x0020000000000000ULL 139796Smathue #define PSVC_LOCK_POS_AV 0x0040000000000000ULL 140796Smathue #define PSVC_OFF_POS_AV 0x0080000000000000ULL 141796Smathue #define PSVC_GPIO_PORT 0x0001000000000000ULL 142796Smathue #define PSVC_GPIO_REG 0x0002000000000000ULL 1430Sstevel@tonic-gate 1440Sstevel@tonic-gate 1450Sstevel@tonic-gate /* LED colors */ 1460Sstevel@tonic-gate #define PSVC_LED_GREEN "GREEN" 1470Sstevel@tonic-gate #define PSVC_LED_AMBER "AMBER" 1480Sstevel@tonic-gate #define PSVC_LED_WHITE "WHITE" 1490Sstevel@tonic-gate #define PSVC_LED_RED "RED" 1500Sstevel@tonic-gate 1510Sstevel@tonic-gate /* States */ 1520Sstevel@tonic-gate #define PSVC_OK "OK" 1530Sstevel@tonic-gate #define PSVC_ERROR "ERROR" 1540Sstevel@tonic-gate #define PSVC_DEGRADED "DEGRADED" 1550Sstevel@tonic-gate #define PSVC_STOPPED "STOPPED" 1560Sstevel@tonic-gate #define PSVC_OVERHEATING "OVERHEATING" 1570Sstevel@tonic-gate #define PSVC_OFF "OFF" 1580Sstevel@tonic-gate #define PSVC_ON "ON" 1590Sstevel@tonic-gate #define PSVC_HOTPLUGGED "HOTPLUGGED" /* hotplugged, but not yet enabled */ 1600Sstevel@tonic-gate 1610Sstevel@tonic-gate /* 1620Sstevel@tonic-gate * The Following States are for the Locking Object created by PSARC 2002/003 1630Sstevel@tonic-gate */ 1640Sstevel@tonic-gate #define PSVC_LOCK_RUNNING "running" 1650Sstevel@tonic-gate #define PSVC_LOCK_ENABLED "enabled" 1660Sstevel@tonic-gate #define PSVC_LOCK_DISABLED "disabled" 1670Sstevel@tonic-gate 1680Sstevel@tonic-gate /* LED states */ 1690Sstevel@tonic-gate #define PSVC_LED_OFF PSVC_OFF 1700Sstevel@tonic-gate #define PSVC_LED_ON PSVC_ON 1710Sstevel@tonic-gate #define PSVC_LED_SLOW_BLINK "SLOW_BLINK" 1720Sstevel@tonic-gate #define PSVC_LED_FAST_BLINK "FAST_BLINK" 1730Sstevel@tonic-gate 1740Sstevel@tonic-gate /* On/Off switch states */ 1750Sstevel@tonic-gate #define PSVC_SWITCH_OFF PSVC_OFF 1760Sstevel@tonic-gate #define PSVC_SWITCH_ON PSVC_ON 1770Sstevel@tonic-gate 1780Sstevel@tonic-gate /* Keyswitch positions */ 1790Sstevel@tonic-gate #define PSVC_OFF_POS PSVC_OFF 1800Sstevel@tonic-gate #define PSVC_NORMAL_POS "NORMAL" 1810Sstevel@tonic-gate #define PSVC_LOCKED_POS "LOCKED" 1820Sstevel@tonic-gate #define PSVC_DIAG_POS "DIAG" 1830Sstevel@tonic-gate 1840Sstevel@tonic-gate /* Fault strings */ 1850Sstevel@tonic-gate #define PSVC_NO_FAULT "NO_FAULT" 1860Sstevel@tonic-gate #define PSVC_GEN_FAULT "DEVICE_FAULT" 1870Sstevel@tonic-gate #define PSVC_PS_LLO_FLT "PS_LLO_FAULT" 1880Sstevel@tonic-gate #define PSVC_PS_FAN_FLT "PS_FAN_FAULT" 1890Sstevel@tonic-gate #define PSVC_PS_TEMP_FLT "PS_TEMP_FAULT" 1900Sstevel@tonic-gate #define PSVC_PS_ISHARE_FLT "PS_ISHARE_FAULT" 1910Sstevel@tonic-gate #define PSVC_PS_TYPE_FLT "PS_TYPE_FLT" 1920Sstevel@tonic-gate #define PSVC_TEMP_LO_WARN "TEMP_LOW_WARNING" 1930Sstevel@tonic-gate #define PSVC_TEMP_LO_SHUT "TEMP_LOW_SHUTDOWN" 1940Sstevel@tonic-gate #define PSVC_TEMP_HI_WARN "TEMP_HIGH_WARNING" 1950Sstevel@tonic-gate #define PSVC_TEMP_HI_SHUT "TEMP_HIGH_SHUTDOWN" 1960Sstevel@tonic-gate 1970Sstevel@tonic-gate /* 1980Sstevel@tonic-gate * When Adding Attributes be sure to add the string value of the 1990Sstevel@tonic-gate * Attribute to attr_str_tab in psvc_objects_class.h 2000Sstevel@tonic-gate */ 2010Sstevel@tonic-gate 2020Sstevel@tonic-gate /* Attribute names */ 2030Sstevel@tonic-gate #define PSVC_CLASS_ATTR 0 /* "_class" */ 2040Sstevel@tonic-gate #define PSVC_SUBCLASS_ATTR 1 /* "Subclass" */ 2050Sstevel@tonic-gate #define PSVC_PRESENCE_ATTR 2 /* "Presence" */ 2060Sstevel@tonic-gate #define PSVC_PREV_PRESENCE_ATTR 3 /* Previous-presence */ 2070Sstevel@tonic-gate #define PSVC_STATE_ATTR 4 /* "State" */ 2080Sstevel@tonic-gate #define PSVC_PREV_STATE_ATTR 5 /* "Previous-state" */ 2090Sstevel@tonic-gate #define PSVC_ENABLE_ATTR 6 /* "Enabled" */ 2100Sstevel@tonic-gate #define PSVC_FAULTID_ATTR 7 /* "FaultInformation" */ 2110Sstevel@tonic-gate #define PSVC_FEATURES_ATTR 8 /* "Features" */ 2120Sstevel@tonic-gate #define PSVC_LABEL_ATTR 9 /* "Label" */ 2130Sstevel@tonic-gate #define PSVC_FRUID_ATTR 10 /* "Fruid" */ 2140Sstevel@tonic-gate #define PSVC_INSTANCE_ATTR 11 /* "Instance" */ 2150Sstevel@tonic-gate #define PSVC_LED_COLOR_ATTR 12 /* "Led-color" */ 2160Sstevel@tonic-gate #define PSVC_LO_WARN_ATTR 13 /* "Lo-warn" */ 2170Sstevel@tonic-gate #define PSVC_LO_SHUT_ATTR 14 /* "Lo-shut" */ 2180Sstevel@tonic-gate #define PSVC_HI_WARN_ATTR 15 /* "Hi-warn" */ 2190Sstevel@tonic-gate #define PSVC_HI_SHUT_ATTR 16 /* "Hi-shut" */ 2200Sstevel@tonic-gate #define PSVC_OPTIMAL_TEMP_ATTR 17 /* "Opt-temp" */ 2210Sstevel@tonic-gate #define PSVC_HW_HI_SHUT_ATTR 18 /* "Hw-hi-shut" */ 2220Sstevel@tonic-gate #define PSVC_HW_LO_SHUT_ATTR 19 /* "Hw-lo-shut" */ 2230Sstevel@tonic-gate #define PSVC_SETPOINT_ATTR 20 /* "Setpoint" */ 2240Sstevel@tonic-gate #define PSVC_HYSTERESIS_ATTR 21 /* "Hysteresis" */ 2250Sstevel@tonic-gate #define PSVC_LOOPGAIN_ATTR 22 /* "Loopgain" */ 2260Sstevel@tonic-gate #define PSVC_LOOPBIAS_ATTR 23 /* "Loopbias" */ 2270Sstevel@tonic-gate #define PSVC_TEMP_DIFFERENTIAL_ATTR 24 /* "Temp_differential" */ 2280Sstevel@tonic-gate #define PSVC_TEMP_DIFFERENTIAL_INDEX_ATTR 25 /* Temp_differential_index */ 2290Sstevel@tonic-gate #define PSVC_SENSOR_VALUE_ATTR 26 /* "Sensor-value" */ 2300Sstevel@tonic-gate #define PSVC_GPIO_VALUE_ATTR 27 /* "Gpio-value" */ 2310Sstevel@tonic-gate #define PSVC_GPIO_BITS 28 /* "#Bits" */ 2320Sstevel@tonic-gate #define PSVC_CONTROL_VALUE_ATTR 29 /* "Control-value" */ 2330Sstevel@tonic-gate #define PSVC_LED_STATE_ATTR 30 /* "Led-state" */ 2340Sstevel@tonic-gate #define PSVC_SWITCH_STATE_ATTR 31 /* "Switch-state" */ 2350Sstevel@tonic-gate #define PSVC_PROBE_RESULT_ATTR 32 /* "Probe-result" */ 2360Sstevel@tonic-gate #define PSVC_TABLE_VALUE_ATTR 33 /* "Table_value" */ 2370Sstevel@tonic-gate #define PSVC_ASSOC_ID_ATTR 34 /* "Assoc_id" */ 2380Sstevel@tonic-gate #define PSVC_ASSOC_MATCHES_ATTR 35 /* "Assoc_matches" */ 2390Sstevel@tonic-gate #define PSVC_ADDR_SPEC_ATTR 36 /* "Addr-spec" */ 2400Sstevel@tonic-gate #define PSVC_OBJECT_ID_ATTR 37 /* "Object-id" */ 2410Sstevel@tonic-gate #define PSVC_LIT_COUNT_ATTR 38 /* "Led-lit-count" */ 2420Sstevel@tonic-gate #define PSVC_FRU_INFO_ATTR 39 /* "FRU-info" */ 2430Sstevel@tonic-gate 2440Sstevel@tonic-gate #define PSVC_LED_IS_LOCATOR_ATTR 40 /* "IsLocator" */ 2450Sstevel@tonic-gate #define PSVC_LED_LOCATOR_NAME_ATTR 41 /* "LocatorName" */ 2460Sstevel@tonic-gate #define PSVC_LOCATOR_TRUE "true" 2470Sstevel@tonic-gate 2480Sstevel@tonic-gate /* PSVC_PRESENCE_ATTR values */ 2490Sstevel@tonic-gate #define PSVC_ABSENT 0 2500Sstevel@tonic-gate #define PSVC_PRESENT 1 2510Sstevel@tonic-gate 2520Sstevel@tonic-gate /* PSVC_ENABLE_ATTR values */ 2530Sstevel@tonic-gate #define PSVC_DISABLED 0 2540Sstevel@tonic-gate #define PSVC_ENABLED 1 2550Sstevel@tonic-gate 2560Sstevel@tonic-gate /* PSVC_PROBE_RESULT_ATTR values */ 2570Sstevel@tonic-gate #define PSVC_DEV_PROBE_SUCCESS PSVC_SUCCESS 2580Sstevel@tonic-gate #define PSVC_DEV_PROBE_FAILED PSVC_FAILURE 2590Sstevel@tonic-gate 2600Sstevel@tonic-gate /* Size of fan temperature differential array */ 2610Sstevel@tonic-gate #define PSVC_MAXERRORS 2 2620Sstevel@tonic-gate 2630Sstevel@tonic-gate /* Address specification macros */ 2640Sstevel@tonic-gate #define PSVC_VERSION 0 /* Current version */ 2650Sstevel@tonic-gate 2660Sstevel@tonic-gate #define PSVC_VERSION_SHIFT 0 2670Sstevel@tonic-gate #define PSVC_ACTIVE_LOW_SHIFT 7 2680Sstevel@tonic-gate #define PSVC_BIT_NUM_SHIFT 4 2690Sstevel@tonic-gate #define PSVC_INVERT_SHIFT 4 2700Sstevel@tonic-gate #define PSVC_PORT_SHIFT 8 2710Sstevel@tonic-gate #define PSVC_BITSHIFT_SHIFT 12 2720Sstevel@tonic-gate #define PSVC_BYTEMASK_SHIFT 16 2730Sstevel@tonic-gate #define PSVC_REG_SHIFT 24 2740Sstevel@tonic-gate #define PSVC_TYPE_SHIFT 32 2750Sstevel@tonic-gate #define PSVC_BUSADDR_SHIFT 40 2760Sstevel@tonic-gate #define PSVC_BUSNUM_SHIFT 48 2770Sstevel@tonic-gate #define PSVC_CNTLR_SHIFT 56 2780Sstevel@tonic-gate 2790Sstevel@tonic-gate #define PSVC_GET_VERSION(X) ((X >> PSVC_VERSION_SHIFT) & 0xF) 2800Sstevel@tonic-gate #define PSVC_IS_ACTIVE_LOW(X) ((X >> PSVC_ACTIVE_LOW_SHIFT) & 0x1) 2810Sstevel@tonic-gate #define PSVC_GET_BIT_NUM(X) ((X >> PSVC_BIT_NUM_SHIFT) & 0x7) 2820Sstevel@tonic-gate #define PSVC_HP_INVERT(X) (((X >> PSVC_INVERT_SHIFT) & 0x7) == 1) 2830Sstevel@tonic-gate #define PSVC_GET_ASPEC_PORT(X) ((X >> PSVC_PORT_SHIFT) & 0xF) 2840Sstevel@tonic-gate #define PSVC_GET_ASPEC_BITSHIFT(X) ((X >> PSVC_BITSHIFT_SHIFT) & 0xF) 2850Sstevel@tonic-gate #define PSVC_GET_ASPEC_BYTEMASK(X) ((X >> PSVC_BYTEMASK_SHIFT) & 0xFF) 2860Sstevel@tonic-gate #define PSVC_GET_ASPEC_REG(X) ((X >> PSVC_REG_SHIFT) & 0xFF) 2870Sstevel@tonic-gate #define PSVC_GET_ASPEC_TYPE(X) ((X >> PSVC_TYPE_SHIFT) & 0xFF) 2880Sstevel@tonic-gate #define PSVC_GET_ASPEC_BUSADDR(X) ((X >> PSVC_BUSADDR_SHIFT) & 0xFF) 2890Sstevel@tonic-gate #define PSVC_GET_ASPEC_BUSNUM(X) ((X >> PSVC_BUSNUM_SHIFT) & 0xFF) 2900Sstevel@tonic-gate #define PSVC_GET_ASPEC_CNTLR(X) ((X >> PSVC_CNTLR_SHIFT) & 0xFF) 2910Sstevel@tonic-gate 2920Sstevel@tonic-gate 2930Sstevel@tonic-gate /* Address spec device_types */ 2940Sstevel@tonic-gate #define PSVC_I2C_AT24 0 2950Sstevel@tonic-gate #define PSVC_I2C_HPC3130 1 2960Sstevel@tonic-gate #define PSVC_I2C_LM75 2 2970Sstevel@tonic-gate #define PSVC_I2C_LTC1427 3 2980Sstevel@tonic-gate #define PSVC_I2C_MAX1617 4 2990Sstevel@tonic-gate #define PSVC_I2C_PCF8574 5 3000Sstevel@tonic-gate #define PSVC_I2C_PCF8591 6 3010Sstevel@tonic-gate #define PSVC_I2C_SSC050 7 3020Sstevel@tonic-gate #define PSVC_I2C_TDA8444 8 3030Sstevel@tonic-gate #define PSVC_I2C_SSC100 9 3040Sstevel@tonic-gate 3050Sstevel@tonic-gate /* numbers of attempts for retrying requests over the I2C bus */ 306*958Sjfrank #define PSVC_NUM_OF_RETRIES 5 307*958Sjfrank #define PSVC_THRESHOLD_COUNTER 5 3080Sstevel@tonic-gate 3090Sstevel@tonic-gate /* Prototypes */ 3100Sstevel@tonic-gate #ifndef LIBRARY_BUILD 3110Sstevel@tonic-gate int32_t psvc_init(psvc_opaque_t *); 3120Sstevel@tonic-gate int32_t psvc_fini(psvc_opaque_t); 3130Sstevel@tonic-gate int32_t psvc_get_attr(psvc_opaque_t, char *, int32_t, void *, ...); 3140Sstevel@tonic-gate int32_t psvc_set_attr(psvc_opaque_t, char *, int32_t, void *); 3150Sstevel@tonic-gate void psvcplugin_add_children(char *parent_path); 3160Sstevel@tonic-gate void psvcplugin_lookup(char *name, char *parent, picl_nodehdl_t *node); 3170Sstevel@tonic-gate #endif 3180Sstevel@tonic-gate 3190Sstevel@tonic-gate /* FRU reading structure */ 3200Sstevel@tonic-gate typedef struct { 3210Sstevel@tonic-gate int32_t buf_start; 3220Sstevel@tonic-gate char *buf; 3230Sstevel@tonic-gate int32_t read_size; 3240Sstevel@tonic-gate }fru_info_t; 3250Sstevel@tonic-gate 3260Sstevel@tonic-gate /* Mutex used for Daktari Fan speed reading */ 3270Sstevel@tonic-gate extern pthread_mutex_t fan_mutex; 3280Sstevel@tonic-gate 3290Sstevel@tonic-gate #ifdef __cplusplus 3300Sstevel@tonic-gate } 3310Sstevel@tonic-gate #endif 3320Sstevel@tonic-gate 3330Sstevel@tonic-gate #endif /* _PSVC_OBJECTS_H */ 334