lazybios 3.0.0
Lightweight SMBIOS/DMI parsing library
Loading...
Searching...
No Matches
type38.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: LGPL-2.1-or-later
3 *
4 * This file is part of lazybios.
5 *
6 * lazybios is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General Public License as published by
8 * the Free Software Foundation, either version 2.1 of the License, or
9 * (at your option) any later version.
10 *
11 * lazybios is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with lazybios. If not, see <https://www.gnu.org/licenses/>.
18 */
19/**
20 * @file type38.h
21 * @brief Public API for SMBIOS Type 38 IPMI Device Information.
22 * @author LazySeldi
23 */
24
25#ifndef LAZYBIOS_TYPE38_H
26#define LAZYBIOS_TYPE38_H
27
28#ifndef LAZYBIOS_SHARED_API_H
29#define LAZYBIOS_TYPE_HEADER_ONLY
30#include "lazybios/lazybios.h"
31#undef LAZYBIOS_TYPE_HEADER_ONLY
32#endif
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38/** @brief Availability metadata for SMBIOS Type 38 fields. */
48
49/**
50 * @brief Decoded forms of the Type 38 encoded fields.
51 *
52 * Each member holds the decoded form of the raw field it is named for.
53 * Consult the matching `field_status` member before using one.
54 */
63
64/**
65 * @brief Parsed SMBIOS Type 38 IPMI Device Information.
66 * @ingroup api_type38
67 */
81
82/**
83 * @brief A parsed set of SMBIOS Type 38 structures.
84 * @ingroup api_type38
85 */
90
91/** @addtogroup api_type38
92 * @{
93 */
94
95/**
96 * @brief Parses all SMBIOS Type 38 structures.
97 * @param DMIData Raw DMI table container to parse.
98 * @return Newly allocated set, empty when the table holds no Type 38 structure,
99 * or NULL when the arguments are unusable or an allocation fails.
100 */
102
103/**
104 * @brief Releases a parsed set of SMBIOS Type 38 structures.
105 * @param Type38 Set to release; may be NULL.
106 */
108
109/** @} */
110
111#ifdef __cplusplus
112}
113#endif
114
115#endif
LAZYBIOS_WARN_UNUSED lazybiosType38Array_t * lazybiosGetType38(const lazybiosDMI_t *DMIData)
Parses all SMBIOS Type 38 structures.
void lazybiosFreeType38(lazybiosType38Array_t *Type38)
Releases a parsed set of SMBIOS Type 38 structures.
Public API for lazybios. Include this and nothing else.
uint8_t lazybiosFieldStatus_t
Storage for one field's availability.
Definition lazybios.h:115
#define LAZYBIOS_WARN_UNUSED
Expands to nothing on compilers without a return-value check.
Definition lazybios.h:150
Owns raw DMI table data and its parsed SMBIOS entry point.
Definition lazybios.h:218
A parsed set of SMBIOS Type 38 structures.
Definition type38.h:86
lazybiosType38_t * entries
Definition type38.h:87
Decoded forms of the Type 38 encoded fields.
Definition type38.h:55
uint64_t base_address
Definition type38.h:59
char * base_address_modifier_interrupt_info
Definition type38.h:61
const char * interface_type
Definition type38.h:58
char * ipmi_specification_revision
Definition type38.h:60
const char * base_address_type
Definition type38.h:56
const char * register_spacing
Definition type38.h:57
Availability metadata for SMBIOS Type 38 fields.
Definition type38.h:39
lazybiosFieldStatus_t i2c_target_address
Definition type38.h:42
lazybiosFieldStatus_t base_address
Definition type38.h:44
lazybiosFieldStatus_t nv_storage_device_address
Definition type38.h:43
lazybiosFieldStatus_t ipmi_specification_revision
Definition type38.h:41
lazybiosFieldStatus_t interrupt_number
Definition type38.h:46
lazybiosFieldStatus_t base_address_modifier_interrupt_info
Definition type38.h:45
lazybiosFieldStatus_t interface_type
Definition type38.h:40
Parsed SMBIOS Type 38 IPMI Device Information.
Definition type38.h:68
uint8_t base_address_modifier_interrupt_info
Definition type38.h:76
uint8_t ipmi_specification_revision
Definition type38.h:72
lazybiosType38Decoded_t decoded
Definition type38.h:78
uint8_t interface_type
Definition type38.h:71
uint8_t interrupt_number
Definition type38.h:77
uint8_t nv_storage_device_address
Definition type38.h:74
uint8_t length
Definition type38.h:70
lazybiosType38FieldStatus_t field_status
Definition type38.h:79
uint16_t handle
Definition type38.h:69
uint8_t i2c_target_address
Definition type38.h:73
uint64_t base_address
Definition type38.h:75