1 /*
2  * Copyright (C) 2003-2015 FreeIPMI Core Team
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  *
17  */
18 
19 #ifndef IPMI_MESSAGING_SUPPORT_CMDS_H
20 #define IPMI_MESSAGING_SUPPORT_CMDS_H
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 #include <stdint.h>
27 #include <freeipmi/fiid/fiid.h>
28 
29 #define IPMI_MAX_USER_NAME_LENGTH           16
30 #define IPMI_1_5_MAX_PASSWORD_LENGTH        16
31 #define IPMI_2_0_MAX_PASSWORD_LENGTH        20
32 #define IPMI_MAX_PASSWORD_LENGTH            IPMI_2_0_MAX_PASSWORD_LENGTH
33 #define IPMI_CHALLENGE_STRING_LENGTH        16
34 #define IPMI_MAX_K_R_LENGTH                 20
35 #define IPMI_MAX_K_G_LENGTH                 20
36 
37 #define IPMI_BMC_GLOBAL_ENABLES_ENABLED     0x1
38 #define IPMI_BMC_GLOBAL_ENALBES_DISABLED    0x0
39 
40 #define IPMI_BMC_GLOBAL_ENABLES_VALID(__val) \
41   (((__val) == IPMI_BMC_GLOBAL_ENABLES_ENABLED \
42     || (__val) == IPMI_BMC_GLOBAL_ENALBES_DISABLED) ? 1 : 0)
43 
44 #define IPMI_MESSAGE_FLAGS_CLEAR            0x1
45 #define IPMI_MESSAGE_FLAGS_DONT_CLEAR       0x0
46 
47 #define IPMI_MESSAGE_FLAGS_VALID(__val) \
48   (((__val) == IPMI_MESSAGE_FLAGS_CLEAR \
49     || (__val) == IPMI_MESSAGE_FLAGS_DONT_CLEAR) ? 1 : 0)
50 
51 #define IPMI_CHANNEL_OPERATION_DISABLE_CHANNEL                  0x00
52 #define IPMI_CHANNEL_OPERATION_ENABLE_CHANNEL                   0x01
53 #define IPMI_CHANNEL_OPERATION_GET_CHANNEL_ENABLE_DISABLE_STATE 0x02
54 
55 #define IPMI_CHANNEL_OPERATION_VALID(__val)             \
56   (((__val) == IPMI_CHANNEL_OPERATION_DISABLE_CHANNEL   \
57     || (__val) == IPMI_CHANNEL_OPERATION_ENABLE_CHANNEL \
58     || (__val) == IPMI_CHANNEL_OPERATION_GET_CHANNEL_ENABLE_DISABLE_STATE) ? 1 : 0)
59 
60 #define IPMI_CHANNEL_DISABLED 0x00
61 #define IPMI_CHANNEL_ENABLED  0x01
62 
63 #define IPMI_SEND_MESSAGE_WITH_AUTHENTICATION         0x1
64 #define IPMI_SEND_MESSAGE_AUTHENTICATION_NOT_REQUIRED 0x0
65 
66 #define IPMI_SEND_MESSAGE_AUTHENTICATION_VALID(__val) \
67   (((__val) == IPMI_SEND_MESSAGE_WITH_AUTHENTICATION  \
68     || (__val) == IPMI_SEND_MESSAGE_AUTHENTICATION_NOT_REQUIRED) ? 1 : 0)
69 
70 #define IPMI_SEND_MESSAGE_WITH_ENCRYPTION         0x1
71 #define IPMI_SEND_MESSAGE_ENCRYPTION_NOT_REQUIRED 0x0
72 
73 #define IPMI_SEND_MESSAGE_ENCRYPTION_VALID(__val) \
74   (((__val) == IPMI_SEND_MESSAGE_WITH_ENCRYPTION  \
75     || (__val) == IPMI_SEND_MESSAGE_ENCRYPTION_NOT_REQUIRED) ? 1 : 0)
76 
77 #define IPMI_SEND_MESSAGE_TRACKING_OPERATION_NO_TRACKING      0x0
78 #define IPMI_SEND_MESSAGE_TRACKING_OPERATION_TRACKING_REQUEST 0x1
79 #define IPMI_SEND_MESSAGE_TRACKING_OPERATION_SEND_RAW         0x2
80 
81 #define IPMI_SEND_MESSAGE_TRACKING_VALID(__val)                         \
82   (((__val) == IPMI_SEND_MESSAGE_TRACKING_OPERATION_NO_TRACKING         \
83     || (__val) == IPMI_SEND_MESSAGE_TRACKING_OPERATION_TRACKING_REQUEST \
84     || (__val) == IPMI_SEND_MESSAGE_TRACKING_OPERATION_SEND_RAW) ? 1 : 0)
85 
86 #define IPMI_SYSTEM_INTERFACE_SSIF          0x00
87 #define IPMI_SYSTEM_INTERFACE_KCS           0x01
88 #define IPMI_SYSTEM_INTERFACE_SMIC          0x02
89 
90 #define IPMI_SYSTEM_INTERFACE_VALID(__val)  \
91   (((__val) == IPMI_SYSTEM_INTERFACE_SSIF   \
92     || (__val) == IPMI_SYSTEM_INTERFACE_KCS \
93     || (__val) == IPMI_SYSTEM_INTERFACE_SMIC) ? 1 : 0)
94 
95 #define IPMI_SSIF_SYSTEM_INTERFACE_VERSION_1            0x0
96 
97 #define IPMI_SSIF_SYSTEM_INTERFACE_IMPLEMENTS_PEC       0x1
98 #define IPMI_SSIF_SYSTEM_INTERFACE_DOES_NOT_SUPPORT_PEC 0x0
99 
100 #define IPMI_SSIF_SYSTEM_INTERFACE_TRANSACTION_SUPPORT_SINGLE_PART_READS_WRITES_SUPPORTED                   0x0
101 #define IPMI_SSIF_SYSTEM_INTERFACE_TRANSACTION_SUPPORT_MULTI_PART_READS_WRITES_SUPPORTED_START_AND_END_ONLY 0x1
102 #define IPMI_SSIF_SYSTEM_INTERFACE_TRANSACTION_SUPPORT_MULTI_PART_READS_WRITES_SUPPORTED_START_MIDDLE_END   0x2
103 
104 #define IPMI_KCS_SYSTEM_INTERFACE_VERSION_1             0x0
105 
106 #define IPMI_BUS_TYPE_PUBLIC  0x0
107 #define IPMI_BUS_TYPE_PRIVATE 0x1
108 
109 #define IPMI_BUS_TYPE_VALID(__bus_type) \
110   (((__bus_type) == IPMI_BUS_TYPE_PUBLIC \
111     || (__bus_type) == IPMI_BUS_TYPE_PRIVATE) ? 1 : 0)
112 
113 #define IPMI_GET_IPMI_V20_EXTENDED_DATA     0x01
114 #define IPMI_GET_IPMI_V15_DATA              0x00
115 
116 #define IPMI_GET_IPMI_DATA_VALID(__val)        \
117   (((__val) == IPMI_GET_IPMI_V20_EXTENDED_DATA \
118     || (__val) == IPMI_GET_IPMI_V15_DATA) ? 1 : 0)
119 
120 #define IPMI_GET_SYSTEM_INFO_PARAMETER                 0x0
121 #define IPMI_GET_SYSTEM_INFO_PARAMETER_REVISION_ONLY   0x1
122 
123 #define IPMI_GET_SYSTEM_INFO_PARAMETER_VALID(__val) \
124   (((__val) == IPMI_GET_SYSTEM_INFO_PARAMETER       \
125     || (__val) == IPMI_GET_SYSTEM_INFO_PARAMETER_REVISION_ONLY) ? 1 : 0)
126 
127 #define IPMI_SYSTEM_INFO_PARAMETERS_NO_SET_SELECTOR                            0x0
128 #define IPMI_SYSTEM_INFO_PARAMETERS_NO_BLOCK_SELECTOR                          0x0
129 
130 #define IPMI_SYSTEM_INFO_PARAMETERS_SET_COMPLETE                              0x00
131 #define IPMI_SYSTEM_INFO_PARAMETERS_SET_IN_PROGRESS                           0x01
132 #define IPMI_SYSTEM_INFO_PARAMETERS_SET_COMMIT_WRITE                          0x02
133 
134 #define IPMI_SYSTEM_INFO_PARAMETERS_SET_IN_PROGRESS_VALID(__value) \
135   (((__value) == IPMI_SYSTEM_INFO_PARAMETERS_SET_COMPLETE          \
136     || (__value) == IPMI_SYSTEM_INFO_PARAMETERS_SET_IN_PROGRESS    \
137     || (__value) == IPMI_SYSTEM_INFO_PARAMETERS_SET_COMMIT_WRITE) ? 1 : 0)
138 
139 #define IPMI_SYSTEM_INFO_ENCODING_ASCII_LATIN1         0x0
140 #define IPMI_SYSTEM_INFO_ENCODING_UTF_8                0x1
141 #define IPMI_SYSTEM_INFO_ENCODING_UNICODE              0x2
142 
143 #define IPMI_SYSTEM_INFO_ENCODING_VALID(__val) \
144   (((__val) == IPMI_SYSTEM_INFO_ENCODING_ASCII_LATIN1 \
145     || (__val) == IPMI_SYSTEM_INFO_ENCODING_UTF_8 \
146     || (__val) == IPMI_SYSTEM_INFO_ENCODING_UNICODE) ? 1 : 0)
147 
148 #define IPMI_SYSTEM_INFO_FIRST_SET_STRING_LEN_MAX      14
149 #define IPMI_SYSTEM_INFO_SET_STRING_LEN_MAX            16
150 #define IPMI_SYSTEM_INFO_STRING_LEN_MAX               255
151 
152 #define IPMI_LIST_ALGORITHMS_BY_CIPHER_SUITE 0x1
153 #define IPMI_LIST_SUPPORTED_ALGORITHMS       0x0
154 
155 #define IPMI_LIST_ALGORITHM_TYPE_VALID(__val)       \
156   (((__val) == IPMI_LIST_ALGORITHMS_BY_CIPHER_SUITE \
157     || (__val) == IPMI_LIST_SUPPORTED_ALGORITHMS) ? 1 : 0)
158 
159 #define IPMI_MESSAGING_ACCESS_MODE_DISABLED            0x0
160 #define IPMI_MESSAGING_ACCESS_MODE_PRE_BOOT_ONLY       0x1
161 #define IPMI_MESSAGING_ACCESS_MODE_ALWAYS_AVAILABLE    0x2
162 #define IPMI_MESSAGING_ACCESS_MODE_SHARED              0x3
163 
164 #define IPMI_MESSAGING_ACCESS_MODE_VALID(__access_mode)               \
165   (((__access_mode) == IPMI_MESSAGING_ACCESS_MODE_DISABLED            \
166     || (__access_mode) == IPMI_MESSAGING_ACCESS_MODE_PRE_BOOT_ONLY    \
167     || (__access_mode) == IPMI_MESSAGING_ACCESS_MODE_ALWAYS_AVAILABLE \
168     || (__access_mode) == IPMI_MESSAGING_ACCESS_MODE_SHARED) ? 1 : 0)
169 
170 #define IPMI_USER_LEVEL_AUTHENTICATION_ENABLE     0x0
171 #define IPMI_USER_LEVEL_AUTHENTICATION_DISABLE    0x1
172 
173 #define IPMI_USER_LEVEL_AUTHENTICATION_VALID(__val)  \
174   (((__val) == IPMI_USER_LEVEL_AUTHENTICATION_ENABLE \
175     || (__val) == IPMI_USER_LEVEL_AUTHENTICATION_DISABLE) ? 1 : 0)
176 
177 #define IPMI_PER_MESSAGE_AUTHENTICATION_ENABLE     0x0
178 #define IPMI_PER_MESSAGE_AUTHENTICATION_DISABLE    0x1
179 
180 #define IPMI_PER_MESSAGE_AUTHENTICATION_VALID(__val)  \
181   (((__val) == IPMI_PER_MESSAGE_AUTHENTICATION_ENABLE \
182     || (__val) == IPMI_PER_MESSAGE_AUTHENTICATION_DISABLE) ? 1 : 0)
183 
184 #define IPMI_PEF_ALERTING_ENABLE     0x0
185 #define IPMI_PEF_ALERTING_DISABLE    0x1
186 
187 #define IPMI_PEF_ALERTING_VALID(__val)  \
188   (((__val) == IPMI_PEF_ALERTING_ENABLE \
189     || (__val) == IPMI_PEF_ALERTING_DISABLE) ? 1 : 0)
190 
191 #define IPMI_CHANNEL_ACCESS_NO_CHANGE           0x0
192 #define IPMI_CHANNEL_ACCESS_SET_NON_VOLATILE    0x1
193 #define IPMI_CHANNEL_ACCESS_SET_VOLATILE        0x2
194 #define IPMI_CHANNEL_ACCESS_RESERVED            0x3
195 
196 #define IPMI_CHANNEL_ACCESS_VALID(__access_mode)               \
197   (((__access_mode) == IPMI_CHANNEL_ACCESS_NO_CHANGE           \
198     || (__access_mode) == IPMI_CHANNEL_ACCESS_SET_NON_VOLATILE \
199     || (__access_mode) == IPMI_CHANNEL_ACCESS_SET_VOLATILE) ? 1 : 0)
200 
201 #define IPMI_PRIVILEGE_LEVEL_LIMIT_NO_CHANGE           0x0
202 #define IPMI_PRIVILEGE_LEVEL_LIMIT_SET_NON_VOLATILE    0x1
203 #define IPMI_PRIVILEGE_LEVEL_LIMIT_SET_VOLATILE        0x2
204 #define IPMI_PRIVILEGE_LEVEL_LIMIT_RESERVED            0x3
205 
206 #define IPMI_PRIVILEGE_LEVEL_LIMIT_SET_VALID(__privilege_level_limit)           \
207   (((__privilege_level_limit) == IPMI_PRIVILEGE_LEVEL_LIMIT_NO_CHANGE           \
208     || (__privilege_level_limit) == IPMI_PRIVILEGE_LEVEL_LIMIT_SET_NON_VOLATILE \
209     || (__privilege_level_limit) == IPMI_PRIVILEGE_LEVEL_LIMIT_SET_VOLATILE) ? 1 : 0)
210 
211 #define IPMI_CHANNEL_ACCESS_GET_NON_VOLATILE    0x1
212 #define IPMI_CHANNEL_ACCESS_GET_VOLATILE        0x2
213 
214 #define IPMI_CHANNEL_ACCESS_GET_VALID(__val)        \
215   (((__val) == IPMI_CHANNEL_ACCESS_GET_NON_VOLATILE \
216     || (__val) == IPMI_CHANNEL_ACCESS_GET_VOLATILE) ? 1 : 0)
217 
218 #define IPMI_USER_RESTRICTED_TO_CALLBACK_ENABLE     0x1
219 #define IPMI_USER_RESTRICTED_TO_CALLBACK_DISABLE    0x0
220 
221 #define IPMI_USER_RESTRICTED_TO_CALLBACK_VALID(__val)  \
222   (((__val) == IPMI_USER_RESTRICTED_TO_CALLBACK_ENABLE \
223     || (__val) == IPMI_USER_RESTRICTED_TO_CALLBACK_DISABLE) ? 1 : 0)
224 
225 #define IPMI_PRIVILEGE_LEVEL_LIMIT_VALID(__privilege_level) \
226   (((__privilege_level) == IPMI_PRIVILEGE_LEVEL_CALLBACK    \
227     || (__privilege_level) == IPMI_PRIVILEGE_LEVEL_USER     \
228     || (__privilege_level) == IPMI_PRIVILEGE_LEVEL_OPERATOR \
229     || (__privilege_level) == IPMI_PRIVILEGE_LEVEL_ADMIN    \
230     || (__privilege_level) == IPMI_PRIVILEGE_LEVEL_OEM      \
231     || (__privilege_level) == IPMI_PRIVILEGE_LEVEL_NO_ACCESS) ? 1 : 0)
232 
233 #define IPMI_USER_LINK_AUTHENTICATION_ENABLE     0x1
234 #define IPMI_USER_LINK_AUTHENTICATION_DISABLE    0x0
235 
236 #define IPMI_USER_LINK_AUTHENTICATION_VALID(__val)  \
237   (((__val) == IPMI_USER_LINK_AUTHENTICATION_ENABLE \
238     || (__val) == IPMI_USER_LINK_AUTHENTICATION_DISABLE) ? 1 : 0)
239 
240 #define IPMI_USER_IPMI_MESSAGING_ENABLE     0x1
241 #define IPMI_USER_IPMI_MESSAGING_DISABLE    0x0
242 
243 #define IPMI_USER_IPMI_MESSAGING_VALID(__val)  \
244   (((__val) == IPMI_USER_IPMI_MESSAGING_ENABLE \
245     || (__val) == IPMI_USER_IPMI_MESSAGING_DISABLE) ? 1 : 0)
246 
247 #define IPMI_CHANGE_BITS_YES   0x1
248 #define IPMI_CHANGE_BITS_NO    0x0
249 
250 #define IPMI_CHANGE_BITS_VALID(__val)  \
251   (((__val) == IPMI_CHANGE_BITS_YES \
252     || (__val) == IPMI_CHANGE_BITS_NO) ? 1 : 0)
253 
254 #define IPMI_SESSION_SUPPORT_SESSION_LESS   0x00
255 #define IPMI_SESSION_SUPPORT_SINGLE_SESSION 0x01
256 #define IPMI_SESSION_SUPPORT_MULTI_SESSION  0x02
257 #define IPMI_SESSION_SUPPORT_SESSION_BASED  0x03
258 
259 #define IPMI_CHANNEL_SECURITY_KEYS_OPERATION_READ_KEY 0x0
260 #define IPMI_CHANNEL_SECURITY_KEYS_OPERATION_SET_KEY  0x1
261 #define IPMI_CHANNEL_SECURITY_KEYS_OPERATION_LOCK_KEY 0x2
262 
263 #define IPMI_CHANNEL_SECURITY_KEYS_OPERATION_VALID(__val)      \
264   (((__val) == IPMI_CHANNEL_SECURITY_KEYS_OPERATION_READ_KEY   \
265     || (__val) == IPMI_CHANNEL_SECURITY_KEYS_OPERATION_SET_KEY \
266     || (__val) == IPMI_CHANNEL_SECURITY_KEYS_OPERATION_LOCK_KEY) ? 1 : 0)
267 
268 #define IPMI_CHANNEL_SECURITY_KEYS_KEY_ID_K_R    0x0
269 #define IPMI_CHANNEL_SECURITY_KEYS_KEY_ID_K_G    0x1
270 
271 #define IPMI_CHANNEL_SECURITY_KEYS_KEY_ID_VALID(__val) \
272   (((__val) == IPMI_CHANNEL_SECURITY_KEYS_KEY_ID_K_R   \
273     || (__val) == IPMI_CHANNEL_SECURITY_KEYS_KEY_ID_K_G) ? 1 : 0)
274 
275 #define IPMI_CHANNEL_SECURITY_KEYS_LOCK_STATUS_KEY_IS_NOT_LOCKABLE 0x0
276 #define IPMI_CHANNEL_SECURITY_KEYS_LOCK_STATUS_KEY_IS_LOCKED       0x1
277 #define IPMI_CHANNEL_SECURITY_KEYS_LOCK_STATUS_KEY_IS_UNLOCKED     0x2
278 
279 #define IPMI_PASSWORD_OPERATION_DISABLE_USER     0x0
280 #define IPMI_PASSWORD_OPERATION_ENABLE_USER      0x1
281 #define IPMI_PASSWORD_OPERATION_SET_PASSWORD     0x2
282 #define IPMI_PASSWORD_OPERATION_TEST_PASSWORD    0x3
283 
284 #define IPMI_PASSWORD_OPERATION_VALID(__operation)           \
285   (((__operation) == IPMI_PASSWORD_OPERATION_DISABLE_USER    \
286     || (__operation) == IPMI_PASSWORD_OPERATION_ENABLE_USER  \
287     || (__operation) == IPMI_PASSWORD_OPERATION_SET_PASSWORD \
288     || (__operation) == IPMI_PASSWORD_OPERATION_TEST_PASSWORD) ? 1 : 0)
289 
290 #define IPMI_PASSWORD_SIZE_16_BYTES 0x0
291 #define IPMI_PASSWORD_SIZE_20_BYTES 0x1
292 
293 #define IPMI_PASSWORD_SIZE_VALID(__password_size)    \
294   (((__password_size) == IPMI_PASSWORD_SIZE_16_BYTES \
295     || (__password_size) == IPMI_PASSWORD_SIZE_20_BYTES) ? 1 : 0)
296 
297 #define IPMI_USER_ID_ENABLE_STATUS_UNSPECIFIED 0x0
298 #define IPMI_USER_ID_ENABLE_STATUS_ENABLED     0x1
299 #define IPMI_USER_ID_ENABLE_STATUS_DISABLED    0x2
300 
301 /*
302  * fill* functions return 0 on success, -1 on error.
303  *
304  * obj_cmd_rq must be for the fill function's respective fiid
305  * template request.
306  *
307  * see freeipmi/templates/ for template definitions
308  */
309 
310 extern fiid_template_t tmpl_cmd_set_bmc_global_enables_rq;
311 extern fiid_template_t tmpl_cmd_set_bmc_global_enables_rs;
312 extern fiid_template_t tmpl_cmd_get_bmc_global_enables_rq;
313 extern fiid_template_t tmpl_cmd_get_bmc_global_enables_rs;
314 
315 extern fiid_template_t tmpl_cmd_clear_message_flags_rq;
316 extern fiid_template_t tmpl_cmd_clear_message_flags_rs;
317 extern fiid_template_t tmpl_cmd_get_message_flags_rq;
318 extern fiid_template_t tmpl_cmd_get_message_flags_rs;
319 extern fiid_template_t tmpl_cmd_enable_message_channel_receive_rq;
320 extern fiid_template_t tmpl_cmd_enable_message_channel_receive_rs;
321 extern fiid_template_t tmpl_cmd_get_message_rq;
322 extern fiid_template_t tmpl_cmd_get_message_rs;
323 extern fiid_template_t tmpl_cmd_send_message_rq;
324 extern fiid_template_t tmpl_cmd_send_message_rs;
325 extern fiid_template_t tmpl_cmd_read_event_message_buffer_rq;
326 extern fiid_template_t tmpl_cmd_read_event_message_buffer_rs;
327 
328 extern fiid_template_t tmpl_cmd_get_system_interface_capabilities_rq;
329 extern fiid_template_t tmpl_cmd_get_system_interface_capabilities_rs;
330 extern fiid_template_t tmpl_cmd_get_system_interface_capabilities_ssif_rs;
331 extern fiid_template_t tmpl_cmd_get_system_interface_capabilities_kcs_rs;
332 extern fiid_template_t tmpl_cmd_get_bt_interface_capabilities_rq;
333 extern fiid_template_t tmpl_cmd_get_bt_interface_capabilities_rs;
334 extern fiid_template_t tmpl_cmd_master_write_read_rq;
335 extern fiid_template_t tmpl_cmd_master_write_read_rs;
336 
337 extern fiid_template_t tmpl_cmd_get_channel_authentication_capabilities_rq;
338 extern fiid_template_t tmpl_cmd_get_channel_authentication_capabilities_rs;
339 
340 extern fiid_template_t tmpl_cmd_get_system_guid_rq;
341 extern fiid_template_t tmpl_cmd_get_system_guid_rs;
342 extern fiid_template_t tmpl_cmd_get_device_guid_format_rs;
343 
344 extern fiid_template_t tmpl_cmd_set_system_info_parameters_rq;
345 extern fiid_template_t tmpl_cmd_set_system_info_parameters_rs;
346 
347 extern fiid_template_t tmpl_cmd_set_system_info_parameters_set_in_progress_rq;
348 extern fiid_template_t tmpl_cmd_set_system_info_parameters_system_firmware_version_first_set_rq;
349 extern fiid_template_t tmpl_cmd_set_system_info_parameters_system_firmware_version_rq;
350 extern fiid_template_t tmpl_cmd_set_system_info_parameters_system_name_first_set_rq;
351 extern fiid_template_t tmpl_cmd_set_system_info_parameters_system_name_rq;
352 extern fiid_template_t tmpl_cmd_set_system_info_parameters_primary_operating_system_name_first_set_rq;
353 extern fiid_template_t tmpl_cmd_set_system_info_parameters_primary_operating_system_name_rq;
354 extern fiid_template_t tmpl_cmd_set_system_info_parameters_operating_system_name_first_set_rq;
355 extern fiid_template_t tmpl_cmd_set_system_info_parameters_operating_system_name_rq;
356 extern fiid_template_t tmpl_cmd_set_system_info_parameters_present_os_version_number_first_set_rq;
357 extern fiid_template_t tmpl_cmd_set_system_info_parameters_present_os_version_number_rq;
358 extern fiid_template_t tmpl_cmd_set_system_info_parameters_bmc_url_first_set_rq;
359 extern fiid_template_t tmpl_cmd_set_system_info_parameters_bmc_url_rq;
360 extern fiid_template_t tmpl_cmd_set_system_info_parameters_base_os_hypervisor_url_first_set_rq;
361 extern fiid_template_t tmpl_cmd_set_system_info_parameters_base_os_hypervisor_url_rq;
362 
363 extern fiid_template_t tmpl_cmd_get_system_info_parameters_rq;
364 extern fiid_template_t tmpl_cmd_get_system_info_parameters_rs;
365 
366 extern fiid_template_t tmpl_cmd_get_system_info_parameters_set_in_progress_rs;
367 extern fiid_template_t tmpl_cmd_get_system_info_parameters_system_firmware_version_first_set_rs;
368 extern fiid_template_t tmpl_cmd_get_system_info_parameters_system_firmware_version_rs;
369 extern fiid_template_t tmpl_cmd_get_system_info_parameters_system_name_first_set_rs;
370 extern fiid_template_t tmpl_cmd_get_system_info_parameters_system_name_rs;
371 extern fiid_template_t tmpl_cmd_get_system_info_parameters_primary_operating_system_name_first_set_rs;
372 extern fiid_template_t tmpl_cmd_get_system_info_parameters_primary_operating_system_name_rs;
373 extern fiid_template_t tmpl_cmd_get_system_info_parameters_operating_system_name_first_set_rs;
374 extern fiid_template_t tmpl_cmd_get_system_info_parameters_operating_system_name_rs;
375 extern fiid_template_t tmpl_cmd_get_system_info_parameters_present_os_version_number_first_set_rs;
376 extern fiid_template_t tmpl_cmd_get_system_info_parameters_present_os_version_number_rs;
377 extern fiid_template_t tmpl_cmd_get_system_info_parameters_bmc_url_first_set_rs;
378 extern fiid_template_t tmpl_cmd_get_system_info_parameters_bmc_url_rs;
379 extern fiid_template_t tmpl_cmd_get_system_info_parameters_base_os_hypervisor_url_first_set_rs;
380 extern fiid_template_t tmpl_cmd_get_system_info_parameters_base_os_hypervisor_url_rs;
381 
382 extern fiid_template_t tmpl_cmd_get_channel_cipher_suites_rq;
383 extern fiid_template_t tmpl_cmd_get_channel_cipher_suites_rs;
384 
385 extern fiid_template_t tmpl_cmd_get_session_challenge_rq;
386 extern fiid_template_t tmpl_cmd_get_session_challenge_rs;
387 extern fiid_template_t tmpl_cmd_activate_session_rq;
388 extern fiid_template_t tmpl_cmd_activate_session_rs;
389 extern fiid_template_t tmpl_cmd_set_session_privilege_level_rq;
390 extern fiid_template_t tmpl_cmd_set_session_privilege_level_rs;
391 extern fiid_template_t tmpl_cmd_close_session_rq;
392 extern fiid_template_t tmpl_cmd_close_session_rs;
393 
394 extern fiid_template_t tmpl_cmd_set_channel_access_rq;
395 extern fiid_template_t tmpl_cmd_set_channel_access_rs;
396 extern fiid_template_t tmpl_cmd_get_channel_access_rq;
397 extern fiid_template_t tmpl_cmd_get_channel_access_rs;
398 extern fiid_template_t tmpl_cmd_get_channel_info_rq;
399 extern fiid_template_t tmpl_cmd_get_channel_info_rs;
400 
401 extern fiid_template_t tmpl_cmd_set_channel_security_keys_rq;
402 extern fiid_template_t tmpl_cmd_set_channel_security_keys_rs;
403 extern fiid_template_t tmpl_cmd_set_user_access_rq;
404 extern fiid_template_t tmpl_cmd_set_user_access_rs;
405 extern fiid_template_t tmpl_cmd_get_user_access_rq;
406 extern fiid_template_t tmpl_cmd_get_user_access_rs;
407 
408 extern fiid_template_t tmpl_cmd_set_user_name_rq;
409 extern fiid_template_t tmpl_cmd_set_user_name_rs;
410 
411 extern fiid_template_t tmpl_cmd_get_user_name_rq;
412 extern fiid_template_t tmpl_cmd_get_user_name_rs;
413 
414 extern fiid_template_t tmpl_cmd_set_user_password_rq;
415 extern fiid_template_t tmpl_cmd_set_user_password_rs;
416 
417 int fill_cmd_set_bmc_global_enables (uint8_t receive_message_queue_interrupt,
418                                      uint8_t event_message_buffer_full_interrupt,
419                                      uint8_t event_message_buffer,
420                                      uint8_t system_event_logging,
421                                      uint8_t oem_0,
422                                      uint8_t oem_1,
423                                      uint8_t oem_2,
424                                      fiid_obj_t obj_cmd_rq);
425 
426 int fill_cmd_get_bmc_global_enables (fiid_obj_t obj_cmd_rq);
427 
428 int fill_cmd_clear_message_flags (uint8_t receive_message_queue,
429                                   uint8_t event_message_buffer,
430                                   uint8_t watchdog_pre_timeout_interrupt_flag,
431                                   uint8_t oem_0,
432                                   uint8_t oem_1,
433                                   uint8_t oem_2,
434                                   fiid_obj_t obj_cmd_rq);
435 
436 int fill_cmd_get_message_flags (fiid_obj_t obj_cmd_rq);
437 
438 int fill_cmd_enable_message_channel_receive (uint8_t channel_number,
439                                              uint8_t channel_operation,
440                                              fiid_obj_t obj_cmd_rq);
441 
442 int fill_cmd_get_message (fiid_obj_t obj_cmd_rq);
443 
444 int fill_cmd_send_message (uint8_t channel_number,
445                            uint8_t message_authentication,
446                            uint8_t message_encryption,
447                            uint8_t tracking_operation,
448                            const void *message_data,
449                            unsigned int message_data_len,
450                            fiid_obj_t obj_cmd_rq);
451 
452 int fill_cmd_read_event_message_buffer (fiid_obj_t obj_cmd_rq);
453 
454 int fill_cmd_get_system_interface_capabilities (uint8_t system_interface,
455                                                 fiid_obj_t obj_cmd_rq);
456 
457 int fill_cmd_get_bt_interface_capabilities (fiid_obj_t obj_cmd_rq);
458 
459 int fill_cmd_master_write_read (uint8_t bus_type,
460                                 uint8_t bus_id,
461                                 uint8_t channel_number,
462                                 uint8_t slave_address,
463                                 uint8_t read_count,
464                                 const void *data,
465                                 unsigned int data_len,
466                                 fiid_obj_t obj_cmd_rq);
467 
468 int fill_cmd_get_channel_authentication_capabilities (uint8_t channel_number,
469                                                       uint8_t maximum_privilege_level,
470                                                       uint8_t get_ipmi_v20_extended_data,
471                                                       fiid_obj_t obj_cmd_rq);
472 
473 int fill_cmd_get_system_guid (fiid_obj_t obj_cmd_rq);
474 
475 int fill_cmd_set_system_info_parameters (uint8_t parameter_selector,
476                                          const void *configuration_parameter_data,
477                                          unsigned int configuration_parameter_data_len,
478                                          fiid_obj_t obj_cmd_rq);
479 
480 int fill_cmd_set_system_info_parameters_set_in_progress (uint8_t state,
481                                                          fiid_obj_t obj_cmd_rq);
482 
483 int fill_cmd_set_system_info_parameters_system_firmware_version_first_set (uint8_t set_selector,
484                                                                            uint8_t encoding,
485                                                                            uint8_t string_length,
486                                                                            const void *string_block,
487                                                                            unsigned int string_block_length,
488                                                                            fiid_obj_t obj_cmd_rq);
489 
490 int fill_cmd_set_system_info_parameters_system_firmware_version (uint8_t set_selector,
491                                                                  const void *string_block,
492                                                                  unsigned int string_block_length,
493                                                                  fiid_obj_t obj_cmd_rq);
494 
495 int fill_cmd_set_system_info_parameters_system_name_first_set (uint8_t set_selector,
496                                                                uint8_t encoding,
497                                                                uint8_t string_length,
498                                                                const void *string_block,
499                                                                unsigned int string_block_length,
500                                                                fiid_obj_t obj_cmd_rq);
501 
502 int fill_cmd_set_system_info_parameters_system_name (uint8_t set_selector,
503                                                      const void *string_block,
504                                                      unsigned int string_block_length,
505                                                      fiid_obj_t obj_cmd_rq);
506 
507 int fill_cmd_set_system_info_parameters_primary_operating_system_name_first_set (uint8_t set_selector,
508                                                                                  uint8_t encoding,
509                                                                                  uint8_t string_length,
510                                                                                  const void *string_block,
511                                                                                  unsigned int string_block_length,
512                                                                                  fiid_obj_t obj_cmd_rq);
513 
514 int fill_cmd_set_system_info_parameters_primary_operating_system_name (uint8_t set_selector,
515                                                                        const void *string_block,
516                                                                        unsigned int string_block_length,
517                                                                        fiid_obj_t obj_cmd_rq);
518 
519 int fill_cmd_set_system_info_parameters_operating_system_name_first_set (uint8_t set_selector,
520                                                                          uint8_t encoding,
521                                                                          uint8_t string_length,
522                                                                          const void *string_block,
523                                                                          unsigned int string_block_length,
524                                                                          fiid_obj_t obj_cmd_rq);
525 
526 int fill_cmd_set_system_info_parameters_operating_system_name (uint8_t set_selector,
527                                                                const void *string_block,
528                                                                unsigned int string_block_length,
529                                                                fiid_obj_t obj_cmd_rq);
530 
531 int fill_cmd_set_system_info_parameters_present_os_version_number_first_set (uint8_t set_selector,
532                                                                              uint8_t encoding,
533                                                                              uint8_t string_length,
534                                                                              const void *string_block,
535                                                                              unsigned int string_block_length,
536                                                                              fiid_obj_t obj_cmd_rq);
537 
538 int fill_cmd_set_system_info_parameters_present_os_version_number (uint8_t set_selector,
539                                                                    const void *string_block,
540                                                                    unsigned int string_block_length,
541                                                                    fiid_obj_t obj_cmd_rq);
542 
543 int fill_cmd_set_system_info_parameters_bmc_url_first_set (uint8_t set_selector,
544                                                            uint8_t encoding,
545                                                            uint8_t string_length,
546                                                            const void *string_block,
547                                                            unsigned int string_block_length,
548                                                            fiid_obj_t obj_cmd_rq);
549 
550 int fill_cmd_set_system_info_parameters_bmc_url (uint8_t set_selector,
551                                                  const void *string_block,
552                                                  unsigned int string_block_length,
553                                                  fiid_obj_t obj_cmd_rq);
554 
555 int fill_cmd_set_system_info_parameters_base_os_hypervisor_url_first_set (uint8_t set_selector,
556                                                                           uint8_t encoding,
557                                                                           uint8_t string_length,
558                                                                           const void *string_block,
559                                                                           unsigned int string_block_length,
560                                                                           fiid_obj_t obj_cmd_rq);
561 
562 int fill_cmd_set_system_info_parameters_base_os_hypervisor_url (uint8_t set_selector,
563                                                                 const void *string_block,
564                                                                 unsigned int string_block_length,
565                                                                 fiid_obj_t obj_cmd_rq);
566 
567 int fill_cmd_get_system_info_parameters (uint8_t get_parameter,
568                                          uint8_t parameter_selector,
569                                          uint8_t set_selector,
570                                          uint8_t block_selector,
571                                          fiid_obj_t obj_cmd_rq);
572 
573 int fill_cmd_get_channel_cipher_suites (uint8_t channel_number,
574                                         uint8_t payload_type,
575                                         uint8_t list_index,
576                                         uint8_t list_algorithm_type,
577                                         fiid_obj_t obj_cmd_rq);
578 
579 int fill_cmd_get_session_challenge (uint8_t authentication_type,
580                                     const char *user_name,
581                                     unsigned int user_name_len,
582                                     fiid_obj_t obj_cmd_rq);
583 
584 int fill_cmd_activate_session (uint8_t authentication_type,
585                                uint8_t maximum_privilege_level,
586                                const void *challenge_string,
587                                unsigned int challenge_string_len,
588                                uint32_t initial_outbound_sequence_number,
589                                fiid_obj_t obj_cmd_rq);
590 
591 int fill_cmd_set_session_privilege_level (uint8_t privilege_level,
592                                           fiid_obj_t obj_cmd_rq);
593 
594 int fill_cmd_close_session (uint32_t session_id,
595                             uint8_t *session_handle,
596                             fiid_obj_t obj_cmd_rq);
597 
598 int fill_cmd_set_channel_access (uint8_t channel_number,
599                                  uint8_t ipmi_messaging_access_mode,
600                                  uint8_t user_level_authentication,
601                                  uint8_t per_message_authentication,
602                                  uint8_t pef_alerting,
603                                  uint8_t channel_access_set,
604                                  uint8_t channel_privilege_level_limit,
605                                  uint8_t channel_privilege_level_limit_set,
606                                  fiid_obj_t obj_cmd_rq);
607 
608 int fill_cmd_get_channel_access (uint8_t channel_number,
609                                  uint8_t channel_access_get,
610                                  fiid_obj_t obj_cmd_rq);
611 
612 int fill_cmd_get_channel_info (uint8_t channel_number, fiid_obj_t obj_cmd_rq);
613 
614 int fill_cmd_set_channel_security_keys (uint8_t channel_number,
615                                         uint8_t operation,
616                                         uint8_t key_id,
617                                         const void *key_value,
618                                         unsigned int key_value_len,
619                                         fiid_obj_t obj_cmd_rq);
620 
621 int fill_cmd_set_user_access (uint8_t channel_number,
622                               uint8_t user_ipmi_messaging,
623                               uint8_t user_link_authentication,
624                               uint8_t user_restricted_to_callback,
625                               uint8_t change_bits_in_byte,
626                               uint8_t user_id,
627                               uint8_t user_privilege_level_limit,
628                               uint8_t user_session_limit,
629                               fiid_obj_t obj_cmd_rq);
630 
631 int fill_cmd_get_user_access (uint8_t channel_number,
632                               uint8_t user_id,
633                               fiid_obj_t obj_cmd_rq);
634 
635 int fill_cmd_set_user_name (uint8_t user_id,
636                             const char *user_name,
637                             unsigned int user_name_len,
638                             fiid_obj_t obj_cmd_rq);
639 
640 int fill_cmd_get_user_name (uint8_t user_id, fiid_obj_t obj_cmd_rq);
641 
642 int fill_cmd_set_user_password (uint8_t user_id,
643                                 uint8_t password_size,
644                                 uint8_t operation,
645                                 const char *password,
646                                 unsigned int password_len,
647                                 fiid_obj_t obj_cmd_rq);
648 
649 
650 #ifdef __cplusplus
651 }
652 #endif
653 
654 #endif /* IPMI_MESSAGING_SUPPORT_CMDS_H */
655