Home | History | Annotate | Download | only in dmi
      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