hal/doc/spec hal-spec.html,1.11,1.12 hal-spec.xml.in,1.10,1.11

David Zeuthen david at freedesktop.org
Wed Aug 11 11:53:53 PDT 2004


Update of /cvs/hal/hal/doc/spec
In directory pdx:/tmp/cvs-serv15046/doc/spec

Modified Files:
	hal-spec.html hal-spec.xml.in 
Log Message:
2004-08-11  David Zeuthen  <david at fubar.dk>

	* doc/spec/hal-spec.xml.in: Add docs for block.have_scanned,
	volume.is_filesystem, Device Conditions on volume device
	objects (now with new names), 'unknown' value for
	volume.disc.type, 'platform' value for storage.bus, rename
	storage.automount_enabled to storage.automount_enabled_hint. Add
	property storage.no_partitions_hint

	* hald/hald.conf:
	* hald/hald_conf.[ch]:
	Rename storage.automount_enabled to storage.automount_enabled_hint
	and remove storage.cdrom_eject_check_enabled.

	* hald/linux/common.[ch]:

	* hald/linux/platform_bus_device.c: (platform_device_pre_process):

	* hald/property.c (hal_property_get_bool): Return FALSE instead of
	-1 if property not found.

	* hald/linux/block_class_device.c: (set_volume_id_values),
	(get_child_device_gdl), (get_child_device_tdl),
	(block_class_visit), (cdrom_get_properties), (force_unmount),
	(force_unmount_of_all_childs), (get_first_valid_partition),
	(detect_disc), (detect_media), (block_class_pre_process),
	(mtab_handle_storage), (mtab_handle_volume):
	Unified codepaths for handling optical discs and other removable
	storage. Handle media with no partition table much nicer
	
	* hald/linux/volume_id/volume_id.c: (set_label_string),
	(set_label_unicode16), (set_uuid), (get_buffer),
	(probe_msdos_part_table), (probe_ext), (probe_reiser), (probe_xfs),
	(probe_jfs), (probe_vfat), (probe_msdos), (probe_udf),
	(probe_iso9660), (probe_ufs), (probe_mac_partition_map),
	(probe_hfs_hfsplus), (probe_ntfs), (probe_swap), (volume_id_probe),
	(volume_id_close):
	* hald/linux/volume_id/volume_id.h:
	Add support for parsing partition tables from Kay Sievers 
	<kay.sievers at vrfy.org>. Change 'reiser' to 'reiserfs' because
	the that's the name on Linux.



Index: hal-spec.html
===================================================================
RCS file: /cvs/hal/hal/doc/spec/hal-spec.html,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- hal-spec.html	9 Aug 2004 18:33:29 -0000	1.11
+++ hal-spec.html	11 Aug 2004 18:53:50 -0000	1.12
@@ -384,26 +384,26 @@
 ><DL
 ><DT
 ><A
-HREF="#AEN1617"
+HREF="#AEN1690"
 >Interface org.freedesktop.Hal.Manager</A
 ></DT
 ><DD
 ><DL
 ><DT
 ><A
-HREF="#AEN1628"
+HREF="#AEN1701"
 >Example</A
 ></DT
 ></DL
 ></DD
 ><DT
 ><A
-HREF="#AEN1636"
+HREF="#AEN1709"
 >Interface org.freedesktop.Hal.Device</A
 ></DT
 ><DT
 ><A
-HREF="#AEN1645"
+HREF="#AEN1718"
 >Interface org.freedesktop.Hal.AgentManager</A
 ></DT
 ></DL
@@ -3188,6 +3188,21 @@
 ><TD
 ><TT
 CLASS="literal"
+>block.have_scanned</TT
+> (bool)</TD
+><TD
+>&nbsp;</TD
+><TD
+>Yes</TD
+><TD
+>&#13;		An internal property used by HAL to specify whether a top
+		level block device have already been scanned for filesystems.
+	      </TD
+></TR
+><TR
+><TD
+><TT
+CLASS="literal"
 >block.storage_device</TT
 > (string)</TD
 ><TD
@@ -3268,7 +3283,7 @@
 ><P
 ></P
 ><A
-NAME="AEN900"
+NAME="AEN906"
 ></A
 ><TABLE
 BORDER="1"
@@ -3319,6 +3334,22 @@
 ><TD
 ><TT
 CLASS="literal"
+>volume.is_filesystem</TT
+> (bool)</TD
+><TD
+>&nbsp;</TD
+><TD
+>Yes</TD
+><TD
+>&#13;		This property is TRUE if the volume indeed contains a mountable
+		filesystem. If it's FALSE the volume contain other data such
+		as swap or partition maps.
+	      </TD
+></TR
+><TR
+><TD
+><TT
+CLASS="literal"
 >volume.fstype</TT
 > (string)</TD
 ><TD
@@ -3377,6 +3408,130 @@
 ><P
 ></P
 ></DIV
+><P
+>&#13;	Device objects with this capability may emit the following
+	device conditions
+      </P
+><DIV
+CLASS="informaltable"
+><P
+></P
+><A
+NAME="AEN959"
+></A
+><TABLE
+BORDER="1"
+BGCOLOR="#E0E0E0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><THEAD
+><TR
+><TH
+>Condition Name</TH
+><TH
+>Parameters</TH
+><TH
+>Example</TH
+><TH
+>Description</TH
+></TR
+></THEAD
+><TBODY
+><TR
+><TD
+><TT
+CLASS="literal"
+>VolumeMount</TT
+></TD
+><TD
+>&#13;		<TT
+CLASS="literal"
+>block.device</TT
+> (string),
+		<TT
+CLASS="literal"
+>volume.mount_point</TT
+> (string)
+	      </TD
+><TD
+>&#13;		<TT
+CLASS="literal"
+>/dev/sda1</TT
+>,
+		<TT
+CLASS="literal"
+>/media/compact_flash</TT
+>
+	      </TD
+><TD
+>Emitted when a volume is mounted</TD
+></TR
+><TR
+><TD
+><TT
+CLASS="literal"
+>VolumeUnmount</TT
+></TD
+><TD
+>&#13;		<TT
+CLASS="literal"
+>block.device</TT
+> (string),
+		<TT
+CLASS="literal"
+>volume.mount_point</TT
+> (string)
+	      </TD
+><TD
+>&#13;		<TT
+CLASS="literal"
+>/dev/sda1</TT
+>,
+		<TT
+CLASS="literal"
+>/media/compact_flash</TT
+>
+	      </TD
+><TD
+>Emitted when a volume is unmounted</TD
+></TR
+><TR
+><TD
+><TT
+CLASS="literal"
+>VolumeUnmountForced</TT
+></TD
+><TD
+>&#13;		<TT
+CLASS="literal"
+>block.device</TT
+> (string),
+		<TT
+CLASS="literal"
+>volume.mount_point</TT
+> (string)
+	      </TD
+><TD
+>&#13;		<TT
+CLASS="literal"
+>/dev/sda1</TT
+>,
+		<TT
+CLASS="literal"
+>/media/compact_flash</TT
+>
+	      </TD
+><TD
+>&#13;		Emitted when a volume is forcibly unmounted because
+		the media backing the volume was removed.
+	      </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
 ></DIV
 ><DIV
 CLASS="sect2"
@@ -3408,7 +3563,7 @@
 ><P
 ></P
 ><A
-NAME="AEN952"
+NAME="AEN1004"
 ></A
 ><TABLE
 BORDER="1"
@@ -3597,6 +3752,16 @@
 ><TD
 >DVD+RW disc</TD
 ></TR
+><TR
+><TD
+>&nbsp;</TD
+><TD
+>unknown</TD
+><TD
+>&nbsp;</TD
+><TD
+>Unknown type or lack of support from drive to determine the type</TD
+></TR
 ></TBODY
 ></TABLE
 ><P
@@ -3635,6 +3800,24 @@
 CLASS="literal"
 >block.is_volume</TT
 > set to FALSE.
+	One significant between the <TT
+CLASS="literal"
+>storage</TT
+> and
+	<TT
+CLASS="literal"
+>block</TT
+> namespace is that the properties
+	exported in the <TT
+CLASS="literal"
+>storage</TT
+> represents
+	constant vital product information, whereas the properties
+	in the <TT
+CLASS="literal"
+>block</TT
+> namespace represent 
+	variable system-dependent information.
 
       </P
 ><DIV
@@ -3642,7 +3825,7 @@
 ><P
 ></P
 ><A
-NAME="AEN1050"
+NAME="AEN1111"
 ></A
 ><TABLE
 BORDER="1"
@@ -3720,6 +3903,16 @@
 ><TD
 >&nbsp;</TD
 ><TD
+>platform</TD
+><TD
+>&nbsp;</TD
+><TD
+>Legacy device that is part of the platform</TD
+></TR
+><TR
+><TD
+>&nbsp;</TD
+><TD
 >&nbsp;</TD
 ><TD
 >&nbsp;</TD
@@ -3880,7 +4073,7 @@
 ><TD
 ><TT
 CLASS="literal"
->storage.automount_enabled</TT
+>storage.automount_enabled_hint</TT
 > (bool)</TD
 ><TD
 >&nbsp;</TD
@@ -3893,6 +4086,35 @@
 ><TD
 ><TT
 CLASS="literal"
+>storage.no_partitions_hint</TT
+> (bool)</TD
+><TD
+>&nbsp;</TD
+><TD
+>Yes</TD
+><TD
+>&#13;		This property is a hint to programs that maintain the 
+		<TT
+CLASS="literal"
+>/etc/fstab</TT
+> file to signal, when
+		TRUE, that the storage drive (such as floppy or
+		optical drives) is used for media with no partition
+		table so an entry can be added ahead of media
+		insertion time. Note that this is only a hint; media
+		may be inserted that has partition tables that the
+		kernel may respect. Conversely, when this is FALSE
+		media without partition tables may be inserted (an
+		example is a Compact Flash card; this media is normally
+		formatted with a PC style partition table and a single
+		FAT partition. However, it may be formatted with just
+		a single FAT partition and no partition table).
+	      </TD
+></TR
+><TR
+><TD
+><TT
+CLASS="literal"
 >storage.physical_device</TT
 > (string)</TD
 ><TD
@@ -3901,7 +4123,9 @@
 >Yes</TD
 ><TD
 >&#13;		This contains the UDI of the device object
-		representing the physical device. Additionally, a
+		representing the physical device or blank if 
+		there is no such device (which is TRUE for legacy
+		devices such as x86 floppy drives). Additionally, a
 		number of properties are merged from that device
 		object. Specifically, all properties prefixed
 		with <TT
@@ -3994,7 +4218,7 @@
 ><P
 ></P
 ><A
-NAME="AEN1195"
+NAME="AEN1268"
 ></A
 ><TABLE
 BORDER="1"
@@ -4193,7 +4417,7 @@
 ><P
 ></P
 ><A
-NAME="AEN1275"
+NAME="AEN1348"
 ></A
 ><TABLE
 BORDER="1"
@@ -4320,7 +4544,7 @@
 ><P
 ></P
 ><A
-NAME="AEN1321"
+NAME="AEN1394"
 ></A
 ><TABLE
 BORDER="1"
@@ -4444,7 +4668,7 @@
 ><P
 ></P
 ><A
-NAME="AEN1366"
+NAME="AEN1439"
 ></A
 ><TABLE
 BORDER="1"
@@ -4511,7 +4735,7 @@
 ><P
 ></P
 ><A
-NAME="AEN1386"
+NAME="AEN1459"
 ></A
 ><TABLE
 BORDER="1"
@@ -4576,7 +4800,7 @@
 ><P
 ></P
 ><A
-NAME="AEN1406"
+NAME="AEN1479"
 ></A
 ><TABLE
 BORDER="1"
@@ -4703,7 +4927,7 @@
 ><P
 ></P
 ><A
-NAME="AEN1450"
+NAME="AEN1523"
 ></A
 ><TABLE
 BORDER="1"
@@ -4850,7 +5074,7 @@
 ><P
 ></P
 ><A
-NAME="AEN1498"
+NAME="AEN1571"
 ></A
 ><TABLE
 BORDER="1"
@@ -5204,7 +5428,7 @@
 ><P
 ></P
 ><A
-NAME="AEN1575"
+NAME="AEN1648"
 ></A
 ><TABLE
 BORDER="1"
@@ -5364,7 +5588,7 @@
 ><HR><H2
 CLASS="sect1"
 ><A
-NAME="AEN1617"
+NAME="AEN1690"
 >Interface org.freedesktop.Hal.Manager</A
 ></H2
 ><P
@@ -5480,7 +5704,7 @@
 ><HR><H3
 CLASS="sect2"
 ><A
-NAME="AEN1628"
+NAME="AEN1701"
 >Example</A
 ></H3
 ><P
@@ -5598,7 +5822,7 @@
 ><HR><H2
 CLASS="sect1"
 ><A
-NAME="AEN1636"
+NAME="AEN1709"
 >Interface org.freedesktop.Hal.Device</A
 ></H2
 ><P
@@ -5751,7 +5975,7 @@
 ><HR><H2
 CLASS="sect1"
 ><A
-NAME="AEN1645"
+NAME="AEN1718"
 >Interface org.freedesktop.Hal.AgentManager</A
 ></H2
 ><P

Index: hal-spec.xml.in
===================================================================
RCS file: /cvs/hal/hal/doc/spec/hal-spec.xml.in,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- hal-spec.xml.in	9 Aug 2004 18:33:29 -0000	1.10
+++ hal-spec.xml.in	11 Aug 2004 18:53:50 -0000	1.11
@@ -1519,6 +1519,15 @@
 	      </entry>
             </row>
             <row>
+              <entry><literal>block.have_scanned</literal> (bool)</entry>
+              <entry></entry>
+              <entry>Yes</entry>
+              <entry>
+		An internal property used by HAL to specify whether a top
+		level block device have already been scanned for filesystems.
+	      </entry>
+            </row>
+            <row>
               <entry><literal>block.storage_device</literal> (string)</entry>
               <entry></entry>
               <entry>Yes</entry>
@@ -1531,8 +1540,11 @@
           </tbody>
         </tgroup>
       </informaltable>
+
     </sect2>
 
+    
+
 
 
     </sect1>
@@ -1592,6 +1604,16 @@
               <entry>A fully qualified path to the mount point of the volume</entry>
             </row>
             <row>
+              <entry><literal>volume.is_filesystem</literal> (bool)</entry>
+              <entry></entry>
+              <entry>Yes</entry>
+              <entry>
+		This property is TRUE if the volume indeed contains a mountable
+		filesystem. If it's FALSE the volume contain other data such
+		as swap or partition maps.
+	      </entry>
+            </row>
+            <row>
               <entry><literal>volume.fstype</literal> (string)</entry>
               <entry>example: ext3</entry>
               <entry>Yes (is blank if the filesystem type is unknown)</entry>
@@ -1618,9 +1640,74 @@
               the capability <literal>volume.disc</literal></entry>
             </row>
 
+				      
           </tbody>
         </tgroup>
       </informaltable>
+
+      <para>
+	Device objects with this capability may emit the following
+	device conditions
+      </para>
+
+      <informaltable>
+        <tgroup cols="2">
+          <thead>
+            <row>
+              <entry>Condition Name</entry>
+              <entry>Parameters</entry>
+              <entry>Example</entry>
+              <entry>Description</entry>
+            </row>
+          </thead>
+          <tbody>
+
+            <row>
+              <entry><literal>VolumeMount</literal></entry>
+              <entry>
+		<literal>block.device</literal> (string),
+		<literal>volume.mount_point</literal> (string)
+	      </entry>
+              <entry>
+		<literal>/dev/sda1</literal>,
+		<literal>/media/compact_flash</literal>
+	      </entry>
+              <entry>Emitted when a volume is mounted</entry>
+            </row>
+
+            <row>
+              <entry><literal>VolumeUnmount</literal></entry>
+              <entry>
+		<literal>block.device</literal> (string),
+		<literal>volume.mount_point</literal> (string)
+	      </entry>
+              <entry>
+		<literal>/dev/sda1</literal>,
+		<literal>/media/compact_flash</literal>
+	      </entry>
+              <entry>Emitted when a volume is unmounted</entry>
+            </row>
+
+            <row>
+              <entry><literal>VolumeUnmountForced</literal></entry>
+              <entry>
+		<literal>block.device</literal> (string),
+		<literal>volume.mount_point</literal> (string)
+	      </entry>
+              <entry>
+		<literal>/dev/sda1</literal>,
+		<literal>/media/compact_flash</literal>
+	      </entry>
+              <entry>
+		Emitted when a volume is forcibly unmounted because
+		the media backing the volume was removed.
+	      </entry>
+            </row>
+
+          </tbody>
+        </tgroup>
+      </informaltable>
+
     </sect2>
 
 
@@ -1737,6 +1824,12 @@
               <entry></entry>
               <entry>DVD+RW disc</entry>
             </row>
+            <row>
+              <entry></entry>
+              <entry>unknown</entry>
+              <entry></entry>
+              <entry>Unknown type or lack of support from drive to determine the type</entry>
+            </row>
 
           </tbody>
         </tgroup>
@@ -1756,6 +1849,12 @@
 	objects can only have the <literal>storage</literal> capability
 	if they already got capability <literal>block</literal> and the
 	property <literal>block.is_volume</literal> set to FALSE.
+	One significant between the <literal>storage</literal> and
+	<literal>block</literal> namespace is that the properties
+	exported in the <literal>storage</literal> represents
+	constant vital product information, whereas the properties
+	in the <literal>block</literal> namespace represent 
+	variable system-dependent information.
 
       </para>
 
@@ -1801,6 +1900,12 @@
               <entry></entry>
               <entry>SCSI interface</entry>
             </row>
+            <row>
+              <entry></entry>
+              <entry>platform</entry>
+              <entry></entry>
+              <entry>Legacy device that is part of the platform</entry>
+            </row>
 
             <row>
               <entry></entry>
@@ -1897,18 +2002,40 @@
               <entry>If this property is set to FALSE then HAL will not continuosly poll for media changes. </entry>
             </row>
             <row>
-              <entry><literal>storage.automount_enabled</literal> (bool)</entry>
+              <entry><literal>storage.automount_enabled_hint</literal> (bool)</entry>
               <entry></entry>
               <entry>Yes</entry>
               <entry>This property is a hint to desktop file managers that they shouldn't automount volumes of the storage device when they appear.</entry>
             </row>
             <row>
+              <entry><literal>storage.no_partitions_hint</literal> (bool)</entry>
+              <entry></entry>
+              <entry>Yes</entry>
+              <entry>
+		This property is a hint to programs that maintain the 
+		<literal>/etc/fstab</literal> file to signal, when
+		TRUE, that the storage drive (such as floppy or
+		optical drives) is used for media with no partition
+		table so an entry can be added ahead of media
+		insertion time. Note that this is only a hint; media
+		may be inserted that has partition tables that the
+		kernel may respect. Conversely, when this is FALSE
+		media without partition tables may be inserted (an
+		example is a Compact Flash card; this media is normally
+		formatted with a PC style partition table and a single
+		FAT partition. However, it may be formatted with just
+		a single FAT partition and no partition table).
+	      </entry>
+            </row>
+            <row>
               <entry><literal>storage.physical_device</literal> (string)</entry>
               <entry></entry>
               <entry>Yes</entry>
               <entry>
 		This contains the UDI of the device object
-		representing the physical device. Additionally, a
+		representing the physical device or blank if 
+		there is no such device (which is TRUE for legacy
+		devices such as x86 floppy drives). Additionally, a
 		number of properties are merged from that device
 		object. Specifically, all properties prefixed
 		with <literal>storage</literal> and, if the physical




More information about the hal-commit mailing list