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