summaryrefslogtreecommitdiff
path: root/usr/src/lib/storage/common/stgcom.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/storage/common/stgcom.h')
-rw-r--r--usr/src/lib/storage/common/stgcom.h512
1 files changed, 512 insertions, 0 deletions
diff --git a/usr/src/lib/storage/common/stgcom.h b/usr/src/lib/storage/common/stgcom.h
new file mode 100644
index 0000000000..9bef52b1c5
--- /dev/null
+++ b/usr/src/lib/storage/common/stgcom.h
@@ -0,0 +1,512 @@
+/*
+ * 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.
+ */
+
+/*
+ * Common definitions for Storage Utilities libraries
+ */
+
+#ifndef _STGCOM_H
+#define _STGCOM_H
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * This header file contains the error definitions
+ * to handle the SCSI, path format, Device, Fibre Channel
+ * ioctl, Enclosure, and IB specific Errors. It also
+ * contains physical names for device paths.
+ */
+
+/*
+ * Define for physical name of children of fcp
+ */
+#define FC_CTLR ":devctl"
+#define DRV_NAME_SD "sd@"
+#define DRV_NAME_SSD "ssd@"
+#define DRV_NAME_ST "st@"
+#define SLSH_DRV_NAME_SD "/sd@"
+#define SLSH_DRV_NAME_SSD "/ssd@"
+#define SLSH_DRV_NAME_ST "/st@"
+#define DRV_PART_NAME ",0:c,raw"
+#define SES_NAME "ses@"
+#define SLSH_SES_NAME "/ses@"
+#define SLASH_SES "/ses"
+#define SES_DIR "/dev/es"
+#define DEV_DSK_DIR "/dev/dsk"
+#define DEV_RDIR "/dev/rdsk"
+#define DEV_TAPE_DIR "/dev/rmt"
+#define L_ARCH_4M "sun4m"
+#define VHCI_NODE "/devices/scsi_vhci:devctl"
+#define SCSI_VHCI "/devices/scsi_vhci/"
+#define SLSH_VHCI_DISK "/ssd@g"
+
+/*
+ * controller/nexus node postfix strings
+ */
+#define CTLR_POSTFIX ":ctlr"
+#define DEVCTL_POSTFIX ":devctl"
+
+/*
+ * I18N message number ranges
+ * This file: 15500 - 15999
+ * Shared common messages: 1 - 1999
+ */
+
+/*
+ * All error numbers below this base value
+ * are assumed to be UNIX error codes.
+ */
+
+#define L_BASE L_SCSI_ERROR
+
+/*
+ * SCSI Errors
+ *
+ */
+/* SCSI error */
+#define L_SCSI_ERROR 0x10000
+
+/* Receive Diagnostics: Transfer length is not word aligned */
+#define L_RD_INVLD_TRNSFR_LEN 0x11002
+
+/* No disk element found in Receive diag. page */
+#define L_RD_NO_DISK_ELEM 0x11003
+
+/* Illegal mode sense page length */
+#define L_ILLEGAL_MODE_SENSE_PAGE 0x11004
+
+/* Invalid number of ENV. SENSE pages */
+#define L_INVALID_NO_OF_ENVSEN_PAGES 0x11005
+
+/* Buffer is *too* small to hold more than 8 pages */
+#define L_INVALID_BUF_LEN 0x11006
+
+/* Scsi_vhci errors */
+#define L_SCSI_VHCI_ERROR 0x11007
+#define L_SCSI_VHCI_ALREADY_ACTIVE 0x11008
+#define L_SCSI_VHCI_NO_STANDBY 0x11009
+#define L_SCSI_VHCI_FAILOVER_NOTSUP 0x1100a
+#define L_SCSI_VHCI_FAILOVER_BUSY 0x1100b
+
+
+/*
+ * Error definitions
+ * for Format Errors.
+ */
+#define L_INVALID_PATH 0x20200
+
+/* Failed to open a given path */
+#define L_OPEN_PATH_FAIL 0x20001
+
+/* Invalid password length. */
+#define L_INVALID_PASSWORD_LEN 0x20002
+
+/* Given disk physical path is not valid. */
+#define L_INVLD_PHYS_PATH_TO_DISK 0x20004
+
+/* Invalid name id found in the physical path */
+#define L_INVLD_ID_FOUND 0x20005
+
+/* Invalid WWN format found */
+#define L_INVLD_WWN_FORMAT 0x20006
+
+/* No WWN found in the disk's physical path */
+#define L_NO_WWN_FOUND_IN_PATH 0x20007
+
+/* No Loop address found in the phys path */
+#define L_NO_LOOP_ADDRS_FOUND 0x20008
+
+/* Invalid port number found in the phys path */
+#define L_INVLD_PORT_IN_PATH 0x20009
+
+/* Invalid LED request */
+#define L_INVALID_LED_RQST 0x20010
+
+/* Invalid path format */
+#define L_INVALID_PATH_FORMAT 0x20011
+
+/* failed to get the physical path */
+#define L_NO_PHYS_PATH 0x20012
+
+/* failed to get the ses path */
+#define L_NO_SES_PATH 0x20015
+
+/* No "/" found in the physical path */
+#define L_INVLD_PATH_NO_SLASH_FND 0x20100
+
+/* No "@" found in the physical path */
+#define L_INVLD_PATH_NO_ATSIGN_FND 0x20101
+
+/* Invalid slot (slot < 0 or slot > 10). */
+#define L_INVALID_SLOT 0x20102
+
+/* No valid path to a device */
+#define L_NO_VALID_PATH 0x20103
+
+/* No disk devices found in /dev/rdsk directory */
+#define L_NO_DISK_DEV_FOUND 0x20104
+
+/* No tape devices found in /dev/rmt directory */
+#define L_NO_TAPE_DEV_FOUND 0x20105
+
+/* Device's Node WWN not found in the WWN list. */
+#define L_NO_NODE_WWN_IN_WWNLIST 0x20106
+
+/* Device's Node WWN not found in the Box list. */
+#define L_NO_NODE_WWN_IN_BOXLIST 0x20107
+
+/* Null WWN list found. */
+#define L_NULL_WWN_LIST 0x20108
+
+/* No devices found. */
+#define L_NO_DEVICES_FOUND 0x20109
+
+/* function arg error in wwn_list process */
+#define L_PROC_WWN_ARG_ERROR 0x20110
+
+/* WWN property not found */
+#define L_NO_WWN_PROP_FOUND 0x20111
+
+/* No driver nodes found for requested driver */
+#define L_NO_DRIVER_NODES_FOUND 0x20112
+
+/* ULP error on device(s) */
+#define L_GET_DEV_LIST_ULP_FAILURE 0x20150
+
+/*
+ * Error definitions
+ * for FC Loop (FC4 devices).
+ */
+/* Invalid loop map found */
+#define L_INVALID_LOOP_MAP 0x20202
+
+/* SFIOCGMAP ioctl failed */
+#define L_SFIOCGMAP_IOCTL_FAIL 0x20203
+
+/* FCIO_GETMAP ioctl failed */
+#define L_FCIO_GETMAP_IOCTL_FAIL 0x20204
+
+/* FCIO_LINKSTATUS ioctl failed */
+#define L_FCIO_LINKSTATUS_FAILED 0x20205
+
+/* FCIO_GETMAP: Invalid # of entries */
+#define L_FCIOGETMAP_INVLD_LEN 0x20206
+
+/* FCIO_FORCE_LIP ioctl failed. */
+#define L_FCIO_FORCE_LIP_FAIL 0x20207
+
+/* Error definitions for FC devices */
+/* FCIO_RESET_LINK ioctl failed */
+#define L_FCIO_RESET_LINK_FAIL 0x20208
+
+/* FCIO_GET_FCODE_REV_FAIL ioctl failed */
+#define L_FCIO_GET_FCODE_REV_FAIL 0x20209
+
+/* FCIO_GET_FW_REV_FAIL ioctl failed */
+#define L_FCIO_GET_FW_REV_FAIL 0x20210
+
+/* FCIO_GET_DEV_LIST returns invalid dev. counts */
+#define L_INVALID_DEVICE_COUNT 0x20211
+
+/* L_FCIO_GET_NUM_DEVS_FAIL ioctl failed */
+#define L_FCIO_GET_NUM_DEVS_FAIL 0x20212
+
+/* L_FCIO_GET_DEV_LIST_FAIL ioctl failed */
+#define L_FCIO_GET_DEV_LIST_FAIL 0x20213
+
+/* L_FCIO_GET_LINK_STATUS ioctl failed */
+#define L_FCIO_GET_LINK_STATUS_FAIL 0x20214
+
+/* L_FCIO_LOOPBACK_INTERNAL or FCIO_CMD/FCIO_LASER_OFF ioctl failed */
+#define L_PORT_OFFLINE_FAIL 0x20215
+
+/* Internal Loopback or laser off ioctls not supported */
+#define L_PORT_OFFLINE_UNSUPPORTED 0x20216
+
+/* L_FCIO_NO_LOOPBACK or FCIO_CMD/FCIO_LASER_ON ioctl failed */
+#define L_PORT_ONLINE_FAIL 0x20217
+
+/* No-Loopback or laser on ioctls not supported */
+#define L_PORT_ONLINE_UNSUPPORTED 0x20218
+
+/* L_FCIO_GET_HOST_PARAMS ioctl failed */
+#define L_FCIO_GET_HOST_PARAMS_FAIL 0x20219
+
+/* Loopback mode failure */
+#define L_LOOPBACK_FAILED 0x20220
+
+/* Loopback unsupported */
+#define L_LOOPBACK_UNSUPPORTED 0x20221
+
+/* FCIO_FORCE_LIP ioctl failed on one of the paths, say, of an MPXIO device */
+#define L_FCIO_FORCE_LIP_PARTIAL_FAIL 0x20222
+
+/*
+ * Error definitions
+ * for Fabric FC driver ioctls
+ */
+/* FCP_TGT_INQUIRY ioctl failed */
+#define L_FCP_TGT_INQUIRY_FAIL 0x20250
+
+/*
+ * Error definitions
+ * for 24-bit address handling
+ */
+/* Private loop address > 0xFF found */
+#define L_INVALID_PRIVATE_LOOP_ADDRESS 0x20401
+
+/* Encountered an unexpected fibre channel topology value */
+#define L_UNEXPECTED_FC_TOPOLOGY 0x20402
+
+/* Fabric address was not found */
+#define L_NO_FABRIC_ADDR_FOUND 0x20403
+
+/* The FCIO_GET_TOPOLOGY ioctl failed */
+#define L_FCIO_GET_TOPOLOGY_FAIL 0x20404
+
+/* Invalid fabric or public loop address */
+#define L_INVALID_FABRIC_ADDRESS 0x20405
+
+/* Point to Point fibre channel topology not supported */
+#define L_PT_PT_FC_TOP_NOT_SUPPORTED 0x20406
+
+/*
+ * Error definitions for Tapestry SAN support.
+ */
+/* The FCIO_DEV_LOGIN ioctl failed */
+#define L_FCIO_DEV_LOGIN_FAIL 0x20407
+
+/* The FCIO_DEV_LOGOUT ioctl failed */
+#define L_FCIO_DEV_LOGOUT_FAIL 0x20408
+
+/* Operation not supported on connected topology */
+#define L_OPNOSUPP_ON_TOPOLOGY 0x20409
+
+/* Operation not supported on the path */
+#define L_INVALID_PATH_TYPE 0x20410
+
+/* FCIO_GET_STATE ioctl failed */
+#define L_FCIO_GET_STATE_FAIL 0x20411
+
+/* input WWN not found in dev list */
+#define L_WWN_NOT_FOUND_IN_DEV_LIST 0x20412
+
+/*
+ * Error definitions for
+ * g_dev_map_init related routines.
+ */
+/* input addr invalid */
+#define L_INVALID_MAP_DEV_ADDR 0x20430
+
+/* input property invalid */
+#define L_INVALID_MAP_DEV_PROP_NAME 0x20431
+
+/* input property invalid */
+#define L_INVALID_MAP_DEV_PROP_TYPE 0x20432
+
+/* input property name invalid */
+#define L_INVALID_MAP_DEV_PROP 0x20433
+
+/* device not found */
+#define L_NO_SUCH_DEV_FOUND 0x20434
+
+/* prop not found */
+#define L_NO_SUCH_PROP_FOUND 0x20435
+
+/* invalid arg found */
+#define L_INVALID_ARG 0x20436
+
+/*
+ * Error definitions
+ * for Downloading IB FW.
+ */
+/* Invalid download file checksum */
+#define L_DWNLD_CHKSUM_FAILED 0x20301
+
+/* Unable to read download exec header */
+#define L_DWNLD_READ_HEADER_FAIL 0x20302
+
+/* Number of bytes read from download file is not correct */
+#define L_DWNLD_READ_INCORRECT_BYTES 0x20303
+
+/* Wrong text segment size */
+#define L_DWNLD_INVALID_TEXT_SIZE 0x20304
+
+/* Error reading the download file */
+#define L_DWNLD_READ_ERROR 0x20305
+
+/* Bad firmware magic found in the download file */
+#define L_DWNLD_BAD_FRMWARE 0x20306
+
+/* Timeout message for the IB to be available */
+#define L_DWNLD_TIMED_OUT 0x20307
+
+/* Error with Rec Diag page 1 */
+#define L_REC_DIAG_PG1 0x20600
+
+/* Invalid transfer Length */
+#define L_TRANSFER_LEN 0x20601
+
+/* A firmware file must be specified on the command line */
+#define L_REQUIRE_FILE 0x20602
+
+
+/*
+ * Error definitions
+ * for System Errors
+ */
+#define L_MALLOC_FAILED 0x30000
+
+#define L_MEMCPY_FAILED 0x30001
+
+/* Cannot get status for the given path */
+#define L_LSTAT_ERROR 0x30020
+
+/* Error reading the symbolic link */
+#define L_SYMLINK_ERROR 0x30021
+
+/* Could not convert std. time to hrs/min/sec */
+#define L_LOCALTIME_ERROR 0x30022
+
+/* select() system call failed to wait for specified time */
+#define L_SELECT_ERROR 0x30023
+
+/* uname() system call failed to get the system info. */
+#define L_UNAME_FAILED 0x30024
+
+/* Cannot get status for the given path */
+#define L_FSTAT_ERROR 0x30025
+
+/* Cannot get status for the given path */
+#define L_STAT_ERROR 0x30026
+
+/* di_init() failed to return snapshot of device tree */
+#define L_DEV_SNAPSHOT_FAILED 0x30027
+
+/* di_drv_first_node() failed to find a valid driver */
+#define L_PORT_DRIVER_NOT_FOUND 0x30029
+
+/* failed to find any device paths */
+#define L_PHYS_PATH_NOT_FOUND 0x30030
+
+/* No device identifier found */
+#define L_NO_DEVID 0x30031
+
+/* Driver not supported */
+#define L_DRIVER_NOTSUPP 0x30032
+
+/* di_prom_init failure */
+#define L_PROM_INIT_FAILED 0x30033
+
+/*
+ * Error definitions
+ * for individual
+ * devices.
+ */
+/* Device busy */
+#define L_DEV_BUSY 0x40000
+
+/* Disk reserved */
+#define L_DEVICE_RESERVED 0x40001
+
+/* One or more disks in enclosure are reserved */
+#define L_DISKS_RESERVED 0x40002
+
+/* Exclusive open to a device failed. May be busy */
+#define L_EXCL_OPEN_FAILED 0x40003
+
+/* Empty slot: Device not installed */
+#define L_SLOT_EMPTY 0x40100
+
+
+/*
+ * Error definitions
+ * for Devctl functions.
+ */
+/* Devctl acquire fails */
+#define L_ACQUIRE_FAIL 0x40200
+
+
+/* Power off fails. Device may be busy */
+#define L_POWER_OFF_FAIL_BUSY 0x40300
+
+
+/*
+ * Error definitions
+ * specific to Enclosure.
+ */
+/* Failed to change the enclosure name */
+#define L_ENCL_NAME_CHANGE_FAIL 0x40400
+
+/* Duplicate enclosure names found */
+#define L_DUPLICATE_ENCLOSURES 0x40401
+
+/* Invalid no. of dsks in SENA enclosure */
+#define L_INVALID_NUM_DISKS_ENCL 0x40402
+
+/* Path is not to a SENA ecnlosure. */
+#define L_ENCL_INVALID_PATH 0x40403
+
+/* Cannot get the box list */
+#define L_NO_ENCL_LIST_FOUND 0x40404
+
+
+/*
+ * Error definitions
+ * specific to IB.
+ */
+/* No element returned from the enclosure */
+#define L_IB_NO_ELEM_FOUND 0x40500
+
+/* Invalid page code found in Receive Diag. page. */
+#define L_RD_PG_INVLD_CODE 0x40501
+
+/* Reading Receive Diag. page failed: small buffer. */
+#define L_RD_PG_MIN_BUFF 0x40502
+
+/* Get status failed */
+#define L_GET_STATUS_FAILED 0x40600
+
+/* Warning define. */
+#define L_WARNING 0x90000
+
+/*
+ * For i18n
+ */
+#include <nl_types.h>
+extern nl_catd l_catd;
+#define L_SET1 1 /* catalog set number */
+#define MSGSTR(Num, Str) catgets(l_catd, L_SET1, Num, Str)
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _STGCOM_H */