lw8.h revision 03831d35f7499c87d51205817c93e9a8d42c4bae
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2001 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_LW8_H
#define _SYS_LW8_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
/*
* subset of ioctl commands from PSARC 2000/019
*/
#define LOMIOCALCTL _IOW('a', 4, lom_aldata_t)
#define LOMIOCALSTATE _IOWR('a', 5, lom_aldata_t)
#define LOMIOCFLEDSTATE _IOR('a', 24, lom_fled_info_t)
#define LOMIOCINFO _IOR('a', 25, lom_info_t)
#define LOMIOCINFO2 _IOWR('a', 46, lom2_info_t)
#define LOMIOCCTL _IOW('a', 27, lom_ctl_t)
#define LOMIOCCTL2 _IOW('a', 40, lom_ctl2_t)
#define LOMIOCPROG _IOWR('a', 28, lom_prog_t)
#define LOMIOCWTMON _IOWR('a', 2, int)
#define LOMIOCMREAD _IOR('a', 33, lom_mprog_t)
#define LOMIOCEVENTLOG2 _IOWR('a', 45, lom_eventlog2_t)
#define LOM_SERIAL_EVENTS_ON 0x100
#define LOM_SERIAL_EVENTS_OFF 0x200
#define LOM_SERIAL_EVENTS_DEF 0x300
typedef struct {
int alarm_no;
int state;
} lom_aldata_t;
typedef struct {
int on;
} lom_fled_info_t;
typedef struct {
char ser_char;
char pad1[7];
int fault_led;
int pad2[2];
} lom_ctl_t;
typedef struct {
char escape_chars[6];
char pad1[2];
int serial_events;
} lom_ctl2_t;
typedef struct {
int pad1[4];
int config;
int pad2[8];
} lom_mprog_t;
typedef struct {
char ser_char;
char pad1[7];
int fver;
int fchksum;
int prod_rev;
char prod_id[12];
int pad2[1];
} lom_info_t;
typedef struct {
char escape_chars[6];
char pad1[2];
int serial_events;
int pad2[1];
int fver;
int fchksum;
int prod_rev;
char prod_id[12];
int serial_config;
int baud_rate;
int serial_hw_config;
int phone_home_config;
char phone_home_script[128];
int pad3[16];
} lom2_info_t;
typedef struct {
int index; /* bit 0x8000 should be set if last buffer */
uint8_t data[0x400];
int size;
} lom_prog_t;
#define MAX_EVENTS 128
#define MAX_EVENT_STR 80
typedef struct {
int num; /* no. events requested and no. returned */
int level; /* level of events requested */
int pad1[MAX_EVENTS];
char string[MAX_EVENTS][MAX_EVENT_STR];
int pad2[MAX_EVENTS];
} lom_eventlog2_t;
/*
* Project private ioctl commands - used by lw8 picl frutree plugin only
*/
#define LOMIOCGETLED _IOWR('a', 100, lom_get_led_t)
#define LOMIOCSETLED _IOWR('a', 101, lom_set_led_t)
#define MAX_ID_LEN 16
#define MAX_LOCATION_LEN 16
#define MAX_COLOR_LEN 16
#define LOM_LED_STATUS_OFF 0
#define LOM_LED_STATUS_ON 1
#define LOM_LED_STATUS_FLASHING 2
#define LOM_LED_STATUS_BLINKING 3
#define LOM_LED_POSITION_FRU 0
#define LOM_LED_POSITION_LOCATION 1
typedef struct {
char location[MAX_LOCATION_LEN];
char id[MAX_ID_LEN];
int status;
int position;
char color[MAX_COLOR_LEN];
char next_id[MAX_ID_LEN];
} lom_get_led_t;
typedef struct {
char location[MAX_LOCATION_LEN];
char id[MAX_ID_LEN];
int status;
} lom_set_led_t;
#ifdef __cplusplus
}
#endif
#endif /* _SYS_LW8_H */