lazybios 3.0.0
Lightweight SMBIOS/DMI parsing library
Loading...
Searching...
No Matches
type17.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 type17.h
21 * @brief Public API for SMBIOS Type 17 Memory Device Information.
22 * @author LazySeldi
23 */
24
25#ifndef LAZYBIOS_TYPE17_H
26#define LAZYBIOS_TYPE17_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 17 fields. */
39typedef struct {
80
81/**
82 * @brief Decoded forms of the Type 17 encoded fields.
83 *
84 * Each member holds the decoded form of the raw field it is named for.
85 * Consult the matching `field_status` member before using one.
86 */
104
105/**
106 * @brief Parsed SMBIOS Type 17 Memory Device Information.
107 * @ingroup api_type17
108 */
154
155/**
156 * @brief A parsed set of SMBIOS Type 17 structures.
157 * @ingroup api_type17
158 */
163
164/** @addtogroup api_type17
165 * @{
166 */
167
168/**
169 * @brief Parses all SMBIOS Type 17 structures.
170 * @param DMIData Raw DMI table container to parse.
171 * @return Newly allocated set, empty when the table holds no Type 17 structure,
172 * or NULL when the arguments are unusable or an allocation fails.
173 */
175/**
176 * @brief Releases a parsed set of SMBIOS Type 17 structures.
177 * @param Type17 Set to release; may be NULL.
178 */
180
181/** @} */
182
183#ifdef __cplusplus
184}
185#endif
186
187#endif
LAZYBIOS_WARN_UNUSED lazybiosType17Array_t * lazybiosGetType17(const lazybiosDMI_t *DMIData)
Parses all SMBIOS Type 17 structures.
void lazybiosFreeType17(lazybiosType17Array_t *Type17)
Releases a parsed set of SMBIOS Type 17 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 17 structures.
Definition type17.h:159
lazybiosType17_t * entries
Definition type17.h:160
Decoded forms of the Type 17 encoded fields.
Definition type17.h:87
const char * memory_type
Definition type17.h:90
char * module_manufacturer_id
Definition type17.h:94
char * pmic0_revision_number
Definition type17.h:100
char * pmic0_manufacturer_id
Definition type17.h:99
const char * form_factor
Definition type17.h:88
const char * memory_technology
Definition type17.h:89
char * memory_operating_mode_capability
Definition type17.h:93
Availability metadata for SMBIOS Type 17 fields.
Definition type17.h:39
lazybiosFieldStatus_t type_detail
Definition type17.h:50
lazybiosFieldStatus_t extended_speed
Definition type17.h:73
lazybiosFieldStatus_t firmware_version
Definition type17.h:64
lazybiosFieldStatus_t pmic0_revision_number
Definition type17.h:76
lazybiosFieldStatus_t memory_subsystem_controller_manufacturer_id
Definition type17.h:67
lazybiosFieldStatus_t data_width
Definition type17.h:43
lazybiosFieldStatus_t extended_size
Definition type17.h:57
lazybiosFieldStatus_t physical_memory_array_handle
Definition type17.h:40
lazybiosFieldStatus_t cache_size
Definition type17.h:71
lazybiosFieldStatus_t rcd_manufacturer_id
Definition type17.h:77
lazybiosFieldStatus_t memory_subsystem_controller_product_id
Definition type17.h:68
lazybiosFieldStatus_t rcd_revision_number
Definition type17.h:78
lazybiosFieldStatus_t device_set
Definition type17.h:46
lazybiosFieldStatus_t non_volatile_size
Definition type17.h:69
lazybiosFieldStatus_t module_manufacturer_id
Definition type17.h:65
lazybiosFieldStatus_t maximum_voltage
Definition type17.h:60
lazybiosFieldStatus_t memory_error_information_handle
Definition type17.h:41
lazybiosFieldStatus_t speed
Definition type17.h:51
lazybiosFieldStatus_t bank_locator
Definition type17.h:48
lazybiosFieldStatus_t extended_configured_memory_speed
Definition type17.h:74
lazybiosFieldStatus_t memory_technology
Definition type17.h:62
lazybiosFieldStatus_t serial_number
Definition type17.h:53
lazybiosFieldStatus_t configured_memory_speed
Definition type17.h:58
lazybiosFieldStatus_t configured_voltage
Definition type17.h:61
lazybiosFieldStatus_t attributes
Definition type17.h:56
lazybiosFieldStatus_t minimum_voltage
Definition type17.h:59
lazybiosFieldStatus_t memory_operating_mode_capability
Definition type17.h:63
lazybiosFieldStatus_t device_locator
Definition type17.h:47
lazybiosFieldStatus_t manufacturer
Definition type17.h:52
lazybiosFieldStatus_t module_product_id
Definition type17.h:66
lazybiosFieldStatus_t volatile_size
Definition type17.h:70
lazybiosFieldStatus_t part_number
Definition type17.h:55
lazybiosFieldStatus_t size
Definition type17.h:44
lazybiosFieldStatus_t memory_type
Definition type17.h:49
lazybiosFieldStatus_t total_width
Definition type17.h:42
lazybiosFieldStatus_t form_factor
Definition type17.h:45
lazybiosFieldStatus_t pmic0_manufacturer_id
Definition type17.h:75
lazybiosFieldStatus_t asset_tag
Definition type17.h:54
lazybiosFieldStatus_t logical_size
Definition type17.h:72
Parsed SMBIOS Type 17 Memory Device Information.
Definition type17.h:109
uint16_t physical_memory_array_handle
Definition type17.h:112
uint16_t memory_operating_mode_capability
Definition type17.h:135
uint64_t cache_size
Definition type17.h:143
uint16_t handle
Definition type17.h:110
uint16_t configured_memory_speed
Definition type17.h:130
const char * manufacturer
Definition type17.h:124
uint8_t form_factor
Definition type17.h:117
uint16_t memory_error_information_handle
Definition type17.h:113
uint32_t extended_configured_memory_speed
Definition type17.h:146
uint16_t total_width
Definition type17.h:114
lazybiosType17FieldStatus_t field_status
Definition type17.h:152
uint16_t module_manufacturer_id
Definition type17.h:137
const char * asset_tag
Definition type17.h:126
const char * part_number
Definition type17.h:127
uint64_t volatile_size
Definition type17.h:142
uint16_t minimum_voltage
Definition type17.h:131
uint8_t device_set
Definition type17.h:118
uint8_t attributes
Definition type17.h:128
uint16_t module_product_id
Definition type17.h:138
uint16_t pmic0_manufacturer_id
Definition type17.h:147
uint32_t extended_size
Definition type17.h:129
uint16_t memory_subsystem_controller_product_id
Definition type17.h:140
uint16_t rcd_revision_number
Definition type17.h:150
uint8_t memory_technology
Definition type17.h:134
uint16_t pmic0_revision_number
Definition type17.h:148
lazybiosType17Decoded_t decoded
Definition type17.h:151
uint16_t size
Definition type17.h:116
const char * firmware_version
Definition type17.h:136
const char * serial_number
Definition type17.h:125
uint16_t data_width
Definition type17.h:115
uint64_t logical_size
Definition type17.h:144
const char * device_locator
Definition type17.h:119
uint16_t rcd_manufacturer_id
Definition type17.h:149
uint16_t speed
Definition type17.h:123
uint64_t non_volatile_size
Definition type17.h:141
const char * bank_locator
Definition type17.h:120
uint8_t memory_type
Definition type17.h:121
uint16_t memory_subsystem_controller_manufacturer_id
Definition type17.h:139
uint16_t type_detail
Definition type17.h:122
uint8_t length
Definition type17.h:111
uint16_t configured_voltage
Definition type17.h:133
uint32_t extended_speed
Definition type17.h:145
uint16_t maximum_voltage
Definition type17.h:132