#include <hd.h>
Data Fields | |
s_hd_t * | next |
Link to next hardware item. | |
unsigned | idx |
Unique index, starting at 1. | |
unsigned | broken:1 |
Hardware appears to be broken in some way. | |
hd_id_t | bus |
Bus type (id and name). | |
unsigned | slot |
Slot and bus number. | |
unsigned | func |
(PCI) function. | |
hd_id_t | base_class |
Base class (id and name). | |
hd_id_t | sub_class |
Sub class (id and name). | |
hd_id_t | prog_if |
(PCI) programming interface (id and name). | |
hd_id_t | vendor |
Vendor id and name. | |
hd_id_t | device |
Device id and name. | |
hd_id_t | sub_vendor |
Subvendor id and name. | |
hd_id_t | sub_device |
Subdevice id and name. | |
hd_id_t | revision |
Revision id or string. | |
char * | serial |
Serial id. | |
hd_id_t | compat_vendor |
Vendor id and name of some compatible hardware. | |
hd_id_t | compat_device |
Device id and name of some compatible hardware. | |
hd_hw_item_t | hw_class |
Hardware class. | |
unsigned char | hw_class_list [(hw_all+7)/8] |
Hardware class list. (Internal) bitmask of hw classes. | |
char * | model |
Model name. | |
unsigned | attached_to |
Device this hardware is attached to. | |
char * | sysfs_id |
sysfs entry for this hardware, if any. | |
char * | sysfs_bus_id |
sysfs bus id for this hardware, if any. | |
char * | sysfs_device_link |
sysfs device link. | |
char * | unix_dev_name |
Special device file. | |
hd_dev_num_t | unix_dev_num |
Device type & number according to sysfs. | |
str_list_t * | unix_dev_names |
List of device names. | |
char * | unix_dev_name2 |
Special device file. | |
hd_dev_num_t | unix_dev_num2 |
Device type & number according to sysfs. | |
char * | rom_id |
BIOS/PROM id. | |
char * | udi |
HAL udi. | |
char * | parent_udi |
udi of parent (attached_to). | |
char * | unique_id |
Unique id for this hardware. | |
str_list_t * | unique_ids |
List of ids. | |
unsigned | module |
(Internal) Probing module that created this entry. | |
unsigned | line |
(Internal) Source code line where this entry was created. | |
unsigned | count |
(Internal) Counter, used in combination with hd_t::module and hd_t::line. | |
hd_res_t * | res |
Device resources. | |
hd_detail_t * | detail |
Special info associated with this hardware. | |
str_list_t * | extra_info |
(Internal) Unspecific text info. | |
hd_status_t | status |
Hardware status (if available). | |
char * | config_string |
Some config info. | |
hd_hotplug_t | hotplug |
Hotplug controller for this device. | |
unsigned | hotplug_slot |
Slot the hotplug device is connected to (e.g. | |
s_hd_t::is_s | is |
s_hd_t::tag_s | tag |
unsigned char * | block0 |
(Internal) First 512 bytes of block devices. | |
char * | driver |
Currently active driver. | |
char * | driver_module |
Currently active driver module (if any). | |
str_list_t * | drivers |
List of currently active drivers. | |
str_list_t * | driver_modules |
List of currently active driver modules. | |
char * | old_unique_id |
Old unique_id for compatibility. | |
char * | parent_id |
unique_id of parent (attached_to). | |
str_list_t * | child_ids |
unique_ids of children (parent_id). | |
char * | unique_id1 |
(Internal) location independent unique_id part. | |
char * | usb_guid |
USB Global Unique Identifier. | |
driver_info_t * | driver_info |
device driver info | |
str_list_t * | requires |
packages/programs required for this hardware | |
hal_prop_t * | hal_prop |
hal property list | |
hal_prop_t * | persistent_prop |
persistent property list | |
char * | modalias |
module alias | |
unsigned | ref_cnt |
(Internal) memory reference count. | |
s_hd_t * | ref |
(Internal) if set, this is only a reference. | |
Data Structures | |
struct | is_s |
struct | tag_s |
Every hardware component gets an hd_t entry. A list of all hardware items is in hd_data_t::hd.
struct s_hd_t* s_hd_t::next [read] |
Link to next hardware item.
unsigned s_hd_t::idx |
Unique index, starting at 1.
Use hd_get_device_by_idx() to look up an hardware entry by index. And don't free the result!
unsigned s_hd_t::broken |
Hardware appears to be broken in some way.
This was used to indicate broken framebuffer support of some graphics cards. Currently unused.
Bus type (id and name).
unsigned s_hd_t::slot |
Slot and bus number.
Bits 0-7: slot number, 8-31 bus number.
unsigned s_hd_t::func |
(PCI) function.
Base class (id and name).
Sub class (id and name).
(PCI) programming interface (id and name).
Vendor id and name.
Id is actually a combination of some tag to differentiate the various id types and the real id. Use the ID_VALUE macro to get e.g. the real PCI id value for a PCI device.
Device id and name.
Id is actually a combination of some tag to differentiate the various id types and the real id. Use the ID_VALUE macro to get e.g. the real PCI id value for a PCI device.
Subvendor id and name.
Id is actually a combination of some tag to differentiate the various id types and the real id. Use the ID_VALUE macro to get e.g. the real PCI id value for a PCI device.
Subdevice id and name.
Id is actually a combination of some tag to differentiate the various id types and the real id. Use the ID_VALUE macro to get e.g. the real PCI id value for a PCI device.
Revision id or string.
If revision is numerical (e.g. PCI) hd_id_t::id is used. If revision is some char data (e.g. disk drives) it is stored in hd_id_t::name.
char* s_hd_t::serial |
Serial id.
Vendor id and name of some compatible hardware.
Used mainly for ISA-PnP devices.
Device id and name of some compatible hardware.
Used mainly for ISA-PnP devices.
Hardware class.
Not to confuse with base_class!
unsigned char s_hd_t::hw_class_list[(hw_all+7)/8] |
Hardware class list. (Internal) bitmask of hw classes.
A device may belong to more than one hardware class.
char* s_hd_t::model |
Model name.
This is a combination of vendor and device names. Some heuristics is used to make it more presentable. Use this instead of hd_t::vendor and hd_t::device.
unsigned s_hd_t::attached_to |
Device this hardware is attached to.
Link to some 'parent' device. Use hd_get_device_by_idx() to get the corresponding hardware entry.
char* s_hd_t::sysfs_id |
sysfs entry for this hardware, if any.
char* s_hd_t::sysfs_bus_id |
sysfs bus id for this hardware, if any.
sysfs device link.
char* s_hd_t::unix_dev_name |
Special device file.
Device file name to access this hardware. Normally something below /dev. For network interfaces this is the interface name.
Device type & number according to sysfs.
List of device names.
Device file names to access this hardware. Normally something below /dev. They should be all equivalent. The preferred name however is hd_t::unix_dev_name.
char* s_hd_t::unix_dev_name2 |
Special device file.
Device file name to access this hardware. Most hardware only has one device name stored in hd_t::unix_dev_name. But in some cases there's an alternative name.
Device type & number according to sysfs.
char* s_hd_t::rom_id |
BIOS/PROM id.
Where appropriate, this is a special BIOS/PROM id (e.g. "0x80" for the first harddisk on Intel-PCs). CHPID for s390.
char* s_hd_t::udi |
HAL udi.
char* s_hd_t::parent_udi |
udi of parent (attached_to).
char* s_hd_t::unique_id |
Unique id for this hardware.
A unique string identifying this hardware. The string consists of two parts separated by a dot ("."). The part before the dot describes the location (where the hardware is attached in the system). The part after the dot identifies the hardware itself. The string must not contain slashes ("/") because we're going to create files with this id as name. Apart from this there are no restrictions on the form of this string.
List of ids.
unsigned s_hd_t::module |
(Internal) Probing module that created this entry.
unsigned s_hd_t::line |
(Internal) Source code line where this entry was created.
unsigned s_hd_t::count |
(Internal) Counter, used in combination with hd_t::module and hd_t::line.
Device resources.
Special info associated with this hardware.
(Internal) Unspecific text info.
It is used to track IDE interfaces and assign them to the correct IDE controllers.
Hardware status (if available).
The status is stored in files below /var/lib/hardware/unique-keys/. Every hardware item gets a file there with its unique id as file name.
char* s_hd_t::config_string |
Some config info.
Every hardware item may get some string assigned. This string is stored in files below /var/lib/hardware/unique-keys/. There is no meaning associated with this string.
Hotplug controller for this device.
It indicates what kind of hotplug device (if any) this is.
unsigned s_hd_t::hotplug_slot |
Slot the hotplug device is connected to (e.g.
PCMCIA socket).
struct s_hd_t::is_s s_hd_t::is |
struct s_hd_t::tag_s s_hd_t::tag |
unsigned char* s_hd_t::block0 |
(Internal) First 512 bytes of block devices.
To check accessibility of block devices we read the first block. The data is used to identify the boot device.
char* s_hd_t::driver |
Currently active driver.
char* s_hd_t::driver_module |
Currently active driver module (if any).
List of currently active drivers.
List of currently active driver modules.
char* s_hd_t::old_unique_id |
Old unique_id for compatibility.
The calculation of unique ids has changed in libhd v3.17. Basically we no longer use the vendor/device names if there are vendor/device ids. (Otherwise a simple device name database update would change the id, which is really not what you want.)
char* s_hd_t::parent_id |
char* s_hd_t::unique_id1 |
(Internal) location independent unique_id part.
The speed up some internal searches, we store it here separately.
char* s_hd_t::usb_guid |
device driver info
packages/programs required for this hardware
hal property list
persistent property list
char* s_hd_t::modalias |
module alias
unsigned s_hd_t::ref_cnt |
(Internal) memory reference count.
struct s_hd_t* s_hd_t::ref [read] |
(Internal) if set, this is only a reference.