1 /*
   2  * CDDL HEADER START
   3  *
   4  * The contents of this file are subject to the terms of the
   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 
  22 /*
  23  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  24  */
  25 
  26 #ifndef _FRAMEWORK_LIBSES_H
  27 #define _FRAMEWORK_LIBSES_H
  28 
  29 #ifdef  __cplusplus
  30 extern "C" {
  31 #endif
  32 
  33 /*
  34  * These are properties attached to the root target node of the enclosure, and
  35  * represent the SCSI inquiry data.
  36  */
  37 #define SCSI_PROP_VENDOR                "scsi-inquiry-vendor"
  38 #define SCSI_PROP_PRODUCT               "scsi-inquiry-product"
  39 #define SCSI_PROP_REVISION              "scsi-inquiry-revision"
  40 
  41 /*
  42  * This property provides a human-readable name for the element type.  This is
  43  * constant, and not derived from the enclosure data.
  44  */
  45 #define LIBSES_PROP_ELEMENT_TYPE_NAME   "libses-element-type-name"
  46 
  47 /*
  48  * The following properties can be added to any node.  There is no provision in
  49  * the specification for these properties, but they can be derived from vendor
  50  * specific data for some enclosures.
  51  */
  52 #define LIBSES_PROP_PART                "libses-part-number"
  53 #define LIBSES_PROP_SERIAL              "libses-serial-number"
  54 #define LIBSES_PROP_FRU                 "libses-is-fru"
  55 #define LIBSES_PROP_PHYS_PARENT         "libses-physical-parent-element-index"
  56 
  57 /*
  58  * The chassis serial number is a pseudo property that doesn't exist in SES
  59  * spec.  A single physical chassis may present several logically different SES
  60  * targets that are connected to the same or different elements.  These targets
  61  * can extract the chassis serial number in a vendor-specific way so that
  62  * consumers know these SES targets refer to the same device.  This defaults to
  63  * to the logical-id, and is always present.
  64  */
  65 #define LIBSES_EN_PROP_CSN              "libses-chassis-serial"
  66 
  67 /*
  68  * This boolean property identifies a chassis as internal, where the connected
  69  * elements are part of a single system chassis and not an external enclosure.
  70  * This is used on platforms with a disk backplane that exports a SES target.
  71  */
  72 #define LIBSES_EN_PROP_INTERNAL         "libses-internal"
  73 
  74 /*
  75  * This property identifies the subchassis id for those systems that
  76  * support the concept of a subchassis.
  77  */
  78 #define LIBSES_EN_PROP_SUBCHASSIS_ID    "libses-subchassis-id"
  79 
  80 /*
  81  * Maximum allowed firmware upload chunk size.  Obtained in a vendor- or
  82  * platform-specific manner but generic in nature.
  83  */
  84 #define LIBSES_EN_PROP_FIRMWARE_CHUNK_SIZE      "libses-firmware-chunksize"
  85 
  86 #ifdef  __cplusplus
  87 }
  88 #endif
  89 
  90 #endif  /* _FRAMEWORK_LIBSES_H */