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