Print this page
5094 Update libsmbios with recent items
Reviewed by: Dan McDonald <danmcd@omniti.com>
Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Robert Mustacchi <rm@joyent.com>
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/common/smbios/mktables.sh
+++ new/usr/src/common/smbios/mktables.sh
1 1 #!/bin/sh
2 2 #
3 3 # CDDL HEADER START
4 4 #
5 5 # The contents of this file are subject to the terms of the
6 6 # Common Development and Distribution License, Version 1.0 only
7 7 # (the "License"). You may not use this file except in compliance
8 8 # with the License.
9 9 #
10 10 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11 11 # or http://www.opensolaris.org/os/licensing.
12 12 # See the License for the specific language governing permissions
13 13 # and limitations under the License.
|
↓ open down ↓ |
13 lines elided |
↑ open up ↑ |
14 14 #
15 15 # When distributing Covered Code, include this CDDL HEADER in each
16 16 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17 17 # If applicable, add the following below this CDDL HEADER, with the
18 18 # fields enclosed by brackets "[]" replaced with your own identifying
19 19 # information: Portions Copyright [yyyy] [name of copyright owner]
20 20 #
21 21 # CDDL HEADER END
22 22 #
23 23 #
24 +# Copyright 2015 OmniTI Computer Consulting, Inc. All rights reserved.
24 25 # Copyright 2005 Sun Microsystems, Inc. All rights reserved.
25 26 # Use is subject to license terms.
26 27 #
27 -#ident "%Z%%M% %I% %E% SMI"
28 28
29 29 #
30 30 # The SMBIOS interfaces defined in <sys/smbios.h> include a set of integer-to-
31 31 # string conversion routines for the various constants defined in the SMBIOS
32 32 # spec. These functions are used by smbios(1M) and prtdiag(1M) and can be
33 33 # leveraged by other clients as well. To simplify maintenance of the source
34 34 # base, this shell script automatically generates the source code for all of
35 35 # these functions from the <sys/smbios.h> header file and its comments. Each
36 36 # set of constants should be given a unique #define prefix, listed in the
37 37 # tables below. The smbios_*_name() functions return the identifier of the
38 38 # cpp define, and the smbios_*_desc() functions return the text of the comment.
39 39 #
40 40
|
↓ open down ↓ |
3 lines elided |
↑ open up ↑ |
41 41 name_funcs='
42 42 SMB_BBFL_ smbios_bboard_flag_name uint_t
43 43 SMB_BIOSFL_ smbios_bios_flag_name uint64_t
44 44 SMB_BIOSXB1_ smbios_bios_xb1_name uint_t
45 45 SMB_BIOSXB2_ smbios_bios_xb2_name uint_t
46 46 SMB_CAT_ smbios_cache_ctype_name uint_t
47 47 SMB_CAF_ smbios_cache_flag_name uint_t
48 48 SMB_EVFL_ smbios_evlog_flag_name uint_t
49 49 SMB_IPMI_F_ smbios_ipmi_flag_name uint_t
50 50 SMB_MDF_ smbios_memdevice_flag_name uint_t
51 +SMB_PRC_ smbios_processor_core_flag_name uint_t
51 52 SMB_TYPE_ smbios_type_name uint_t
52 53 SMB_SLCH1_ smbios_slot_ch1_name uint_t
53 54 SMB_SLCH2_ smbios_slot_ch2_name uint_t
54 55 '
55 56
56 57 desc_funcs='
57 58 SMB_BBFL_ smbios_bboard_flag_desc uint_t
58 59 SMB_BBT_ smbios_bboard_type_desc uint_t
59 60 SMB_BIOSFL_ smbios_bios_flag_desc uint64_t
60 61 SMB_BIOSXB1_ smbios_bios_xb1_desc uint_t
61 62 SMB_BIOSXB2_ smbios_bios_xb2_desc uint_t
62 63 SMB_BOOT_ smbios_boot_desc uint_t
63 64 SMB_CAA_ smbios_cache_assoc_desc uint_t
64 65 SMB_CAT_ smbios_cache_ctype_desc uint_t
65 66 SMB_CAE_ smbios_cache_ecc_desc uint_t
66 67 SMB_CAF_ smbios_cache_flag_desc uint_t
67 68 SMB_CAL_ smbios_cache_loc_desc uint_t
68 69 SMB_CAG_ smbios_cache_logical_desc uint_t
69 70 SMB_CAM_ smbios_cache_mode_desc uint_t
70 71 SMB_CHST_ smbios_chassis_state_desc uint_t
71 72 SMB_CHT_ smbios_chassis_type_desc uint_t
72 73 SMB_EVFL_ smbios_evlog_flag_desc uint_t
73 74 SMB_EVHF_ smbios_evlog_format_desc uint_t
|
↓ open down ↓ |
13 lines elided |
↑ open up ↑ |
74 75 SMB_EVM_ smbios_evlog_method_desc uint_t
75 76 SMB_HWSEC_PS_ smbios_hwsec_desc uint_t
76 77 SMB_IPMI_F_ smbios_ipmi_flag_desc uint_t
77 78 SMB_IPMI_T_ smbios_ipmi_type_desc uint_t
78 79 SMB_MAL_ smbios_memarray_loc_desc uint_t
79 80 SMB_MAU_ smbios_memarray_use_desc uint_t
80 81 SMB_MAE_ smbios_memarray_ecc_desc uint_t
81 82 SMB_MDF_ smbios_memdevice_flag_desc uint_t
82 83 SMB_MDFF_ smbios_memdevice_form_desc uint_t
83 84 SMB_MDT_ smbios_memdevice_type_desc uint_t
85 +SMB_MDR_ smbios_memdevice_rank_desc uint_t
84 86 SMB_POC_ smbios_port_conn_desc uint_t
85 87 SMB_POT_ smbios_port_type_desc uint_t
88 +SMB_PRC_ smbios_processor_core_flag_desc uint_t
86 89 SMB_PRF_ smbios_processor_family_desc uint_t
87 90 SMB_PRS_ smbios_processor_status_desc uint_t
88 91 SMB_PRT_ smbios_processor_type_desc uint_t
89 92 SMB_PRU_ smbios_processor_upgrade_desc uint_t
90 93 SMB_SLCH1_ smbios_slot_ch1_desc uint_t
91 94 SMB_SLCH2_ smbios_slot_ch2_desc uint_t
92 95 SMB_SLL_ smbios_slot_length_desc uint_t
93 96 SMB_SLT_ smbios_slot_type_desc uint_t
94 97 SMB_SLU_ smbios_slot_usage_desc uint_t
95 98 SMB_SLW_ smbios_slot_width_desc uint_t
96 99 SMB_TYPE_ smbios_type_desc uint_t
|
↓ open down ↓ |
1 lines elided |
↑ open up ↑ |
97 100 SMB_WAKEUP_ smbios_system_wakeup_desc uint_t
98 101 '
99 102
100 103 if [ $# -ne 1 ]; then
101 104 echo "Usage: $0 file.h > file.c" >&2
102 105 exit 2
103 106 fi
104 107
105 108 echo "\
106 109 /*\n\
110 + * Copyright 2015 OmniTI Computer Consulting, Inc. All rights reserved.\n\
107 111 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.\n\
108 112 * Use is subject to license terms.\n\
109 113 */\n\
110 114 \n\
111 -#pragma ident\t\"%Z%%M%\t%I%\t%E% SMI\"\n\
112 -\n\
113 115 #include <smbios.h>"
114 116
115 117 echo "$name_funcs" | while read p name type; do
116 118 [ -z "$p" ] && continue
117 119 pattern="^#define[ ]\($p[A-Za-z0-9_]*\)[ ]*[A-Z0-9]*.*$"
118 120 replace=' case \1: return ("\1");'
119 121
120 122 echo "\nconst char *\n$name($type x)\n{\n\tswitch (x) {"
121 123 sed -n "s@$pattern@$replace@p" < $1 || exit 1
122 124 echo "\t}\n\treturn (NULL);\n}"
123 125 done
124 126
125 127 #
126 128 # Generate the description functions based on the comment next to a #define.
127 129 # The transformations for descriptive comments are slightly more complicated
128 130 # than those used for the identifier->name functions above:
129 131 #
130 132 # (1) strip any [RO] suffix from the comment (a header file convention)
131 133 # (2) replace any " with \" so it is escaped for the final output string
132 134 # (3) replace return (...); with return ("..."); to finish the code
133 135 #
134 136 echo "$desc_funcs" | while read p name type; do
135 137 [ -z "$p" ] && continue
136 138 pattern="^#define[ ]\($p[A-Za-z0-9_]*\)[ ]*.*/\\* \(.*\) \\*/$"
137 139 replace=' case \1: return (\2);'
138 140
139 141 echo "\nconst char *\n$name($type x)\n{\n\tswitch (x) {"
140 142 sed -n "s@$pattern@$replace@p" < $1 | sed 's/ ([RO]))/)/' | \
141 143 sed 's/"/\\"/g' | sed 's/(/("/;s/);$/");/' || exit 1
142 144 echo "\t}\n\treturn (NULL);\n}"
143 145 done
144 146
145 147 exit 0
|
↓ open down ↓ |
23 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX