lazybios 3.0.0
Lightweight SMBIOS/DMI parsing library
Loading...
Searching...
No Matches
type4.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 type4.h
21 * @brief Public API for SMBIOS Type 4 Processor Information.
22 * @author LazySeldi
23 */
24
25#ifndef LAZYBIOS_TYPE4_H
26#define LAZYBIOS_TYPE4_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 4 fields. */
69
70/**
71 * @brief Decoded forms of the Type 4 encoded fields.
72 *
73 * Each member holds the decoded form of the raw field it is named for.
74 * Consult the matching `field_status` member before using one.
75 */
76typedef struct {
77 const char* processor_family;
78 const char* processor_family_2;
79 const char* processor_type;
80 const char* processor_upgrade;
81 char* voltage;
82 char* status;
85
86/**
87 * @brief Parsed SMBIOS Type 4 Processor Information.
88 * @ingroup api_type4
89 */
124
125/**
126 * @brief A parsed set of SMBIOS Type 4 structures.
127 * @ingroup api_type4
128 */
133
134/** @addtogroup api_type4
135 * @{
136 */
137
138/**
139 * @brief Parses all SMBIOS Type 4 structures.
140 * @param DMIData Raw DMI table container to parse.
141 * @return Newly allocated set, empty when the table holds no Type 4 structure,
142 * or NULL when the arguments are unusable or an allocation fails.
143 */
145
146/**
147 * @brief Releases a parsed set of SMBIOS Type 4 structures.
148 * @param Type4 Set to release; may be NULL.
149 */
151
152/** @} */
153
154#ifdef __cplusplus
155}
156#endif
157
158#endif
void lazybiosFreeType4(lazybiosType4Array_t *Type4)
Releases a parsed set of SMBIOS Type 4 structures.
LAZYBIOS_WARN_UNUSED lazybiosType4Array_t * lazybiosGetType4(const lazybiosDMI_t *DMIData)
Parses all SMBIOS Type 4 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 4 structures.
Definition type4.h:129
lazybiosType4_t * entries
Definition type4.h:130
Decoded forms of the Type 4 encoded fields.
Definition type4.h:76
const char * processor_family_2
Definition type4.h:78
const char * processor_type
Definition type4.h:79
const char * processor_family
Definition type4.h:77
char * processor_characteristics
Definition type4.h:83
const char * processor_upgrade
Definition type4.h:80
Availability metadata for SMBIOS Type 4 fields.
Definition type4.h:39
lazybiosFieldStatus_t socket_designation
Definition type4.h:40
lazybiosFieldStatus_t voltage
Definition type4.h:46
lazybiosFieldStatus_t socket_type
Definition type4.h:67
lazybiosFieldStatus_t core_enabled_2
Definition type4.h:64
lazybiosFieldStatus_t part_number
Definition type4.h:57
lazybiosFieldStatus_t l2_cache_handle
Definition type4.h:53
lazybiosFieldStatus_t thread_enabled
Definition type4.h:66
lazybiosFieldStatus_t processor_type
Definition type4.h:41
lazybiosFieldStatus_t processor_family
Definition type4.h:42
lazybiosFieldStatus_t processor_manufacturer
Definition type4.h:43
lazybiosFieldStatus_t serial_number
Definition type4.h:55
lazybiosFieldStatus_t current_speed
Definition type4.h:49
lazybiosFieldStatus_t external_clock
Definition type4.h:47
lazybiosFieldStatus_t thread_count_2
Definition type4.h:65
lazybiosFieldStatus_t core_count_2
Definition type4.h:63
lazybiosFieldStatus_t core_enabled
Definition type4.h:59
lazybiosFieldStatus_t processor_characteristics
Definition type4.h:61
lazybiosFieldStatus_t max_speed
Definition type4.h:48
lazybiosFieldStatus_t status
Definition type4.h:50
lazybiosFieldStatus_t processor_id
Definition type4.h:44
lazybiosFieldStatus_t processor_upgrade
Definition type4.h:51
lazybiosFieldStatus_t processor_version
Definition type4.h:45
lazybiosFieldStatus_t thread_count
Definition type4.h:60
lazybiosFieldStatus_t asset_tag
Definition type4.h:56
lazybiosFieldStatus_t core_count
Definition type4.h:58
lazybiosFieldStatus_t l1_cache_handle
Definition type4.h:52
lazybiosFieldStatus_t processor_family_2
Definition type4.h:62
lazybiosFieldStatus_t l3_cache_handle
Definition type4.h:54
Parsed SMBIOS Type 4 Processor Information.
Definition type4.h:90
uint8_t processor_family
Definition type4.h:95
uint8_t voltage
Definition type4.h:99
uint8_t status
Definition type4.h:103
uint8_t thread_count
Definition type4.h:113
const char * serial_number
Definition type4.h:108
const char * part_number
Definition type4.h:110
uint16_t l2_cache_handle
Definition type4.h:106
uint8_t processor_upgrade
Definition type4.h:104
uint16_t core_enabled_2
Definition type4.h:117
uint8_t processor_type
Definition type4.h:94
uint16_t thread_enabled
Definition type4.h:119
const char * asset_tag
Definition type4.h:109
uint16_t external_clock
Definition type4.h:100
const char * processor_version
Definition type4.h:98
uint16_t l1_cache_handle
Definition type4.h:105
uint16_t processor_family_2
Definition type4.h:115
uint8_t core_count
Definition type4.h:111
uint16_t thread_count_2
Definition type4.h:118
uint16_t core_count_2
Definition type4.h:116
uint64_t processor_id
Definition type4.h:97
lazybiosType4Decoded_t decoded
Definition type4.h:121
const char * socket_designation
Definition type4.h:93
lazybiosType4FieldStatus_t field_status
Definition type4.h:122
const char * socket_type
Definition type4.h:120
uint16_t l3_cache_handle
Definition type4.h:107
uint16_t handle
Definition type4.h:91
uint8_t core_enabled
Definition type4.h:112
uint8_t length
Definition type4.h:92
uint16_t current_speed
Definition type4.h:102
uint16_t max_speed
Definition type4.h:101
const char * processor_manufacturer
Definition type4.h:96
uint16_t processor_characteristics
Definition type4.h:114