1 | /* ----------------------------------------------------------------------- * |
---|
2 | * |
---|
3 | * Copyright 2009 Erwan Velu - All Rights Reserved |
---|
4 | * |
---|
5 | * This program is free software; you can redistribute it and/or modify |
---|
6 | * it under the terms of the GNU General Public License as published by |
---|
7 | * the Free Software Foundation, Inc., 53 Temple Place Ste 330, |
---|
8 | * Boston MA 02111-1307, USA; either version 2 of the License, or |
---|
9 | * (at your option) any later version; incorporated herein by reference. |
---|
10 | * |
---|
11 | * ----------------------------------------------------------------------- */ |
---|
12 | |
---|
13 | #ifndef DMI_MEMORY_H |
---|
14 | #define DMI_MEMORY_H |
---|
15 | |
---|
16 | #define MEMORY_MANUFACTURER_SIZE 65 |
---|
17 | #define MEMORY_ERROR_SIZE 16 |
---|
18 | #define MEMORY_TOTAL_WIDTH_SIZE 16 |
---|
19 | #define MEMORY_DATA_WIDTH_SIZE 16 |
---|
20 | #define MEMORY_SIZE_SIZE 32 |
---|
21 | #define MEMORY_FORM_FACTOR_SIZE 32 |
---|
22 | #define MEMORY_DEVICE_SET_SIZE 32 |
---|
23 | #define MEMORY_DEVICE_LOCATOR_SIZE 65 |
---|
24 | #define MEMORY_BANK_LOCATOR_SIZE 65 |
---|
25 | #define MEMORY_TYPE_SIZE 32 |
---|
26 | #define MEMORY_TYPE_DETAIL_SIZE 16 |
---|
27 | #define MEMORY_SPEED_SIZE 16 |
---|
28 | #define MEMORY_SERIAL_SIZE 65 |
---|
29 | #define MEMORY_ASSET_TAG_SIZE 65 |
---|
30 | #define MEMORY_PART_NUMBER_SIZE 65 |
---|
31 | #define MEMORY_SOCKET_DESIGNATION_SIZE 65 |
---|
32 | |
---|
33 | typedef struct { |
---|
34 | char manufacturer[MEMORY_MANUFACTURER_SIZE]; |
---|
35 | char error[MEMORY_ERROR_SIZE]; |
---|
36 | char total_width[MEMORY_TOTAL_WIDTH_SIZE]; |
---|
37 | char data_width[MEMORY_DATA_WIDTH_SIZE]; |
---|
38 | char size[MEMORY_SIZE_SIZE]; |
---|
39 | char form_factor[MEMORY_FORM_FACTOR_SIZE]; |
---|
40 | char device_set[MEMORY_DEVICE_SET_SIZE]; |
---|
41 | char device_locator[MEMORY_DEVICE_LOCATOR_SIZE]; |
---|
42 | char bank_locator[MEMORY_BANK_LOCATOR_SIZE]; |
---|
43 | char type[MEMORY_TYPE_SIZE]; |
---|
44 | char type_detail[MEMORY_TYPE_DETAIL_SIZE]; |
---|
45 | char speed[MEMORY_SPEED_SIZE]; |
---|
46 | char serial[MEMORY_SERIAL_SIZE]; |
---|
47 | char asset_tag[MEMORY_ASSET_TAG_SIZE]; |
---|
48 | char part_number[MEMORY_PART_NUMBER_SIZE]; |
---|
49 | /* The filled field have to be set to true when the dmitable implement that item */ |
---|
50 | bool filled; |
---|
51 | } s_memory; |
---|
52 | |
---|
53 | typedef struct { |
---|
54 | char socket_designation[MEMORY_SOCKET_DESIGNATION_SIZE]; |
---|
55 | char bank_connections[8]; |
---|
56 | char speed[8]; |
---|
57 | char type[48]; |
---|
58 | char installed_size[48]; |
---|
59 | char enabled_size[48]; |
---|
60 | char error_status[8]; |
---|
61 | bool filled; |
---|
62 | } s_memory_module; |
---|
63 | |
---|
64 | void dmi_memory_array_error_handle(uint16_t code, char *array); |
---|
65 | void dmi_memory_device_width(uint16_t code, char *width); |
---|
66 | void dmi_memory_device_size(uint16_t code, char *size); |
---|
67 | const char *dmi_memory_device_form_factor(uint8_t code); |
---|
68 | void dmi_memory_device_set(uint8_t code, char *set); |
---|
69 | const char *dmi_memory_device_type(uint8_t code); |
---|
70 | void dmi_memory_device_type_detail(uint16_t code, char *type_detail, int sizeof_type_detail); |
---|
71 | void dmi_memory_device_speed(uint16_t code, char *speed); |
---|
72 | |
---|
73 | void dmi_memory_module_connections(uint8_t, char *, int); |
---|
74 | void dmi_memory_module_speed(uint8_t, char *); |
---|
75 | void dmi_memory_module_types(uint16_t, const char *, char *, int); |
---|
76 | void dmi_memory_module_size(uint8_t, char *, int); |
---|
77 | void dmi_memory_module_error(uint8_t, const char *, char *); |
---|
78 | #endif |
---|