structs_api.h revision cee0fb94c0d4227de0a00efc162fb2739844b641
/*
* 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 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _STRUCTS_API_
#define _STRUCTS_API_
#include "db_structs.h"
#include "defs.h"
#define QU_MAX_DRV_STATUS 165
#define MAX_VTD_MAP 490
typedef struct {
unsigned short packet_id;
COMMAND command;
unsigned char message_options;
VERSION version;
unsigned long extended_options;
LOCKID lock_id;
ACCESSID access_id;
unsigned char reserved[16];
} MESSAGE_HEADER;
typedef struct {
STATUS status;
TYPE type;
IDENTIFIER identifier;
} RESPONSE_STATUS;
typedef struct {
VOLID vol_id;
RESPONSE_STATUS status;
} VOLUME_STATUS;
typedef struct {
ACS acs_id;
RESPONSE_STATUS status;
} AU_ACS_STATUS;
typedef struct {
LSMID lsm_id;
RESPONSE_STATUS status;
} AU_LSM_STATUS;
typedef struct {
PANELID panel_id;
RESPONSE_STATUS status;
} AU_PNL_STATUS;
typedef struct {
SUBPANELID subpanel_id;
RESPONSE_STATUS status;
} AU_SUB_STATUS;
typedef struct {
VOLID vol_id;
RESPONSE_STATUS status;
} LO_VOL_STATUS;
typedef struct {
DRIVEID drive_id;
RESPONSE_STATUS status;
} LO_DRV_STATUS;
typedef enum {
AUDIT = 0,
MOUNT,
DISMOUNT,
ENTER,
EJECT,
MAX_COMMANDS
} QU_COMMANDS;
typedef enum {
CURRENT = 0,
PENDING,
MAX_DISPOSITIONS
} QU_DISPOSITIONS;
typedef struct {
MESSAGE_ID requests[MAX_COMMANDS][MAX_DISPOSITIONS];
} REQ_SUMMARY;
typedef struct {
unsigned short acs_count;
ACS acs_id[MAX_ID];
} QU_ACS_CRITERIA;
typedef struct {
unsigned short lsm_count;
LSMID lsm_id[MAX_ID];
} QU_LSM_CRITERIA;
typedef struct {
unsigned short cap_count;
CAPID cap_id[MAX_ID];
} QU_CAP_CRITERIA;
typedef struct {
unsigned short drive_count;
DRIVEID drive_id[MAX_ID];
} QU_DRV_CRITERIA;
typedef struct {
GROUP_TYPE group_type;
unsigned short drg_count;
GROUPID group_id[MAX_DRG];
} QU_DRG_CRITERIA;
typedef struct {
unsigned short volume_count;
VOLID volume_id[MAX_ID];
} QU_VOL_CRITERIA;
typedef struct {
unsigned short request_count;
MESSAGE_ID request_id[MAX_ID];
} QU_REQ_CRITERIA;
typedef struct {
unsigned short port_count;
PORTID port_id[MAX_ID];
} QU_PRT_CRITERIA;
typedef struct {
unsigned short pool_count;
POOLID pool_id[MAX_ID];
} QU_POL_CRITERIA;
typedef struct {
MEDIA_TYPE media_type;
unsigned short pool_count;
POOLID pool_id[MAX_ID];
} QU_MSC_CRITERIA;
typedef struct {
MEDIA_TYPE media_type;
unsigned short pool_count;
POOLID pool_id[MAX_ID];
MGMT_CLAS mgmt_clas;
} QU_MSC_PINFO_CRITERIA;
typedef struct {
unsigned short lmu_count;
ACS lmu_id[MAX_ID];
} QU_LMU_CRITERIA;
typedef struct {
unsigned short spn_count;
SUBPOOL_NAME subpl_name[MAX_SPN];
} QU_SPN_CRITERIA;
typedef struct {
ACS acs_id;
STATE state;
FREECELLS freecells;
REQ_SUMMARY requests;
STATUS status;
} QU_ACS_STATUS;
typedef struct {
VOLID vol_id;
MEDIA_TYPE media_type;
CELLID home_location;
unsigned short max_use;
unsigned short current_use;
STATUS status;
} QU_CLN_STATUS;
typedef struct {
CAPID cap_id;
STATUS status;
CAP_PRIORITY cap_priority;
unsigned short cap_size;
STATE cap_state;
CAP_MODE cap_mode;
} QU_CAP_STATUS;
typedef struct {
DRIVEID drive_id;
VOLID vol_id;
DRIVE_TYPE drive_type;
STATE state;
STATUS status;
} QU_DRV_STATUS;
typedef struct {
VOLID vol_id;
STATE state;
STATUS status;
DRIVEID drive_id;
} QU_VIRT_DRV_STATUS;
typedef struct {
DRIVEID drive_id;
unsigned short drive_addr;
} QU_VIRT_DRV_MAP;
typedef struct {
LSMID lsm_id;
STATE state;
FREECELLS freecells;
REQ_SUMMARY requests;
STATUS status;
} QU_LSM_STATUS;
typedef struct {
VOLID vol_id;
STATUS status;
unsigned short drive_count;
QU_DRV_STATUS drive_status[QU_MAX_DRV_STATUS];
} QU_MNT_STATUS;
typedef struct {
PORTID port_id;
STATE state;
STATUS status;
} QU_PRT_STATUS;
typedef struct {
MESSAGE_ID request;
COMMAND command;
STATUS status;
} QU_REQ_STATUS;
typedef struct {
STATE state;
FREECELLS freecells;
REQ_SUMMARY requests;
} QU_SRV_STATUS;
typedef struct {
VOLID vol_id;
MEDIA_TYPE media_type;
LOCATION location_type;
union {
CELLID cell_id;
DRIVEID drive_id;
} location;
STATUS status;
} QU_VOL_STATUS;
typedef struct {
VOLID vol_id;
MEDIA_TYPE media_type;
CELLID home_location;
POOLID pool_id;
STATUS status;
} QU_SCR_STATUS;
typedef struct {
POOLID pool_id;
unsigned long volume_count;
unsigned long low_water_mark;
unsigned long high_water_mark;
unsigned long pool_attributes;
STATUS status;
} QU_POL_STATUS;
typedef struct {
SUBPOOL_NAME subpool_name;
POOLID pool_id;
STATUS status;
} QU_SUBPOOL_NAME_STATUS;
typedef struct {
POOLID pool_id;
STATUS status;
unsigned short drive_count;
QU_DRV_STATUS drive_list[QU_MAX_DRV_STATUS];
} QU_MSC_STATUS;
typedef struct {
MEDIA_TYPE media_type;
char media_type_name[MEDIA_TYPE_NAME_LEN + 1];
CLN_CART_CAPABILITY cleaning_cartridge;
int max_cleaning_usage;
unsigned short compat_count;
DRIVE_TYPE compat_drive_types[MM_MAX_COMPAT_TYPES];
} QU_MEDIA_TYPE_STATUS;
typedef struct {
DRIVE_TYPE drive_type;
char drive_type_name[DRIVE_TYPE_NAME_LEN + 1];
unsigned short compat_count;
MEDIA_TYPE compat_media_types[MM_MAX_COMPAT_TYPES];
} QU_DRIVE_TYPE_STATUS;
typedef struct {
QU_SRV_STATUS server_status;
} QU_SRV_RESPONSE;
typedef struct {
unsigned short acs_count;
QU_ACS_STATUS acs_status[MAX_ID];
} QU_ACS_RESPONSE;
typedef struct {
unsigned short lsm_count;
QU_LSM_STATUS lsm_status[MAX_ID];
} QU_LSM_RESPONSE;
typedef struct {
unsigned short cap_count;
QU_CAP_STATUS cap_status[MAX_ID];
} QU_CAP_RESPONSE;
typedef struct {
unsigned short volume_count;
QU_CLN_STATUS clean_volume_status[MAX_ID];
} QU_CLN_RESPONSE;
typedef struct {
unsigned short drive_count;
QU_DRV_STATUS drive_status[MAX_ID];
} QU_DRV_RESPONSE;
typedef struct {
GROUPID group_id;
GROUP_TYPE group_type;
unsigned short vir_drv_map_count;
QU_VIRT_DRV_MAP virt_drv_map[MAX_VTD_MAP];
} QU_DRG_RESPONSE;
typedef struct {
unsigned short mount_status_count;
QU_MNT_STATUS mount_status[MAX_ID];
} QU_MNT_RESPONSE;
typedef struct {
unsigned short volume_count;
QU_VOL_STATUS volume_status[MAX_ID];
} QU_VOL_RESPONSE;
typedef struct {
unsigned short port_count;
QU_PRT_STATUS port_status[MAX_ID];
} QU_PRT_RESPONSE;
typedef struct {
unsigned short request_count;
QU_REQ_STATUS request_status[MAX_ID];
} QU_REQ_RESPONSE;
typedef struct {
unsigned short volume_count;
QU_SCR_STATUS scratch_status[MAX_ID];
} QU_SCR_RESPONSE;
typedef struct {
unsigned short pool_count;
QU_POL_STATUS pool_status[MAX_ID];
} QU_POL_RESPONSE;
typedef struct {
unsigned short spn_status_count;
QU_SUBPOOL_NAME_STATUS subpl_name_status[MAX_ID];
} QU_SPN_RESPONSE;
typedef struct {
unsigned short msc_status_count;
QU_MSC_STATUS mount_scratch_status[MAX_ID];
} QU_MSC_RESPONSE;
typedef struct {
unsigned short media_type_count;
QU_MEDIA_TYPE_STATUS media_type_status[MAX_ID];
unsigned short drive_type_count;
QU_DRIVE_TYPE_STATUS drive_type_status[MAX_ID];
} QU_MMI_RESPONSE;
typedef struct {
VOLID vol_id;
LOCKID lock_id;
unsigned long lock_duration;
unsigned int locks_pending;
USERID user_id;
STATUS status;
} QL_VOL_STATUS;
typedef struct {
DRIVEID drive_id;
LOCKID lock_id;
unsigned long lock_duration;
unsigned int locks_pending;
USERID user_id;
STATUS status;
} QL_DRV_STATUS;
typedef struct {
ACS acs_id;
RESPONSE_STATUS status;
} VA_ACS_STATUS;
typedef struct {
DRIVEID drive_id;
RESPONSE_STATUS status;
} VA_DRV_STATUS;
typedef struct {
LSMID lsm_id;
RESPONSE_STATUS status;
} VA_LSM_STATUS;
typedef struct {
CAPID cap_id;
RESPONSE_STATUS status;
} VA_CAP_STATUS;
typedef struct {
PORTID port_id;
RESPONSE_STATUS status;
} VA_PRT_STATUS;
typedef struct {
PORT_RECORD prt_record;
ROLE role;
int compat_level;
STATE lmu_port_diag;
} LMU_PORT_RECORD;
typedef struct {
STATUS status;
ACS acs_id;
STATE state;
int prt_count;
STATUS standby_status;
STATUS master_status;
MODE mode;
LMU_PORT_RECORD lmu_record[MAX_PORTS];
} QU_LMU_STATUS;
typedef struct {
unsigned short lmu_count;
QU_LMU_STATUS lmu_status[MAX_ID];
} QU_LMU_RESPONSE;
typedef struct {
STATUS status;
ACS lmu_id;
} SW_LMU_STATUS;
#define MAX_XML_DATA_SIZE (MAX_MESSAGE_SIZE- \
( \
(sizeof (IPC_HEADER) +4) \
+ sizeof (MESSAGE_HEADER) \
+ (sizeof (STATUS) \
+ sizeof (TYPE) \
+ sizeof (IDENTIFIER)) \
+ sizeof (TYPE) \
+ sizeof (unsigned short)))
typedef struct {
unsigned short length;
char xml_data[MAX_XML_DATA_SIZE];
} DISPLAY_XML_DATA;
#endif /* _STRUCTS_API_ */