diff options
author | Danny Kukawka <danny.kukawka@web.de> | 2005-11-21 18:51:32 +0000 |
---|---|---|
committer | Danny Kukawka <danny.kukawka@web.de> | 2005-11-21 18:51:32 +0000 |
commit | eb439cdf25c4900ae67376bc8797d91c2bcbc5cc (patch) | |
tree | ca09418ef6c80e42d82ac95ccbd684d535da3a19 /doc/spec/hal-spec.html | |
parent | 98a0ef11abaf63db8943f6d4ccbeb0c58973d717 (diff) |
generated for 0.5.5.1 spec
fix for make distcheck
Diffstat (limited to 'doc/spec/hal-spec.html')
-rw-r--r-- | doc/spec/hal-spec.html | 1992 |
1 files changed, 1167 insertions, 825 deletions
diff --git a/doc/spec/hal-spec.html b/doc/spec/hal-spec.html index de85011b..2bda6a9d 100644 --- a/doc/spec/hal-spec.html +++ b/doc/spec/hal-spec.html @@ -1,8 +1,8 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE ->HAL 0.5.4 Specification</TITLE +>HAL 0.5.5.1 Specification</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"></HEAD @@ -24,7 +24,7 @@ CLASS="TITLEPAGE" CLASS="title" ><A NAME="AEN2" ->HAL 0.5.4 Specification</A +>HAL 0.5.5.1 Specification</A ></H1 ><H3 CLASS="author" @@ -49,9 +49,6 @@ HREF="mailto:david@fubar.dk" </P ></DIV ></DIV -><SPAN -CLASS="releaseinfo" ->Version 0.5.4<BR></SPAN ><HR></DIV ><DIV CLASS="TOC" @@ -61,79 +58,79 @@ CLASS="TOC" >Table of Contents</B ></DT ><DT -><A +>1. <A HREF="#introduction" >Introduction</A ></DT ><DD ><DL ><DT -><A +>1.1. <A HREF="#AEN15" >About</A ></DT ><DT -><A +>1.2. <A HREF="#AEN24" >Document History</A ></DT ><DT -><A +>1.3. <A HREF="#AEN46" >Acknowledgements</A ></DT ></DL ></DD ><DT -><A +>2. <A HREF="#overview" >Overview</A ></DT ><DD ><DL ><DT -><A +>2.1. <A HREF="#ov_halarch" >Architecture of HAL</A ></DT ><DT -><A +>2.2. <A HREF="#ov_hal_linux26" >HAL on Linux 2.6</A ></DT ></DL ></DD ><DT -><A +>3. <A HREF="#AEN108" >Device Objects</A ></DT ><DT -><A +>4. <A HREF="#device-capabilities" >Device Capabilities</A ></DT ><DT -><A +>5. <A HREF="#using-devices" >Using devices</A ></DT ><DT -><A +>6. <A HREF="#device-properties" >Device Properties</A ></DT ><DD ><DL ><DT -><A +>6.1. <A HREF="#properties-metadata" >Metadata Properties</A ></DT ><DD ><DL ><DT -><A +>6.1.1. <A HREF="#device-properties-info" ><TT CLASS="literal" @@ -141,7 +138,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.1.2. <A HREF="#device-properties-linux" ><TT CLASS="literal" @@ -151,14 +148,14 @@ CLASS="literal" ></DL ></DD ><DT -><A +>6.2. <A HREF="#properties-bus" >Physical Properties</A ></DT ><DD ><DL ><DT -><A +>6.2.1. <A HREF="#device-properties-pci" ><TT CLASS="literal" @@ -166,7 +163,15 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.2. <A +HREF="#device-properties-serialif" +><TT +CLASS="literal" +>serial</TT +> namespace</A +></DT +><DT +>6.2.3. <A HREF="#device-properties-usb" ><TT CLASS="literal" @@ -174,7 +179,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.4. <A HREF="#device-properties-usbif" ><TT CLASS="literal" @@ -182,7 +187,15 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.5. <A +HREF="#device-properties-platform" +><TT +CLASS="literal" +>platform</TT +> namespace</A +></DT +><DT +>6.2.6. <A HREF="#device-properties-ide-host" ><TT CLASS="literal" @@ -190,7 +203,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.7. <A HREF="#device-properties-ide" ><TT CLASS="literal" @@ -198,7 +211,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.8. <A HREF="#device-properties-scsi_host" ><TT CLASS="literal" @@ -206,7 +219,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.9. <A HREF="#device-properties-scsi" ><TT CLASS="literal" @@ -214,7 +227,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.10. <A HREF="#device-properties-ieee1394_host" ><TT CLASS="literal" @@ -222,7 +235,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.11. <A HREF="#device-properties-ieee1394_node" ><TT CLASS="literal" @@ -230,7 +243,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.12. <A HREF="#device-properties-ieee1394" ><TT CLASS="literal" @@ -238,7 +251,23 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.13. <A +HREF="#device-properties-mmc_host" +><TT +CLASS="literal" +>mmc_host</TT +> namespace</A +></DT +><DT +>6.2.14. <A +HREF="#device-properties-mmc" +><TT +CLASS="literal" +>mmc</TT +> namespace</A +></DT +><DT +>6.2.15. <A HREF="#device-properties-ccw" ><TT CLASS="literal" @@ -246,7 +275,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.16. <A HREF="#device-properties-ccwgroup" ><TT CLASS="literal" @@ -254,7 +283,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.17. <A HREF="#device-properties-iucv" ><TT CLASS="literal" @@ -262,7 +291,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.2.18. <A HREF="#device-properties-block" ><TT CLASS="literal" @@ -272,14 +301,14 @@ CLASS="literal" ></DL ></DD ><DT -><A +>6.3. <A HREF="#properties-functional" >Functional Properties</A ></DT ><DD ><DL ><DT -><A +>6.3.1. <A HREF="#device-properties-volume" ><TT CLASS="literal" @@ -287,15 +316,15 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.2. <A HREF="#device-properties-kernel" ><TT CLASS="literal" ->kernel</TT +>system</TT > namespace</A ></DT ><DT -><A +>6.3.3. <A HREF="#device-properties-volume-disc" ><TT CLASS="literal" @@ -303,7 +332,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.4. <A HREF="#device-properties-storage" ><TT CLASS="literal" @@ -311,7 +340,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.5. <A HREF="#device-properties-storage-cdrom" ><TT CLASS="literal" @@ -319,7 +348,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.6. <A HREF="#device-properties-net" ><TT CLASS="literal" @@ -327,7 +356,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.7. <A HREF="#device-properties-net-80203" ><TT CLASS="literal" @@ -335,7 +364,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.8. <A HREF="#device-properties-net-80211" ><TT CLASS="literal" @@ -343,7 +372,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.9. <A HREF="#device-properties-input" ><TT CLASS="literal" @@ -351,7 +380,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.10. <A HREF="#device-properties-pcmcia_socket" ><TT CLASS="literal" @@ -359,7 +388,7 @@ CLASS="literal" ></A ></DT ><DT -><A +>6.3.11. <A HREF="#device-properties-printer" ><TT CLASS="literal" @@ -367,7 +396,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.12. <A HREF="#device-properties-portable_audio_player" ><TT CLASS="literal" @@ -375,7 +404,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.13. <A HREF="#device-properties-alsa" ><TT CLASS="literal" @@ -383,7 +412,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.14. <A HREF="#device-properties-oss" ><TT CLASS="literal" @@ -391,7 +420,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.15. <A HREF="#device-properties-camera" ><TT CLASS="literal" @@ -399,7 +428,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.16. <A HREF="#device-properties-laptop-panel" ><TT CLASS="literal" @@ -407,7 +436,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.17. <A HREF="#device-properties-ac_adaptor" ><TT CLASS="literal" @@ -415,7 +444,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.18. <A HREF="#device-properties-battery" ><TT CLASS="literal" @@ -423,7 +452,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.19. <A HREF="#device-properties-button" ><TT CLASS="literal" @@ -431,7 +460,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.20. <A HREF="#device-properties-processor" ><TT CLASS="literal" @@ -439,7 +468,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.21. <A HREF="#device-properties-display_device" ><TT CLASS="literal" @@ -447,7 +476,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.22. <A HREF="#device-properties-sensor" ><TT CLASS="literal" @@ -455,7 +484,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.3.23. <A HREF="#device-properties-tape" ><TT CLASS="literal" @@ -465,14 +494,14 @@ CLASS="literal" ></DL ></DD ><DT -><A +>6.4. <A HREF="#properties-policy" >Policy Properties</A ></DT ><DD ><DL ><DT -><A +>6.4.1. <A HREF="#device-properties-storage-policy-default" ><TT CLASS="literal" @@ -480,7 +509,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.4.2. <A HREF="#device-properties-storage-policy" ><TT CLASS="literal" @@ -488,7 +517,7 @@ CLASS="literal" > namespace</A ></DT ><DT -><A +>6.4.3. <A HREF="#device-properties-volume-policy" ><TT CLASS="literal" @@ -500,45 +529,45 @@ CLASS="literal" ></DL ></DD ><DT -><A +>7. <A HREF="#spec-device-info" >Device Information Files</A ></DT ><DD ><DL ><DT -><A +>7.1. <A HREF="#fdi-facts" >Facts about devices</A ></DT ><DD ><DL ><DT -><A +>7.1.1. <A HREF="#fdi-example-mp3player" >Example: MP3 player</A ></DT ><DT -><A +>7.1.2. <A HREF="#fdi-example-camera" >Example: Digital Still Camera</A ></DT ><DT -><A +>7.1.3. <A HREF="#fdi-example-6in1" >Example: Card Reader</A ></DT ></DL ></DD ><DT -><A +>7.2. <A HREF="#fdi-policy" >Policy settings for devices</A ></DT ><DD ><DL ><DT -><A +>7.2.1. <A HREF="#fdi-example-mountsetting" >Storage Devices</A ></DT @@ -547,64 +576,64 @@ HREF="#fdi-example-mountsetting" ></DL ></DD ><DT -><A +>8. <A HREF="#callouts" >Callouts</A ></DT ><DT -><A +>9. <A HREF="#dbus-api" >D-BUS Network API</A ></DT ><DD ><DL ><DT -><A -HREF="#AEN3439" +>9.1. <A +HREF="#AEN3665" >Interface org.freedesktop.Hal.Manager</A ></DT ><DD ><DL ><DT -><A -HREF="#AEN3450" +>9.1.1. <A +HREF="#AEN3676" >Example</A ></DT ></DL ></DD ><DT -><A -HREF="#AEN3458" +>9.2. <A +HREF="#AEN3684" >Interface org.freedesktop.Hal.Device</A ></DT ></DL ></DD ><DT -><A +>10. <A HREF="#enforcing-policy" >Enforcing Policy</A ></DT ><DD ><DL ><DT -><A +>10.1. <A HREF="#enforcing-stor-vol" >Storage Devices</A ></DT ><DD ><DL ><DT -><A +>10.1.1. <A HREF="#stor-vol-policy" >Policy for Volumes and Storage devices</A ></DT ><DT -><A +>10.1.2. <A HREF="#enforcing-storage-fstab" >File systems file</A ></DT ><DT -><A +>10.1.3. <A HREF="#enforcing-storage-locking" >Disabling policy agents</A ></DT @@ -620,14 +649,14 @@ CLASS="chapter" ><A NAME="introduction" ></A ->Introduction</H1 +>Chapter 1. Introduction</H1 ><DIV CLASS="sect1" ><H2 CLASS="sect1" ><A NAME="AEN15" ->About</A +>1.1. About</A ></H2 ><P > This document concerns the specification of HAL which is a @@ -642,20 +671,29 @@ NAME="AEN15" ><P > HAL represents a piece of hardware as a - <I + <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >device object</I +></SPAN >. A device object is identified by a unique identifer and carries a set of - key/value paris referred to as <I + key/value paris referred to as <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >device properties</I +></SPAN >. Some properties are derived from the - actual hardware, some are merged from <I + actual hardware, some are merged from <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >device information files</I +></SPAN > and some are related to the actual device configuration. This document specifies the set of device properties and gives them well-defined meaning. This @@ -693,7 +731,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN24" ->Document History</A +>1.2. Document History</A ></H2 ><DIV CLASS="informaltable" @@ -704,11 +742,8 @@ NAME="AEN26" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><COL><THEAD ><TR ><TH >Version</TH @@ -738,7 +773,7 @@ CLASS="CALSTABLE" ></TR ><TR ><TD ->0.5.4</TD +>0.5.5.1</TD ><TD > </TD ><TD @@ -756,7 +791,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="AEN46" ->Acknowledgements</A +>1.3. Acknowledgements</A ></H2 ><P > @@ -796,14 +831,14 @@ CLASS="chapter" ><A NAME="overview" ></A ->Overview</H1 +>Chapter 2. Overview</H1 ><DIV CLASS="sect1" ><H2 CLASS="sect1" ><A NAME="ov_halarch" ->Architecture of HAL</A +>2.1. Architecture of HAL</A ></H2 ><P > @@ -825,9 +860,12 @@ SRC="hal-arch.png"> ><UL ><LI ><P -> <I +> <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >HAL daemon</I +></SPAN ></P ><P > @@ -846,9 +884,12 @@ CLASS="emphasis" ></LI ><LI ><P -> <I +> <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >Applications</I +></SPAN ></P ><P > @@ -887,19 +928,21 @@ CLASS="emphasis" ></LI ><LI ><P -> <I +> <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >Callouts</I +></SPAN ></P ><P > Callouts are programs invoked when the device object list - is modified or when a device property changes. As such, callouts - can be used to maintain system-wide policy (that may be - specific to the particular OS) such as changing - permissions on device nodes, updating the - systemwide <TT + is modified As such, callouts can be used to maintain + system-wide policy (that may be specific to the particular + OS) such as changing permissions on device nodes, updating + the systemwide <TT CLASS="literal" >/etc/fstab</TT > file or @@ -918,9 +961,7 @@ CLASS="literal" easily access the services offered by HAL. The D-BUS API is detailed in <A HREF="#dbus-api" ->the Chapter called <I ->D-BUS Network API</I -></A +>Chapter 9</A >. Note that HAL doesn't enforce any policy at all, this is left for desktop environments and operating systems vendors to implement. However, to ensure @@ -928,9 +969,7 @@ HREF="#dbus-api" environments, recommendations and best practises on how to enforce policy is discussed in <A HREF="#enforcing-policy" ->the Chapter called <I ->Enforcing Policy</I -></A +>Chapter 10</A >. </P @@ -941,7 +980,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="ov_hal_linux26" ->HAL on Linux 2.6</A +>2.2. HAL on Linux 2.6</A ></H2 ><P > @@ -1033,9 +1072,7 @@ CLASS="literal" or use another setuid mount wrapper. See <A HREF="#enforcing-policy" ->the Chapter called <I ->Enforcing Policy</I -></A +>Chapter 10</A > for more details. </P ></LI @@ -1051,7 +1088,7 @@ CLASS="chapter" ><A NAME="AEN108" ></A ->Device Objects</H1 +>Chapter 3. Device Objects</H1 ><P > It is important to precisely define the term HAL device @@ -1114,15 +1151,11 @@ CLASS="literal" checking the properties that export the USB vendor and product identifiers. See <A HREF="#device-capabilities" ->the Chapter called <I ->Device Capabilities</I -></A +>Chapter 4</A > and <A HREF="#device-properties" ->the Chapter called <I ->Device Properties</I -></A +>Chapter 6</A > for details. </P @@ -1137,9 +1170,12 @@ HREF="#device-properties" ><LI ><P > - <I + <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >UDI</I +></SPAN ></P ><P > @@ -1156,9 +1192,12 @@ CLASS="emphasis" ><LI ><P > - <I + <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >Properties</I +></SPAN ></P ><P > @@ -1182,6 +1221,14 @@ CLASS="literal" ><P ><TT CLASS="literal" +>strlist</TT +> - + sorted list with UTF8 strings</P +></LI +><LI +><P +><TT +CLASS="literal" >int</TT > - 32-bit signed integer</P @@ -1268,14 +1315,15 @@ CLASS="literal" administrator can edit. This specification is concerned with precisely defining several properties; see <A HREF="#device-properties" ->the Chapter called <I ->Device Properties</I -></A +>Chapter 6</A > and onwards for more information. As a complement to device properties, HAL also - provides <I + provides <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >conditions</I +></SPAN > on HAL device objects. Conditions are used to relay events that are happening on devices which are not easily expressed in @@ -1324,7 +1372,7 @@ CLASS="chapter" ><A NAME="device-capabilities" ></A ->Device Capabilities</H1 +>Chapter 4. Device Capabilities</H1 ><P > Mainstream hardware isn't very good at reporting what they are, @@ -1350,20 +1398,29 @@ CLASS="literal" CLASS="literal" >info.capabilities</TT >. The former describes - <I + <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >what the device is</I +></SPAN > (as a single alphanumeric keyword) and the latter describes - <I + <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >what the device does</I +></SPAN > (as a number of alphanumeric keywords separated by whitespace). The keywords available for use is defined in this document; we'll refer to - them in following simply as <I + them in following simply as <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >capabilities</I +></SPAN >. </P @@ -1433,7 +1490,7 @@ CLASS="chapter" ><A NAME="using-devices" ></A ->Using devices</H1 +>Chapter 5. Using devices</H1 ><P > While the HAL daemon provides generic operations that apply to @@ -1483,13 +1540,13 @@ CLASS="chapter" ><A NAME="device-properties" ></A ->Device Properties</H1 +>Chapter 6. Device Properties</H1 ><P > Properties are arranged in a namespaces using ''.'' as a separator and are key/value pairs. The value may assume different types; currently - int32, double, bool and UTF8 strings are supported. The key of a property - is always an ASCII string without any whitespace. The properties are - updated in real-time. + int32, double, bool, UTF8 strings and UTF8 string lists are supported. + The key of a property is always an ASCII string without any whitespace. + The properties are updated in real-time. </P ><DIV CLASS="sect1" @@ -1497,7 +1554,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="properties-metadata" ->Metadata Properties</A +>6.1. Metadata Properties</A ></H2 ><P > @@ -1512,7 +1569,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-info" -><TT +>6.1.1. <TT CLASS="literal" >info</TT > namespace</A @@ -1532,15 +1589,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN199" +NAME="AEN202" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -1594,7 +1648,7 @@ CLASS="literal" > is set to TRUE</TD ><TD >If this property is set, the device will remain in the - the GDL even if the device is unplugged</TD + the GDL even if the device is unplugged. NOTE: property not implemented yet </TD ></TR ><TR ><TD @@ -1608,20 +1662,20 @@ CLASS="literal" >No</TD ><TD >The device is currently not available (it may be unplugged - or powered down)</TD + or powered down) NOTE: property not implemented yet </TD ></TR ><TR ><TD ><TT CLASS="literal" >info.capabilities</TT -> (string)</TD +> (strlist)</TD ><TD ->example: block storage storage.cdrom</TD +>example: 'block, storage, storage.cdrom'</TD ><TD >No</TD ><TD ->A white-space separated list of capabilities describing what the devices does</TD +>A string list of capabilities describing what the devices does</TD ></TR ><TR ><TD @@ -1754,7 +1808,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-linux" -><TT +>6.1.2. <TT CLASS="literal" >linux</TT > namespace</A @@ -1768,15 +1822,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN290" +NAME="AEN293" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -1798,7 +1849,7 @@ CLASS="literal" ><TD >examples: /sys/block/sda/sda1, /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0</TD ><TD ->Yes</TD +>Yes (only if available for the device) </TD ><TD >A fully-qualified path into the sysfs filesystem for the physical device</TD @@ -1812,7 +1863,7 @@ CLASS="literal" ><TD > </TD ><TD ->Yes</TD +>Yes (only if available for the device) </TD ><TD >Normally this property assumes the same value as linux.sysfs_path, however for some devices it assumes an @@ -1889,7 +1940,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="properties-bus" ->Physical Properties</A +>6.2. Physical Properties</A ></H2 ><P > @@ -1912,7 +1963,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-pci" -><TT +>6.2.1. <TT CLASS="literal" >pci</TT > namespace</A @@ -1935,15 +1986,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN346" +NAME="AEN349" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -2132,9 +2180,115 @@ CLASS="sect2" ><HR><H3 CLASS="sect2" ><A -NAME="device-properties-usb" +NAME="device-properties-serialif" +>6.2.2. <TT +CLASS="literal" +>serial</TT +> namespace</A +></H3 +><P +> + Device objects that represent serial devices (e.g. /dev/ttyS* or + /dev/ttyUSB*). + + </P +><DIV +CLASS="informaltable" +><P +></P +><A +NAME="AEN436" +></A +><TABLE +BORDER="1" +CLASS="CALSTABLE" +><COL><COL><THEAD +><TR +><TH +>Key (type)</TH +><TH +>Values</TH +><TH +>Mandatory</TH +><TH +>Description</TH +></TR +></THEAD +><TBODY +><TR +><TD ><TT CLASS="literal" +>serial.physical_device</TT +> (string)</TD +><TD +>example: <TT +CLASS="literal" +>/org/freedesktop/Hal/devices/pnp_PNP0501</TT +></TD +><TD +>Yes</TD +><TD +>UDI of the physical device the serial device is bound to.</TD +></TR +><TR +><TD +><TT +CLASS="literal" +>serial.device</TT +> (string)</TD +><TD +>example: /dev/ttyS0</TD +><TD +>Yes</TD +><TD +>The device node to access the OSS device.</TD +></TR +><TR +><TD +><TT +CLASS="literal" +>serial.port</TT +> (int)</TD +><TD +>example: 0</TD +><TD +>Yes</TD +><TD +> The port number of the device, based on the number in + <TT +CLASS="literal" +>serial.device</TT +> + </TD +></TR +><TR +><TD +><TT +CLASS="literal" +>serial.type</TT +> (string)</TD +><TD +>example: platform, usb, unknown</TD +><TD +>Yes</TD +><TD +>This property defines the type of the serial device.</TD +></TR +></TBODY +></TABLE +><P +></P +></DIV +></DIV +><DIV +CLASS="sect2" +><HR><H3 +CLASS="sect2" +><A +NAME="device-properties-usb" +>6.2.3. <TT +CLASS="literal" >usb_device</TT > namespace</A ></H3 @@ -2158,15 +2312,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN435" +NAME="AEN477" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -2514,7 +2665,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-usbif" -><TT +>6.2.4. <TT CLASS="literal" >usb</TT > namespace</A @@ -2550,15 +2701,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN598" +NAME="AEN640" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -2650,9 +2798,77 @@ CLASS="sect2" ><HR><H3 CLASS="sect2" ><A -NAME="device-properties-ide-host" +NAME="device-properties-platform" +>6.2.5. <TT +CLASS="literal" +>platform</TT +> namespace</A +></H3 +><P +> + Devices that are built into the platform or present on busses that + cannot be properly enumerated (e.g. ISA) are represented by device + objects where <TT +CLASS="literal" +>info.bus</TT +> equals + <TT +CLASS="literal" +>platform</TT +>. These kind of devices are commonly, + somewhat incorrectly, called legacy devices. + + </P +><DIV +CLASS="informaltable" +><P +></P +><A +NAME="AEN686" +></A +><TABLE +BORDER="1" +CLASS="CALSTABLE" +><COL><COL><THEAD +><TR +><TH +>Key (type)</TH +><TH +>Values</TH +><TH +>Mandatory</TH +><TH +>Description</TH +></TR +></THEAD +><TBODY +><TR +><TD ><TT CLASS="literal" +>platform.id</TT +> (string)</TD +><TD +>example: serial</TD +><TD +>Yes</TD +><TD +>Device identification</TD +></TR +></TBODY +></TABLE +><P +></P +></DIV +></DIV +><DIV +CLASS="sect2" +><HR><H3 +CLASS="sect2" +><A +NAME="device-properties-ide-host" +>6.2.6. <TT +CLASS="literal" >ide_host</TT > namespace</A ></H3 @@ -2679,15 +2895,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN645" +NAME="AEN708" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -2741,7 +2954,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-ide" -><TT +>6.2.7. <TT CLASS="literal" >ide</TT > namespace</A @@ -2764,15 +2977,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN673" +NAME="AEN736" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -2832,7 +3042,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-scsi_host" -><TT +>6.2.8. <TT CLASS="literal" >scsi_host</TT > namespace</A @@ -2860,15 +3070,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN703" +NAME="AEN766" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -2906,7 +3113,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-scsi" -><TT +>6.2.9. <TT CLASS="literal" >scsi</TT > namespace</A @@ -2929,15 +3136,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN724" +NAME="AEN787" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -3022,7 +3226,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-ieee1394_host" -><TT +>6.2.10. <TT CLASS="literal" >ieee1394_host</TT > namespace</A @@ -3046,15 +3250,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN765" +NAME="AEN828" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -3144,7 +3345,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-ieee1394_node" -><TT +>6.2.11. <TT CLASS="literal" >ieee1394_node</TT > namespace</A @@ -3168,15 +3369,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN810" +NAME="AEN873" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -3266,7 +3464,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-ieee1394" -><TT +>6.2.12. <TT CLASS="literal" >ieee1394</TT > namespace</A @@ -3289,15 +3487,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN855" +NAME="AEN918" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -3334,9 +3529,248 @@ CLASS="sect2" ><HR><H3 CLASS="sect2" ><A -NAME="device-properties-ccw" +NAME="device-properties-mmc_host" +>6.2.13. <TT +CLASS="literal" +>mmc_host</TT +> namespace</A +></H3 +><P +> + Device objects with <TT +CLASS="literal" +>info.bus</TT +> set to + <TT +CLASS="literal" +>mmc_host</TT +> represent MultiMediaCard or + Secure Digital host adaptors. The following properties + are available for such device objects. + + </P +><DIV +CLASS="informaltable" +><P +></P +><A +NAME="AEN939" +></A +><TABLE +BORDER="1" +CLASS="CALSTABLE" +><COL><COL><THEAD +><TR +><TH +>Key (type)</TH +><TH +>Values</TH +><TH +>Mandatory</TH +><TH +>Description</TH +></TR +></THEAD +><TBODY +><TR +><TD +><TT +CLASS="literal" +>mmc_host.host</TT +> (int)</TD +><TD +> </TD +><TD +>Yes</TD +><TD +>A unique number identifying the MMC/SD host adaptor</TD +></TR +></TBODY +></TABLE +><P +></P +></DIV +></DIV +><DIV +CLASS="sect2" +><HR><H3 +CLASS="sect2" +><A +NAME="device-properties-mmc" +>6.2.14. <TT +CLASS="literal" +>mmc</TT +> namespace</A +></H3 +><P +> + Device objects with <TT +CLASS="literal" +>info.bus</TT +> set to + <TT +CLASS="literal" +>mmc</TT +> represent MultiMediaCard or Secure + Digital cards. The following properties are available for + such device objects. + + </P +><DIV +CLASS="informaltable" +><P +></P +><A +NAME="AEN960" +></A +><TABLE +BORDER="1" +CLASS="CALSTABLE" +><COL><COL><THEAD +><TR +><TH +>Key (type)</TH +><TH +>Values</TH +><TH +>Mandatory</TH +><TH +>Description</TH +></TR +></THEAD +><TBODY +><TR +><TD ><TT CLASS="literal" +>mmc.cid</TT +> (string)</TD +><TD +>example: 0150415330303842413a1a8083003a9d</TD +><TD +>Yes</TD +><TD +>Card Identification Data register (unique for every card + in existence)</TD +></TR +><TR +><TD +><TT +CLASS="literal" +>mmc.csd</TT +> (string)</TD +><TD +>example: 005d013213598067b6d9cfff1640002d</TD +><TD +>Yes</TD +><TD +>Card Specific Data register</TD +></TR +><TR +><TD +><TT +CLASS="literal" +>mmc.scr</TT +> (string)</TD +><TD +>example: 00a5000000410000</TD +><TD +>Only for SD cards</TD +><TD +>SD Card Register</TD +></TR +><TR +><TD +><TT +CLASS="literal" +>mmc.rca</TT +> (int)</TD +><TD +>example: 8083</TD +><TD +>Yes</TD +><TD +>Card bus address</TD +></TR +><TR +><TD +><TT +CLASS="literal" +>mmc.oem</TT +> (string)</TD +><TD +> </TD +><TD +>Yes</TD +><TD +>Card OEM distributor</TD +></TR +><TR +><TD +><TT +CLASS="literal" +>mmc.date</TT +> (string)</TD +><TD +>example: 10/2003</TD +><TD +>Yes</TD +><TD +>Manufacturing date</TD +></TR +><TR +><TD +><TT +CLASS="literal" +>mmc.serial</TT +> (int)</TD +><TD +>example: 0x3a1a8083</TD +><TD +>Yes</TD +><TD +>Card serial number</TD +></TR +><TR +><TD +><TT +CLASS="literal" +>mmc.hwrev</TT +> (int)</TD +><TD +>example: 4</TD +><TD +>Yes</TD +><TD +>Hardware revision</TD +></TR +><TR +><TD +><TT +CLASS="literal" +>mmc.fwrev</TT +> (int)</TD +><TD +>example: 1</TD +><TD +>Yes</TD +><TD +>Firmware revision</TD +></TR +></TBODY +></TABLE +><P +></P +></DIV +></DIV +><DIV +CLASS="sect2" +><HR><H3 +CLASS="sect2" +><A +NAME="device-properties-ccw" +>6.2.15. <TT +CLASS="literal" >ccw</TT > namespace</A ></H3 @@ -3358,15 +3792,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN876" +NAME="AEN1029" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -3539,15 +3970,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN950" +NAME="AEN1103" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -3629,15 +4057,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN982" +NAME="AEN1135" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -3702,15 +4127,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1007" +NAME="AEN1160" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -3809,15 +4231,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1046" +NAME="AEN1199" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -3882,7 +4301,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-ccwgroup" -><TT +>6.2.16. <TT CLASS="literal" >ccwgroup</TT > namespace</A @@ -3908,15 +4327,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1080" +NAME="AEN1233" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -3980,15 +4396,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1105" +NAME="AEN1258" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -4248,15 +4661,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1214" +NAME="AEN1367" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -4333,15 +4743,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1245" +NAME="AEN1398" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -4419,15 +4826,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1276" +NAME="AEN1429" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -4550,7 +4954,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-iucv" -><TT +>6.2.17. <TT CLASS="literal" >iucv</TT > namespace</A @@ -4573,15 +4977,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1336" +NAME="AEN1489" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -4632,15 +5033,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1355" +NAME="AEN1508" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -4691,7 +5089,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-block" -><TT +>6.2.18. <TT CLASS="literal" >block</TT > namespace</A @@ -4718,15 +5116,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1383" +NAME="AEN1536" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -4863,7 +5258,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="properties-functional" ->Functional Properties</A +>6.3. Functional Properties</A ></H2 ><P > @@ -4882,7 +5277,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-volume" -><TT +>6.3.1. <TT CLASS="literal" >volume</TT > namespace</A @@ -4915,15 +5310,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1443" +NAME="AEN1596" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -5208,15 +5600,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1566" +NAME="AEN1719" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Condition Name</TH @@ -5330,15 +5719,16 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-kernel" -><TT +>6.3.2. <TT CLASS="literal" ->kernel</TT +>system</TT > namespace</A ></H3 ><P > This namespace is found on the toplevel "Computer" device, - and represents information about the currently running kernel. + and represents information about the system and the currently + running kernel. </P ><DIV @@ -5346,15 +5736,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1609" +NAME="AEN1762" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -5371,7 +5758,7 @@ CLASS="CALSTABLE" ><TD ><TT CLASS="literal" ->kernel.name</TT +>system.kernel.name</TT > (string)</TD ><TD >example: Linux</TD @@ -5389,7 +5776,7 @@ CLASS="literal" ><TD ><TT CLASS="literal" ->kernel.version</TT +>system.kernel.version</TT > (string)</TD ><TD >example: 2.6.5-7.104-default</TD @@ -5407,7 +5794,7 @@ CLASS="literal" ><TD ><TT CLASS="literal" ->kernel.machine</TT +>system.kernel.machine</TT > (string)</TD ><TD >example: i686</TD @@ -5421,6 +5808,65 @@ CLASS="literal" >. </TD ></TR +><TR +><TD +><TT +CLASS="literal" +>system.formfactor</TT +> (string)</TD +><TD +>example: laptop, desktop, server, unknown</TD +><TD +>Yes</TD +><TD +> The formfactor of the system. Usually the equivalent of + <TT +CLASS="literal" +>smbios.chassis.type</TT +> or set from information + about ACPI/APM/PMU properties. + </TD +></TR +><TR +><TD +><TT +CLASS="literal" +>system.vendor</TT +> (string)</TD +><TD +> </TD +><TD +>No</TD +><TD +> The name of the manufacturer of the machine. Usually the equivalent of + <TT +CLASS="literal" +>smbios.system.manufacturer</TT +>. + </TD +></TR +><TR +><TD +><TT +CLASS="literal" +>system.product</TT +> (string)</TD +><TD +> </TD +><TD +>No</TD +><TD +> The product name of the machine. Usually the equivalent of + <TT +CLASS="literal" +>smbios.system.product</TT +> and + <TT +CLASS="literal" +>smbios.system.version</TT +>. + </TD +></TR ></TBODY ></TABLE ><P @@ -5433,7 +5879,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-volume-disc" -><TT +>6.3.3. <TT CLASS="literal" >volume.disc</TT > namespace</A @@ -5457,15 +5903,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1645" +NAME="AEN1820" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -5707,7 +6150,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-storage" -><TT +>6.3.4. <TT CLASS="literal" >storage</TT > namespace</A @@ -5758,15 +6201,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1770" +NAME="AEN1945" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -6099,11 +6539,7 @@ CLASS="literal" >storage</TT >. See <A HREF="#fdi-example-6in1" ->the Section called <I ->Example: Card Reader</I -> in the Chapter called <I ->Device Information Files</I -></A +>Section 7.1.3</A > for an example. </TD ></TR @@ -6217,7 +6653,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-storage-cdrom" -><TT +>6.3.5. <TT CLASS="literal" >storage.cdrom</TT > namespace</A @@ -6246,15 +6682,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN1964" +NAME="AEN2139" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -6435,7 +6868,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-net" -><TT +>6.3.6. <TT CLASS="literal" >net</TT > namespace</A @@ -6458,15 +6891,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2050" +NAME="AEN2225" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -6549,14 +6979,14 @@ CLASS="literal" ><TD ><TT CLASS="literal" ->net.linux.sysfs_path</TT +>net.physical_device</TT > (string)</TD ><TD > </TD ><TD ->Yes (only on Linux)</TD +>Yes</TD ><TD ->Path of device in sysfs</TD +>UDI of the physical device the network device is bound to.</TD ></TR ><TR ><TD @@ -6583,7 +7013,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-net-80203" -><TT +>6.3.7. <TT CLASS="literal" >net.80203</TT > namespace</A @@ -6612,15 +7042,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2108" +NAME="AEN2283" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -6656,8 +7083,8 @@ CLASS="literal" >. </TD ><TD ->True iff the ethernet adaptor is connected to a - another transceiver</TD +>True if the ethernet adaptor is connected to a + another transceiver. NOTE: property not implemented yet.</TD ></TR ><TR ><TD @@ -6682,7 +7109,8 @@ CLASS="literal" >. </TD ><TD ->Bandwidth of connection, in bits/s</TD +>Bandwidth of connection, in bits/s. NOTE: property not + implemented yet.</TD ></TR ><TR ><TD @@ -6714,7 +7142,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-net-80211" -><TT +>6.3.8. <TT CLASS="literal" >net.80211</TT > namespace</A @@ -6743,15 +7171,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2150" +NAME="AEN2325" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -6795,7 +7220,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-input" -><TT +>6.3.9. <TT CLASS="literal" >input</TT > namespace</A @@ -6816,15 +7241,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2172" +NAME="AEN2347" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -6862,7 +7284,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-pcmcia_socket" -><TT +>6.3.10. <TT CLASS="literal" >pcmcia_socket namespace</TT ></A @@ -6883,15 +7305,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2192" +NAME="AEN2367" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -6929,7 +7348,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-printer" -><TT +>6.3.11. <TT CLASS="literal" >printer</TT > namespace</A @@ -6948,15 +7367,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2212" +NAME="AEN2387" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -7046,7 +7462,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-portable_audio_player" -><TT +>6.3.12. <TT CLASS="literal" >portable_audio_player</TT > namespace</A @@ -7075,15 +7491,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2256" +NAME="AEN2431" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -7157,7 +7570,7 @@ CLASS="literal" >portable_audio_player.output_formats</TT > (string)</TD ><TD ->example: 'audio/mpeg audio/x-ms-wma</TD +>example: audio/mpeg audio/x-ms-wma</TD ><TD >Yes</TD ><TD @@ -7172,7 +7585,7 @@ CLASS="literal" >portable_audio_player.input_formats</TT > (string)</TD ><TD ->example: 'audio/x-wav</TD +>example: audio/x-wav</TD ><TD >Yes</TD ><TD @@ -7193,7 +7606,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-alsa" -><TT +>6.3.13. <TT CLASS="literal" >alsa</TT > namespace</A @@ -7212,15 +7625,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2304" +NAME="AEN2479" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -7440,66 +7850,36 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-oss" -><TT +>6.3.14. <TT CLASS="literal" >oss</TT > namespace</A ></H3 ><P -> - Device objects with the capability <TT +> Device objects with the capability <TT CLASS="literal" >oss</TT > represent all the streams available through OSS on a soundcard. - OSS devices could be emulated by ALSA. - - <DIV -CLASS="note" -><P -></P -><TABLE -CLASS="note" -WIDTH="100%" -BORDER="0" -><TR -><TD -WIDTH="25" -ALIGN="CENTER" -VALIGN="TOP" -><IMG -SRC="./stylesheet-images/note.gif" -HSPACE="5" -ALT="Note"></TD -><TD -ALIGN="LEFT" -VALIGN="TOP" + OSS devices could be emulated by ALSA. + </P ><P > - All OSS devices, except the global devices, are only added if the - kernel supports links from oss device to physical device in sysfs. For a patch - see: http://thread.gmane.org/gmane.comp.freedesktop.hal/2862. - </P -></TD -></TR -></TABLE -></DIV -> + Note: All OSS devices, except the global devices, are only added if the + kernel supports links from oss device to physical device in sysfs. For a patch + see: http://thread.gmane.org/gmane.comp.freedesktop.hal/2862. </P ><DIV CLASS="informaltable" ><P ></P ><A -NAME="AEN2401" +NAME="AEN2575" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -7704,7 +8084,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-camera" -><TT +>6.3.15. <TT CLASS="literal" >camera</TT > namespace</A @@ -7733,15 +8113,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2490" +NAME="AEN2664" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -7835,7 +8212,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-laptop-panel" -><TT +>6.3.16. <TT CLASS="literal" >laptop_panel</TT > namespace</A @@ -7854,15 +8231,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2532" +NAME="AEN2706" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -7915,7 +8289,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-ac_adaptor" -><TT +>6.3.17. <TT CLASS="literal" >ac_adaptor</TT > namespace</A @@ -7934,15 +8308,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2558" +NAME="AEN2732" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -7982,7 +8353,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-battery" -><TT +>6.3.18. <TT CLASS="literal" >battery</TT > namespace</A @@ -8002,15 +8373,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2578" +NAME="AEN2752" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -8682,6 +9050,31 @@ CLASS="literal" ><TD ><TT CLASS="literal" +>battery.remaining_time.calculate_per_time</TT +> (bool)</TD +><TD +> </TD +><TD +>No</TD +><TD +> If this property is <TT +CLASS="literal" +>true</TT +> the + <TT +CLASS="literal" +>battery.remaining_time</TT +> becomes guessed from + <TT +CLASS="literal" +>battery.charge_level.current</TT +> and time. + </TD +></TR +><TR +><TD +><TT +CLASS="literal" >battery.charge_level.percentage</TT > (int)</TD ><TD @@ -8829,7 +9222,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-button" -><TT +>6.3.19. <TT CLASS="literal" >button</TT > namespace</A @@ -8848,15 +9241,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2887" +NAME="AEN3070" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -8962,15 +9352,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2931" +NAME="AEN3114" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Condition Name</TH @@ -9011,7 +9398,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-processor" -><TT +>6.3.20. <TT CLASS="literal" >processor</TT > namespace</A @@ -9030,15 +9417,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2952" +NAME="AEN3135" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -9105,7 +9489,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-display_device" -><TT +>6.3.21. <TT CLASS="literal" >display_device</TT > namespace</A @@ -9124,15 +9508,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN2984" +NAME="AEN3167" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -9216,7 +9597,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-sensor" -><TT +>6.3.22. <TT CLASS="literal" >sensor</TT > namespace</A @@ -9235,15 +9616,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN3026" +NAME="AEN3209" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -9354,7 +9732,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-tape" -><TT +>6.3.23. <TT CLASS="literal" >tape</TT > namespace</A @@ -9373,15 +9751,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN3082" +NAME="AEN3265" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -9433,7 +9808,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="properties-policy" ->Policy Properties</A +>6.4. Policy Properties</A ></H2 ><P > @@ -9450,7 +9825,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-storage-policy-default" -><TT +>6.4.1. <TT CLASS="literal" >storage.policy.default</TT > namespace</A @@ -9465,15 +9840,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN3110" +NAME="AEN3293" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -9497,10 +9869,13 @@ CLASS="literal" ><TD >No</TD ><TD -> Whether to use a <I +> Whether to use a <SPAN +CLASS="emphasis" +><I CLASS="emphasis" >managed no operation</I +></SPAN > keyword when adding entries to the File Systems file (<TT CLASS="literal" @@ -9609,7 +9984,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-storage-policy" -><TT +>6.4.2. <TT CLASS="literal" >storage.policy</TT > namespace</A @@ -9624,15 +9999,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN3162" +NAME="AEN3345" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -9738,7 +10110,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="device-properties-volume-policy" -><TT +>6.4.3. <TT CLASS="literal" >volume.policy</TT > namespace</A @@ -9753,15 +10125,12 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN3203" +NAME="AEN3386" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH >Key (type)</TH @@ -9822,7 +10191,7 @@ CLASS="literal" ><TD ><TT CLASS="literal" ->volume.policy.mount_options.*</TT +>volume.policy.mount_option.*</TT > (string)</TD ><TD > </TD @@ -9850,7 +10219,7 @@ CLASS="chapter" ><A NAME="spec-device-info" ></A ->Device Information Files</H1 +>Chapter 7. Device Information Files</H1 ><P > Device information files (<TT @@ -9877,7 +10246,7 @@ CLASS="literal" all the match directives passes then the device information can include <TT CLASS="literal" -><[merge|append] key="some_property" +><[merge|append|prepend] key="some_property" type="[string|int|bool|..]"></TT > directives to respectively merge new properties or append to existing @@ -9895,10 +10264,13 @@ CLASS="literal" <TT CLASS="literal" ><merge></TT -> and - <TT +>, <TT CLASS="literal" ><append></TT +> + and <TT +CLASS="literal" +><prepend></TT > directives always requires the <TT CLASS="literal" @@ -10076,16 +10448,41 @@ CLASS="literal" > but matches when greater than or equal. </P ></LI +><LI +><P +> <TT +CLASS="literal" +>contains</TT +> - can only be used with string and strlist (string list). For a string key this + matches when the property contains the given (sub-)string. For a string list this match if the given + string match a item of the list. + </P +></LI +><LI +><P +> <TT +CLASS="literal" +>contains_ncase</TT +> - like <TT +CLASS="literal" +>contains</TT +> but the property and the + given key are converted to lowercase before check. + </P +></LI ></UL > The <TT CLASS="literal" ><merge></TT +>, <TT +CLASS="literal" +><append></TT > and <TT CLASS="literal" -><append></TT +><prepend></TT > directives all require the <TT CLASS="literal" @@ -10113,6 +10510,26 @@ CLASS="literal" ><P > <TT CLASS="literal" +>strlist</TT +> - For <TT +CLASS="literal" +><merge></TT +> the value is + copied to the property and the current property will be overwritten. For + <TT +CLASS="literal" +><append></TT +> and <TT +CLASS="literal" +><prepend></TT +> the + value is append or prepend to the list as new item. + </P +></LI +><LI +><P +> <TT +CLASS="literal" >bool</TT > - Can merge the values 'true' or 'false' </P @@ -10169,8 +10586,35 @@ CLASS="literal" ></UL > - Device Information files are stored in the following standard hierachy with the following default - top level directories: + The <TT +CLASS="literal" +><remove></TT +>, directive require only a key and can be used with all keys. + For <TT +CLASS="literal" +>strlist</TT +> there is additionally a special syntax to remove a item from the + string list. For example to remove item 'bla' from property 'foo.bar': + <TT +CLASS="literal" +><remove key="foo.bar" type="strlist">bla</merge></TT +> + + + </P +><P +> Device Information files are stored in the following standard hierachy with the following default + top level directories <TT +CLASS="literal" +>information</TT +>, <TT +CLASS="literal" +>policy</TT +> and + <TT +CLASS="literal" +>preprobe</TT +>: <P ></P @@ -10179,43 +10623,112 @@ CLASS="literal" ><P > <TT CLASS="literal" ->20freedesktop</TT -> - device information files included with the hal tarball - </P +>information</TT +> - device information files to merge device information + + <P +></P +><UL +><LI +><P +><TT +CLASS="literal" +>10freedesktop</TT +> - device information files included with + the hal tarball</P ></LI ><LI ><P -> <TT +><TT CLASS="literal" ->30osvendor</TT -> - device information files supplied by the operating system vendor - </P +>20thirdparty</TT +> - device information files from the device + manufacturer and installed from media accompanying the hardware</P ></LI ><LI ><P -> <TT +><TT CLASS="literal" ->40oem</TT -> - device information files from the device manufacturer and - installed from media accompanying the hardware - </P +>30user</TT +> - device information for specific devices</P +></LI +></UL +> + </P ></LI ><LI ><P > <TT CLASS="literal" ->90defaultpolicy</TT -> - Default policy determined by the operating system vendor and - possibly edited by the system administrator - </P +>policy</TT +> - device information files to merge policy propertys + + <P +></P +><UL +><LI +><P +><TT +CLASS="literal" +>10osvendor</TT +> - device information files included with the + hal tarball and supplied by the operating system vendor for policy rules</P +></LI +><LI +><P +><TT +CLASS="literal" +>20thirdparty</TT +> - Policy rules from the device + manufacturer and installed from media accompanying the hardware</P +></LI +><LI +><P +><TT +CLASS="literal" +>30user</TT +> - Policy rules for specific devices</P +></LI +></UL +> + </P ></LI ><LI ><P > <TT CLASS="literal" ->95userpolicy</TT -> - Policy rules for specific devices. - </P +>preprobe</TT +> - device information files to information before probe devices + + <P +></P +><UL +><LI +><P +><TT +CLASS="literal" +>10osvendor</TT +> - device information files included with the + hal tarball and supplied by the operating system vendor</P +></LI +><LI +><P +><TT +CLASS="literal" +>20thirdparty</TT +> - device information files from the device + manufacturer and installed from media accompanying the hardware</P +></LI +><LI +><P +><TT +CLASS="literal" +>30user</TT +> - device information for specific devices</P +></LI +></UL +> + </P ></LI ></UL > @@ -10229,7 +10742,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="fdi-facts" ->Facts about devices</A +>7.1. Facts about devices</A ></H2 ><DIV CLASS="sect2" @@ -10237,25 +10750,15 @@ CLASS="sect2" CLASS="sect2" ><A NAME="fdi-example-mp3player" ->Example: MP3 player</A +>7.1.1. Example: MP3 player</A ></H3 -><P -> - This device information file matches an USB Mass Storage - based MP3 player by the matching on the USB vendor and - product identifiers. - - </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" > <?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> +<!-- Example: This device information file matches an USB Mass Storage based MP3 player + by the matching on the USB vendor and product identifiers. --> + <deviceinfo version="0.2"> <device> <match key="info.bus" string="usb"> @@ -10272,9 +10775,6 @@ CLASS="programlisting" </device> </deviceinfo> </PRE -></TD -></TR -></TABLE ><P > The final set of properties look like this: @@ -10291,24 +10791,15 @@ CLASS="sect2" CLASS="sect2" ><A NAME="fdi-example-camera" ->Example: Digital Still Camera</A +>7.1.2. Example: Digital Still Camera</A ></H3 -><P -> - This device information file matches a Sony digital still camera - by matching on the USB vendor and product identifers. - - </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" > <?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> +<!-- Example: This device information file matches a Sony digital still + camera by matching on the USB vendor and product identifers. --> + <deviceinfo version="0.2"> <device> <match key="info.bus" string="usb"> @@ -10323,9 +10814,6 @@ CLASS="programlisting" </device> </deviceinfo> </PRE -></TD -></TR -></TABLE ><P > The final set of properties look like this: @@ -10342,24 +10830,15 @@ CLASS="sect2" CLASS="sect2" ><A NAME="fdi-example-6in1" ->Example: Card Reader</A +>7.1.3. Example: Card Reader</A ></H3 -><P -> - This device information file matches a memory card reader with - multiple storage ports that can be active at the same time. - - </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" > <?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> +<!-- Example: This device information file matches a memory card reader with + multiple storage ports that can be active at the same time. --> + <deviceinfo version="0.2"> <device> <match key="storage.bus" string="usb"> @@ -10383,9 +10862,6 @@ CLASS="programlisting" </device> </deviceinfo> </PRE -></TD -></TR -></TABLE ><P > As described in the documentation for the @@ -10394,14 +10870,7 @@ CLASS="literal" >storage.physical_device</TT > property in <A HREF="#device-properties-storage" ->the Section called <I -><TT -CLASS="literal" ->storage</TT -> namespace</I -> in the Chapter called <I ->Device Properties</I -></A +>Section 6.3.4</A > this device information file export information about each storage port through the property <TT @@ -10428,7 +10897,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="fdi-policy" ->Policy settings for devices</A +>7.2. Policy settings for devices</A ></H2 ><P > Policy settings specifies system specific settings that a @@ -10443,7 +10912,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="fdi-example-mountsetting" ->Storage Devices</A +>7.2.1. Storage Devices</A ></H3 ><P > @@ -10462,26 +10931,16 @@ CLASS="literal" > namespaces, see <A HREF="#properties-policy" ->the Section called <I ->Policy Properties</I -> in the Chapter called <I ->Device Properties</I -></A +>Section 6.4</A > for details. </P ><P > The default policy for storage devices shipped with hal looks like this </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" -> <?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> +> <?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- --> <deviceinfo version="0.2"> @@ -10501,6 +10960,9 @@ CLASS="programlisting" <device> <!-- Whitelist bus types of storage devices we care about --> <match key="info.category" string="storage"> + <match key="storage.bus" string="mmc"> + <merge key="storage.policy.should_mount" type="bool">true</merge> + </match> <match key="storage.bus" string="usb"> <merge key="storage.policy.should_mount" type="bool">true</merge> </match> @@ -10551,36 +11013,24 @@ CLASS="programlisting" <match key="storage.cdrom.dvdrw" bool="true"> <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge> </match> - <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true"> - <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge> - </match> </match> <!-- floppy drives --> <match key="storage.drive_type" string="floppy"> <merge key="storage.policy.mount_filesystem" type="string">auto</merge> <merge key="storage.policy.desired_mount_point" type="string">floppy</merge> - <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true"> - <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge> - </match> </match> <!-- zip drives --> <match key="storage.drive_type" string="zip"> <merge key="storage.policy.mount_filesystem" type="string">auto</merge> <merge key="storage.policy.desired_mount_point" type="string">zip</merge> - <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true"> - <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge> - </match> </match> <!-- jaz drives --> <match key="storage.drive_type" string="jaz"> <merge key="storage.policy.mount_filesystem" type="string">auto</merge> <merge key="storage.policy.desired_mount_point" type="string">jaz</merge> - <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true"> - <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge> - </match> </match> </match> @@ -10597,11 +11047,11 @@ CLASS="programlisting" idedisk, scsidisk etc. --> <merge key="volume.policy.desired_mount_point" type="copy_property">@block.storage_device:storage.bus</merge> <append key="volume.policy.desired_mount_point" type="string">disk</append> - - <!-- zip drives --> - <match key="storage.drive_type" string="zip"> - <merge key="storage.policy.desired_mount_point" type="string">zip</merge> - </match> + + <!-- zip drives --> + <match key="@block.storage_device:storage.drive_type" string="zip"> + <merge key="volume.policy.desired_mount_point" type="string">zip</merge> + </match> <!-- Best: If available use filesystem label --> <match key="volume.label" empty="false"> @@ -10623,28 +11073,9 @@ CLASS="programlisting" </match> </match> - <!-- Use selinux mount options for hotpluggable and removable - volumes --> - <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true"> - <match key="@block.storage_device:storage.hotpluggable" bool="true"> - <merge key="volume.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge> - </match> - <match key="@block.storage_device:storage.removable" bool="true"> - <merge key="volume.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge> - </match> - </match> - - <!-- Use noatime and sync options for all hotpluggable or removable - volumes smaller than 2GB --> - <match key="volume.size" compare_lt="2147483648"> - <match key="@block.storage_device:storage.hotpluggable" bool="true"> - <merge key="volume.policy.mount_option.sync" type="bool">true</merge> - <merge key="volume.policy.mount_option.noatime" type="bool">true</merge> - </match> - <match key="@block.storage_device:storage.removable" bool="true"> - <merge key="volume.policy.mount_option.sync" type="bool">true</merge> - <merge key="volume.policy.mount_option.noatime" type="bool">true</merge> - </match> + <!-- Attempt mount point 'ipod' for iPod's --> + <match key="@block.storage_device:portable_audio_player.type" string="ipod"> + <merge key="volume.policy.desired_mount_point" type="string">ipod</merge> </match> <!-- whitelist of partition table id's, if from a msdos partition table --> @@ -10689,7 +11120,7 @@ CLASS="programlisting" </match> </device> - + <!-- Dont want to mount non-hotpluggable fixed disks since ideraid detection isnt complete as hald wrongly detects e.g. partitions from some IDE RAID controllers --> @@ -10700,45 +11131,21 @@ CLASS="programlisting" </match> </match> </device> - + <device> - <match key="info.udi" string="/org/freedesktop/Hal/devices/computer"> - <append key="info.callouts.add" type="strlist">fstab-sync --clean</append> - </match> - - <match key="volume.policy.should_mount" bool="true"> - <append key="info.callouts.add" type="strlist">fstab-sync</append> - <append key="info.callouts.remove" type="strlist">fstab-sync</append> - </match> - - <match key="storage.policy.should_mount" bool="true"> - <append key="info.callouts.add" type="strlist">fstab-sync</append> - <append key="info.callouts.remove" type="strlist">fstab-sync</append> - </match> - <match key="storage.media_check_enabled" bool="true"> <append key="info.addons" type="strlist">hald-addon-storage</append> </match> - </device> - + </deviceinfo> </PRE -></TD -></TR -></TABLE ><P > and can be overridden by OS vendors to suit their purposes. </P ><P > Users can also customize their own rules; some examples follow </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" > <?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> @@ -10783,9 +11190,6 @@ CLASS="programlisting" </deviceinfo> </PRE -></TD -></TR -></TABLE ></DIV ></DIV ></DIV @@ -10795,25 +11199,25 @@ CLASS="chapter" ><A NAME="callouts" ></A ->Callouts</H1 +>Chapter 8. Callouts</H1 ><P > Callouts are programs invoked when the device object list is - modified or when a device changes. As such, callouts can be used - to maintain system-wide policy (that may be specific to the - particular OS) such as changing permissions on device nodes, - updating the systemwide <TT + modified. As such, callouts can be used to maintain system-wide + policy (that may be specific to the particular OS) such as + changing permissions on device nodes, updating the systemwide + <TT CLASS="literal" >/etc/fstab</TT -> file or - configuring the networking subsystem. +> file or configuring the networking + subsystem. </P ><P > There are three different classes of callouts. A callout - involves sequentially invoking all executable programs in a - given directory in alphabetic order. + involves sequentially invoking all executable programs in the + string list in listed order. </P ><DIV @@ -10821,99 +11225,86 @@ CLASS="informaltable" ><P ></P ><A -NAME="AEN3397" +NAME="AEN3623" ></A ><TABLE BORDER="1" -BGCOLOR="#E0E0E0" -CELLSPACING="0" -CELLPADDING="4" CLASS="CALSTABLE" -><THEAD +><COL><COL><THEAD ><TR ><TH ->Type</TH +>Key (type)</TH ><TH ->Description</TH +>Values</TH ><TH ->Callout Directory</TH +>Mandatory</TH ><TH ->Positional Parameters</TH +>Description</TH ></TR ></THEAD ><TBODY ><TR ><TD ->Device Add/Remove</TD -><TD -> When a new device object have been added, this callout - is invoked just after a device have entered the GDL - (global device list) but just before it is announced - through the D-BUS network API (the device isn't - announced until the last callout has finished). - When a device object is to be removed this callout is - invoked and the device isn't removed before the last - callout has finished. - </TD -><TD ><TT CLASS="literal" ->/etc/hal/device.d</TT -></TD +>info.callouts.add</TT +> (string list)</TD ><TD -><TT -CLASS="literal" ->add</TT -> or <TT +> </TD +><TD +>No</TD +><TD +> A string list with all programmes/callouts which should be + executed (with <TT CLASS="literal" ->remove</TT -></TD +>HALD_ACTION=add</TT +>) when the device + is added to the GDL (global device list) but just before it is + announced through the D-BUS network API. + </TD ></TR ><TR ><TD ->Capability Add/Remove</TD -><TD -> Invoked when a capability have been added or removed. - </TD -><TD ><TT CLASS="literal" ->/etc/hal/capability.d</TT -></TD +>info.callouts.remove</TT +> (string list)</TD ><TD -><TT -CLASS="literal" ->add</TT -> or <TT +> </TD +><TD +>No</TD +><TD +> A string list with all programmes/callouts which should be + executed (with <TT CLASS="literal" ->remove</TT -></TD +>HALD_ACTION=remove</TT +>) when the + device is removed from the GDL (global device list). The device + isn't removed before the last callout has finished. + </TD ></TR ><TR ><TD ->Property Change</TD -><TD -> Invoked when a device property have been added, removed - or is modified. - </TD -><TD ><TT CLASS="literal" ->/etc/hal/property.d</TT -></TD +>info.callouts.preprobe</TT +> (string list)</TD ><TD -> <TT -CLASS="literal" ->add</TT ->, <TT +> </TD +><TD +>No</TD +><TD +> A string list with all programmes/callouts which should be + executed (with <TT CLASS="literal" ->remove</TT -> or - <TT +>HALD_ACTION=preprobe</TT +>) before + the device is added to the GDL (global device list) and before + the callouts from <TT CLASS="literal" ->modify</TT -> - </TD +>info.callouts.add</TT +> are executed. + </TD ></TR ></TBODY ></TABLE @@ -10932,9 +11323,22 @@ CLASS="literal" prefixed with <TT CLASS="literal" >HAL_</TT ->. The HAL daemon isn't - suspended while callouts are executing. Thus, callouts can - communicate with the HAL daemon using the D-BUS network +>. If a device is added or + removed is exported in the environment variable <TT +CLASS="literal" +>HALD_ACTION + </TT +>, if HAL is in shutdown mode the variable <TT +CLASS="literal" +> HALD_SHUTDOWN</TT +> is set to environment. + + </P +><P +> + + The HAL daemon isn't suspended while callouts are executing. Thus, + callouts can communicate with the HAL daemon using the D-BUS network API. Hence, one application of callouts is to merge or modify properties on a device object. @@ -10946,7 +11350,7 @@ CLASS="chapter" ><A NAME="dbus-api" ></A ->D-BUS Network API</H1 +>Chapter 9. D-BUS Network API</H1 ><P > @@ -10960,9 +11364,7 @@ NAME="dbus-api" a camera device, is outside the scope of the HAL daemon; see <A HREF="#using-devices" ->the Chapter called <I ->Using devices</I -></A +>Chapter 5</A > for more information. </P @@ -10981,8 +11383,8 @@ CLASS="sect1" ><HR><H2 CLASS="sect1" ><A -NAME="AEN3439" ->Interface org.freedesktop.Hal.Manager</A +NAME="AEN3665" +>9.1. Interface org.freedesktop.Hal.Manager</A ></H2 ><P > @@ -11004,12 +11406,6 @@ CLASS="literal" >, for querying device objects with the following methods: </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" > # Return a list of all devices in the GDL @@ -11042,9 +11438,6 @@ array{string} FindDeviceStringMatch(string key, string value) array{string} FindDeviceByCapability(string capability) </PRE -></TD -></TR -></TABLE ><P > This object also emits the following signals on the @@ -11059,12 +11452,6 @@ CLASS="literal" applications can subscribe to using D-BUS: </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" > @@ -11089,28 +11476,19 @@ void DeviceRemoved(string udi) void NewCapability(string udi, string capability) </PRE -></TD -></TR -></TABLE ><DIV CLASS="sect2" ><HR><H3 CLASS="sect2" ><A -NAME="AEN3450" ->Example</A +NAME="AEN3676" +>9.1.1. Example</A ></H3 ><P > The following brief Python program demonstrates some of the API </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" > #!/usr/bin/python @@ -11148,20 +11526,11 @@ bus.add_signal_receiver (device_removed, '/org/freedesktop/Hal/Manager') gtk.main() </PRE -></TD -></TR -></TABLE ><P > which gives the following output </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" > Found device /org/freedesktop/Hal/devices/block_TORiSAN DVD-ROM DRD-U624-00000000000000000001-disc @@ -11202,9 +11571,6 @@ Device /org/freedesktop/Hal/devices/usbif_usb_46d_c001_410_-1_noserial_0 was add Device /org/freedesktop/Hal/devices/usb_46d_c001_410_-1_noserial was removed Device /org/freedesktop/Hal/devices/usbif_usb_46d_c001_410_-1_noserial_0 was removed </PRE -></TD -></TR -></TABLE ><P > </P @@ -11215,8 +11581,8 @@ CLASS="sect1" ><HR><H2 CLASS="sect1" ><A -NAME="AEN3458" ->Interface org.freedesktop.Hal.Device</A +NAME="AEN3684" +>9.2. Interface org.freedesktop.Hal.Device</A ></H2 ><P > @@ -11236,12 +11602,6 @@ CLASS="literal" methods </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" > @@ -11334,9 +11694,6 @@ void Lock(string reason) # void Unlock() </PRE -></TD -></TR -></TABLE ><P > The device objects also emits the following signals on the @@ -11344,12 +11701,6 @@ void Unlock() using D-BUS </P -><TABLE -BORDER="0" -BGCOLOR="#E0E0E0" -WIDTH="100%" -><TR -><TD ><PRE CLASS="programlisting" > # Notification that property have been modified @@ -11370,9 +11721,6 @@ void PropertyModified(string key, bool added, bool removed) void Condition(string condition, ...) </PRE -></TD -></TR -></TABLE ><P > Note that D-BUS supports that applications can opt to receive @@ -11387,7 +11735,7 @@ CLASS="chapter" ><A NAME="enforcing-policy" ></A ->Enforcing Policy</H1 +>Chapter 10. Enforcing Policy</H1 ><P > @@ -11404,7 +11752,7 @@ CLASS="sect1" CLASS="sect1" ><A NAME="enforcing-stor-vol" ->Storage Devices</A +>10.1. Storage Devices</A ></H2 ><DIV CLASS="sect2" @@ -11412,7 +11760,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="stor-vol-policy" ->Policy for Volumes and Storage devices</A +>10.1.1. Policy for Volumes and Storage devices</A ></H3 ><P > The properties in the <TT @@ -11430,11 +11778,7 @@ CLASS="literal" be the preferred way to determine how and if a filesystem can be mounted. See <A HREF="#properties-policy" ->the Section called <I ->Policy Properties</I -> in the Chapter called <I ->Device Properties</I -></A +>Section 6.4</A > for details. </P @@ -11445,7 +11789,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="enforcing-storage-fstab" ->File systems file</A +>10.1.2. File systems file</A ></H3 ><P > An operating system vendor should maintain the @@ -11464,9 +11808,7 @@ CLASS="literal" a corresponding entry if applicable cf. <A HREF="#stor-vol-policy" ->the Section called <I ->Policy for Volumes and Storage devices</I -></A +>Section 10.1.1</A >. </P ><P @@ -11497,7 +11839,7 @@ CLASS="sect2" CLASS="sect2" ><A NAME="enforcing-storage-locking" ->Disabling policy agents</A +>10.1.3. Disabling policy agents</A ></H3 ><P > Policy agents like volume mounters should ignore when media |