Implementation internals

various functions commmon to all probing modules More...

## Topics

| Hardware abstraction (HAL) information
| Bus scanning code
| Device handling
| Information gathering
| Hardware DB (HDDB)
| Hardware DB functions.
| Hardware scan console output
| Hardware scan console output functions.
| Internal utilities
| Internal utility functions.
| UDI manual hardware
| Manual hardware information functions (/var/lib/hardware/udi/).

## Data Structures

struct | disk_s
struct | pr_flags_t
struct | s_mod_names

## Macros

#define | u64 uint64_t
#define | BLKSSZGET _IO(0x12,104) /* get block device sector size */
#define | INT_CRC(a, b)
#define | STR_CRC(a, b)

## Typedefs

typedef struct disk_s | disk_t

## Functions

static pr_flags_t * | pr_flags_by_name (char *name)
static pr_flags_t * | pr_flags_by_id (enum probe_feature feature)
static int | set_probe_val (hd_data_t *hd_data, enum probe_feature feature, char *val)
static void | fix_probe_features (hd_data_t *hd_data)
static void | set_probe_feature (hd_data_t *hd_data, enum probe_feature feature, unsigned val)
static void | free_old_hd_entries (hd_data_t *hd_data)
static hd_t * | free_hd_entry (hd_t *hd)
static hd_t * | add_hd_entry2 (hd_t **hd, hd_t *new_hd)
static void | timeout_alarm_handler (int signal)
static void | get_probe_env (hd_data_t *hd_data)
static void | hd_scan_xtra (hd_data_t *hd_data)
static hd_t * | hd_get_device_by_id (hd_data_t *hd_data, char *id)
static int | has_item (hd_hw_item_t *items, hd_hw_item_t item)
static int | has_hw_class (hd_t *hd, hd_hw_item_t *items)
static void | hd_scan_with_hal (hd_data_t *hd_data)
static void | hd_scan_no_hal (hd_data_t *hd_data)
static void | test_read_block0_open (void *arg)
static void | get_kernel_version (hd_data_t *hd_data)
static int | is_modem (hd_data_t *hd_data, hd_t *hd)
static int | is_audio (hd_data_t *hd_data, hd_t *hd)
static int | is_pppoe (hd_data_t *hd_data, hd_t *hd)
static void | assign_hw_class (hd_data_t *hd_data, hd_t *hd)
static void | short_vendor (char *vendor)
static void | create_model_name (hd_data_t *hd_data, hd_t *hd)
static void | copy_log2shm (hd_data_t *hd_data)
static void | sigchld_handler (int)
static void | sigusr1_handler (int)
static char * | hd_shm_add_str (hd_data_t *hd_data, char *str)
static str_list_t * | hd_shm_add_str_list (hd_data_t *hd_data, str_list_t *sl)
static hd_udevinfo_t * | hd_free_udevinfo (hd_udevinfo_t *ui)
static hd_sysfsdrv_t * | hd_free_sysfsdrv (hd_sysfsdrv_t *sf)
int | get_probe_val_int (hd_data_t *hd_data, enum probe_feature feature)
char * | get_probe_val_str (hd_data_t *hd_data, enum probe_feature feature)
str_list_t * | get_probe_val_list (hd_data_t *hd_data, enum probe_feature feature)
void | hd_set_probe_feature (hd_data_t *hd_data, enum probe_feature feature)
void | hd_clear_probe_feature (hd_data_t *hd_data, enum probe_feature feature)
int | hd_probe_feature (hd_data_t *hd_data, enum probe_feature feature)
void | hd_set_probe_feature_hw (hd_data_t *hd_data, hd_hw_item_t item)
hd_data_t * | hd_free_hd_data (hd_data_t *hd_data)
| Free all data.
hal_prop_t * | hd_free_hal_properties (hal_prop_t *prop)
hal_device_t * | hd_free_hal_devices (hal_device_t *dev)
driver_info_t * | free_driver_info (driver_info_t *di)
int | exists_hd_entry (hd_data_t *hd_data, hd_t *old_hd, hd_t *hd_ex)
hd_t * | hd_free_hd_list (hd_t *hd)
| Free hardware items returned by e.g. hd_list().
hd_detail_t * | free_hd_detail (hd_detail_t *d)
misc_t * | free_misc (misc_t *m)
scsi_t * | free_scsi (scsi_t *scsi, int free_all)
hd_manual_t * | hd_free_manual (hd_manual_t *manual)
void * | new_mem (size_t size)
void * | resize_mem (void *p, size_t n)
void * | add_mem (void *p, size_t elem_size, size_t n)
char * | new_str (const char *s)
void * | free_mem (void *p)
void | join_res_io (hd_res_t **res1, hd_res_t *res2)
void | join_res_irq (hd_res_t **res1, hd_res_t *res2)
void | join_res_dma (hd_res_t **res1, hd_res_t *res2)
int | have_common_res (hd_res_t *res1, hd_res_t *res2)
hd_res_t * | free_res_list (hd_res_t *res)
hd_res_t * | add_res_entry (hd_res_t **res, hd_res_t *new_res)
hd_t * | add_hd_entry (hd_data_t *hd_data, unsigned line, unsigned count)
void | hd_scan (hd_data_t *hd_data)
| the actual hardware scan
char * | isa_id2str (unsigned id)
char * | eisa_vendor_str (unsigned v)
unsigned | name2eisa_id (char *s)
char * | canon_str (char *s, int len)
int | hex (char *s, int n)
int | str2float (char *s, int n)
char * | float2str (int f, int n)
hd_t * | hd_get_device_by_idx (hd_data_t *hd_data, unsigned idx)
char * | mod_name_by_idx (unsigned idx)
void | hd_log (hd_data_t *hd_data, char *buf, ssize_t len)
void | hd_log_printf (hd_data_t *hd_data, char *format,...)
void | hd_log_hex (hd_data_t *hd_data, int with_ascii, unsigned data_len, unsigned char *data)
void | str_printf (char **buf, int offset, char *format,...)
void | hexdump (char **buf, int with_ascii, unsigned data_len, unsigned char *data)
str_list_t * | read_file (char *file_name, unsigned start_line, unsigned lines)
str_list_t * | read_dir (char *dir_name, int type)
str_list_t * | read_dir_canonical (char *dir_name, int type)
char * | hd_read_sysfs_link (char *base_dir, char *link_name)
str_list_t * | subcomponent_list (str_list_t *list, char *comp, int max)
int | has_subcomponent (str_list_t *list, char *comp)
void | progress (hd_data_t *hd_data, unsigned pos, unsigned count, char *msg)
enum probe_feature | hd_probe_feature_by_name (char *name)
char * | hd_probe_feature_by_value (enum probe_feature feature)
void | remove_hd_entries (hd_data_t *hd_data)
void | remove_tagged_hd_entries (hd_data_t *hd_data)
int | hd_module_is_active (hd_data_t *hd_data, char *mod)
int | hd_has_pcmcia (hd_data_t *hd_data)
int | hd_apm_enabled (hd_data_t *hd_data)
int | hd_usb_support (hd_data_t *hd_data)
int | hd_smp_support (hd_data_t *hd_data)
int | hd_color (hd_data_t *hd_data)
int | hd_mac_color (hd_data_t *hd_data)
unsigned | hd_display_adapter (hd_data_t *hd_data)
enum cpu_arch | hd_cpu_arch (hd_data_t *hd_data)
enum boot_arch | hd_boot_arch (hd_data_t *hd_data)
int | hd_is_uml (hd_data_t *hd_data)
int | hd_is_sgi_altix (hd_data_t *hd_data)
int | hd_is_xen (hd_data_t *hd_data)
void | hd_copy (hd_t *dst, hd_t *src)
hd_t * | hd_list (hd_data_t *hd_data, hd_hw_item_t item, int rescan, hd_t *hd_old)
hd_t * | hd_list_with_status (hd_data_t *hd_data, hd_hw_item_t item, hd_status_t status)
hd_t * | hd_list2 (hd_data_t *hd_data, hd_hw_item_t *items, int rescan)
hd_t * | hd_list_with_status2 (hd_data_t *hd_data, hd_hw_item_t *items, hd_status_t status)
hd_t * | hd_base_class_list (hd_data_t *hd_data, unsigned base_class)
hd_t * | hd_sub_class_list (hd_data_t *hd_data, unsigned base_class, unsigned sub_class)
hd_t * | hd_bus_list (hd_data_t *hd_data, unsigned bus)
const char * | hd_busid_to_hwcfg (int busid)
int | hd_timeout (void(*func)(void *), void *arg, int timeout)
str_list_t * | read_kmods (hd_data_t *hd_data)
str_list_t * | get_cmdline (hd_data_t *hd_data, char *key)
char * | get_cmd_param (hd_data_t *hd_data, int field)
unsigned | get_disk_crc (unsigned char *data, unsigned len)
disk_t * | add_disk_entry (disk_t **dl, disk_t *new_dl)
disk_t * | free_disk_list (disk_t *dl)
int | dev_name_duplicate (disk_t *dl, char *dev_name)
unsigned | hd_boot_disk (hd_data_t *hd_data, int *matches)
void | update_irq_usage (hd_data_t *hd_data)
int | run_cmd (hd_data_t *hd_data, char *cmd)
int | probe_module (hd_data_t *hd_data, char *module)
int | load_module_with_params (hd_data_t *hd_data, char *module, char *params)
int | load_module (hd_data_t *hd_data, char *module)
int | unload_module (hd_data_t *hd_data, char *module)
int | cmp_hd (hd_t *hd1, hd_t *hd2)
unsigned | has_something_attached (hd_data_t *hd_data, hd_t *hd)
void | crc64 (uint64_t *id, void *p, int len)
char * | numid2str (uint64_t id, int len)
void | hd_add_old_id (hd_t *hd)
void | hd_add_id (hd_data_t *hd_data, hd_t *hd)
devtree_t * | free_devtree (hd_data_t *hd_data)
unsigned char * | read_block0 (hd_data_t *hd_data, char *dev, int *timeout)
char * | vend_id2str (unsigned vend)
int | hd_change_config_status (hd_data_t *hd_data, const char *id, hd_status_t status, const char *config_string)
int | hd_change_status (const char *id, hd_status_t status, const char *config_string)
int | hd_getdisksize (hd_data_t *hd_data, char *dev, int fd, hd_res_t **geo, hd_res_t **size)
str_list_t * | hd_split (char del, const char *str)
char * | hd_join (char *del, str_list_t *str)
int | is_pcmcia_ctrl (hd_data_t *hd_data, hd_t *hd)
void | hd_set_hw_class (hd_t *hd, hd_hw_item_t hw_class)
int | hd_is_hw_class (hd_t *hd, hd_hw_item_t hw_class)
void | hd_fork (hd_data_t *hd_data, int timeout, int total_timeout)
void | hd_fork_done (hd_data_t *hd_data)
void | hd_shm_init (hd_data_t *hd_data)
void | hd_shm_clean (hd_data_t *hd_data)
void | hd_shm_done (hd_data_t *hd_data)
void * | hd_shm_add (hd_data_t *hd_data, void *ptr, unsigned len)
int | hd_is_shm_ptr (hd_data_t *hd_data, void *ptr)
void | hd_move_to_shm (hd_data_t *hd_data)
void | read_udevinfo (hd_data_t *hd_data)
char * | hd_version ()
hd_t * | hd_find_sysfs_id (hd_data_t *hd_data, char *id)
hd_t * | hd_find_sysfs_id_devname (hd_data_t *hd_data, char *id, char *devname)
void | hd_sysfs_driver_list (hd_data_t *hd_data)
int | hd_report_this (hd_data_t *hd_data, hd_t *hd)
str_list_t * | hd_module_list (hd_data_t *hd_data, unsigned id)
int | hd_read_mmap (hd_data_t *hd_data, char *name, unsigned char *buf, off_t start, unsigned size)
char * | hd_get_hddb_dir ()
char * | hd_get_hddb_path (char *sub)
int | hd_attr_uint (char *attr, uint64_t *u, int base)
str_list_t * | hd_attr_list (char *str)
char * | hd_sysfs_id (char *path)
char * | hd_sysfs_name2_dev (char *str)
char * | hd_sysfs_dev2_name (char *str)
char * | get_sysfs_attr (const char *bus, const char *device, const char *attr)
char * | get_sysfs_attr_by_path (const char *path, const char *attr)
char * | get_sysfs_attr_by_path2 (const char *path, const char *attr, unsigned *len)
int | hd_mod_cmp (char *str1, char *str2)
str_list_t * | sort_str_list (str_list_t *sl0, int(*cmp_func)(const void *, const void *))
str_list_t * | search_str_list (str_list_t *sl, char *str)
| Search a string list for a string.
str_list_t * | add_str_list (str_list_t **sl, char *str)
| Add a string to a string list.
str_list_t * | free_str_list (str_list_t *list)
| Free the memory allocated by a string list.
str_list_t * | reverse_str_list (str_list_t *list)
| Reverse string list.

## Variables

static pid_t | child_id
static volatile pid_t | child
static hd_data_t * | hd_data_sig
static struct s_mod_names | pr_modules []
static pr_flags_t | pr_flags []

## Detailed Description

various functions commmon to all probing modules

## Macro Definition Documentation

## BLKSSZGET

#define BLKSSZGET _IO(0x12,104) /* get block device sector size */

Referenced by hd_getdisksize().

## INT_CRC

#define INT_CRC | ( |  | a,
|  |  | b )

Value:
crc64(&a, &hd->b, sizeof hd->b);
crc64
void crc64(uint64_t *id, void *p, int len)
Definition hd.c:4197

Referenced by hd_add_id(), and hd_add_old_id().

## STR_CRC

#define STR_CRC | ( |  | a,
|  |  | b )

Value:
if(hd->b) crc64(&a, hd->b, strlen(hd->b) + 1);

Referenced by hd_add_id(), and hd_add_old_id().

## u64

#define u64 uint64_t

Referenced by dump_normal().

## Typedef Documentation

## disk_t

typedef struct disk_s disk_t

## Function Documentation

## add_disk_entry()

disk_t * add_disk_entry | ( | disk_t ** | dl,
|  | disk_t * | new_dl )

References disk_s::next.

Referenced by hd_boot_disk().

## add_hd_entry()

hd_t * add_hd_entry | ( | hd_data_t * | hd_data,
|  | unsigned | line,
|  | unsigned | count )

References add_hd_entry2(), s_hd_t::count, hd_data, s_hd_t::idx, line, s_hd_t::line, s_hd_t::module, and new_mem().

Referenced by add_kma(), add_monitor(), add_mv643xx_eth(), add_partitions(), add_pci(), add_pci_data(), add_serial_console(), add_serial_modem(), add_serial_mouse(), add_uml(), add_xen_network(), add_xen_storage(), add_xpnet(), do_lp(), do_zip(), get_block_devs(), get_generic_scsi_devs(), get_input_devices(), get_scsi_tape(), get_usb_devs(), hd_read_ibmebus(), hd_read_macio(), hd_read_mdio(), hd_read_mmc(), hd_read_nd(), hd_read_of_platform(), hd_read_platform(), hd_read_ps3_system_bus(), hd_read_sdio(), hd_read_uisvirtpci(), hd_read_vio(), hd_read_virtio(), hd_read_visorbus(), hd_read_vm(), hd_read_xen(), hd_scan_braille(), hd_scan_cpu(), hd_scan_dsl(), hd_scan_fb(), hd_scan_floppy(), hd_scan_isdn(), hd_scan_kbd(), hd_scan_manual(), hd_scan_memory(), hd_scan_misc(), hd_scan_misc2(), hd_scan_monitor(), hd_scan_net(), hd_scan_serial(), hd_scan_sys(), hd_scan_xtra(), pcmcia_read_data(), and read_cpuinfo().

## add_hd_entry2()

hd_t * add_hd_entry2 | ( | hd_t ** | hd,
|  | hd_t * | new_hd )

static

References s_hd_t::next.

Referenced by add_hd_entry(), hd_base_class_list(), hd_bus_list(), hd_free_hd_data(), hd_list(), hd_list2(), hd_list_with_status(), hd_list_with_status2(), and hd_sub_class_list().

## add_mem()

void * add_mem | ( | void * | p,
|  | size_t | elem_size,
|  | size_t | n )

Referenced by read_dmas(), read_ioports(), and read_irqs().

## add_res_entry()

hd_res_t * add_res_entry | ( | hd_res_t ** | res,
|  | hd_res_t * | new_res )

References u_hd_res_t::next.

Referenced by add_disk_size(), add_edid_info(), add_ide_sysfs_info(), add_kma(), add_lcd_info(), add_monitor_res(), add_scsi_sysfs_info(), add_serial_console(), add_serial_modem(), add_uml(), add_xpnet(), do_lp(), gather_resources(), get_linkstate(), get_phwaddr(), get_usb_devs(), hd_getdisksize(), hd_pci_complete_data(), hd_scan_fb(), hd_scan_floppy(), hd_scan_isdn(), hd_scan_memory(), hd_scan_misc(), hd_scan_misc2(), hd_scan_net(), hd_scan_serial(), hd_scan_wlan(), int_fix_usb_scsi(), join_res_dma(), join_res_io(), join_res_irq(), and prop2hd().

## add_str_list()

str_list_t * add_str_list | ( | str_list_t ** | sl,
|  | char * | str )

related

Add a string to a string list.

The new string (str) will be copied!

References new_mem(), new_str(), next, and str.

## assign_hw_class()

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

static

References s_hd_t::base_class, bc_bluetooth, bc_braille, bc_bridge, bc_camera, bc_chipcard, bc_display, bc_dsl, bc_dvb, bc_fingerprint, bc_framebuffer, bc_hub, bc_i2o, bc_internal, bc_isdn, bc_joystick, bc_keyboard, bc_mmc_ctrl, bc_monitor, bc_mouse, bc_multimedia, bc_network, bc_network_interface, bc_partition, bc_printer, bc_scanner, bc_serial, bc_storage, bc_storage_device, bc_tv, s_hd_t::bus, bus_ide, bus_isa, bus_pci, bus_scsi, bus_usb, hd_data, hd_is_hw_class(), hd_set_hw_class(), s_hd_t::hotplug, hp_cardbus, hp_pcmcia, hw_all, hw_bios, hw_block, hw_bluetooth, hw_braille, hw_bridge, hw_camera, hw_cdrom, hw_chipcard, s_hd_t::hw_class, hw_cpu, hw_disk, hw_display, hw_dsl, hw_dvb, hw_fingerprint, hw_floppy, hw_framebuffer, hw_hotplug, hw_hotplug_ctrl, hw_hub, hw_ide, hw_ieee1394, hw_ieee1394_ctrl, hw_isapnp, hw_isdn, hw_joystick, hw_keyboard, hw_manual, hw_memory, hw_mmc_ctrl, hw_modem, hw_monitor, hw_mouse, hw_network, hw_network_ctrl, hw_none, hw_partition, hw_pci, hw_pcmcia, hw_pcmcia_ctrl, hw_pppoe, hw_printer, hw_redasd, hw_scanner, hw_scsi, hw_sound, hw_storage_ctrl, hw_sys, hw_tape, hw_tv, hw_unknown, hw_usb, hw_usb_ctrl, hw_vbe, hw_wlan, hw_zip, hd_id_t::id, s_hd_t::is, is_audio(), is_modem(), is_pcmcia_ctrl(), is_pppoe(), s_hd_t::is_s::isapnp, sc_int_bios, sc_int_cpu, sc_int_main_mem, sc_int_sys, sc_multi_video, sc_sdev_cdrom, sc_sdev_disk, sc_sdev_floppy, sc_sdev_tape, sc_ser_fiber, sc_ser_fire, sc_ser_infiniband, sc_ser_usb, s_hd_t::sub_class, s_hd_t::usb_guid, and s_hd_t::is_s::wlan.

Referenced by hd_scan().

## canon_str()

char * canon_str | ( | char * | s,
|  | int | len )

References free_mem(), new_mem(), and new_str().

Referenced by add_edid_info(), add_ide_sysfs_info(), add_scsi_sysfs_info(), get_input_devices(), get_usb_devs(), guess_modem_name(), hd_manual_read_entry_old(), hd_pci_read_data(), hd_read_cdrom_info(), hd_read_ibmebus(), hd_read_macio(), hd_read_mmc(), hd_read_nd(), hd_read_platform(), hd_read_ps3_system_bus(), hd_read_sdio(), hd_read_vio(), hd_read_virtio(), hd_read_xen(), hd_scan_net(), pcmcia_read_data(), and read_usb_lp().

## cmp_hd()

int cmp_hd | ( | hd_t * | hd1,
|  | hd_t * | hd2 )

References s_hd_t::base_class, s_hd_t::bus, s_hd_t::compat_device, s_hd_t::compat_vendor, s_hd_t::device, s_hd_t::func, hd_id_t::id, s_hd_t::line, s_hd_t::module, s_hd_t::prog_if, s_hd_t::revision, s_hd_t::slot, s_hd_t::sub_class, s_hd_t::sub_vendor, s_hd_t::unix_dev_name, and s_hd_t::vendor.

Referenced by hd_list().

## copy_log2shm()

void copy_log2shm | ( | hd_data_t * | hd_data | ) |

static

References hd_data, hd_shm_add(), hd_data_t::log, hd_data_t::log_max, and hd_data_t::log_size.

Referenced by hd_fork_done(), and sigusr1_handler().

## crc64()

void crc64 | ( | uint64_t * | id,
|  | void * | p,
|  | int | len )

Referenced by hd_sysfs_driver_list().

## create_model_name()

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

static

References s_hd_t::base_class, bc_internal, cpu_info_t::clock, s_hd_t::compat_device, hd_detail_t::cpu, hd_detail_cpu_t::data, s_hd_t::detail, s_hd_t::device, free_mem(), hd_data, hd_detail_cpu, hd_hw_item_name(), s_hd_t::hw_class, hw_cpu, hd_id_t::id, s_hd_t::model, cpu_info_t::model_name, hd_id_t::name, new_str(), short_vendor(), str_printf(), s_hd_t::sub_class, s_hd_t::sub_device, s_hd_t::sub_vendor, hd_detail_t::type, and s_hd_t::vendor.

Referenced by hd_scan().

## dev_name_duplicate()

int dev_name_duplicate | ( | disk_t * | dl,
|  | char * | dev_name )

References disk_s::dev_name, and disk_s::next.

Referenced by hd_boot_disk().

## eisa_vendor_str()

char * eisa_vendor_str | ( | unsigned | v | ) |

Referenced by dump_hid(), dump_hid2(), hddb_dump_raw(), hddb_dump_skey(), and vend_id2str().

## exists_hd_entry()

int exists_hd_entry | ( | hd_data_t * | hd_data,
|  | hd_t * | old_hd,
|  | hd_t * | hd_ex )

References hd_data, and s_hd_t::next.

Referenced by free_old_hd_entries().

## fix_probe_features()

void fix_probe_features | ( | hd_data_t * | hd_data | ) |

static

References hd_data.

Referenced by hd_scan(), hd_set_probe_feature(), and set_probe_feature().

## float2str()

char * float2str | ( | int | f,
|  | int | n )

Referenced by dump_normal(), and reverse_str_list().

## free_devtree()

devtree_t * free_devtree | ( | hd_data_t * | hd_data | ) |

References devtree_s::ccin, devtree_s::compatible, devtree_s::description, s_hd_t::detail, devtree_s::device_type, devtree_s::edid, devtree_s::filename, free_mem(), devtree_s::fru_number, hd_data, hd_detail_devtree, devtree_s::loc_code, devtree_s::model, devtree_s::name, devtree_s::next, s_hd_t::next, devtree_s::part_number, devtree_s::path, devtree_s::serial_number, and hd_detail_t::type.

Referenced by hd_free_hd_data().

## free_disk_list()

disk_t * free_disk_list | ( | disk_t * | dl | ) |

References free_mem(), and disk_s::next.

Referenced by hd_boot_disk().

## free_driver_info()

driver_info_t * free_driver_info | ( | driver_info_t * | di | ) |

References isdn_parm_s::alt_value, driver_info_u::any, driver_info_module_t::conf, di_any, di_display, di_dsl, di_isdn, di_kbd, di_module, di_mouse, di_x11, driver_info_u::dsl, driver_info_x11_t::extensions, free_mem(), free_str_list(), driver_info_mouse_t::gpm, driver_info_any_t::hddb0, driver_info_any_t::hddb1, driver_info_isdn_t::i4l_name, driver_info_u::isdn, driver_info_u::kbd, driver_info_kbd_t::keymap, driver_info_module_t::mod_args, driver_info_dsl_t::mode, driver_info_u::module, driver_info_u::mouse, driver_info_dsl_t::name, isdn_parm_s::name, driver_info_module_t::names, driver_info_u::next, isdn_parm_s::next, driver_info_x11_t::options, driver_info_isdn_t::params, driver_info_x11_t::raw, driver_info_x11_t::script, driver_info_x11_t::server, driver_info_any_t::type, driver_info_u::x11, driver_info_mouse_t::xf86, driver_info_x11_t::xf86_ver, driver_info_kbd_t::XkbLayout, driver_info_kbd_t::XkbModel, and driver_info_kbd_t::XkbRules.

Referenced by free_hd_entry(), hddb_add_info(), reorder_x11(), and reverse_str_list().

## free_hd_detail()

hd_detail_t * free_hd_detail | ( | hd_detail_t * | d | ) |

References cdrom_info_s::application, hd_detail_t::bios, usb_s::c, isapnp_dev_t::card, isapnp_card_t::card_regs, hd_detail_t::ccw, hd_detail_t::cdrom, usb_s::cloned, hd_detail_t::cpu, cdrom_info_s::creation_date, usb_s::d, hd_detail_bios_t::data, hd_detail_ccw_t::data, hd_detail_cdrom_t::data, hd_detail_cpu_t::data, hd_detail_floppy_t::data, hd_detail_isapnp_t::data, hd_detail_joystick_t::data, hd_detail_monitor_s::data, hd_detail_pci_t::data, hd_detail_prom_t::data, hd_detail_scsi_t::data, hd_detail_sys_t::data, hd_detail_usb_t::data, isapnp_res_t::data, memory_range_t::data, usb_s::driver, usb_s::e, cdrom_info_s::el_torito, cpu_info_t::features, hd_detail_t::floppy, free_mem(), free_scsi(), free_str_list(), sys_info_t::generation, hd_detail_bios, hd_detail_ccw, hd_detail_cdrom, hd_detail_cpu, hd_detail_devtree, hd_detail_floppy, hd_detail_isapnp, hd_detail_joystick, hd_detail_monitor, hd_detail_pci, hd_detail_prom, hd_detail_scsi, hd_detail_sys, hd_detail_usb, usb_s::i, cdrom_info_s::id_string, hd_detail_t::isapnp, cdrom_info_s::iso9660, hd_detail_t::joystick, cdrom_info_s::label, sys_info_t::lang, bios_info_t::lcd, isapnp_card_t::ldev_regs, s_pci_t::log, usb_s::manufact, vbe_info_t::mode, sys_info_t::model, cpu_info_t::model_name, hd_detail_t::monitor, bios_info_t::mouse, bios_info_t::name, cdrom_info_s::name, monitor_info_t::name, hd_detail_monitor_s::next, vbe_info_t::oem_name, usb_s::p, hd_detail_t::pci, cpu_info_t::platform, cdrom_info_s::preparer, usb_s::product, vbe_info_t::product_name, vbe_info_t::product_revision, hd_detail_t::prom, cdrom_info_s::publisher, usb_s::raw_descr, isapnp_dev_t::ref, isapnp_card_t::res, isapnp_card_t::res_len, usb_s::s, hd_detail_t::scsi, isapnp_card_t::serial, monitor_info_t::serial, sys_info_t::serial, usb_s::serial, hd_detail_t::sys, s_pci_t::sysfs_bus_id, s_pci_t::sysfs_id, sys_info_t::system_type, usb_s::t, bios_info_t::type, hd_detail_t::type, hd_detail_t::usb, bios_info_t::vbe, cpu_info_t::vend_name, bios_info_t::vendor, monitor_info_t::vendor, sys_info_t::vendor, vbe_info_t::vendor_name, and cdrom_info_s::volume.

Referenced by add_cdrom_info(), add_joystick_details(), free_hd_entry(), and hd_read_cdrom_info().

## free_hd_entry()

hd_t * free_hd_entry | ( | hd_t * | hd | ) |

static

References s_hd_t::base_class, s_hd_t::block0, s_hd_t::bus, s_hd_t::child_ids, s_hd_t::compat_device, s_hd_t::compat_vendor, s_hd_t::config_string, s_hd_t::detail, s_hd_t::device, s_hd_t::driver, s_hd_t::driver_info, s_hd_t::driver_modules, s_hd_t::drivers, s_hd_t::extra_info, free_driver_info(), free_hd_detail(), free_mem(), free_res_list(), free_str_list(), s_hd_t::hal_prop, hd_free_hal_properties(), s_hd_t::modalias, s_hd_t::model, hd_id_t::name, s_hd_t::old_unique_id, s_hd_t::parent_id, s_hd_t::persistent_prop, s_hd_t::prog_if, s_hd_t::res, s_hd_t::revision, s_hd_t::rom_id, s_hd_t::serial, s_hd_t::sub_class, s_hd_t::sub_device, s_hd_t::sub_vendor, s_hd_t::sysfs_bus_id, s_hd_t::sysfs_device_link, s_hd_t::sysfs_id, s_hd_t::udi, s_hd_t::unique_id, s_hd_t::unique_id1, s_hd_t::unix_dev_name, s_hd_t::unix_dev_name2, s_hd_t::unix_dev_names, s_hd_t::usb_guid, and s_hd_t::vendor.

Referenced by free_old_hd_entries(), and hd_free_hd_list().

## free_mem()

void * free_mem | ( | void * | p | ) |

Referenced by _read_klog(), add_disk_size(), add_edid_info(), add_entry(), add_ide_sysfs_info(), add_if_name(), add_input_dev(), add_mv643xx_eth(), add_pci_data(), add_scsi_sysfs_info(), add_serial_console(), add_serial_mouse(), all_bits(), canon_str(), contains_word(), create_model_name(), do_lp(), do_zip(), dsl_driver(), dump_bios(), dump_normal(), dump_pci_data(), expand_driver_info(), free_devtree(), free_disk_list(), free_driver_info(), free_hd_detail(), free_hd_entry(), free_misc(), free_old_hd_entries(), free_res_list(), free_scsi(), s_str_list_t::free_str_list(), get_block_devs(), get_cmdline(), get_generic_scsi_devs(), get_input_devices(), get_input_devs(), get_phwaddr(), get_printer_devs(), get_probe_env(), get_scsi_tape(), get_serial_devs(), get_serial_modem(), get_usb_devs(), guess_modem_name(), hal_invalidate(), hd2prop(), hd_boot_disk(), hd_change_config_status(), hd_change_status(), hd_dump_entry(), hd_fork(), hd_free_hal_devices(), hd_free_hal_properties(), hd_free_hd_data(), hd_free_hd_list(), hd_free_sysfsdrv(), hd_free_udevinfo(), hd_module_is_active(), hd_open_properties(), hd_pci_read_data(), hd_read_cdrom_info(), hd_read_ibmebus(), hd_read_macio(), hd_read_mdio(), hd_read_mmc(), hd_read_nd(), hd_read_of_platform(), hd_read_platform(), hd_read_properties(), hd_read_ps3_system_bus(), hd_read_sdio(), hd_read_sysfs_link(), hd_read_uisvirtpci(), hd_read_vio(), hd_read_virtio(), hd_read_visorbus(), hd_read_vm(), hd_read_xen(), hd_scan(), hd_scan_dsl(), hd_scan_floppy(), hd_scan_isdn(), hd_scan_manual(), hd_scan_misc(), hd_scan_modem(), hd_scan_mouse(), hd_scan_net(), hd_scan_serial(), hd_split(), hd_sysfs_dev2_name(), hd_sysfs_driver_list(), hd_sysfs_name2_dev(), hddb_add_info(), hddb_init_external(), hddb_init_pci(), hddb_to_device_driver(), int_fix_usb_scsi(), int_modem(), int_mouse(), int_update_driver_data(), isdn_driver(), kbd_driver(), load_module_with_params(), new_id(), parse_line(), pcmcia_ctrl_read_data(), pcmcia_read_data(), probe_module(), read_block0(), read_dir(), read_dir_canonical(), read_partitions(), read_udevinfo(), read_usb_lp(), reorder_x11(), run_cmd(), smbios_dump(), smbios_free(), and unload_module().

## free_misc()

misc_t * free_misc | ( | misc_t * | m | ) |

References misc_dma_t::dev, misc_io_t::dev, misc_irq_t::dev, misc_irq_t::devs, misc_t::dma, misc_t::dma_len, free_mem(), free_str_list(), misc_t::io, misc_t::io_len, misc_t::irq, misc_t::irq_len, misc_t::proc_dma, misc_t::proc_io, and misc_t::proc_irq.

Referenced by hd_free_hd_data(), and hd_scan_misc().

## free_old_hd_entries()

void free_old_hd_entries | ( | hd_data_t * | hd_data | ) |

static

References exists_hd_entry(), free_hd_entry(), free_mem(), hd_data, s_hd_t::next, s_hd_t::ref, and s_hd_t::ref_cnt.

Referenced by hd_free_hd_data().

## free_res_list()

hd_res_t * free_res_list | ( | hd_res_t * | res | ) |

References res_hwaddr_t::addr, u_hd_res_t::any, res_wlan_t::auth_modes, res_wlan_t::bitrates, res_wlan_t::channels, res_fc_t::controller_id, res_wlan_t::enc_modes, u_hd_res_t::fc, free_mem(), free_str_list(), res_wlan_t::frequencies, u_hd_res_t::hwaddr, res_init_strings_t::init1, res_init_strings_t::init2, u_hd_res_t::init_strings, u_hd_res_t::next, res_pppd_option_t::option, u_hd_res_t::pppd_option, res_fc, res_hwaddr, res_init_strings, res_phwaddr, res_pppd_option, res_wlan, res_any_t::type, and u_hd_res_t::wlan.

Referenced by add_scsi_sysfs_info(), free_hd_entry(), and hd_scan_misc2().

## free_scsi()

scsi_t * free_scsi | ( | scsi_t * | scsi,
|  | int | free_all )

References scsi_s::controller_id, scsi_s::dev_name, scsi_s::driver, free_mem(), free_str_list(), scsi_s::guessed_dev_name, scsi_s::host_info, scsi_s::info, scsi_s::model, scsi_s::next, scsi_s::proc_dir, scsi_s::rev, scsi_s::serial, scsi_s::type_str, scsi_s::usb_guid, and scsi_s::vendor.

Referenced by free_hd_detail().

## free_str_list()

str_list_t * free_str_list | ( | str_list_t * | list | ) |

related

Free the memory allocated by a string list.

References free_mem(), next, and str.

## get_cmd_param()

char * get_cmd_param | ( | hd_data_t * | hd_data,
|  | int | field )

References free_str_list(), get_cmdline(), hd_data, new_str(), and s_str_list_t::str.

Referenced by hd_boot_disk(), and reverse_str_list().

## get_cmdline()

str_list_t * get_cmdline | ( | hd_data_t * | hd_data,
|  | char * | key )

References ADD2LOG, add_str_list(), free_mem(), free_str_list(), hd_data, hd_get_hddb_path(), new_str(), PROC_CMDLINE, read_file(), s_str_list_t::str, and str_printf().

Referenced by add_serial_console(), expand_driver_info(), get_cmd_param(), get_probe_env(), and hd_scan_serial().

## get_disk_crc()

unsigned get_disk_crc | ( | unsigned char * | data,
|  | unsigned | len )

Referenced by hd_boot_disk().

## get_kernel_version()

void get_kernel_version | ( | hd_data_t * | hd_data | ) |

static

References ADD2LOG, free_str_list(), hd_data, KERNEL_22, KERNEL_24, KERNEL_26, PROC_VERSION, read_file(), and s_str_list_t::str.

Referenced by hd_scan().

## get_probe_env()

void get_probe_env | ( | hd_data_t * | hd_data | ) |

static

References ADD2LOG, add_str_list(), free_mem(), free_str_list(), get_cmdline(), hd_data, new_str(), p_bool, pr_flags_by_name(), set_probe_feature(), set_probe_val(), s_str_list_t::str, and pr_flags_t::type.

Referenced by hd_scan().

## get_probe_val_int()

int get_probe_val_int | ( | hd_data_t * | hd_data,
|  | enum probe_feature | feature )

References feature, hal_get_int32(), hd_data, hal_prop_s::int32, pr_flags_t::name, pr_flags_by_id(), and hal_prop_s::val.

Referenced by hd_scan().

## get_probe_val_list()

str_list_t * get_probe_val_list | ( | hd_data_t * | hd_data,
|  | enum probe_feature | feature )

References feature, hal_get_list(), hd_data, hal_prop_s::list, pr_flags_t::name, pr_flags_by_id(), and hal_prop_s::val.

Referenced by hd_scan().

## get_probe_val_str()

char * get_probe_val_str | ( | hd_data_t * | hd_data,
|  | enum probe_feature | feature )

References feature, hal_get_str(), hd_data, pr_flags_t::name, pr_flags_by_id(), hal_prop_s::str, and hal_prop_s::val.

Referenced by hd_scan().

## get_sysfs_attr()

char * get_sysfs_attr | ( | const char * | bus,
|  | const char * | device,
|  | const char * | attr )

References device.

## get_sysfs_attr_by_path()

char * get_sysfs_attr_by_path | ( | const char * | path,
|  | const char * | attr )

References get_sysfs_attr_by_path2().

Referenced by add_input_dev(), add_scsi_sysfs_info(), get_block_devs(), get_generic_scsi_devs(), get_printer_devs(), get_scsi_tape(), get_serial_devs(), get_usb_devs(), hd_pci_read_data(), hd_read_ibmebus(), hd_read_macio(), hd_read_mmc(), hd_read_nd(), hd_read_of_platform(), hd_read_platform(), hd_read_ps3_system_bus(), hd_read_sdio(), hd_read_uisvirtpci(), hd_read_vio(), hd_read_virtio(), hd_read_visorbus(), hd_read_xen(), hd_scan_net(), and pcmcia_read_data().

## get_sysfs_attr_by_path2()

char * get_sysfs_attr_by_path2 | ( | const char * | path,
|  | const char * | attr,
|  | unsigned * | len )

References MAX_ATTR_SIZE, and new_mem().

Referenced by get_sysfs_attr_by_path().

## has_hw_class()

int has_hw_class | ( | hd_t * | hd,
|  | hd_hw_item_t * | items )

static

References hd_is_hw_class().

Referenced by hd_list2(), and hd_list_with_status2().

## has_item()

int has_item | ( | hd_hw_item_t * | items,
|  | hd_hw_item_t | item )

static

Referenced by hd_list2().

## has_something_attached()

unsigned has_something_attached | ( | hd_data_t * | hd_data,
|  | hd_t * | hd )

References s_hd_t::attached_to, hd_data, s_hd_t::idx, and s_hd_t::next.

Referenced by get_serial_modem(), get_serial_mouse(), and hd_scan_braille().

## has_subcomponent()

int has_subcomponent | ( | str_list_t * | list,
|  | char * | comp )

References free_str_list(), and subcomponent_list().

Referenced by hd_read_platform(), and reverse_str_list().

## have_common_res()

int have_common_res | ( | hd_res_t * | res1,
|  | hd_res_t * | res2 )

References u_hd_res_t::any, res_dma_t::base, res_io_t::base, res_irq_t::base, u_hd_res_t::dma, u_hd_res_t::io, u_hd_res_t::irq, u_hd_res_t::next, res_dma, res_io, res_irq, and res_any_t::type.

Referenced by hd_scan_misc2().

## hd_add_id()

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

References s_hd_t::bus, bus_ccw, bus_pci, bus_usb, hd_detail_t::ccw, hd_detail_ccw_t::data, s_hd_t::detail, device, s_hd_t::device, hd_add_old_id(), hd_data, hd_detail_ccw, hd_id_t::id, INT_CRC, hd_id_t::name, new_str(), numid2str(), s_hd_t::old_unique_id, revision, s_hd_t::revision, STR_CRC, str_printf(), s_hd_t::sub_device, s_hd_t::sub_vendor, s_hd_t::sysfs_bus_id, s_hd_t::sysfs_id, hd_detail_t::type, s_hd_t::unique_id, s_hd_t::unique_id1, s_hd_t::unix_dev_name, s_hd_t::vendor, and vendor.

Referenced by hd_scan(), hd_scan_no_hal(), and new_id().

## hd_add_old_id()

void hd_add_old_id | ( | hd_t * | hd | ) |

References device, INT_CRC, numid2str(), revision, STR_CRC, str_printf(), s_hd_t::unique_id, and vendor.

Referenced by hd_add_id().

## hd_apm_enabled()

int hd_apm_enabled | ( | hd_data_t * | hd_data | ) |

References bios_info_t::apm_enabled, s_hd_t::base_class, bc_internal, hd_detail_t::bios, hd_detail_bios_t::data, s_hd_t::detail, hd_data, hd_detail_bios, hd_id_t::id, s_hd_t::next, sc_int_bios, s_hd_t::sub_class, and hd_detail_t::type.

## hd_attr_list()

str_list_t * hd_attr_list | ( | char * | str | ) |

References free_str_list(), and hd_split().

Referenced by hd_pci_read_data().

## hd_attr_uint()

int hd_attr_uint | ( | char * | attr,
|  | uint64_t * | u,
|  | int | base )

Referenced by add_scsi_sysfs_info(), get_block_devs(), get_generic_scsi_devs(), get_scsi_tape(), get_usb_devs(), hd_pci_read_data(), hd_read_sdio(), hd_read_uisvirtpci(), hd_read_virtio(), hd_read_visorbus(), hd_scan_net(), and pcmcia_read_data().

## hd_base_class_list()

hd_t * hd_base_class_list | ( | hd_data_t * | hd_data,
|  | unsigned | base_class )

References add_hd_entry2(), s_hd_t::base_class, bc_display, bc_multimedia, hd_copy(), hd_data, hd_list(), hd_id_t::id, new_mem(), s_hd_t::next, sc_multi_video, and s_hd_t::sub_class.

## hd_boot_arch()

enum boot_arch hd_boot_arch | ( | hd_data_t * | hd_data | ) |

References hd_data.

## hd_boot_disk()

unsigned hd_boot_disk | ( | hd_data_t * | hd_data,
|  | int * | matches )

References ADD2LOG, add_disk_entry(), s_hd_t::base_class, bc_storage_device, s_hd_t::block0, disk_s::crc, disk_s::crc_match, disk_s::data, disk_s::dev_name, dev_name_duplicate(), free_disk_list(), free_mem(), get_cmd_param(), get_disk_crc(), hd_data, HD_DEB_BOOT, disk_s::hd_idx, hd_log_hex(), hex(), hd_id_t::id, s_hd_t::idx, new_mem(), disk_s::next, s_hd_t::next, sc_sdev_disk, s_hd_t::sub_class, and s_hd_t::unix_dev_name.

## hd_bus_list()

hd_t * hd_bus_list | ( | hd_data_t * | hd_data,
|  | unsigned | bus )

References add_hd_entry2(), s_hd_t::bus, hd_copy(), hd_data, hd_list(), hd_id_t::id, new_mem(), and s_hd_t::next.

## hd_busid_to_hwcfg()

const char * hd_busid_to_hwcfg | ( | int | busid | ) |

## hd_change_config_status()

int hd_change_config_status | ( | hd_data_t * | hd_data,
|  | const char * | id,
|  | hd_status_t | status,
|  | const char * | config_string )

References hd_status_t::available, s_hd_t::config_string, hd_status_t::configured, free_mem(), hd_data, hd_free_hd_list(), hd_read_config(), hd_write_config(), hd_status_t::invalid, hd_status_t::needed, new_str(), and s_hd_t::status.

Referenced by hd_change_status().

## hd_change_status()

int hd_change_status | ( | const char * | id,
|  | hd_status_t | status,
|  | const char * | config_string )

References free_mem(), hd_change_config_status(), hd_data, hd_free_hd_data(), and new_mem().

## hd_clear_probe_feature()

void hd_clear_probe_feature | ( | hd_data_t * | hd_data,
|  | enum probe_feature | feature )

References feature, hd_clear_probe_feature(), hd_data, pr_flags_t::mask, pr_flags_t::parent, pr_flags, and pr_flags_by_id().

Referenced by hd_clear_probe_feature(), hd_list(), hd_list2(), hd_list_with_status(), and hd_list_with_status2().

## hd_color()

int hd_color | ( | hd_data_t * | hd_data | ) |

References s_hd_t::base_class, bc_internal, prom_info_t::color, hd_detail_prom_t::data, s_hd_t::detail, prom_info_t::has_color, hd_data, hd_detail_prom, hd_id_t::id, s_hd_t::next, hd_detail_t::prom, sc_int_prom, s_hd_t::sub_class, and hd_detail_t::type.

Referenced by hd_mac_color().

## hd_copy()

void hd_copy | ( | hd_t * | dst,
|  | hd_t * | src )

References s_hd_t::detail, hd_detail_devtree, s_hd_t::next, s_hd_t::ref, s_hd_t::ref_cnt, and hd_detail_t::type.

Referenced by hd_base_class_list(), hd_bus_list(), hd_list(), hd_list2(), hd_list_with_status(), hd_list_with_status2(), hd_scan_cpu(), and hd_sub_class_list().

## hd_cpu_arch()

enum cpu_arch hd_cpu_arch | ( | hd_data_t * | hd_data | ) |

References arch_68k, arch_aarch64, arch_alpha, arch_arm, arch_ia64, arch_intel, arch_ppc, arch_riscv, arch_s390, arch_s390x, arch_sparc, arch_unknown, arch_x86_64, cpu_info_t::architecture, s_hd_t::base_class, bc_internal, hd_detail_t::cpu, hd_detail_cpu_t::data, s_hd_t::detail, hd_data, hd_detail_cpu, hd_id_t::id, s_hd_t::next, sc_int_cpu, s_hd_t::sub_class, and hd_detail_t::type.

Referenced by kbd_driver().

## hd_display_adapter()

unsigned hd_display_adapter | ( | hd_data_t * | hd_data | ) |

References driver_info_u::any, s_hd_t::base_class, bc_display, s_hd_t::bus, bus_pci, bus_sbus, di_x11, s_hd_t::driver_info, hd_data, hd_get_device_by_idx(), hddb_add_info(), hd_id_t::id, s_hd_t::idx, s_hd_t::next, sc_dis_vga, driver_info_x11_t::server, s_hd_t::sub_class, driver_info_any_t::type, and driver_info_u::x11.

## hd_find_sysfs_id()

hd_t * hd_find_sysfs_id | ( | hd_data_t * | hd_data,
|  | char * | id )

References hd_data, s_hd_t::next, and s_hd_t::sysfs_id.

Referenced by add_input_dev(), add_pci_data(), hd_read_macio(), hd_read_nd(), hd_read_sdio(), hd_read_virtio(), hd_scan_net(), pcmcia_ctrl_read_data(), and pcmcia_read_data().

## hd_find_sysfs_id_devname()

hd_t * hd_find_sysfs_id_devname | ( | hd_data_t * | hd_data,
|  | char * | id,
|  | char * | devname )

References hd_data, s_hd_t::next, s_hd_t::sysfs_id, and s_hd_t::unix_dev_name.

Referenced by hd_scan_net().

## hd_fork()

void hd_fork | ( | hd_data_t * | hd_data,
|  | int | timeout,
|  | int | total_timeout )

References ADD2LOG, child, child_id, free_mem(), hd_data, hd_data_sig, hd_log(), hd_data_t::log, hd_data_t::log_size, hd_data_t::shm, sigchld_handler(), sigusr1_handler(), and hd_data_t::updated.

Referenced by hd_scan_braille(), hd_scan_modem(), and hd_scan_mouse().

## hd_fork_done()

void hd_fork_done | ( | hd_data_t * | hd_data | ) |

References copy_log2shm(), and hd_data.

Referenced by hd_scan_braille(), hd_scan_modem(), and hd_scan_mouse().

## hd_free_hal_devices()

hal_device_t * hd_free_hal_devices | ( | hal_device_t * | dev | ) |

References free_mem(), hd_free_hal_properties(), hal_device_s::next, hal_device_s::prop, and hal_device_s::udi.

Referenced by hd_free_hd_data(), hd_scan_hal(), hd_scan_hal_basic(), and hd_scan_with_hal().

## hd_free_hal_properties()

hal_prop_t * hd_free_hal_properties | ( | hal_prop_t * | prop | ) |

References free_mem(), free_str_list(), hal_prop_s::key, hal_prop_s::list, hal_prop_s::next, p_list, p_string, hal_prop_s::str, hal_prop_s::type, and hal_prop_s::val.

Referenced by free_hd_entry(), hd_free_hal_devices(), and hd_free_hd_data().

## hd_free_hd_data()

hd_data_t * hd_free_hd_data | ( | hd_data_t * | hd_data | ) |

Free all data.

References add_hd_entry2(), modinfo_t::alias, free_devtree(), free_mem(), free_misc(), free_old_hd_entries(), free_str_list(), hd_data, hd_free_hal_devices(), hd_free_hal_properties(), hd_free_hd_list(), hd_free_sysfsdrv(), hd_free_udevinfo(), hd_shm_done(), modinfo_t::module, smbios_free(), and modinfo_t::type.

Referenced by hd_change_status().

## hd_free_hd_list()

hd_t * hd_free_hd_list | ( | hd_t * | hd | ) |

Free hardware items returned by e.g. hd_list().

Note
  This may not free it.

References free_hd_entry(), free_mem(), s_hd_t::tag_s::freeit, s_hd_t::next, s_hd_t::ref, and s_hd_t::tag.

Referenced by hd_change_config_status(), hd_free_hd_data(), hd_is_uml(), hd_module_list(), hd_scan_manual(), and hd_smp_support().

## hd_free_manual()

hd_manual_t * hd_free_manual | ( | hd_manual_t * | manual | ) |

## hd_free_sysfsdrv()

hd_sysfsdrv_t * hd_free_sysfsdrv | ( | hd_sysfsdrv_t * | sf | ) |

static

References s_sysfsdrv_t::device, s_sysfsdrv_t::driver, free_mem(), s_sysfsdrv_t::module, and s_sysfsdrv_t::next.

Referenced by hd_free_hd_data(), and hd_sysfs_driver_list().

## hd_free_udevinfo()

hd_udevinfo_t * hd_free_udevinfo | ( | hd_udevinfo_t * | ui | ) |

static

References free_mem(), free_str_list(), s_udevinfo_t::links, s_udevinfo_t::name, s_udevinfo_t::next, and s_udevinfo_t::sysfs.

Referenced by hd_free_hd_data(), and read_udevinfo().

## hd_get_device_by_id()

hd_t * hd_get_device_by_id | ( | hd_data_t * | hd_data,
|  | char * | id )

static

References hd_data, s_hd_t::next, and s_hd_t::unique_id.

Referenced by hd_scan().

## hd_get_device_by_idx()

hd_t * hd_get_device_by_idx | ( | hd_data_t * | hd_data,
|  | unsigned | idx )

References hd_data, s_hd_t::idx, and s_hd_t::next.

Referenced by add_scsi_sysfs_info(), add_serial_modem(), hd_display_adapter(), hd_dump_entry(), hd_scan(), hd_scan_net(), and pcmcia_ctrl_read_data().

## hd_get_hddb_dir()

char * hd_get_hddb_dir | ( | void |  | ) |

References HARDWARE_DIR.

Referenced by hd_get_hddb_path(), and hd_scan().

## hd_get_hddb_path()

char * hd_get_hddb_path | ( | char * | sub | ) |

References hd_get_hddb_dir(), and str_printf().

Referenced by get_cmdline(), hd_manual_read_entry_old(), hd_open_properties(), hd_read_properties(), hd_scan_manual(), and hddb_init_external().

## hd_getdisksize()

int hd_getdisksize | ( | hd_data_t * | hd_data,
|  | char * | dev,
|  | int | fd,
|  | hd_res_t ** | geo,
|  | hd_res_t ** | size )

References ADD2LOG, add_res_entry(), BLKSSZGET, res_disk_geo_t::cyls, u_hd_res_t::disk_geo, geo_logical, res_disk_geo_t::geotype, hd_data, res_disk_geo_t::heads, new_mem(), res_disk_geo, res_size, res_disk_geo_t::sectors, u_hd_res_t::size, size_unit_sectors, res_disk_geo_t::type, res_size_t::type, res_size_t::unit, res_size_t::val1, and res_size_t::val2.

Referenced by add_disk_size(), and add_scsi_sysfs_info().

## hd_has_pcmcia()

int hd_has_pcmcia | ( | hd_data_t * | hd_data | ) |

References hd_data, is_pcmcia_ctrl(), and s_hd_t::next.

## hd_is_hw_class()

int hd_is_hw_class | ( | hd_t * | hd,
|  | hd_hw_item_t | hw_class )

References hw_all, and s_hd_t::hw_class_list.

Referenced by assign_hw_class(), has_hw_class(), hd_dump_entry(), hd_list(), hd_list_with_status(), and hd_scan_wlan().

## hd_is_sgi_altix()

int hd_is_sgi_altix | ( | hd_data_t * | hd_data | ) |

References hd_data.

Referenced by hd_scan_net().

## hd_is_shm_ptr()

int hd_is_shm_ptr | ( | hd_data_t * | hd_data,
|  | void * | ptr )

References hd_data.

Referenced by hd_shm_clean().

## hd_is_uml()

int hd_is_uml | ( | hd_data_t * | hd_data | ) |

References s_hd_t::base_class, bc_internal, hd_detail_t::cpu, hd_detail_cpu_t::data, s_hd_t::detail, hd_data, hd_detail_cpu, hd_free_hd_list(), hd_list(), hd_scan_cpu(), hd_set_probe_feature(), hw_cpu, hd_id_t::id, cpu_info_t::model_name, s_hd_t::next, pr_cpu, sc_int_cpu, s_hd_t::sub_class, and hd_detail_t::type.

Referenced by hd_scan_kbd().

## hd_is_xen()

int hd_is_xen | ( | hd_data_t * | hd_data | ) |

References hd_data.

Referenced by hd_read_xen().

## hd_join()

char * hd_join | ( | char * | del,
|  | str_list_t * | str )

References new_mem(), s_str_list_t::next, and s_str_list_t::str.

Referenced by dump_normal(), hd_dump_entry(), hd_scan(), and read_udevinfo().

## hd_list()

hd_t * hd_list | ( | hd_data_t * | hd_data,
|  | hd_hw_item_t | item,
|  | int | rescan,
|  | hd_t * | hd_old )

References add_hd_entry2(), hd_status_t::available, hd_status_t::available_orig, cmp_hd(), hd_clear_probe_feature(), hd_copy(), hd_data, hd_is_hw_class(), hd_list(), hd_report_this(), hd_scan(), hd_set_probe_feature(), hd_set_probe_feature_hw(), hw_manual, new_mem(), s_hd_t::next, pr_all, pr_sys, s_hd_t::status, status_unknown, and status_yes.

Referenced by hd_base_class_list(), hd_bus_list(), hd_is_uml(), hd_list(), hd_list2(), hd_list_with_status(), hd_list_with_status2(), hd_smp_support(), and hd_sub_class_list().

## hd_list2()

hd_t * hd_list2 | ( | hd_data_t * | hd_data,
|  | hd_hw_item_t * | items,
|  | int | rescan )

References add_hd_entry2(), hd_status_t::available, hd_status_t::available_orig, has_hw_class(), has_item(), hd_clear_probe_feature(), hd_copy(), hd_data, hd_list(), hd_report_this(), hd_scan(), hd_set_probe_feature(), hd_set_probe_feature_hw(), hw_manual, mod_manual, s_hd_t::module, new_mem(), s_hd_t::next, pr_all, pr_sys, s_hd_t::status, status_unknown, and status_yes.

## hd_list_with_status()

hd_t * hd_list_with_status | ( | hd_data_t * | hd_data,
|  | hd_hw_item_t | item,
|  | hd_status_t | status )

References add_hd_entry2(), hd_status_t::available, hd_status_t::configured, hd_clear_probe_feature(), hd_copy(), hd_data, hd_is_hw_class(), hd_list(), hd_scan(), hd_status_t::needed, new_mem(), s_hd_t::next, pr_all, hd_status_t::reconfig, and s_hd_t::status.

## hd_list_with_status2()

hd_t * hd_list_with_status2 | ( | hd_data_t * | hd_data,
|  | hd_hw_item_t * | items,
|  | hd_status_t | status )

References add_hd_entry2(), hd_status_t::available, hd_status_t::configured, has_hw_class(), hd_clear_probe_feature(), hd_copy(), hd_data, hd_list(), hd_scan(), hd_status_t::needed, new_mem(), s_hd_t::next, pr_all, hd_status_t::reconfig, and s_hd_t::status.

## hd_log()

void hd_log | ( | hd_data_t * | hd_data,
|  | char * | buf,
|  | ssize_t | len )

References hd_data.

Referenced by hd_fork(), hd_log_hex(), and hd_log_printf().

## hd_log_hex()

void hd_log_hex | ( | hd_data_t * | hd_data,
|  | int | with_ascii,
|  | unsigned | data_len,
|  | unsigned char * | data )

References hd_data, hd_log(), and hexdump().

Referenced by add_edid_from_file(), add_edid_info(), add_scsi_sysfs_info(), at_cmd(), do_alva(), do_baum(), do_fhp(), do_fhp_new(), do_ht(), dump_pci_data(), dump_ser_modem_data(), dump_ser_mouse_data(), hd_boot_disk(), and hd_log_printf().

## hd_log_printf()

void hd_log_printf | ( | hd_data_t * | hd_data,
|  | char * | format,
|  |  | ... )

References hd_data, and hd_log().

## hd_mac_color()

int hd_mac_color | ( | hd_data_t * | hd_data | ) |

References hd_color(), and hd_data.

## hd_mod_cmp()

int hd_mod_cmp | ( | char * | str1,
|  | char * | str2 )

Referenced by hd_modinfo_db().

## hd_module_is_active()

int hd_module_is_active | ( | hd_data_t * | hd_data,
|  | char * | mod )

References free_mem(), free_str_list(), hd_data, new_str(), s_str_list_t::next, read_kmods(), and s_str_list_t::str.

Referenced by add_xpnet(), do_zip(), expand_driver_info(), hd_read_xen(), hd_scan_serial(), load_module_with_params(), probe_module(), and unload_module().

## hd_module_list()

str_list_t * hd_module_list | ( | hd_data_t * | hd_data,
|  | unsigned | id )

References add_str_list(), driver_info_u::any, s_hd_t::device, di_module, s_hd_t::driver_info, s_hd_t::tag_s::freeit, hd_data, hd_free_hd_list(), hddb_add_info(), hd_id_t::id, MAKE_ID, driver_info_module_t::modprobe, driver_info_u::module, driver_info_module_t::names, new_mem(), driver_info_u::next, s_str_list_t::next, s_str_list_t::str, s_hd_t::tag, TAG_SPECIAL, driver_info_any_t::type, and s_hd_t::vendor.

Referenced by get_usb_devs().

## hd_move_to_shm()

void hd_move_to_shm | ( | hd_data_t * | hd_data | ) |

References s_ser_device_t::at_resp, s_ser_device_t::class_name, s_ser_device_t::dev_id, s_ser_device_t::dev_name, hd_data, hd_shm_add(), hd_shm_add_str(), hd_shm_add_str_list(), s_ser_device_t::init_string1, s_ser_device_t::init_string2, s_ser_device_t::next, s_ser_device_t::pppd_option, hd_data_t::ser_modem, hd_data_t::ser_mouse, s_ser_device_t::serial, s_ser_device_t::user_name, and s_ser_device_t::vend.

Referenced by hd_scan_modem(), and hd_scan_mouse().

## hd_probe_feature()

int hd_probe_feature | ( | hd_data_t * | hd_data,
|  | enum probe_feature | feature )

References feature, hd_data, and pr_default.

Referenced by add_cdrom_info(), add_scsi_sysfs_info(), do_zip(), expand_driver_info(), get_block_devs(), get_serial_modem(), hd_scan(), hd_scan_braille(), hd_scan_cpu(), hd_scan_dsl(), hd_scan_fb(), hd_scan_floppy(), hd_scan_hal(), hd_scan_input(), hd_scan_int(), hd_scan_isdn(), hd_scan_kbd(), hd_scan_manual(), hd_scan_memory(), hd_scan_misc(), hd_scan_misc2(), hd_scan_modem(), hd_scan_monitor(), hd_scan_mouse(), hd_scan_net(), hd_scan_parallel(), hd_scan_pcmcia(), hd_scan_pppoe(), hd_scan_serial(), hd_scan_sys(), hd_scan_sysfs_block(), hd_scan_sysfs_pci(), hd_scan_sysfs_scsi(), hd_scan_sysfs_usb(), and hd_scan_wlan().

## hd_probe_feature_by_name()

enum probe_feature hd_probe_feature_by_name | ( | char * | name | ) |

References pr_flags_by_name().

## hd_probe_feature_by_value()

char * hd_probe_feature_by_value | ( | enum probe_feature | feature | ) |

References feature, pr_flags_t::name, and pr_flags_by_id().

## hd_read_mmap()

int hd_read_mmap | ( | hd_data_t * | hd_data,
|  | char * | name,
|  | unsigned char * | buf,
|  | off_t | start,
|  | unsigned | size )

References ADD2LOG, and hd_data.

## hd_read_sysfs_link()

char * hd_read_sysfs_link | ( | char * | base_dir,
|  | char * | link_name )

References free_mem(), and str_printf().

Referenced by add_input_dev(), get_block_devs(), get_generic_scsi_devs(), get_input_devs(), get_printer_devs(), get_scsi_tape(), get_serial_devs(), get_usb_devs(), hd_pci_read_data(), hd_read_ibmebus(), hd_read_macio(), hd_read_mdio(), hd_read_mmc(), hd_read_nd(), hd_read_of_platform(), hd_read_platform(), hd_read_ps3_system_bus(), hd_read_sdio(), hd_read_uisvirtpci(), hd_read_vio(), hd_read_virtio(), hd_read_visorbus(), hd_read_vm(), hd_read_xen(), hd_scan_net(), hd_sysfs_driver_list(), pcmcia_ctrl_read_data(), pcmcia_read_data(), read_dir_canonical(), and reverse_str_list().

## hd_report_this()

int hd_report_this | ( | hd_data_t * | hd_data,
|  | hd_t * | hd )

References hd_data, search_str_list(), s_hd_t::sysfs_id, and s_hd_t::unix_dev_name.

Referenced by add_cdrom_info(), add_ide_sysfs_info(), add_scsi_sysfs_info(), hd_list(), hd_list2(), hd_write_config(), and int_media_check().

## hd_scan()

void hd_scan | ( | hd_data_t * | hd_data | ) |

the actual hardware scan

References ADD2LOG, add_str_list(), assign_hw_class(), s_hd_t::attached_to, s_hd_t::child_ids, create_model_name(), dump_klog(), fix_probe_features(), s_hd_t::tag_s::fixed, free_mem(), free_str_list(), get_kernel_version(), get_probe_env(), get_probe_val_int(), get_probe_val_list(), get_probe_val_str(), hd_add_id(), hd_data, hd_get_device_by_id(), hd_get_device_by_idx(), hd_get_hddb_dir(), hd_join(), hd_probe_feature(), hd_scan_hal_basic(), hd_scan_int(), hd_scan_manual2(), hd_scan_no_hal(), hd_scan_with_hal(), hd_set_probe_feature(), hd_shm_init(), HD_VERSION_STRING, hddb_init(), s_hd_t::idx, mod_manual, mod_none, pr_flags_t::name, new_str(), s_hd_t::next, s_str_list_t::next, p_int32, p_list, p_string, s_hd_t::parent_id, pr_bios_acpi, pr_bios_crc, pr_bios_vram, pr_cpuemu, pr_default, pr_flags_by_id(), pr_fork, pr_int, pr_modules_pata, pr_sysfs, pr_udev, pr_x86emu, PROC_MODULES, read_file(), remove_hd_entries(), set_probe_val(), s_str_list_t::str, str_printf(), s_hd_t::tag, pr_flags_t::type, s_hd_t::unique_id, and update_irq_usage().

Referenced by hd_list(), hd_list2(), hd_list_with_status(), and hd_list_with_status2().

## hd_scan_no_hal()

void hd_scan_no_hal | ( | hd_data_t * | hd_data | ) |

static

References hd_add_id(), hd_data, hd_scan_bios(), hd_scan_braille(), hd_scan_cpu(), hd_scan_dsl(), hd_scan_fb(), hd_scan_floppy(), hd_scan_hal_assign_udi(), hd_scan_input(), hd_scan_isa(), hd_scan_isapnp(), hd_scan_isdn(), hd_scan_kbd(), hd_scan_manual(), hd_scan_memory(), hd_scan_misc(), hd_scan_misc2(), hd_scan_modem(), hd_scan_monitor(), hd_scan_mouse(), hd_scan_net(), hd_scan_parallel(), hd_scan_pcmcia(), hd_scan_pppoe(), hd_scan_prom(), hd_scan_s390(), hd_scan_s390disks(), hd_scan_sbus(), hd_scan_serial(), hd_scan_sys(), hd_scan_sysfs_block(), hd_scan_sysfs_pci(), hd_scan_sysfs_scsi(), hd_scan_sysfs_usb(), hd_scan_wlan(), hd_scan_xtra(), and s_hd_t::next.

Referenced by hd_scan().

## hd_scan_with_hal()

void hd_scan_with_hal | ( | hd_data_t * | hd_data | ) |

static

References hd_data, hd_free_hal_devices(), hd_read_properties(), hd_scan_hal(), s_hd_t::next, s_hd_t::persistent_prop, and s_hd_t::udi.

Referenced by hd_scan().

## hd_scan_xtra()

void hd_scan_xtra | ( | hd_data_t * | hd_data | ) |

static

References add_hd_entry(), hd_status_t::available, s_hd_t::base_class, s_hd_t::bus, bus_pci, bus_pcmcia, bus_usb, hd_status_t::configured, s_hd_t::device, hd_data, s_hd_t::hotplug, hp_pcmcia, hd_id_t::id, ID_TAG, ID_VALUE, MAKE_ID, mod_xtra, name2eisa_id(), hd_status_t::needed, new_str(), s_hd_t::next, s_str_list_t::next, s_hd_t::tag_s::remove, remove_hd_entries(), remove_tagged_hd_entries(), s_hd_t::status, status_new, status_no, status_yes, s_str_list_t::str, s_hd_t::sub_class, s_hd_t::sub_device, s_hd_t::sub_vendor, s_hd_t::tag, TAG_PCI, TAG_PCMCIA, TAG_SDIO, TAG_SPECIAL, TAG_USB, s_hd_t::unix_dev_name, and s_hd_t::vendor.

Referenced by hd_scan_no_hal().

## hd_set_hw_class()

void hd_set_hw_class | ( | hd_t * | hd,
|  | hd_hw_item_t | hw_class )

References s_hd_t::hw_class_list.

Referenced by add_other_sysfs_info(), assign_hw_class(), get_input_devices(), hd_scan_monitor(), hd_scan_net(), hddb_add_info(), int_fix_usb_scsi(), and set_class_entries().

## hd_set_probe_feature()

void hd_set_probe_feature | ( | hd_data_t * | hd_data,
|  | enum probe_feature | feature )

References feature, fix_probe_features(), hd_data, hd_set_probe_feature(), pr_flags_t::mask, pr_flags_t::parent, pr_flags, and pr_flags_by_id().

Referenced by hd_is_uml(), hd_list(), hd_list2(), hd_scan(), hd_set_probe_feature(), and hd_set_probe_feature_hw().

## hd_set_probe_feature_hw()

void hd_set_probe_feature_hw | ( | hd_data_t * | hd_data,
|  | hd_hw_item_t | item )

References hd_data, hd_set_probe_feature(), hw_all, hw_bios, hw_block, hw_bluetooth, hw_braille, hw_bridge, hw_camera, hw_cdrom, hw_chipcard, hw_cpu, hw_disk, hw_display, hw_dsl, hw_dvb, hw_fingerprint, hw_floppy, hw_framebuffer, hw_hotplug, hw_hotplug_ctrl, hw_hub, hw_ide, hw_ieee1394, hw_ieee1394_ctrl, hw_isapnp, hw_isdn, hw_joystick, hw_keyboard, hw_manual, hw_memory, hw_mmc_ctrl, hw_modem, hw_monitor, hw_mouse, hw_network, hw_network_ctrl, hw_none, hw_partition, hw_pci, hw_pcmcia, hw_pcmcia_ctrl, hw_pppoe, hw_printer, hw_redasd, hw_scanner, hw_scsi, hw_sound, hw_storage_ctrl, hw_sys, hw_tape, hw_tv, hw_unknown, hw_usb, hw_usb_ctrl, hw_vbe, hw_wlan, hw_zip, is_kms_active(), pr_bios, pr_bios_ddc, pr_bios_fb, pr_bios_mode, pr_block, pr_block_cdrom, pr_block_mods, pr_block_part, pr_braille_alva, pr_braille_baum, pr_braille_fhp, pr_braille_ht, pr_cpu, pr_default, pr_edd_mod, pr_fb, pr_floppy, pr_input, pr_int, pr_isapnp, pr_isapnp_mod, pr_isdn, pr_kbd, pr_manual, pr_memory, pr_misc, pr_misc_floppy, pr_misc_par, pr_misc_serial, pr_modem, pr_modem_usb, pr_monitor, pr_mouse, pr_net, pr_parallel_lp, pr_parallel_zip, pr_pci, pr_pcmcia, pr_pppoe, pr_prom, pr_s390, pr_s390disks, pr_sbus, pr_scsi, pr_serial, pr_sys, pr_usb, and pr_wlan.

Referenced by hd_list(), and hd_list2().

## hd_shm_add()

void * hd_shm_add | ( | hd_data_t * | hd_data,
|  | void * | ptr,
|  | unsigned | len )

References hd_data.

Referenced by copy_log2shm(), hd_move_to_shm(), hd_scan_braille(), hd_shm_add_str(), and hd_shm_add_str_list().

## hd_shm_add_str()

char * hd_shm_add_str | ( | hd_data_t * | hd_data,
|  | char * | str )

static

References hd_data, and hd_shm_add().

Referenced by hd_move_to_shm(), and hd_shm_add_str_list().

## hd_shm_add_str_list()

str_list_t * hd_shm_add_str_list | ( | hd_data_t * | hd_data,
|  | str_list_t * | sl )

static

References hd_data, hd_shm_add(), hd_shm_add_str(), s_str_list_t::next, and s_str_list_t::str.

Referenced by hd_move_to_shm().

## hd_shm_clean()

void hd_shm_clean | ( | hd_data_t * | hd_data | ) |

References hd_data, hd_is_shm_ptr(), and hd_data_t::log.

Referenced by hd_scan_braille(), hd_scan_modem(), hd_scan_mouse(), and hd_shm_init().

## hd_shm_done()

void hd_shm_done | ( | hd_data_t * | hd_data | ) |

References hd_data.

Referenced by hd_free_hd_data().

## hd_shm_init()

void hd_shm_init | ( | hd_data_t * | hd_data | ) |

References ADD2LOG, hd_data, and hd_shm_clean().

Referenced by hd_scan().

## hd_smp_support()

int hd_smp_support | ( | hd_data_t * | hd_data | ) |

References hd_detail_t::cpu, hd_detail_cpu_t::data, s_hd_t::detail, detect_smp_bios(), detect_smp_prom(), hd_data, hd_detail_cpu, hd_free_hd_list(), hd_list(), hw_cpu, hw_sys, s_hd_t::next, hd_detail_t::type, and cpu_info_t::units.

## hd_split()

str_list_t * hd_split | ( | char | del,
|  | const char * | str )

References add_str_list(), free_mem(), and new_str().

Referenced by add_entry(), add_serial_console(), all_bits(), dsl_driver(), expand_driver_info(), get_input_devices(), hd_attr_list(), hd_open_properties(), hddb_add_info(), isdn_driver(), read_cpuinfo(), read_usb_lp(), and set_probe_val().

## hd_sub_class_list()

hd_t * hd_sub_class_list | ( | hd_data_t * | hd_data,
|  | unsigned | base_class,
|  | unsigned | sub_class )

References add_hd_entry2(), s_hd_t::base_class, hd_copy(), hd_data, hd_list(), hd_id_t::id, new_mem(), s_hd_t::next, and s_hd_t::sub_class.

## hd_sysfs_dev2_name()

char * hd_sysfs_dev2_name | ( | char * | str | ) |

References free_mem(), and new_str().

Referenced by add_partitions().

## hd_sysfs_driver_list()

void hd_sysfs_driver_list | ( | hd_data_t * | hd_data | ) |

References ADD2LOG, crc64(), s_sysfsdrv_t::device, s_sysfsdrv_t::driver, free_mem(), free_str_list(), hd_data, hd_free_sysfsdrv(), hd_read_sysfs_link(), hd_sysfs_id(), module, s_sysfsdrv_t::module, new_mem(), new_str(), s_str_list_t::next, s_sysfsdrv_t::next, PROC_MODULES, read_dir(), read_file(), s_str_list_t::str, and str_printf().

Referenced by hd_add_driver_data(), hd_scan_int(), hd_scan_pcmcia(), hd_scan_sysfs_block(), hd_scan_sysfs_pci(), and hd_scan_sysfs_usb().

## hd_sysfs_id()

char * hd_sysfs_id | ( | char * | path | ) |

Referenced by add_input_dev(), add_mv643xx_eth(), add_pci(), add_pci_data(), add_scsi_sysfs_info(), find_udi(), get_block_devs(), get_generic_scsi_devs(), get_printer_devs(), get_scsi_tape(), get_serial_devs(), get_usb_devs(), hd_pci_read_data(), hd_read_ibmebus(), hd_read_macio(), hd_read_mdio(), hd_read_mmc(), hd_read_nd(), hd_read_of_platform(), hd_read_platform(), hd_read_ps3_system_bus(), hd_read_sdio(), hd_read_uisvirtpci(), hd_read_vio(), hd_read_virtio(), hd_read_visorbus(), hd_read_vm(), hd_read_xen(), hd_scan_net(), hd_sysfs_driver_list(), pcmcia_ctrl_read_data(), and pcmcia_read_data().

## hd_sysfs_name2_dev()

char * hd_sysfs_name2_dev | ( | char * | str | ) |

References free_mem(), and new_str().

Referenced by get_block_devs(), get_generic_scsi_devs(), and get_scsi_tape().

## hd_timeout()

int hd_timeout | ( | void(* | func )(void *),
|  | void * | arg,
|  | int | timeout )

References timeout_alarm_handler().

Referenced by read_block0(), and reverse_str_list().

## hd_usb_support()

int hd_usb_support | ( | hd_data_t * | hd_data | ) |

References u_hd_res_t::any, s_hd_t::base_class, bc_serial, hd_data, hd_id_t::id, s_hd_t::next, u_hd_res_t::next, pif_usb_ohci, s_hd_t::prog_if, s_hd_t::res, res_irq, sc_ser_usb, s_hd_t::sub_class, and res_any_t::type.

## hd_version()

char * hd_version | ( | void |  | ) |

References HD_VERSION_STRING.

## hex()

int hex | ( | char * | s,
|  | int | n )

Referenced by hd_boot_disk(), and prop2hd().

## hexdump()

void hexdump | ( | char ** | buf,
|  | int | with_ascii,
|  | unsigned | data_len,
|  | unsigned char * | data )

References str_printf().

Referenced by hd_log_hex(), smbios_dump(), and str_printf().

## is_audio()

int is_audio | ( | hd_data_t * | hd_data,
|  | hd_t * | hd )

static

References s_hd_t::base_class, bc_multimedia, s_hd_t::bus, bus_isa, s_hd_t::func, hd_data, hd_id_t::id, s_hd_t::is, s_hd_t::is_s::isapnp, sc_multi_audio, and s_hd_t::sub_class.

Referenced by assign_hw_class().

## is_modem()

int is_modem | ( | hd_data_t * | hd_data,
|  | hd_t * | hd )

static

References s_hd_t::base_class, bc_comm, bc_modem, hd_data, hd_id_t::id, sc_com_modem, and s_hd_t::sub_class.

Referenced by assign_hw_class().

## is_pcmcia_ctrl()

int is_pcmcia_ctrl | ( | hd_data_t * | hd_data,
|  | hd_t * | hd )

References s_hd_t::base_class, bc_bridge, s_hd_t::bus, bus_pci, s_hd_t::device, hd_data, hd_id_t::id, ID_VALUE, sc_bridge_cardbus, sc_bridge_pcmcia, s_hd_t::sub_class, and s_hd_t::vendor.

Referenced by assign_hw_class(), and hd_has_pcmcia().

## is_pppoe()

int is_pppoe | ( | hd_data_t * | hd_data,
|  | hd_t * | hd )

static

References s_hd_t::base_class, bc_network_interface, hd_data, hd_id_t::id, s_hd_t::is, and s_hd_t::is_s::pppoe.

Referenced by assign_hw_class().

## isa_id2str()

char * isa_id2str | ( | unsigned | id | ) |

References new_mem().

Referenced by dump_bios().

## join_res_dma()

void join_res_dma | ( | hd_res_t ** | res1,
|  | hd_res_t * | res2 )

References add_res_entry(), res_dma_t::base, u_hd_res_t::dma, new_mem(), u_hd_res_t::next, res_dma, and res_dma_t::type.

Referenced by hd_scan_misc2().

## join_res_io()

void join_res_io | ( | hd_res_t ** | res1,
|  | hd_res_t * | res2 )

References add_res_entry(), res_io_t::base, u_hd_res_t::io, new_mem(), u_hd_res_t::next, res_io_t::range, res_io, and res_io_t::type.

Referenced by hd_scan_misc2().

## join_res_irq()

void join_res_irq | ( | hd_res_t ** | res1,
|  | hd_res_t * | res2 )

References add_res_entry(), res_irq_t::base, u_hd_res_t::irq, new_mem(), u_hd_res_t::next, res_irq, and res_irq_t::type.

Referenced by hd_scan_misc2().

## load_module()

int load_module | ( | hd_data_t * | hd_data,
|  | char * | module )

References hd_data, load_module_with_params(), and module.

Referenced by do_zip(), hd_scan_input(), hd_scan_misc(), hd_scan_sysfs_block(), hd_scan_sysfs_scsi(), and hd_scan_sysfs_usb().

## load_module_with_params()

int load_module_with_params | ( | hd_data_t * | hd_data,
|  | char * | module,
|  | char * | params )

References free_mem(), hd_data, hd_module_is_active(), module, PROG_MODPROBE, run_cmd(), and str_printf().

Referenced by hd_scan_misc(), and load_module().

## mod_name_by_idx()

char * mod_name_by_idx | ( | unsigned | idx | ) |

References pr_modules.

Referenced by hd_dump_entry(), progress(), and reverse_str_list().

## name2eisa_id()

unsigned name2eisa_id | ( | char * | s | ) |

References MAKE_ID, and TAG_EISA.

Referenced by add_serial_modem(), add_serial_mouse(), hd_scan_fb(), hd_scan_xtra(), and parse_id().

## new_mem()

void * new_mem | ( | size_t | size | ) |

Referenced by _read_klog(), add_cdrom_info(), add_edid_info(), add_entry(), add_hd_entry(), add_ide_sysfs_info(), add_if_name(), add_joystick_details(), add_kma(), add_lcd_info(), add_monitor_res(), add_pci(), add_pci_data(), add_scsi_sysfs_info(), add_serial_console(), add_serial_modem(), s_str_list_t::add_str_list(), add_uml(), add_xpnet(), canon_str(), do_lp(), dsl_driver(), gather_resources(), get_dsl_info(), get_isdn_info(), get_linkstate(), get_phwaddr(), get_serial_info(), get_serial_modem(), get_serial_mouse(), get_sysfs_attr_by_path2(), get_usb_devs(), hal_add_new(), hal_get_new(), hd_base_class_list(), hd_boot_disk(), hd_bus_list(), hd_change_status(), hd_getdisksize(), hd_join(), hd_list(), hd_list2(), hd_list_with_status(), hd_list_with_status2(), hd_manual_read_entry_old(), hd_modinfo_db(), hd_module_list(), hd_pci_complete_data(), hd_pci_read_data(), hd_read_cdrom_info(), hd_read_config(), hd_read_properties(), hd_scan_fb(), hd_scan_floppy(), hd_scan_isdn(), hd_scan_memory(), hd_scan_misc(), hd_scan_misc2(), hd_scan_net(), hd_scan_pppoe(), hd_scan_serial(), hd_scan_sys(), hd_scan_wlan(), hd_sub_class_list(), hd_sysfs_driver_list(), hddb_init_external(), hddb_to_device_driver(), isa_id2str(), isdn_driver(), join_res_dma(), join_res_io(), join_res_irq(), kbd_driver(), monitor_driver(), new_cdrom_entry(), parse_modinfo(), prop2hd(), read_block0(), read_cpuinfo(), read_dir(), read_file(), read_hal(), read_udevinfo(), reorder_x11(), and smbios_parse().

## new_str()

char * new_str | ( | const char * | s | ) |

Referenced by add_edid_info(), add_if_name(), add_input_dev(), add_kma(), add_lcd_info(), add_mv643xx_eth(), add_other_sysfs_info(), add_pci(), add_pci_data(), add_scsi_sysfs_info(), add_serial_console(), add_serial_modem(), add_serial_mouse(), s_str_list_t::add_str_list(), add_uml(), add_xen_network(), add_xen_storage(), add_xpnet(), canon_str(), contains_word(), create_model_name(), do_lp(), do_zip(), dsl_driver(), expand_driver_info(), find_udi(), get_block_devs(), get_cmd_param(), get_cmdline(), get_generic_scsi_devs(), get_input_devices(), get_input_devs(), get_phwaddr(), get_printer_devs(), get_probe_env(), get_scsi_tape(), get_serial_devs(), get_serial_info(), get_serial_modem(), get_serial_mouse(), get_string(), get_usb_devs(), guess_modem_name(), hal_get_new(), hd2prop_add_str(), hd_add_id(), hd_change_config_status(), hd_dump_entry(), hd_module_is_active(), hd_open_properties(), hd_pci_read_data(), hd_read_ibmebus(), hd_read_macio(), hd_read_mdio(), hd_read_mmc(), hd_read_nd(), hd_read_of_platform(), hd_read_platform(), hd_read_ps3_system_bus(), hd_read_sdio(), hd_read_uisvirtpci(), hd_read_vio(), hd_read_virtio(), hd_read_visorbus(), hd_read_vm(), hd_read_xen(), hd_scan(), hd_scan_braille(), hd_scan_fb(), hd_scan_manual(), hd_scan_net(), hd_scan_serial(), hd_scan_sys(), hd_scan_xtra(), hd_split(), hd_sysfs_dev2_name(), hd_sysfs_driver_list(), hd_sysfs_name2_dev(), hddb_add_info(), hddb_to_device_driver(), int_modem(), int_mouse(), int_udev(), int_update_driver_data(), isdn_driver(), kbd_driver(), parse_line(), parse_modinfo(), parse_property(), pcmcia_ctrl_read_data(), pcmcia_read_data(), prop2hd_str(), read_cdroms(), read_cpuinfo(), read_dir(), read_dir_canonical(), read_dmas(), read_file(), read_hal(), read_ioports(), read_irqs(), read_partitions(), read_udevinfo(), read_usb_lp(), reorder_x11(), set_probe_val(), and smbios_id2str().

## numid2str()

char * numid2str | ( | uint64_t | id,
|  | int | len )

Referenced by hd_add_id(), and hd_add_old_id().

## pr_flags_by_id()

pr_flags_t * pr_flags_by_id | ( | enum probe_feature | feature | ) |

static

References feature, and pr_flags.

Referenced by get_probe_val_int(), get_probe_val_list(), get_probe_val_str(), hd_clear_probe_feature(), hd_probe_feature_by_value(), hd_scan(), hd_set_probe_feature(), set_probe_feature(), and set_probe_val().

## pr_flags_by_name()

pr_flags_t * pr_flags_by_name | ( | char * | name | ) |

static

References pr_flags.

Referenced by get_probe_env(), and hd_probe_feature_by_name().

## probe_module()

int probe_module | ( | hd_data_t * | hd_data,
|  | char * | module )

References free_mem(), hd_data, hd_module_is_active(), module, PROG_MODPROBE, run_cmd(), and str_printf().

Referenced by do_lp().

## progress()

void progress | ( | hd_data_t * | hd_data,
|  | unsigned | pos,
|  | unsigned | count,
|  | char * | msg )

References ADD2LOG, hd_data, HD_DEB_PROGRESS, and mod_name_by_idx().

Referenced by reverse_str_list().

## read_block0()

unsigned char * read_block0 | ( | hd_data_t * | hd_data,
|  | char * | dev,
|  | int * | timeout )

References ADD2LOG, free_mem(), hd_data, hd_timeout(), new_mem(), and test_read_block0_open().

Referenced by hd_scan_misc(), and int_media_check().

## read_dir()

str_list_t * read_dir | ( | char * | dir_name,
|  | int | type )

References free_mem(), new_mem(), new_str(), and str_printf().

Referenced by add_pci_data(), get_block_devs(), get_generic_scsi_devs(), get_input_devs(), get_printer_devs(), get_scsi_tape(), get_serial_devs(), get_usb_devs(), hd_pci_read_data(), hd_read_ibmebus(), hd_read_macio(), hd_read_mdio(), hd_read_mmc(), hd_read_nd(), hd_read_of_platform(), hd_read_platform(), hd_read_ps3_system_bus(), hd_read_sdio(), hd_read_uisvirtpci(), hd_read_vio(), hd_read_virtio(), hd_read_visorbus(), hd_read_vm(), hd_read_xen(), hd_scan_net(), hd_sysfs_driver_list(), hddb_init_external(), pcmcia_ctrl_read_data(), pcmcia_read_data(), read_dir_canonical(), and reverse_str_list().

## read_dir_canonical()

str_list_t * read_dir_canonical | ( | char * | dir_name,
|  | int | type )

References free_mem(), hd_read_sysfs_link(), new_str(), s_str_list_t::next, and read_dir().

Referenced by hd_read_platform(), and reverse_str_list().

## read_file()

str_list_t * read_file | ( | char * | file_name,
|  | unsigned | start_line,
|  | unsigned | lines )

References new_mem(), and new_str().

Referenced by _read_klog(), add_ide_sysfs_info(), do_lp(), do_zip(), get_block_devs(), get_cmdline(), get_input_devices(), get_kernel_version(), get_serial_info(), hd_manual_read_entry_old(), hd_read_properties(), hd_scan(), hd_scan_floppy(), hd_scan_net(), hd_scan_sys(), hd_sysfs_driver_list(), hddb_init_external(), hddb_init_pci(), meminfo_mem(), meminfo_xen(), read_cdroms(), read_cpuinfo(), read_dmas(), read_ioports(), read_irqs(), read_kmods(), read_partitions(), read_udevinfo(), reverse_str_list(), and run_cmd().

## read_kmods()

str_list_t * read_kmods | ( | hd_data_t * | hd_data | ) |

References add_str_list(), free_str_list(), hd_data, s_str_list_t::next, PROC_MODULES, read_file(), and s_str_list_t::str.

Referenced by hd_module_is_active(), and reverse_str_list().

## read_udevinfo()

void read_udevinfo | ( | hd_data_t * | hd_data | ) |

References ADD2LOG, add_str_list(), free_mem(), free_str_list(), hd_data, hd_free_udevinfo(), hd_join(), s_udevinfo_t::links, s_udevinfo_t::name, new_mem(), new_str(), s_str_list_t::next, s_udevinfo_t::next, PROG_UDEVADM, PROG_UDEVINFO, read_file(), s_str_list_t::str, str_printf(), and s_udevinfo_t::sysfs.

Referenced by int_udev().

## remove_hd_entries()

void remove_hd_entries | ( | hd_data_t * | hd_data | ) |

References hd_data, s_hd_t::module, s_hd_t::next, s_hd_t::tag_s::remove, remove_tagged_hd_entries(), and s_hd_t::tag.

Referenced by hd_scan(), hd_scan_braille(), hd_scan_cpu(), hd_scan_dsl(), hd_scan_fb(), hd_scan_floppy(), hd_scan_hal(), hd_scan_input(), hd_scan_int(), hd_scan_isdn(), hd_scan_kbd(), hd_scan_manual(), hd_scan_memory(), hd_scan_misc(), hd_scan_modem(), hd_scan_monitor(), hd_scan_mouse(), hd_scan_net(), hd_scan_parallel(), hd_scan_pcmcia(), hd_scan_serial(), hd_scan_sys(), hd_scan_sysfs_block(), hd_scan_sysfs_pci(), hd_scan_sysfs_scsi(), hd_scan_sysfs_usb(), hd_scan_xtra(), and reverse_str_list().

## remove_tagged_hd_entries()

void remove_tagged_hd_entries | ( | hd_data_t * | hd_data | ) |

References hd_data, s_hd_t::next, s_hd_t::tag_s::remove, and s_hd_t::tag.

Referenced by get_usb_devs(), hd_scan_fb(), hd_scan_misc(), hd_scan_xtra(), int_fix_usb_scsi(), remove_hd_entries(), and reverse_str_list().

## resize_mem()

void * resize_mem | ( | void * | p,
|  | size_t | n )

Referenced by store_list(), store_string(), store_value(), and str_printf().

## reverse_str_list()

str_list_t * reverse_str_list | ( | str_list_t * | list | ) |

related

Reverse string list.

References next.

## run_cmd()

int run_cmd | ( | hd_data_t * | hd_data,
|  | char * | cmd )

References ADD2LOG, free_mem(), free_str_list(), hd_data, s_str_list_t::next, read_file(), s_str_list_t::str, and str_printf().

Referenced by load_module_with_params(), probe_module(), and unload_module().

## search_str_list()

str_list_t * search_str_list | ( | str_list_t * | sl,
|  | char * | str )

related

Search a string list for a string.

References next, and str.

## set_probe_feature()

void set_probe_feature | ( | hd_data_t * | hd_data,
|  | enum probe_feature | feature,
|  | unsigned | val )

static

References feature, fix_probe_features(), hd_data, pr_flags_t::mask, pr_flags_t::parent, pr_flags, pr_flags_by_id(), and set_probe_feature().

Referenced by get_probe_env(), and set_probe_feature().

## set_probe_val()

int set_probe_val | ( | hd_data_t * | hd_data,
|  | enum probe_feature | feature,
|  | char * | val )

static

References feature, hal_add_new(), hal_get_any(), hal_invalidate(), hd_data, hd_split(), hal_prop_s::int32, hal_prop_s::key, hal_prop_s::list, pr_flags_t::name, new_str(), p_bool, p_int32, p_list, p_string, pr_flags_by_id(), hal_prop_s::str, hal_prop_s::type, pr_flags_t::type, and hal_prop_s::val.

Referenced by get_probe_env(), and hd_scan().

## short_vendor()

void short_vendor | ( | char * | vendor | ) |

static

References vendor.

Referenced by create_model_name().

## sigchld_handler()

void sigchld_handler | ( | int | num | ) |

static

References child, and child_id.

Referenced by hd_fork().

## sigusr1_handler()

void sigusr1_handler | ( | int | num | ) |

static

References ADD2LOG, copy_log2shm(), hd_data, and hd_data_sig.

Referenced by hd_fork().

## sort_str_list()

str_list_t * sort_str_list | ( | str_list_t * | sl0,
|  | int(* | cmp_func )(const void *, const void *) )

References s_str_list_t::next.

Referenced by hddb_init_external().

## str2float()

int str2float | ( | char * | s,
|  | int | n )

Referenced by hd_scan_floppy(), and reverse_str_list().

## str_printf()

void str_printf | ( | char ** | buf,
|  | int | offset,
|  | char * | format,
|  |  | ... )

References resize_mem().

Referenced by add_disk_size(), add_edid_info(), add_ide_sysfs_info(), add_input_dev(), add_kma(), add_mv643xx_eth(), add_other_sysfs_info(), add_partitions(), add_pci_data(), add_scsi_sysfs_info(), add_serial_console(), add_uml(), all_bits(), create_model_name(), do_lp(), do_zip(), dump_pci_data(), expand_driver_info(), get_block_devs(), get_cmdline(), get_generic_scsi_devs(), get_input_devices(), get_input_devs(), get_printer_devs(), get_scsi_tape(), get_serial_devs(), get_serial_modem(), get_usb_devs(), guess_modem_name(), hd2prop(), hd_add_id(), hd_add_old_id(), hd_dump_entry(), hd_get_hddb_path(), hd_hal_print_prop(), hd_manual_read_entry_old(), hd_open_properties(), hd_pci_read_data(), hd_read_ibmebus(), hd_read_mdio(), hd_read_mmc(), hd_read_nd(), hd_read_of_platform(), hd_read_platform(), hd_read_properties(), hd_read_ps3_system_bus(), hd_read_sysfs_link(), hd_read_vio(), hd_read_virtio(), hd_read_vm(), hd_read_xen(), hd_scan(), hd_scan_floppy(), hd_scan_manual(), hd_scan_misc(), hd_scan_net(), hd_scan_serial(), hd_sysfs_driver_list(), hddb_init_pci(), hexdump(), int_modem(), is_pnpinfo(), load_module_with_params(), pcmcia_ctrl_read_data(), print_dev_num(), probe_module(), read_dir(), read_udevinfo(), read_usb_lp(), run_cmd(), str_printf(), and unload_module().

## subcomponent_list()

str_list_t * subcomponent_list | ( | str_list_t * | list,
|  | char * | comp,
|  | int | max )

References add_str_list(), s_str_list_t::next, and s_str_list_t::str.

Referenced by has_subcomponent(), hd_read_platform(), and reverse_str_list().

## test_read_block0_open()

void test_read_block0_open | ( | void * | arg | ) |

static

Referenced by read_block0().

## timeout_alarm_handler()

void timeout_alarm_handler | ( | int | signal | ) |

static

Referenced by hd_timeout().

## unload_module()

int unload_module | ( | hd_data_t * | hd_data,
|  | char * | module )

References free_mem(), hd_data, hd_module_is_active(), module, PROG_RMMOD, run_cmd(), and str_printf().

Referenced by do_lp(), do_zip(), and hd_scan_misc().

## update_irq_usage()

void update_irq_usage | ( | hd_data_t * | hd_data | ) |

References u_hd_res_t::any, res_irq_t::base, hd_data, misc_irq_t::irq, u_hd_res_t::irq, s_hd_t::next, u_hd_res_t::next, s_hd_t::res, res_irq, and res_any_t::type.

Referenced by hd_scan(), and isdn_driver().

## vend_id2str()

char * vend_id2str | ( | unsigned | vend | ) |

References eisa_vendor_str(), ID_TAG, ID_VALUE, TAG_EISA, TAG_PCMCIA, TAG_SPECIAL, and TAG_USB.

## Variable Documentation

## child

volatile pid_t child

static

Referenced by hd_fork(), and sigchld_handler().

## child_id

pid_t child_id

static

Referenced by hd_fork(), and sigchld_handler().

## hd_data_sig

hd_data_t* hd_data_sig

static

Referenced by hd_fork(), and sigusr1_handler().

## pr_flags

pr_flags_t pr_flags[]

static

Referenced by hd_clear_probe_feature(), hd_set_probe_feature(), pr_flags_by_id(), pr_flags_by_name(), and set_probe_feature().

## pr_modules

struct s_mod_names pr_modules[]

static

Referenced by mod_name_by_idx().