lm_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 _LM_STRUCTS_API_
#define _LM_STRUCTS_API_
typedef struct {
IPC_HEADER ipc_header;
MESSAGE_HEADER message_header;
} REQUEST_HEADER;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
MESSAGE_ID message_id;
} ACKNOWLEDGE_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
CAPID cap_id;
TYPE type;
unsigned short count;
union {
ACS acs_id[MAX_ID];
LSMID lsm_id[MAX_ID];
PANELID panel_id[MAX_ID];
SUBPANELID subpanel_id[MAX_ID];
} identifier;
} AUDIT_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
CAPID cap_id;
TYPE type;
unsigned short count;
union {
AU_ACS_STATUS acs_status[MAX_ID];
AU_LSM_STATUS lsm_status[MAX_ID];
AU_PNL_STATUS panel_status[MAX_ID];
AU_SUB_STATUS subpanel_status[MAX_ID];
} identifier_status;
} AUDIT_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
CAPID cap_id;
unsigned short count;
VOLUME_STATUS volume_status[MAX_ID];
} EJECT_ENTER;
typedef EJECT_ENTER EJECT_RESPONSE;
typedef EJECT_ENTER ENTER_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
CAPID cap_id;
unsigned short count;
VOLID vol_id[MAX_ID];
} EJECT_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
CAPID cap_id;
unsigned short count;
VOLRANGE vol_range[MAX_ID];
} EXT_EJECT_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
CAPID cap_id;
} ENTER_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
VOLID vol_id;
unsigned short count;
DRIVEID drive_id[MAX_ID];
} MOUNT_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
VOLID vol_id;
DRIVEID drive_id;
} MOUNT_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
VOLID vol_id[MAX_ID];
unsigned short count;
LSMID lsm;
} MOVE_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
unsigned short count;
VOLUME_STATUS volume_status[MAX_ID];
} MOVE_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
POOLID pool_id;
MEDIA_TYPE media_type;
unsigned short count;
DRIVEID drive_id[MAX_ID];
} MOUNT_SCRATCH_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
POOLID pool_id;
DRIVEID drive_id;
VOLID vol_id;
} MOUNT_SCRATCH_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
VOLID vol_id;
DRIVEID drive_id;
} DISMOUNT_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
VOLID vol_id;
DRIVEID drive_id;
} DISMOUNT_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
TYPE type;
unsigned short count;
union {
VOLID vol_id[MAX_ID];
DRIVEID drive_id[MAX_ID];
} identifier;
} LOCK_REQUEST;
typedef LOCK_REQUEST CLEAR_LOCK_REQUEST;
typedef LOCK_REQUEST QUERY_LOCK_REQUEST;
typedef LOCK_REQUEST UNLOCK_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
TYPE type;
unsigned short count;
union {
LO_VOL_STATUS volume_status[MAX_ID];
LO_DRV_STATUS drive_status[MAX_ID];
} identifier_status;
} LOCK_RESPONSE;
typedef LOCK_RESPONSE CLEAR_LOCK_RESPONSE;
typedef LOCK_RESPONSE UNLOCK_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
TYPE type;
union {
QU_ACS_CRITERIA acs_criteria;
QU_LSM_CRITERIA lsm_criteria;
QU_CAP_CRITERIA cap_criteria;
QU_DRV_CRITERIA drive_criteria;
QU_VOL_CRITERIA vol_criteria;
QU_REQ_CRITERIA request_criteria;
QU_PRT_CRITERIA port_criteria;
QU_POL_CRITERIA pool_criteria;
QU_MSC_CRITERIA mount_scratch_criteria;
QU_LMU_CRITERIA lmu_criteria;
QU_DRG_CRITERIA drive_group_criteria;
QU_SPN_CRITERIA subpl_name_criteria;
QU_MSC_PINFO_CRITERIA mount_scratch_pinfo_criteria;
} select_criteria;
} QUERY_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
TYPE type;
union {
QU_SRV_RESPONSE server_response;
QU_ACS_RESPONSE acs_response;
QU_LSM_RESPONSE lsm_response;
QU_CAP_RESPONSE cap_response;
QU_CLN_RESPONSE clean_volume_response;
QU_DRV_RESPONSE drive_response;
QU_MNT_RESPONSE mount_response;
QU_VOL_RESPONSE volume_response;
QU_PRT_RESPONSE port_response;
QU_REQ_RESPONSE request_response;
QU_SCR_RESPONSE scratch_response;
QU_POL_RESPONSE pool_response;
QU_MSC_RESPONSE mount_scratch_response;
QU_MMI_RESPONSE mm_info_response;
QU_LMU_RESPONSE lmu_response;
QU_DRG_RESPONSE drive_group_response;
QU_SPN_RESPONSE subpl_name_response;
} status_response;
} QUERY_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
TYPE type;
unsigned short count;
union {
QL_VOL_STATUS volume_status[MAX_ID];
QL_DRV_STATUS drive_status[MAX_ID];
} identifier_status;
} QUERY_LOCK_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
STATE state;
TYPE type;
unsigned short count;
union {
ACS acs_id[MAX_ID];
LSMID lsm_id[MAX_ID];
DRIVEID drive_id[MAX_ID];
PORTID port_id[MAX_ID];
CAPID cap_id[MAX_ID];
} identifier;
} VARY_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
STATE state;
TYPE type;
unsigned short count;
union {
VA_ACS_STATUS acs_status[MAX_ID];
VA_LSM_STATUS lsm_status[MAX_ID];
VA_DRV_STATUS drive_status[MAX_ID];
VA_PRT_STATUS port_status[MAX_ID];
VA_CAP_STATUS cap_status[MAX_ID];
} device_status;
} VARY_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
CAPID cap_id;
unsigned short count;
VOLID vol_id[MAX_ID];
} VENTER_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
unsigned long low_water_mark;
unsigned long high_water_mark;
unsigned long pool_attributes;
unsigned short count;
POOLID pool_id[MAX_ID];
} DEFINE_POOL_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
unsigned long low_water_mark;
unsigned long high_water_mark;
unsigned long pool_attributes;
unsigned short count;
struct {
POOLID pool_id;
RESPONSE_STATUS status;
} pool_status[MAX_ID];
} DEFINE_POOL_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
unsigned short count;
POOLID pool_id[MAX_ID];
} DELETE_POOL_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
unsigned short count;
struct {
POOLID pool_id;
RESPONSE_STATUS status;
} pool_status[MAX_ID];
} DELETE_POOL_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
CAP_PRIORITY cap_priority;
CAP_MODE cap_mode;
unsigned short count;
CAPID cap_id[MAX_ID];
} SET_CAP_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
CAP_PRIORITY cap_priority;
CAP_MODE cap_mode;
unsigned short count;
struct {
CAPID cap_id;
RESPONSE_STATUS status;
} set_cap_status[MAX_ID];
} SET_CAP_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
unsigned short max_use;
unsigned short count;
VOLRANGE vol_range[MAX_ID];
} SET_CLEAN_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
unsigned short max_use;
unsigned short count;
struct {
VOLID vol_id;
RESPONSE_STATUS status;
} volume_status[MAX_ID];
} SET_CLEAN_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
USERID owner_id;
TYPE type;
unsigned short count;
VOLRANGE vol_range[MAX_ID];
} SET_OWNER_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
USERID owner_id;
TYPE type;
unsigned short count;
struct {
VOLID vol_id;
RESPONSE_STATUS status;
} volume_status[MAX_ID];
} SET_OWNER_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
POOLID pool_id;
unsigned short count;
VOLRANGE vol_range[MAX_ID];
} SET_SCRATCH_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
POOLID pool_id;
unsigned short count;
struct {
VOLID vol_id;
RESPONSE_STATUS status;
} scratch_status[MAX_ID];
} SET_SCRATCH_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
MESSAGE_ID request;
} CANCEL_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
MESSAGE_ID request;
} CANCEL_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
} START_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
} START_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
} IDLE_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
} IDLE_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
} INIT_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
STATE state;
TYPE type;
unsigned short count;
union {
ACS lmu_id[MAX_ID];
} identifier;
} SWITCH_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
TYPE type;
unsigned short count;
union {
SW_LMU_STATUS lmu_status[MAX_ID];
} device_status;
} SWITCH_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
TYPE request_type;
VOLID vol_id;
TYPE location_type;
union {
CELLID cell_id;
DRIVEID drive_id;
} location;
char file_name[25];
char routine_name[25];
} RCVY_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
VOLUME_STATUS volume_status;
} RCVY_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
REGISTRATION_ID registration_id;
unsigned short count;
EVENT_CLASS_TYPE eventClass[MAX_ID];
} REGISTER_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
EVENT_REPLY_TYPE event_reply_type;
EVENT_SEQUENCE event_sequence;
union {
EVENT_RESOURCE_STATUS event_resource_status;
EVENT_REGISTER_STATUS event_register_status;
EVENT_VOLUME_STATUS event_volume_status;
EVENT_DRIVE_STATUS event_drive_status;
} event;
} REGISTER_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
REGISTRATION_ID registration_id;
unsigned short count;
EVENT_CLASS_TYPE eventClass[MAX_ID];
} UNREGISTER_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
EVENT_REGISTER_STATUS event_register_status;
} UNREGISTER_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
REGISTRATION_ID registration_id;
} CHECK_REGISTRATION_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
EVENT_REGISTER_STATUS event_register_status;
} CHECK_REGISTRATION_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
TYPE display_type;
DISPLAY_XML_DATA display_xml_data;
} DISPLAY_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
TYPE display_type;
DISPLAY_XML_DATA display_xml_data;
} DISPLAY_RESPONSE;
typedef struct {
REQUEST_HEADER request_header;
VOLID vol_id;
POOLID pool_id;
MGMT_CLAS mgmt_clas;
MEDIA_TYPE media_type;
JOB_NAME job_name;
DATASET_NAME dataset_name;
STEP_NAME step_name;
DRIVEID drive_id;
} MOUNT_PINFO_REQUEST;
typedef struct {
REQUEST_HEADER request_header;
RESPONSE_STATUS message_status;
POOLID pool_id;
DRIVEID drive_id;
VOLID vol_id;
} MOUNT_PINFO_RESPONSE;
#endif /* _LM_STRUCTS_API_ */