psvc_objects.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
843e19887f64dde75055cf8842fc4db2171eff45johnlev * CDDL HEADER START
843e19887f64dde75055cf8842fc4db2171eff45johnlev * The contents of this file are subject to the terms of the
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Common Development and Distribution License, Version 1.0 only
843e19887f64dde75055cf8842fc4db2171eff45johnlev * (the "License"). You may not use this file except in compliance
843e19887f64dde75055cf8842fc4db2171eff45johnlev * with the License.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
843e19887f64dde75055cf8842fc4db2171eff45johnlev * See the License for the specific language governing permissions
843e19887f64dde75055cf8842fc4db2171eff45johnlev * and limitations under the License.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * When distributing Covered Code, include this CDDL HEADER in each
843e19887f64dde75055cf8842fc4db2171eff45johnlev * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * If applicable, add the following below this CDDL HEADER, with the
843e19887f64dde75055cf8842fc4db2171eff45johnlev * fields enclosed by brackets "[]" replaced with your own identifying
843e19887f64dde75055cf8842fc4db2171eff45johnlev * information: Portions Copyright [yyyy] [name of copyright owner]
843e19887f64dde75055cf8842fc4db2171eff45johnlev * CDDL HEADER END
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Copyright 1999-2003 Sun Microsystems, Inc. All rights reserved.
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Use is subject to license terms.
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#pragma ident "%Z%%M% %I% %E% SMI"
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rabextern "C" {
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab * Platform Services Framework definitions
843e19887f64dde75055cf8842fc4db2171eff45johnlev/* Return values */
843e19887f64dde75055cf8842fc4db2171eff45johnlev/* Class definitions */
843e19887f64dde75055cf8842fc4db2171eff45johnlev/* Associations */
5d2eda970e48f8985448151c73e699614ce9f357John Levon/* Device "feature" definitions */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_DEV_PERM 0x0000000000000001 /* Permanently in system */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_DEV_HOTPLUG 0x0000000000000002 /* Hot-pluggable device */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_DEV_OPTION 0x0000000000000004 /* Option (not hot-pluggable) */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_DEV_PRIMARY 0x0000000000000010 /* Primary device */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_DEV_SECONDARY 0x0000000000000020 /* Secondary device */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_DEV_RDONLY 0x0000000000000100 /* Read only device */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_DEV_RDWR 0x0000000000000400 /* read/write device */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_DEV_FRU 0x0000000000000800 /* device is a FRU */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_CONVERSION_TABLE 0x0000000000010000 /* Conversion table */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_OPT_TEMP 0x0000000000020000 /* Optimal Temperature */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_TEMP_DRIVEN 0x0002000000000000 /* Temperature driven */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_SPEED_CTRL_PR 0x0004000000000000 /* Variable speed control */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_FAN_ON_OFF 0x0008000000000000 /* On/off fans */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_CLOSED_LOOP_CTRL 0x0010000000000000 /* Closed loop control */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_FAN_DRIVE_TABLE_PR 0x0010000000000000 /* oC to fan input table */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_DIGI_SENSOR 0x0100000000000000 /* A to D converter */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_BIT_POS 0x0001000000000000 /* One bit per key positon */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_VAL_POS 0x0002000000000000 /* One value per key position */
843e19887f64dde75055cf8842fc4db2171eff45johnlev/* LED colors */
843e19887f64dde75055cf8842fc4db2171eff45johnlev/* States */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_HOTPLUGGED "HOTPLUGGED" /* hotplugged, but not yet enabled */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab * The Following States are for the Locking Object created by PSARC 2002/003
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab/* LED states */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab/* On/Off switch states */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab/* Keyswitch positions */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab/* Fault strings */
843e19887f64dde75055cf8842fc4db2171eff45johnlev * When Adding Attributes be sure to add the string value of the
843e19887f64dde75055cf8842fc4db2171eff45johnlev * Attribute to attr_str_tab in psvc_objects_class.h
843e19887f64dde75055cf8842fc4db2171eff45johnlev/* Attribute names */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_PREV_PRESENCE_ATTR 3 /* Previous-presence */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_PREV_STATE_ATTR 5 /* "Previous-state" */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_TEMP_DIFFERENTIAL_ATTR 24 /* "Temp_differential" */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_TEMP_DIFFERENTIAL_INDEX_ATTR 25 /* Temp_differential_index */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_CONTROL_VALUE_ATTR 29 /* "Control-value" */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_SWITCH_STATE_ATTR 31 /* "Switch-state" */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_PROBE_RESULT_ATTR 32 /* "Probe-result" */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_ASSOC_MATCHES_ATTR 35 /* "Assoc_matches" */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#define PSVC_LED_IS_LOCATOR_ATTR 40 /* "IsLocator" */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_LED_LOCATOR_NAME_ATTR 41 /* "LocatorName" */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab/* PSVC_PRESENCE_ATTR values */
843e19887f64dde75055cf8842fc4db2171eff45johnlev/* PSVC_ENABLE_ATTR values */
843e19887f64dde75055cf8842fc4db2171eff45johnlev/* PSVC_PROBE_RESULT_ATTR values */
843e19887f64dde75055cf8842fc4db2171eff45johnlev/* Size of fan temperature differential array */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab/* Address specification macros */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_GET_VERSION(X) ((X >> PSVC_VERSION_SHIFT) & 0xF)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_IS_ACTIVE_LOW(X) ((X >> PSVC_ACTIVE_LOW_SHIFT) & 0x1)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_GET_BIT_NUM(X) ((X >> PSVC_BIT_NUM_SHIFT) & 0x7)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_HP_INVERT(X) (((X >> PSVC_INVERT_SHIFT) & 0x7) == 1)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_GET_ASPEC_PORT(X) ((X >> PSVC_PORT_SHIFT) & 0xF)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_GET_ASPEC_BITSHIFT(X) ((X >> PSVC_BITSHIFT_SHIFT) & 0xF)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_GET_ASPEC_BYTEMASK(X) ((X >> PSVC_BYTEMASK_SHIFT) & 0xFF)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_GET_ASPEC_REG(X) ((X >> PSVC_REG_SHIFT) & 0xFF)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_GET_ASPEC_TYPE(X) ((X >> PSVC_TYPE_SHIFT) & 0xFF)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_GET_ASPEC_BUSADDR(X) ((X >> PSVC_BUSADDR_SHIFT) & 0xFF)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_GET_ASPEC_BUSNUM(X) ((X >> PSVC_BUSNUM_SHIFT) & 0xFF)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab#define PSVC_GET_ASPEC_CNTLR(X) ((X >> PSVC_CNTLR_SHIFT) & 0xFF)
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab/* Address spec device_types */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab/* numbers of attempts for retrying requests over the I2C bus */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab/* Prototypes */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rabint32_t psvc_get_attr(psvc_opaque_t, char *, int32_t, void *, ...);
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rabint32_t psvc_set_attr(psvc_opaque_t, char *, int32_t, void *);
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rabvoid psvcplugin_lookup(char *name, char *parent, picl_nodehdl_t *node);
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rab/* FRU reading structure */
a576ab5b6e08c47732b3dedca9eaa8a8cbb85720rabtypedef struct {
843e19887f64dde75055cf8842fc4db2171eff45johnlev/* Mutex used for Daktari Fan speed reading */
843e19887f64dde75055cf8842fc4db2171eff45johnlev#endif /* _PSVC_OBJECTS_H */