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 79