Hardware DB (HDDB)
Implementation internals

Hardware DB functions. More...

## Data Structures

struct | line_s
struct | tmp_entry_t
struct | hddb_search_t
| Hardware DB search struct. More...

## Typedefs

typedef struct line_s | line_t

## Enumerations

enum | prefix_t { pref_empty , pref_new , pref_and , pref_or , pref_add }

## Functions

static void | hddb_init_pci (hd_data_t *hd_data)
static char * | get_mi_field (char *str, char *tag, int field_len, unsigned *value, unsigned *has_value)
static modinfo_t * | parse_modinfo (str_list_t *file)
static driver_info_t * | hd_modinfo_db (hd_data_t *hd_data, modinfo_t *modinfo_db, hd_t *hd, driver_info_t *drv_info)
static int | cmp_dir_entry_s (const void *p0, const void *p1)
static void | hddb_init_external (hd_data_t *hd_data)
static line_t * | parse_line (char *str)
static unsigned | store_string (hddb2_data_t *x, char *str)
static unsigned | store_list (hddb2_data_t *x, hddb_list_t *list)
static unsigned | store_value (hddb2_data_t *x, unsigned val)
static unsigned | store_entry (hddb2_data_t *x, tmp_entry_t *te)
static void | clear_entry (tmp_entry_t *te)
static void | add_value (tmp_entry_t *te, hddb_entry_t idx, unsigned val)
static hddb_entry_mask_t | add_entry (hddb2_data_t *hddb2, tmp_entry_t *te, hddb_entry_t idx, char *str)
static int | compare_ids (hddb2_data_t *hddb, hddb_search_t *hs, hddb_entry_mask_t mask, unsigned key)
static void | complete_ids (hddb2_data_t *hddb, hddb_search_t *hs, hddb_entry_mask_t key_mask, hddb_entry_mask_t mask, unsigned val_idx)
static int | hddb_search (hd_data_t *hd_data, hddb_search_t *hs, int max_recursions)
static driver_info_t * | hddb_to_device_driver (hd_data_t *hd_data, hddb_search_t *hs)
static driver_info_t * | kbd_driver (hd_data_t *hd_data, hd_t *hd)
static driver_info_t * | monitor_driver (hd_data_t *hd_data, hd_t *hd)
static driver_info_t * | isdn_driver (hd_data_t *hd_data, hd_t *hd, cdb_isdn_card *cic)
static driver_info_t * | dsl_driver (hd_data_t *hd_data, hd_t *hd, cdb_isdn_card *cic)
static hd_res_t * | get_res (hd_t *h, enum resource_types t, unsigned index)
static driver_info_t * | reorder_x11 (driver_info_t *di0, char *info)
static void | expand_driver_info (hd_data_t *hd_data, hd_t *hd)
static char * | module_cmd (hd_t *hd, char *cmd)
int | match_modinfo (hd_data_t *hd_data, modinfo_t *db, modinfo_t *match)
| return prio, 0: no match
void | hddb_init (hd_data_t *hd_data)
int | parse_id (char *str, unsigned *id, unsigned *range, unsigned *mask)
void | hddb_dump_raw (hddb2_data_t *hddb, FILE *f)
void | hddb_dump_ent_name (hddb2_data_t *hddb, FILE *f, char pre, hddb_entry_t ent)
void | hddb_dump_skey (hddb2_data_t *hddb, FILE *f, prefix_t pre, hddb_entry_mask_t key_mask, unsigned key)
void | hddb_dump (hddb2_data_t *hddb, FILE *f)
str_list_t * | hddb_get_packages (hd_data_t *hd_data)
unsigned | device_class (hd_data_t *hd_data, unsigned vendor, unsigned device)
unsigned | sub_device_class (hd_data_t *hd_data, unsigned vendor, unsigned device, unsigned sub_vendor, unsigned sub_device)
void | hddb_add_info (hd_data_t *hd_data, hd_t *hd)
char * | hid_tag_name (int tag)
char * | hid_tag_name2 (int tag)

## Variables

hddb2_data_t | hddb_internal
static char * | hid_tag_names [] = { "", "pci ", "eisa ", "usb ", "special ", "pcmcia ", "sdio " }
static char * | hid_tag_names2 [] = { "", "pci ", "eisa ", "usb ", "int ", "pcmcia ", "sdio " }

## Detailed Description

Hardware DB functions.

## Typedef Documentation

## line_t

typedef struct line_s line_t

## Enumeration Type Documentation

## prefix_t

enum prefix_t

Enumerator
pref_empty |
pref_new |
pref_and |
pref_or |
pref_add |

## Function Documentation

## add_entry()

hddb_entry_mask_t add_entry | ( | hddb2_data_t * | hddb2,
|  | tmp_entry_t * | te,
|  | hddb_entry_t | idx,
|  | char * | str )

static

References add_entry(), add_value(), FLAG_ID, FLAG_MASK, FLAG_RANGE, FLAG_STRING, free_mem(), free_str_list(), hd_hw_item_type(), hd_split(), hddb_is_numeric, he_baseclass_id, he_class_id, he_driver, he_driver_any, he_driver_display, he_driver_module_config, he_driver_module_insmod, he_driver_module_modprobe, he_driver_mouse, he_driver_xfree, he_driver_xfree_config, he_hwclass, he_nomask, he_subclass_id, ID_VALUE, MAKE_DATA, new_mem(), s_str_list_t::next, parse_id(), store_string(), and s_str_list_t::str.

Referenced by add_entry(), and hddb_init_external().

## add_value()

void add_value | ( | tmp_entry_t * | te,
|  | hddb_entry_t | idx,
|  | unsigned | val )

static

References he_nomask, tmp_entry_t::len, and tmp_entry_t::val.

Referenced by add_entry().

## clear_entry()

void clear_entry | ( | tmp_entry_t * | te | ) |

static

References he_nomask.

Referenced by hddb_init_external().

## cmp_dir_entry_s()

int cmp_dir_entry_s | ( | const void * | p0,
|  | const void * | p1 )

static

Referenced by hddb_init_external().

## compare_ids()

int compare_ids | ( | hddb2_data_t * | hddb,
|  | hddb_search_t * | hs,
|  | hddb_entry_mask_t | mask,
|  | unsigned | key )

static

References hddb_search_t::base_class, hddb_search_t::bus, hddb_search_t::cu_model, DATA_FLAG, DATA_VALUE, hddb_search_t::device, FLAG_CONT, FLAG_ID, FLAG_MASK, FLAG_RANGE, FLAG_STRING, he_baseclass_id, he_baseclass_name, he_bus_id, he_bus_name, he_detail_ccw_data_cu_model, he_device_id, he_device_name, he_hwclass, he_progif_id, he_progif_name, he_requires, he_rev_id, he_rev_name, he_serial, he_subclass_id, he_subclass_name, he_subdevice_id, he_subdevice_name, he_subvendor_id, he_subvendor_name, he_vendor_id, he_vendor_name, hd_id_t::id, hddb2_data_t::ids, hddb2_data_t::ids_len, hd_id_t::name, hddb_search_t::prog_if, hddb_search_t::revision, hddb_search_t::serial, hddb2_data_t::strings, hddb_search_t::sub_class, hddb_search_t::sub_device, hddb_search_t::sub_vendor, and hddb_search_t::vendor.

Referenced by hddb_search().

## complete_ids()

void complete_ids | ( | hddb2_data_t * | hddb,
|  | hddb_search_t * | hs,
|  | hddb_entry_mask_t | key_mask,
|  | hddb_entry_mask_t | mask,
|  | unsigned | val_idx )

static

References add_str_list(), hddb_search_t::base_class, hddb_search_t::bus, hddb_search_t::cu_model, DATA_FLAG, DATA_VALUE, hddb_search_t::device, hddb_search_t::driver, FLAG_CONT, FLAG_ID, FLAG_STRING, free_str_list(), he_baseclass_id, he_baseclass_name, he_bus_id, he_bus_name, he_detail_ccw_data_cu_model, he_device_id, he_device_name, he_driver, he_hwclass, he_progif_id, he_progif_name, he_requires, he_rev_id, he_rev_name, he_serial, he_subclass_id, he_subclass_name, he_subdevice_id, he_subdevice_name, he_subvendor_id, he_subvendor_name, he_vendor_id, he_vendor_name, hddb_search_t::hwclass, hd_id_t::id, hddb2_data_t::ids, hddb2_data_t::ids_len, hd_id_t::name, hddb_search_t::prog_if, hddb_search_t::revision, hddb_search_t::serial, hddb2_data_t::strings, hddb_search_t::sub_class, hddb_search_t::sub_device, hddb_search_t::sub_vendor, hddb_search_t::value, hddb_search_t::value_mask, and hddb_search_t::vendor.

Referenced by hddb_search().

## device_class()

unsigned device_class | ( | hd_data_t * | hd_data,
|  | unsigned | vendor,
|  | unsigned | device )

References hddb_search_t::base_class, device, hddb_search_t::device, hd_data, hddb_search(), he_baseclass_id, he_device_id, he_subclass_id, he_vendor_id, hd_id_t::id, hddb_search_t::key, hddb_search_t::sub_class, hddb_search_t::value, hddb_search_t::vendor, and vendor.

## dsl_driver()

driver_info_t * dsl_driver | ( | hd_data_t * | hd_data,
|  | hd_t * | hd,
|  | cdb_isdn_card * | cic )

static

References add_str_list(), s_hd_t::bus, bus_pci, di_dsl, driver_info_u::dsl, free_mem(), free_str_list(), hd_cdbisdn_get_vario(), hd_data, hd_split(), hd_id_t::id, cdb_isdn_vario::interface, cdb_isdn_vario::mod_name, driver_info_dsl_t::mode, driver_info_dsl_t::name, cdb_isdn_vario::need_pkg, new_mem(), new_str(), driver_info_u::next, s_str_list_t::next, cdb_isdn_vario::next_vario, search_str_list(), s_str_list_t::str, driver_info_dsl_t::type, and cdb_isdn_card::vario.

Referenced by hddb_add_info().

## expand_driver_info()

void expand_driver_info | ( | hd_data_t * | hd_data,
|  | hd_t * | hd )

static

References driver_info_module_t::active, add_str_list(), driver_info_x11_t::all, driver_info_u::any, driver_info_display_t::bandwidth, driver_info_mouse_t::buttons, driver_info_x11_t::c15, driver_info_x11_t::c16, driver_info_x11_t::c24, driver_info_x11_t::c32, driver_info_x11_t::c8, driver_info_x11_t::colors, s_hd_t::compat_device, s_hd_t::compat_vendor, driver_info_module_t::conf, driver_info_x11_t::dacspeed, s_hd_t::device, di_display, di_module, di_mouse, di_x11, driver_info_u::display, s_hd_t::driver_info, s_hd_t::drivers, driver_info_x11_t::extensions, free_mem(), free_str_list(), get_cmdline(), driver_info_mouse_t::gpm, hd_data, hd_module_is_active(), hd_probe_feature(), hd_split(), driver_info_display_t::hddb0, driver_info_module_t::hddb0, driver_info_mouse_t::hddb0, driver_info_x11_t::hddb0, driver_info_module_t::hddb1, driver_info_x11_t::hddb1, driver_info_display_t::height, hd_id_t::id, ID_TAG, ID_VALUE, MAKE_ID, driver_info_display_t::max_hsync, driver_info_display_t::max_vsync, driver_info_display_t::min_hsync, driver_info_display_t::min_vsync, driver_info_module_t::mod_args, driver_info_u::module, module_cmd(), driver_info_u::mouse, driver_info_module_t::names, new_str(), driver_info_u::next, s_str_list_t::next, driver_info_x11_t::options, pr_ignx11, driver_info_x11_t::raw, reorder_x11(), driver_info_x11_t::script, search_str_list(), driver_info_x11_t::server, s_str_list_t::str, str_printf(), TAG_SPECIAL, driver_info_any_t::type, s_hd_t::vendor, driver_info_mouse_t::wheels, driver_info_display_t::width, driver_info_u::x11, driver_info_x11_t::x3d, driver_info_mouse_t::xf86, and driver_info_x11_t::xf86_ver.

Referenced by hddb_add_info().

## get_mi_field()

char * get_mi_field | ( | char * | str,
|  | char * | tag,
|  | int | field_len,
|  | unsigned * | value,
|  | unsigned * | has_value )

static

Referenced by parse_modinfo().

## get_res()

hd_res_t * get_res | ( | hd_t * | h,
|  | enum resource_types | t,
|  | unsigned | index )

static

References u_hd_res_t::any, u_hd_res_t::next, s_hd_t::res, and res_any_t::type.

Referenced by isdn_driver(), and module_cmd().

## hd_modinfo_db()

driver_info_t * hd_modinfo_db | ( | hd_data_t * | hd_data,
|  | modinfo_t * | modinfo_db,
|  | hd_t * | hd,
|  | driver_info_t * | drv_info )

static

References add_str_list(), modinfo_t::alias, modinfo_t::base_class, s_hd_t::base_class, s_pci_t::base_class, hd_detail_pci_t::data, s_hd_t::detail, modinfo_t::device, s_hd_t::device, di_module, modinfo_t::has, hd_data, hd_detail_pci, hd_mod_cmp(), hd_id_t::id, ID_VALUE, match_modinfo(), mi_other, mi_pci, s_hd_t::modalias, modinfo_t::module, new_mem(), driver_info_u::next, hd_detail_t::pci, modinfo_t::pci, modinfo_t::prog_if, s_hd_t::prog_if, s_pci_t::prog_if, modinfo_t::sub_class, s_hd_t::sub_class, s_pci_t::sub_class, modinfo_t::sub_device, s_hd_t::sub_device, modinfo_t::sub_vendor, s_hd_t::sub_vendor, hd_detail_t::type, modinfo_t::type, modinfo_t::vendor, and s_hd_t::vendor.

Referenced by hddb_add_info().

## hddb_add_info()

void hddb_add_info | ( | hd_data_t * | hd_data,
|  | hd_t * | hd )

References hddb_search_t::base_class, s_hd_t::base_class, bc_keyboard, bc_monitor, hddb_search_t::bus, s_hd_t::bus, hd_detail_t::ccw, s_hd_t::compat_device, s_hd_t::compat_vendor, ccw_s::cu_model, hddb_search_t::cu_model, hd_detail_ccw_t::data, s_hd_t::detail, hddb_search_t::device, s_hd_t::device, hddb_search_t::driver, s_hd_t::driver_info, dsl_driver(), expand_driver_info(), s_hd_t::tag_s::fixed, free_driver_info(), free_mem(), free_str_list(), get_dsl_info(), get_isdn_info(), hd_data, hd_modinfo_db(), hd_set_hw_class(), hd_split(), hddb_search(), hddb_to_device_driver(), he_baseclass_id, he_baseclass_name, he_bus_id, he_bus_name, he_detail_ccw_data_cu_model, he_device_id, he_device_name, he_driver, he_hwclass, he_progif_id, he_progif_name, he_requires, he_rev_id, he_rev_name, he_serial, he_subclass_id, he_subclass_name, he_subdevice_id, he_subdevice_name, he_subvendor_id, he_subvendor_name, he_vendor_id, he_vendor_name, hddb_search_t::hwclass, hd_id_t::id, s_hd_t::is, isdn_driver(), kbd_driver(), hddb_search_t::key, cdb_isdn_card::lname, MAKE_ID, s_hd_t::model, monitor_driver(), hd_id_t::name, new_str(), hddb_search_t::prog_if, s_hd_t::prog_if, s_hd_t::ref, hddb_search_t::revision, s_hd_t::revision, hddb_search_t::serial, s_hd_t::serial, hddb_search_t::sub_class, s_hd_t::sub_class, hddb_search_t::sub_device, s_hd_t::sub_device, hddb_search_t::sub_vendor, s_hd_t::sub_vendor, s_hd_t::tag, TAG_SPECIAL, hddb_search_t::value, hddb_search_t::vendor, s_hd_t::vendor, and s_hd_t::is_s::with_acpi.

Referenced by hd_display_adapter(), hd_module_list(), hd_scan_int(), int_wlan(), and prop2hd().

## hddb_dump()

void hddb_dump | ( | hddb2_data_t * | hddb,
|  | FILE * | f )

References hddb_dump_skey(), hddb_list_s::key, hddb_list_s::key_mask, hddb2_data_t::list, hddb2_data_t::list_len, pref_add, pref_new, hddb_list_s::value, and hddb_list_s::value_mask.

## hddb_dump_ent_name()

void hddb_dump_ent_name | ( | hddb2_data_t * | hddb,
|  | FILE * | f,
|  | char | pre,
|  | hddb_entry_t | ent )

References hddb_entry_strings.

Referenced by hddb_dump_skey().

## hddb_dump_raw()

void hddb_dump_raw | ( | hddb2_data_t * | hddb,
|  | FILE * | f )

References DATA_FLAG, DATA_VALUE, eisa_vendor_str(), FLAG_ID, FLAG_MASK, FLAG_RANGE, FLAG_STRING, hid_tag_name(), ID_TAG, ID_VALUE, hddb2_data_t::ids, hddb2_data_t::ids_len, hddb2_data_t::ids_max, hddb_list_s::key, hddb_list_s::key_mask, hddb2_data_t::list, hddb2_data_t::list_len, hddb2_data_t::list_max, hddb2_data_t::strings, hddb2_data_t::strings_len, hddb2_data_t::strings_max, TAG_EISA, hddb_list_s::value, and hddb_list_s::value_mask.

## hddb_dump_skey()

void hddb_dump_skey | ( | hddb2_data_t * | hddb,
|  | FILE * | f,
|  | prefix_t | pre,
|  | hddb_entry_mask_t | key_mask,
|  | unsigned | key )

References DATA_FLAG, DATA_VALUE, eisa_vendor_str(), FLAG_CONT, FLAG_ID, FLAG_MASK, FLAG_RANGE, FLAG_STRING, hd_hw_item_name(), hddb_dump_ent_name(), he_baseclass_id, he_bus_id, he_driver, he_driver_any, he_driver_display, he_driver_module_config, he_driver_module_insmod, he_driver_module_modprobe, he_driver_mouse, he_driver_xfree, he_driver_xfree_config, he_hwclass, he_progif_id, he_subclass_id, he_subvendor_id, he_vendor_id, hid_tag_name(), ID_TAG, ID_VALUE, hddb2_data_t::ids, hddb2_data_t::ids_len, pref_add, pref_and, hddb2_data_t::strings, and TAG_EISA.

Referenced by hddb_dump().

## hddb_get_packages()

str_list_t * hddb_get_packages | ( | hd_data_t * | hd_data | ) |

Todo
  implement in hddb.c

References hd_data.

## hddb_init()

void hddb_init | ( | hd_data_t * | hd_data | ) |

References hd_data, hddb_init_external(), hddb_init_pci(), and hddb_internal.

Referenced by hd_read_config(), and hd_scan().

## hddb_init_external()

void hddb_init_external | ( | hd_data_t * | hd_data | ) |

static

References ADD2LOG, add_entry(), clear_entry(), cmp_dir_entry_s(), free_mem(), free_str_list(), hd_data, hd_get_hddb_path(), he_nomask, hddb2_data_t::ids, hddb_list_s::key, line_s::key, hddb_list_s::key_mask, hddb2_data_t::list, new_mem(), s_str_list_t::next, parse_line(), pref_add, pref_and, pref_empty, pref_new, pref_or, line_s::prefix, read_dir(), read_file(), sort_str_list(), store_entry(), store_list(), s_str_list_t::str, hddb2_data_t::strings, hddb_list_s::value, line_s::value, and hddb_list_s::value_mask.

Referenced by hddb_init().

## hddb_init_pci()

void hddb_init_pci | ( | hd_data_t * | hd_data | ) |

static

References free_mem(), free_str_list(), hd_data, parse_modinfo(), read_file(), and str_printf().

Referenced by hddb_init().

## hddb_search()

int hddb_search | ( | hd_data_t * | hd_data,
|  | hddb_search_t * | hs,
|  | int | max_recursions )

static

References compare_ids(), complete_ids(), hd_data, hddb_list_s::key, hddb_search_t::key, hddb_list_s::key_mask, hddb2_data_t::list, hddb2_data_t::list_len, hddb_list_s::value, hddb_search_t::value, hddb_list_s::value_mask, and hddb_search_t::value_mask.

Referenced by device_class(), hddb_add_info(), and sub_device_class().

## hddb_to_device_driver()

driver_info_t * hddb_to_device_driver | ( | hd_data_t * | hd_data,
|  | hddb_search_t * | hs )

static

References add_str_list(), driver_info_u::any, di_any, di_display, di_module, di_mouse, di_x11, hddb_search_t::driver, free_mem(), hd_data, driver_info_any_t::hddb0, driver_info_any_t::hddb1, driver_info_module_t::modprobe, driver_info_u::module, new_mem(), new_str(), driver_info_u::next, s_str_list_t::next, s_str_list_t::str, and driver_info_any_t::type.

Referenced by hddb_add_info().

## hid_tag_name()

char * hid_tag_name | ( | int | tag | ) |

References hid_tag_names.

Referenced by hddb_dump_raw(), and hddb_dump_skey().

## hid_tag_name2()

char * hid_tag_name2 | ( | int | tag | ) |

References hid_tag_names2.

Referenced by dump_hid(), and dump_hid2().

## isdn_driver()

driver_info_t * isdn_driver | ( | hd_data_t * | hd_data,
|  | hd_t * | hd,
|  | cdb_isdn_card * | cic )

static

References add_str_list(), isdn_parm_s::alt_value, isdn_parm_s::alt_values, s_hd_t::bus, bus_pci, CDBISDN_P_IO, CDBISDN_P_IRQ, CDBISDN_P_MEM, isdn_parm_s::conflict, isdn_parm_s::def_value, di_isdn, isdn_parm_s::flags, free_mem(), free_str_list(), get_res(), hd_cdbisdn_get_vario(), hd_data, hd_split(), driver_info_isdn_t::i4l_name, driver_info_isdn_t::i4l_subtype, driver_info_isdn_t::i4l_type, hd_id_t::id, cdb_isdn_vario::io, cdb_isdn_vario::irq, driver_info_u::isdn, cdb_isdn_card::lname, cdb_isdn_vario::membase, isdn_parm_s::name, cdb_isdn_vario::need_pkg, new_mem(), new_str(), driver_info_u::next, s_str_list_t::next, cdb_isdn_vario::next_vario, driver_info_isdn_t::params, res_io, res_irq, res_mem, search_str_list(), s_str_list_t::str, cdb_isdn_vario::subtyp, cdb_isdn_vario::typ, driver_info_isdn_t::type, isdn_parm_s::type, update_irq_usage(), isdn_parm_s::valid, isdn_parm_s::value, and cdb_isdn_card::vario.

Referenced by hddb_add_info().

## kbd_driver()

driver_info_t * kbd_driver | ( | hd_data_t * | hd_data,
|  | hd_t * | hd )

static

References arch_alpha, arch_intel, arch_ppc, arch_ppc64, arch_sparc, arch_sparc64, arch_x86_64, s_hd_t::base_class, bc_internal, s_hd_t::bus, bus_usb, usb_s::country, hd_detail_t::cpu, hd_detail_cpu_t::data, hd_detail_usb_t::data, s_hd_t::detail, s_hd_t::device, di_kbd, free_mem(), hd_cpu_arch(), hd_data, hd_detail_cpu, hd_detail_usb, hd_id_t::id, ID_TAG, ID_VALUE, driver_info_u::kbd, driver_info_kbd_t::keymap, MAKE_ID, new_mem(), new_str(), s_hd_t::next, s_hd_t::prog_if, sc_int_cpu, sc_keyboard_console, s_hd_t::sub_class, s_hd_t::sub_device, TAG_SPECIAL, TAG_USB, driver_info_kbd_t::type, hd_detail_t::type, hd_detail_t::usb, cpu_info_t::vend_name, s_hd_t::vendor, driver_info_kbd_t::XkbLayout, driver_info_kbd_t::XkbModel, and driver_info_kbd_t::XkbRules.

Referenced by hddb_add_info().

## match_modinfo()

int match_modinfo | ( | hd_data_t * | hd_data,
|  | modinfo_t * | db,
|  | modinfo_t * | match )

return prio, 0: no match

References modinfo_t::alias, modinfo_t::base_class, modinfo_t::device, modinfo_t::has, hd_data, mi_none, mi_other, mi_pci, modinfo_t::module, modinfo_t::pci, modinfo_t::prog_if, modinfo_t::sub_class, modinfo_t::sub_device, modinfo_t::sub_vendor, modinfo_t::type, and modinfo_t::vendor.

Referenced by hd_modinfo_db().

## module_cmd()

char * module_cmd | ( | hd_t * | hd,
|  | char * | cmd )

static

References res_io_t::base, res_irq_t::base, hd_detail_isapnp_t::data, s_hd_t::detail, isapnp_dev_t::flags, get_res(), u_hd_res_t::io, u_hd_res_t::irq, s_hd_t::is, hd_detail_t::isapnp, s_hd_t::is_s::isapnp, isapnp_flag_act, res_io, and res_irq.

Referenced by expand_driver_info().

## monitor_driver()

driver_info_t * monitor_driver | ( | hd_data_t * | hd_data,
|  | hd_t * | hd )

static

References u_hd_res_t::any, driver_info_display_t::bandwidth, monitor_info_t::clock, hd_detail_monitor_s::data, s_hd_t::detail, di_display, driver_info_u::display, hd_data, hd_detail_monitor, driver_info_display_t::hdisp, monitor_info_t::hdisp, driver_info_display_t::height, height, res_monitor_t::height, driver_info_display_t::hflag, monitor_info_t::hflag, driver_info_display_t::hsyncend, monitor_info_t::hsyncend, driver_info_display_t::hsyncstart, monitor_info_t::hsyncstart, driver_info_display_t::htotal, monitor_info_t::htotal, driver_info_display_t::max_hsync, monitor_info_t::max_hsync, driver_info_display_t::max_vsync, monitor_info_t::max_vsync, driver_info_display_t::min_hsync, monitor_info_t::min_hsync, driver_info_display_t::min_vsync, monitor_info_t::min_vsync, hd_detail_t::monitor, u_hd_res_t::monitor, new_mem(), u_hd_res_t::next, s_hd_t::res, res_monitor, driver_info_display_t::type, hd_detail_t::type, res_any_t::type, driver_info_display_t::vdisp, monitor_info_t::vdisp, driver_info_display_t::vflag, monitor_info_t::vflag, driver_info_display_t::vsyncend, monitor_info_t::vsyncend, driver_info_display_t::vsyncstart, monitor_info_t::vsyncstart, driver_info_display_t::vtotal, monitor_info_t::vtotal, driver_info_display_t::width, res_monitor_t::width, and width.

Referenced by hddb_add_info().

## parse_id()

int parse_id | ( | char * | str,
|  | unsigned * | id,
|  | unsigned * | range,
|  | unsigned * | mask )

References ID_VALUE, MAKE_ID, name2eisa_id(), TAG_EISA, TAG_PCI, TAG_PCMCIA, TAG_SDIO, TAG_SPECIAL, and TAG_USB.

Referenced by add_entry().

## parse_line()

line_t * parse_line | ( | char * | str | ) |

static

References free_mem(), hddb_entry_strings, line_s::key, new_str(), pref_add, pref_and, pref_empty, pref_new, pref_or, line_s::prefix, line_s::raw, and line_s::value.

Referenced by hddb_init_external().

## parse_modinfo()

modinfo_t * parse_modinfo | ( | str_list_t * | file | ) |

static

References modinfo_t::alias, modinfo_t::base_class, modinfo_t::device, get_mi_field(), modinfo_t::has, mi_none, mi_other, mi_pci, modinfo_t::module, module, new_mem(), new_str(), s_str_list_t::next, modinfo_t::pci, modinfo_t::prog_if, s_str_list_t::str, modinfo_t::sub_class, modinfo_t::sub_device, modinfo_t::sub_vendor, modinfo_t::type, and modinfo_t::vendor.

Referenced by hddb_init_pci().

## reorder_x11()

driver_info_t * reorder_x11 | ( | driver_info_t * | di0,
|  | char * | info )

static

References driver_info_u::any, di_x11, free_driver_info(), free_mem(), info, new_mem(), new_str(), driver_info_u::next, driver_info_x11_t::server, driver_info_any_t::type, driver_info_u::x11, and driver_info_x11_t::xf86_ver.

Referenced by expand_driver_info().

## store_entry()

unsigned store_entry | ( | hddb2_data_t * | x,
|  | tmp_entry_t * | te )

static

References he_nomask, tmp_entry_t::len, store_value(), and tmp_entry_t::val.

Referenced by hddb_init_external().

## store_list()

unsigned store_list | ( | hddb2_data_t * | x,
|  | hddb_list_t * | list )

static

References hddb2_data_t::list, hddb2_data_t::list_len, hddb2_data_t::list_max, and resize_mem().

Referenced by hddb_init_external().

## store_string()

unsigned store_string | ( | hddb2_data_t * | x,
|  | char * | str )

static

References resize_mem(), hddb2_data_t::strings, hddb2_data_t::strings_len, and hddb2_data_t::strings_max.

Referenced by add_entry().

## store_value()

unsigned store_value | ( | hddb2_data_t * | x,
|  | unsigned | val )

static

References hddb2_data_t::ids, hddb2_data_t::ids_len, hddb2_data_t::ids_max, and resize_mem().

Referenced by store_entry().

## sub_device_class()

unsigned sub_device_class | ( | hd_data_t * | hd_data,
|  | unsigned | vendor,
|  | unsigned | device,
|  | unsigned | sub_vendor,
|  | unsigned | sub_device )

References hddb_search_t::base_class, device, hddb_search_t::device, hd_data, hddb_search(), he_baseclass_id, he_device_id, he_subclass_id, he_subdevice_id, he_subvendor_id, he_vendor_id, hd_id_t::id, hddb_search_t::key, hddb_search_t::sub_class, hddb_search_t::sub_device, hddb_search_t::sub_vendor, hddb_search_t::value, hddb_search_t::vendor, and vendor.

## Variable Documentation

## hddb_internal

hddb2_data_t hddb_internal

extern

Referenced by hddb_init().

## hid_tag_names

char* hid_tag_names[] = { "", "pci ", "eisa ", "usb ", "special ", "pcmcia ", "sdio " }

static

Referenced by hid_tag_name().

## hid_tag_names2

char* hid_tag_names2[] = { "", "pci ", "eisa ", "usb ", "int ", "pcmcia ", "sdio " }

static

Referenced by hid_tag_name2().