linux/include/linux/dmi.h
<<
>>
Prefs
   1#ifndef __DMI_H__
   2#define __DMI_H__
   3
   4#include <linux/list.h>
   5
   6enum dmi_field {
   7        DMI_NONE,
   8        DMI_BIOS_VENDOR,
   9        DMI_BIOS_VERSION,
  10        DMI_BIOS_DATE,
  11        DMI_SYS_VENDOR,
  12        DMI_PRODUCT_NAME,
  13        DMI_PRODUCT_VERSION,
  14        DMI_PRODUCT_SERIAL,
  15        DMI_PRODUCT_UUID,
  16        DMI_BOARD_VENDOR,
  17        DMI_BOARD_NAME,
  18        DMI_BOARD_VERSION,
  19        DMI_BOARD_SERIAL,
  20        DMI_BOARD_ASSET_TAG,
  21        DMI_CHASSIS_VENDOR,
  22        DMI_CHASSIS_TYPE,
  23        DMI_CHASSIS_VERSION,
  24        DMI_CHASSIS_SERIAL,
  25        DMI_CHASSIS_ASSET_TAG,
  26        DMI_STRING_MAX,
  27};
  28
  29enum dmi_device_type {
  30        DMI_DEV_TYPE_ANY = 0,
  31        DMI_DEV_TYPE_OTHER,
  32        DMI_DEV_TYPE_UNKNOWN,
  33        DMI_DEV_TYPE_VIDEO,
  34        DMI_DEV_TYPE_SCSI,
  35        DMI_DEV_TYPE_ETHERNET,
  36        DMI_DEV_TYPE_TOKENRING,
  37        DMI_DEV_TYPE_SOUND,
  38        DMI_DEV_TYPE_PATA,
  39        DMI_DEV_TYPE_SATA,
  40        DMI_DEV_TYPE_SAS,
  41        DMI_DEV_TYPE_IPMI = -1,
  42        DMI_DEV_TYPE_OEM_STRING = -2,
  43};
  44
  45struct dmi_header {
  46        u8 type;
  47        u8 length;
  48        u16 handle;
  49};
  50
  51/*
  52 *      DMI callbacks for problem boards
  53 */
  54struct dmi_strmatch {
  55        u8 slot;
  56        char *substr;
  57};
  58
  59struct dmi_system_id {
  60        int (*callback)(const struct dmi_system_id *);
  61        const char *ident;
  62        struct dmi_strmatch matches[4];
  63        void *driver_data;
  64};
  65
  66#define DMI_MATCH(a, b) { a, b }
  67
  68struct dmi_device {
  69        struct list_head list;
  70        int type;
  71        const char *name;
  72        void *device_data;      /* Type specific data */
  73};
  74
  75#ifdef CONFIG_DMI
  76
  77extern int dmi_check_system(const struct dmi_system_id *list);
  78extern const char * dmi_get_system_info(int field);
  79extern const struct dmi_device * dmi_find_device(int type, const char *name,
  80        const struct dmi_device *from);
  81extern void dmi_scan_machine(void);
  82extern int dmi_get_year(int field);
  83extern int dmi_name_in_vendors(const char *str);
  84extern int dmi_available;
  85extern int dmi_walk(void (*decode)(const struct dmi_header *));
  86
  87#else
  88
  89static inline int dmi_check_system(const struct dmi_system_id *list) { return 0; }
  90static inline const char * dmi_get_system_info(int field) { return NULL; }
  91static inline const struct dmi_device * dmi_find_device(int type, const char *name,
  92        const struct dmi_device *from) { return NULL; }
  93static inline void dmi_scan_machine(void) { return; }
  94static inline int dmi_get_year(int year) { return 0; }
  95static inline int dmi_name_in_vendors(const char *s) { return 0; }
  96#define dmi_available 0
  97static inline int dmi_walk(void (*decode)(const struct dmi_header *))
  98        { return -1; }
  99
 100#endif
 101
 102#endif  /* __DMI_H__ */
 103
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.