defs.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 _DEFS_
#define _DEFS_
#if ! defined(__sys_types_h) && ! defined(_H_TYPES)
#include <sys/types.h>
#endif
#ifndef sun
#ifndef _H_SELECT
#include <sys/select.h>
#endif
#endif
#ifndef _DB_DEFS_
#include "db_defs.h"
#endif
#ifndef _DEFS_API_
#include "api/defs_api.h"
#endif
#ifndef SA_RESTART
#define SA_RESTART 0
#endif
#ifndef MAX
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef MIN
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#endif
#define DEFAULT_TIME_FORMAT "%m-%d-%y %H:%M:%S"
typedef enum {
LH_ERR_FIRST = 0,
LH_ERR_ADDR_INACCESSIBLE,
LH_ERR_ADDR_TYPE_INVALID,
LH_ERR_ADDR_UNDEFINED,
LH_ERR_CANCEL_PENDING,
LH_ERR_CANCEL_TOO_LATE,
LH_ERR_CAP_BUSY,
LH_ERR_CAP_FAILURE,
LH_ERR_DESTINATION_FULL,
LH_ERR_FIRST_EXCEEDS_LAST,
LH_ERR_LH_BUSY,
LH_ERR_LH_FAILURE,
LH_ERR_LMU_FAILURE,
LH_ERR_LSM_FAILURE,
LH_ERR_LSM_OFFLINE,
LH_ERR_LSM_OFFLINE_MTCE,
LH_ERR_MULTI_ACS,
LH_ERR_MULTI_LSM,
LH_ERR_MULTI_PANEL,
LH_ERR_MULTI_TYPE,
LH_ERR_PATH_UNAVAILABLE,
LH_ERR_PORT_CONNECT,
LH_ERR_PORT_DISCONNECT,
LH_ERR_REQUEST_CANCELLED,
LH_ERR_REQUEST_INVALID,
LH_ERR_REQUEST_NOT_ACTIVE,
LH_ERR_SOURCE_EMPTY,
LH_ERR_TRANSPORT_BUSY,
LH_ERR_TRANSPORT_FAILURE,
LH_ERR_UNABLE_TO_CANCEL,
LH_ERR_VARY_OVERRIDDEN,
LH_ERR_VARY_PENDING,
LH_ERR_VSN_INVALID,
LH_ERR_VSN_VERIF_FAILED,
LH_ERR_ALREADY_RESERVED,
LH_ERR_CAP_OPEN,
LH_ERR_LMU_LEVEL_INVALID,
LH_ERR_NO_ERROR,
LH_ERR_NOT_RESERVED,
LH_ERR_NO_MAGAZINE,
LH_ERR_MEDIA_VERIF_FAIL,
LH_ERR_MEDIA_VSN_VERIF_FAIL,
LH_ERR_INCOMPATIBLE_MEDIA_DRIVE,
LH_ERR_MEDIA_TYPE_INVALID,
LH_ERR_LAST
} LH_ERR_TYPE;
#define CAP_MSG_INTERVAL 120
#define DATAGRAM_PATH "/tmp/"
#define MAX_ACSMT_PROCS 2
#define MAX_CSI 20
#define MAX_LSM_PTP 5
#define MAX_PORTS 16
#define MAX_RETRY 10
#define RETRY_TIMEOUT 2
#define RETRY 0x01
#define ACSEL "50001"
#define ACSLH "50002"
#define ACSLM "50003"
#define ACSSA "50004"
#define ACSSS "50005"
#define ACSPD "50006"
#define ACSLOCK "50007"
#define ACSSV "50008"
#define ACSCM "50009"
#define ACES "50010"
#define ACSMT "50100"
#define ANY_PORT "0"
#define TRACE_ACSSS_DAEMON 0x00000100L
#define TRACE_CSI 0x00000200L
#define TRACE_ACSLM 0x00000400L
#define TRACE_MOUNT 0x00000800L
#define TRACE_DISMOUNT 0x00001000L
#define TRACE_ENTER 0x00002000L
#define TRACE_EJECT 0x00004000L
#define TRACE_AUDIT 0x00008000L
#define TRACE_QUERY 0x00010000L
#define TRACE_VARY 0x00020000L
#define TRACE_RECOVERY 0x00040000L
#define TRACE_ACSSA 0x00080000L
#define TRACE_CP 0x00100000L
#define TRACE_LIBRARY_HANDLER 0x00200000L
#define TRACE_EVENT_LOGGER 0x00400000L
#define TRACE_CSI_PACKETS 0x00800000L
#define TRACE_LOCK_SERVER 0x01000000L
#define TRACE_SET_CAP 0x02000000L
#define TRACE_SET_CLEAN 0x04000000L
#define TRACE_ACSCM 0x08000000L
#define TRACE(lev) \
/ (trace_value != 0 && (trace_value & 0xff) >= lev)
typedef void (*SIGFUNCP)();
typedef enum {
CLM_FIRST = 0,
CLM_ABORT_TRANSITION,
CLM_ALLOC_ERROR,
CLM_ASSERTION,
CLM_CAT_TARGET_ERROR,
CLM_DB_DEADLOCK,
CLM_DB_TIMEOUT,
CLM_DUP_TYPE_NUM,
CLM_DUP_TYPE_STR,
CLM_DESTINATION_FULL,
CLM_FILE_PROBLEM,
CLM_FIXED_MEDIA_TYPE,
CLM_FIXED_VOLUME_TYPE,
CLM_FUNC_FAILED,
CLM_INC_TYPES,
CLM_INV_ARG_NUM,
CLM_INV_ARG_STR,
CLM_INV_NUM_ARGS,
CLM_IPC_ATTACH,
CLM_IPC_OPEN,
CLM_IPC_SEND,
CLM_KILL_ERROR,
CLM_LOCKED_VOL_DELETED,
CLM_MSG_TIMEOUT,
CLM_MSG_TOO_SMALL,
CLM_NO_TYPES,
CLM_NOT_BOOLEAN,
CLM_NOT_DEFINED,
CLM_SIGNAL_ERROR,
CLM_SOURCE_EMPTY,
CLM_TABLE_INCORRECT,
CLM_TOO_MANY_COMPAT,
CLM_TRACE_TRANSITION,
CLM_UNDEF_TRANSITION,
CLM_UNEXP_CAT_STATUS,
CLM_UNEXP_COMMAND,
CLM_UNEXP_EVENT,
CLM_UNEXP_LD_STATUS,
CLM_UNEXP_LH_REQUEST,
CLM_UNEXP_LH_RESPONSE,
CLM_UNEXP_MESSAGE,
CLM_UNEXP_ORIGINATOR,
CLM_UNEXP_REQUESTOR,
CLM_UNEXP_SIGNAL,
CLM_UNEXP_STATE,
CLM_UNEXP_STATUS,
CLM_UNEXP_TYPE,
CLM_UNKNOWN_MEDIA_TYPE,
CLM_UNLINK_ERROR,
CLM_UNSUP_LH_ERROR,
CLM_UNSUP_LH_REQUEST,
CLM_UNSUP_VERSION,
CLM_VOL_FOUND,
CLM_VOL_MISPLACED,
CLM_VOL_MOVED,
CLM_VOL_NOT_FOUND,
CLM_LAST
} CL_MESSAGE;
typedef enum {
FIELD_FIRST = 0,
FIELD_ACTIVITY,
FIELD_CAP_MODE,
FIELD_LOCKID,
FIELD_MAX_USE,
FIELD_POOLID,
FIELD_PRIORITY,
FIELD_STATE,
FIELD_STATUS,
FIELD_VOLUME_TYPE,
FIELD_LAST
} FIELD;
typedef enum {
LOG_OPTION_FIRST = 0,
LOG_OPTION_EVENT,
LOG_OPTION_TRACE,
LOG_OPTION_LAST
} LOG_OPTION;
typedef enum {
QUERY_TYPE_FIRST = 0,
QUERY_TYPE_ALL,
QUERY_TYPE_ALL_ACS,
QUERY_TYPE_ALL_CELL,
QUERY_TYPE_ALL_DRIVE,
QUERY_TYPE_ALL_LSM,
QUERY_TYPE_LSM_RESERVED,
QUERY_TYPE_NEXT,
QUERY_TYPE_ONE,
QUERY_TYPE_ONE_CELL,
QUERY_TYPE_ONE_DRIVE,
QUERY_TYPE_LAST
} QUERY_TYPE;
typedef enum {
SELECT_OPTION_FIRST = 0,
SELECT_OPTION_ACS,
SELECT_OPTION_LSM,
SELECT_OPTION_LAST
} SELECT_OPTION;
typedef enum {
WRITE_MODE_FIRST = 0,
WRITE_MODE_CREATE,
WRITE_MODE_UPDATE,
WRITE_MODE_LAST
} WRITE_MODE;
#define MEDIA_TYPE_LEN 3
#define DRIVE_TYPE_LEN 3
#define MM_MAX_MEDIA_TYPES 36
#define MM_MAX_DRIVE_TYPES 40
#define MM_MEDIA_DB_STR_LEN (MM_MAX_MEDIA_TYPES*(MEDIA_TYPE_LEN + 1))+1
#define MM_DRIVE_DB_STR_LEN (MM_MAX_DRIVE_TYPES*(DRIVE_TYPE_LEN + 1))+1
#ifndef LINUX
extern char *sys_errlist[];
extern char *sys_siglist[];
#endif
extern char acsss_version[];
extern int sd_in;
extern int n_fds;
extern int fd_list[FD_SETSIZE];
extern char my_sock_name[SOCKET_NAME_SIZE];
extern TYPE my_module_type;
extern TYPE requestor_type;
extern int restart_count;
extern MESSAGE_ID request_id;
extern STATE process_state;
extern unsigned long trace_module;
extern unsigned long trace_value;
#endif /* _DEFS_ */