/* * 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 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 */