#ifndef _SYS_ENVCTRL_GEN_H
#define _SYS_ENVCTRL_GEN_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
#define ENVCTRL_NORMAL_MODE 0x01
#define ENVCTRL_DIAG_MODE 0x02
#define ENVCTRL_CHAR_ZERO 0x00
#define ENVCTRL_PS_550 550
#define ENVCTRL_PS_650 650
#define ENVCTRL_INIT_TEMPR 20
#define ENVCTRL_ULTRA1CPU_STRING "SUNW,UltraSPARC"
#define ENVCTRL_ULTRA2CPU_STRING "SUNW,UltraSPARC-II"
#define ENVCTRL_MAX_CPUS 8
#define ENVCTRL_CPU0 0
#define ENVCTRL_CPU1 1
#define ENVCTRL_CPU2 2
#define ENVCTRL_CPU3 3
#define ENVCTRL_CPU4 4
#define ENVCTRL_CPU5 5
#define ENVCTRL_CPU6 6
#define ENVCTRL_CPU7 7
#define ENVCTRL_PCD8584 0x00
#define ENVCTRL_PCF8591 0x01
#define ENVCTRL_PCF8574 0x02
#define ENVCTRL_TDA8444T 0x03
#define ENVCTRL_PCF8574A 0x04
#define ENVCTRL_PCF8583 0x05
#define ENVCTRL_LM75 0x06
#define ENVCTRL_DEV0 0x0
#define ENVCTRL_DEV1 0x2
#define ENVCTRL_DEV2 0x4
#define ENVCTRL_DEV3 0x6
#define ENVCTRL_DEV4 0x8
#define ENVCTRL_DEV5 0xA
#define ENVCTRL_DEV6 0xC
#define ENVCTRL_DEV7 0xE
#define ENVCTRL_PORT0 0x00
#define ENVCTRL_PORT1 0x01
#define ENVCTRL_PORT2 0x02
#define ENVCTRL_PORT3 0x03
#define ENVCTRL_PORT4 0x04
#define ENVCTRL_PORT5 0x05
#define ENVCTRL_PORT6 0x06
#define ENVCTRL_PORT7 0x07
#define ENVCTRL_MAX_DEVS 0x10
#define ENVCTRL_I2C_NODEV 0xFF
#define ENVCTRL_INSTANCE_0 0x00
#define ENVCTRL_DISK_0 0x01
#define ENVCTRL_DISK_1 0x02
#define ENVCTRL_DISK_2 0x04
#define ENVCTRL_DISK_3 0x08
#define ENVCTRL_DISK_4 0x10
#define ENVCTRL_DISK_5 0x20
#define ENVCTRL_DISK_6 0x40
#define ENVCTRL_DISK_7 0x80
#define ENVCTRL_4SLOT_BACKPLANE 0x0F
#define ENVCTRL_8SLOT_BACKPLANE 0xFF
#define ENVCTRL_DISK4LED_ALLOFF 0xF0
#define ENVCTRL_DISK6LED_ALLOFF 0xFC
#define ENVCTRL_DISK8LED_ALLOFF 0xFF
#define ENVCTRL_MAXSTRLEN 256
#define ENVCTRL_FAN_TYPE_CPU 0x00
#define ENVCTRL_FAN_TYPE_PS 0x01
#define ENVCTRL_FAN_TYPE_AFB 0x02
#define ENVCTRL_FAN_TYPE_UE250 0x03
#define ENVCTRL_MODULE_NAME "envctrl"
#define ENVCTRL_KSTAT_NUMPS "envctrl_numps"
#define ENVCTRL_KSTAT_PSNAME "envctrl_pwrsupply"
#define ENVCTRL_KSTAT_PSNAME2 "envctrl_pwrsupply2"
#define ENVCTRL_KSTAT_NUMFANS "envctrl_numfans"
#define ENVCTRL_KSTAT_FANSTAT "envctrl_fanstat"
#define ENVCTRL_KSTAT_NUMENCLS "envctrl_numencls"
#define ENVCTRL_KSTAT_ENCL "envctrl_enclosure"
#define ENVCTRL_KSTAT_TEMPERATURE "envctrl_temp"
#define ENVCTRL_KSTAT_DISK "envctrl_disk"
typedef struct envctrl_ps {
int instance;
ushort_t ps_tempr;
int ps_rating;
boolean_t ps_ok;
boolean_t curr_share_ok;
boolean_t limit_ok;
} envctrl_ps_t;
typedef struct envctrl_fan {
int instance;
int type;
boolean_t fans_ok;
int fanflt_num;
uint_t fanspeed;
} envctrl_fan_t;
typedef struct envctrl_encl {
int instance;
int type;
uint_t value;
} envctrl_encl_t;
typedef struct envctrl_chip {
int type;
uchar_t chip_num;
uchar_t index;
uchar_t val;
} envctrl_chip_t;
typedef struct envctrl_ps2 {
ushort_t ps_tempr;
int ps_rating;
boolean_t ps_ok;
boolean_t curr_share_ok;
boolean_t limit_ok;
int type;
int slot;
} envctrl_ps2_t;
typedef struct envctrl_temp {
char label[ENVCTRL_MAXSTRLEN];
int type;
uint_t value;
uint_t min;
uint_t warning_threshold;
uint_t shutdown_threshold;
} envctrl_temp_t;
typedef struct envctrl_disk {
int slot;
boolean_t disk_ok;
} envctrl_disk_t;
#define ENVCTRL_PANEL_LEDS_PR "panel-leds-present"
#define ENVCTRL_PANEL_LEDS_STA "panel-leds-state"
#define ENVCTRL_DISK_LEDS_PR "disk-leds-present"
#define ENVCTRL_DISK_LEDS_STA "disk-leds-state"
#define ENVCTRL_LED_BLINK "activity-led-blink?"
#define ENVCTRL_IOC_RESETTMPR (int)(_IOW('p', 76, uchar_t))
#define ENVCTRL_IOC_SETMODE (int)(_IOW('p', 77, uchar_t))
#define ENVCTRL_IOC_SETTEMP (int)(_IOW('p', 79, uchar_t))
#define ENVCTRL_IOC_SETFAN (int)(_IOW('p', 80, struct envctrl_tda8444t_chip))
#define ENVCTRL_IOC_SETWDT (int)(_IOW('p', 81, uchar_t))
#define ENVCTRL_IOC_GETFAN (int)(_IOR('p', 81, struct envctrl_tda8444t_chip))
#define ENVCTRL_IOC_GETTEMP (int)(_IOR('p', 82, struct envctrl_pcf8591_chip))
#define ENVCTRL_IOC_GETFANFAIL (int)(_IOR('p', 83, struct envctrl_pcf8574_chip))
#define ENVCTRL_IOC_SETFSP (int)(_IOW('p', 84, uchar_t))
#define ENVCTRL_IOC_SETDSKLED (int)(_IOW('p', 85, struct envctrl_pcf8574_chip))
#define ENVCTRL_IOC_GETDSKLED (int)(_IOR('p', 86, struct envctrl_pcf8574_chip))
#define ENVCTRL_IOC_GETMODE (int)(_IOR('p', 87, uchar_t))
#define ENVCTRL_IOC_SETTEMP2 (int)(_IOW('p', 88, struct envctrl_chip))
#define ENVCTRL_IOC_SETFAN2 (int)(_IOW('p', 89, struct envctrl_chip))
#define ENVCTRL_IOC_GETFAN2 (int)(_IOR('p', 90, struct envctrl_chip))
#define ENVCTRL_IOC_GETTEMP2 (int)(_IOR('p', 91, struct envctrl_chip))
#define ENVCTRL_IOC_SETFSP2 (int)(_IOW('p', 92, struct envctrl_chip))
#define ENVCTRL_IOC_GETFSP2 (int)(_IOR('p', 93, struct envctrl_chip))
#define ENVCTRL_IOC_SETDSKLED2 (int)(_IOW('p', 94, struct envctrl_chip))
#define ENVCTRL_IOC_GETDSKLED2 (int)(_IOR('p', 95, struct envctrl_chip))
#define ENVCTRL_IOC_SETRAW (int)(_IOW('p', 96, struct envctrl_chip))
#define ENVCTRL_IOC_GETRAW (int)(_IOR('p', 97, struct envctrl_chip))
#ifdef __cplusplus
}
#endif
#endif