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_BATTERY_H 14 #define DMI_BATTERY_H 15 16 #include <stdbool.h> 17 #include <inttypes.h> 18 19 #define BATTERY_LOCATION_SIZE 65 20 #define BATTERY_MANUFACTURER_SIZE 65 21 #define BATTERY_MANUFACTURE_DATE_SIZE 65 22 #define BATTERY_SERIAL_SIZE 65 23 #define BATTERY_DEVICE_NAME_SIZE 65 24 #define BATTERY_CHEMISTRY_SIZE 32 25 #define BATTERY_CAPACITY_SIZE 16 26 #define BATTERY_DESIGN_VOLTAGE_SIZE 16 27 #define BATTERY_SBDS_SIZE 255 28 #define BATTERY_MAXIMUM_ERROR_SIZE 32 29 #define BATTERY_SBDS_SERIAL_SIZE 32 30 #define BATTERY_SBDS_MANUFACTURE_DATE_SIZE 255 31 #define BATTERY_SBDS_CHEMISTRY_SIZE 65 32 #define BATTERY_OEM_INFO_SIZE 255 33 34 typedef struct { 35 char location[BATTERY_LOCATION_SIZE]; 36 char manufacturer[BATTERY_MANUFACTURER_SIZE]; 37 char manufacture_date[BATTERY_MANUFACTURE_DATE_SIZE]; 38 char serial[BATTERY_SERIAL_SIZE]; 39 char name[BATTERY_DEVICE_NAME_SIZE]; 40 char chemistry[BATTERY_CHEMISTRY_SIZE]; 41 char design_capacity[BATTERY_CAPACITY_SIZE]; 42 char design_voltage[BATTERY_DESIGN_VOLTAGE_SIZE]; 43 char sbds[BATTERY_SBDS_SIZE]; 44 char sbds_serial[BATTERY_SBDS_SERIAL_SIZE]; 45 char maximum_error[BATTERY_MAXIMUM_ERROR_SIZE]; 46 char sbds_manufacture_date[BATTERY_SBDS_MANUFACTURE_DATE_SIZE]; 47 char sbds_chemistry[BATTERY_SBDS_CHEMISTRY_SIZE]; 48 char oem_info[BATTERY_OEM_INFO_SIZE]; 49 /* The filled field have to be set to true when the dmitable implement that item */ 50 bool filled; 51 } s_battery; 52 53 const char *dmi_battery_chemistry(uint8_t code); 54 void dmi_battery_capacity(uint16_t code, uint8_t multiplier, char *capacity); 55 void dmi_battery_voltage(uint16_t code, char *voltage); 56 void dmi_battery_maximum_error(uint8_t code, char *error); 57 #endif 58