~ubuntu-branches/debian/sid/hal/sid

« back to all changes in this revision

Viewing changes to doc/spec/hal-spec-properties.xml

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2007-10-23 12:33:58 UTC
  • Revision ID: james.westby@ubuntu.com-20071023123358-xaf8mjc5n84d5gtz
Tags: upstream-0.5.10
ImportĀ upstreamĀ versionĀ 0.5.10

Show diffs side-by-side

added added

removed removed

Lines of Context:
240
240
        
241
241
      <para>
242
242
        If ConsoleKit support is enabled, the variables
 
243
        <literal>CK_NUM_SEATS</literal> (number of seats),        
 
244
        <literal>CK_NUM_SESSIONS</literal> (number of sessions),        
243
245
        <literal>CK_SEATS</literal> (tab sep. list of seat-id's),
244
246
        <literal>CK_SEAT_seat-id</literal> (tab sep. list of session-id's for a seat),
 
247
        <literal>CK_SEAT_NUM_SESSIONS_seat-id</literal> (number of sessions on a seat),        
 
248
        <literal>CK_SESSION_SEAT_session-id</literal> (the seat that a session belongs to) and
245
249
        <literal>CK_SESSION_IS_ACTIVE_session-id</literal> (whether a given session is active) and
246
 
        <literal>CK_SESSION_UID_session-id</literal> (the user of the session)
 
250
        <literal>CK_SESSION_UID_session-id</literal> (the user of the session) and
247
251
        <literal>CK_SESSION_IS_LOCAL_session-id</literal> (whether a session is local),
248
 
        will be exported as well.
249
 
      </para>
 
252
        <literal>CK_SESSION_HOSTNAME_session-id</literal> (host name of session's display if it's not local),
 
253
        will be exported as well. Example:
 
254
      </para>
 
255
 
 
256
      <programlisting>
 
257
CK_NUM_SEATS=1
 
258
CK_NUM_SESSIONS=2
 
259
CK_SEATS=Seat1
 
260
CK_SEAT_Seat1=Session1  Session3
 
261
CK_SEAT_NUM_SESSIONS_Seat1=2
 
262
CK_SESSION_IS_ACTIVE_Session1=true
 
263
CK_SESSION_IS_ACTIVE_Session3=false
 
264
CK_SESSION_IS_LOCAL_Session1=true
 
265
CK_SESSION_IS_LOCAL_Session3=true
 
266
CK_SESSION_SEAT_Session1=Seat1
 
267
CK_SESSION_SEAT_Session3=Seat1
 
268
CK_SESSION_UID_Session1=500
 
269
CK_SESSION_UID_Session3=501
 
270
      </programlisting>
 
271
      
 
272
      <para>
 
273
        Note that all ConsoleKit object paths given are just base
 
274
        names; the real D-Bus object path can be reconstructed by
 
275
        appending <literal>/org/freedesktop/ConsoleKit/</literal>
 
276
        prepended to the given identifer.
 
277
      </para>
 
278
 
250
279
      <para>
251
280
        The HAL daemon is not suspended while callouts are executing. Thus,
252
281
        callouts can communicate with the HAL daemon using the D-BUS network
405
434
      </informaltable>
406
435
      
407
436
    </sect2>
408
 
    <sect2 id="device-properties-info-method-calls">
 
437
    <sect2 id="device-properties-info-singleton-addons">
 
438
      <title>Singleton Addons</title>
 
439
      
 
440
      <para>
 
441
        Singleton Addons are programs that are started by HAL to
 
442
        handle a set of devices. They are identified by the command line
 
443
        used to start them. They MUST implement the
 
444
        <link linkend="interface-singleton-addon">
 
445
          <literal>org.freedesktop.Hal.SingletonAddon</literal>
 
446
        </link>
 
447
        interface.  on the path
 
448
        <literal>/org/freedesktop/Hal/Singleton</literal> path on
 
449
        the direct connection to the HAL daemon.
 
450
      </para>
 
451
      <para>
 
452
        When a device is added with an <literal>info.addons.singleton</literal>
 
453
        string list key, the elements of that key are used as the command line
 
454
        to start the singleton if the singleton is not already running.
 
455
        Once the singleton has called <literal>SingletonAddonIsReady</literal> on
 
456
        <link linkend="interface-manager">
 
457
          <literal>org.freedesktop.Hal.Manager</literal>
 
458
        </link> interface, it will receive
 
459
        <literal>DeviceAdded</literal> calls on its
 
460
        <link linkend="interface-singleton-addon">
 
461
          <literal>org.freedesktop.Hal.SingletonAddon</literal>
 
462
        </link>
 
463
        interface for all devices that have
 
464
        its commandline in <literal>info.addons.singletona</literal>.
 
465
      </para>
 
466
      <para>
 
467
        If a device is added and the singleton specified in
 
468
        <literal>info.addons.singleton</literal> is already running, the
 
469
        singleton will recieve <literal>DeviceAdded</literal> on its
 
470
        <link linkend="interface-singleton-addon">
 
471
          <literal>org.freedesktop.Hal.SingletonAddon</literal>
 
472
        </link>
 
473
        interface for that new device.  </para>
 
474
      <para>
 
475
        When a device is removed that is being handled by a singleton, the
 
476
        singleton will recieve <literal>DeviceRemoved</literal> on
 
477
        <link linkend="interface-singleton-addon">
 
478
          <literal>org.freedesktop.Hal.SingletonAddon</literal>
 
479
        </link>.
 
480
        When it is no longer handling any more devices it should exit cleanly.
 
481
      </para>
 
482
      
 
483
      <informaltable>
 
484
        <tgroup cols="2">
 
485
          <thead>
 
486
            <row>
 
487
              <entry>Key (type)</entry>
 
488
              <entry>Values</entry>
 
489
              <entry>Mandatory</entry>
 
490
              <entry>Description</entry>
 
491
            </row>
 
492
          </thead>
 
493
          <tbody>
 
494
            <row>
 
495
              <entry>
 
496
                <literal>info.addons.singleton</literal> (strlist)
 
497
              </entry>
 
498
              <entry></entry>
 
499
              <entry>No</entry>
 
500
              <entry>
 
501
                A list of commandlines for singleton addons which should
 
502
                service this device.
 
503
              </entry>
 
504
            </row>
 
505
          </tbody>
 
506
        </tgroup>
 
507
      </informaltable>
 
508
      
 
509
    </sect2>
 
510
     <sect2 id="device-properties-info-method-calls">
409
511
      <title>Method calls</title>
410
512
      
411
513
      <para>
442
544
        and
443
545
        <literal>HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME</literal>
444
546
        (the unique system bus connection name of the caller) are
445
 
        set (If HAL, or a HAL addon, is invoking a method, then these
446
 
        variables will both assume the value 0.)
447
 
      </para>
448
 
      
 
547
        set. Additionally, if HAL is built with ConsoleKit support, 
 
548
        <literal>HAL_METHOD_INVOKED_BY_PID</literal> and
 
549
        <literal>HAL_METHOD_INVOKED_BY_SELINUX_CONTEXT</literal> (but
 
550
        only if the running system have SELinux enabled) will be
 
551
        set. If HAL itself, or a HAL addon, is invoking a method, then
 
552
        these variables will not be present. Here's an example
 
553
      </para>
 
554
 
 
555
      <programlisting>
 
556
HAL_METHOD_INVOKED_BY_UID=500
 
557
HAL_METHOD_INVOKED_BY_PID=22553
 
558
HAL_METHOD_INVOKED_BY_SELINUX_CONTEXT=user_u:system_r:unconfined_t
 
559
HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME=:1.138
 
560
      </programlisting>
 
561
 
 
562
      <para>
 
563
        In addition, with ConsoleKit
 
564
        support, <literal>HAL_METHOD_INVOKED_BY_SESSION</literal> will
 
565
        be set to (the basename) of the ConsoleKit session object path
 
566
        but only if the caller is in a session. The method handler can
 
567
        then use the previously
 
568
        mentioned <literal>CK_SESSION_*</literal> to learn everything
 
569
        about the context of the caller.
 
570
        
 
571
      </para>
 
572
 
449
573
      <informaltable>
450
574
        <tgroup cols="2">
451
575
          <thead>
2517
2641
        </tgroup>
2518
2642
      </informaltable>
2519
2643
    </sect2>
 
2644
 
 
2645
    <sect2 id="device-properties-bluetooth_hci">
 
2646
      <title>bluetooth_hci namespace</title>
 
2647
      <para>
 
2648
        Device objects representing a Bluetooth Host Controller Interface.
 
2649
      </para>
 
2650
      <informaltable>
 
2651
        <tgroup cols="2">
 
2652
          <thead>
 
2653
            <row>
 
2654
              <entry>Key (type)</entry>
 
2655
              <entry>Values</entry>
 
2656
              <entry>Mandatory</entry>
 
2657
              <entry>Description</entry>
 
2658
            </row>
 
2659
          </thead>
 
2660
          <tbody>
 
2661
            <row>
 
2662
              <entry><literal>bluetooth_hci.address</literal> (uint64)</entry>
 
2663
              <entry></entry>
 
2664
              <entry>Yes</entry>
 
2665
              <entry>Address of the host controller interface.</entry>
 
2666
            </row>
 
2667
            <row>
 
2668
              <entry><literal>bluetooth_hci.originating_device</literal> (string)</entry>
 
2669
              <entry></entry>
 
2670
              <entry>Yes</entry>
 
2671
              <entry>The UDI of the physical device (e.g. an USB interface) that provides the HCI hardware.</entry>
 
2672
            </row>
 
2673
          </tbody>
 
2674
        </tgroup>
 
2675
      </informaltable>
 
2676
    </sect2>
 
2677
 
 
2678
    <sect2 id="device-properties-bluetooth_acl">
 
2679
      <title>bluetooth_acl namespace</title>
 
2680
      <para>
 
2681
        Device objects representing Asynchronous Connection-oriented Links.
 
2682
      </para>
 
2683
      <informaltable>
 
2684
        <tgroup cols="2">
 
2685
          <thead>
 
2686
            <row>
 
2687
              <entry>Key (type)</entry>
 
2688
              <entry>Values</entry>
 
2689
              <entry>Mandatory</entry>
 
2690
              <entry>Description</entry>
 
2691
            </row>
 
2692
          </thead>
 
2693
          <tbody>
 
2694
            <row>
 
2695
              <entry><literal>bluetooth_acl.address</literal> (uint64)</entry>
 
2696
              <entry></entry>
 
2697
              <entry>Yes</entry>
 
2698
              <entry>Address of the device at the other end of the connection.</entry>
 
2699
            </row>
 
2700
            <row>
 
2701
              <entry><literal>bluetooth_acl.originating_device</literal> (string)</entry>
 
2702
              <entry></entry>
 
2703
              <entry>Yes</entry>
 
2704
              <entry>The UDI of the Bluetooth HCI (of
 
2705
              capability <literal>bluetooth_hci</literal>) that the
 
2706
              connection is made through.
 
2707
              </entry>
 
2708
            </row>
 
2709
          </tbody>
 
2710
        </tgroup>
 
2711
      </informaltable>
 
2712
    </sect2>
 
2713
 
 
2714
    <sect2 id="device-properties-bluetooth_sco">
 
2715
      <title>bluetooth_sco namespace</title>
 
2716
      <para>
 
2717
        Device objects representing Synchronous Connection-Oriented links.
 
2718
      </para>
 
2719
      <informaltable>
 
2720
        <tgroup cols="2">
 
2721
          <thead>
 
2722
            <row>
 
2723
              <entry>Key (type)</entry>
 
2724
              <entry>Values</entry>
 
2725
              <entry>Mandatory</entry>
 
2726
              <entry>Description</entry>
 
2727
            </row>
 
2728
          </thead>
 
2729
          <tbody>
 
2730
            <row>
 
2731
              <entry><literal>bluetooth_sco.address</literal> (uint64)</entry>
 
2732
              <entry></entry>
 
2733
              <entry>Yes</entry>
 
2734
              <entry>Address of the device at the other end of the connection.</entry>
 
2735
            </row>
 
2736
            <row>
 
2737
              <entry><literal>bluetooth_sco.originating_device</literal> (string)</entry>
 
2738
              <entry></entry>
 
2739
              <entry>Yes</entry>
 
2740
              <entry>The UDI of the Bluetooth HCI (of
 
2741
              capability <literal>bluetooth_hci</literal>) that the
 
2742
              connection is made through.
 
2743
              </entry>
 
2744
            </row>
 
2745
          </tbody>
 
2746
        </tgroup>
 
2747
      </informaltable>
 
2748
    </sect2>
 
2749
 
2520
2750
  </sect1>
2521
2751
 
2522
2752
  <sect1 id="properties-functional">
2648
2878
            </row>
2649
2879
            <row>
2650
2880
              <entry>
 
2881
                <literal>system.hardware.primary_video.vendor</literal> (int)
 
2882
              </entry>
 
2883
              <entry></entry>
 
2884
              <entry>No</entry>
 
2885
              <entry>
 
2886
                The PCI vendor ID of the primary graphics card in the system.
 
2887
              </entry>
 
2888
            </row>
 
2889
            <row>
 
2890
              <entry>
 
2891
                <literal>system.hardware.primary_video.product</literal> (int)
 
2892
              </entry>
 
2893
              <entry></entry>
 
2894
              <entry>No</entry>
 
2895
              <entry>
 
2896
                The PCI device ID of the primary graphics card in the system.
 
2897
              </entry>
 
2898
            </row>
 
2899
            <row>
 
2900
              <entry>
2651
2901
                <literal>system.firmware.vendor</literal> (string)
2652
2902
              </entry>
2653
2903
              <entry></entry>
3467
3717
            </row>
3468
3718
            <row>
3469
3719
              <entry></entry>
 
3720
              <entry>linux_raid</entry>
 
3721
              <entry></entry>
 
3722
              <entry>Linux MD (multi disk) RAID device</entry>
 
3723
            </row>
 
3724
            <row>
 
3725
              <entry></entry>
3470
3726
              <entry></entry>
3471
3727
              <entry></entry>
3472
3728
              <entry></entry>
3567
3823
            </row>
3568
3824
            <row>
3569
3825
              <entry>
 
3826
                <literal>storage.removable.support_async_notification</literal> (bool)
 
3827
              </entry>
 
3828
              <entry></entry>
 
3829
              <entry>Yes</entry>
 
3830
              <entry>Whether the drive reports asynchronous notification for media change.</entry>
 
3831
            </row>
 
3832
            <row>
 
3833
              <entry>
3570
3834
                <literal>storage.partitioning_scheme</literal> (string)
3571
3835
              </entry>
3572
3836
              <entry></entry>
3950
4214
        </tgroup>
3951
4215
      </informaltable>
3952
4216
    </sect2>
 
4217
    <sect2 id="device-properties-storage-linux-raid">
 
4218
      <title>
 
4219
        storage.linux_raid namespace
 
4220
      </title>
 
4221
      <para>
 
4222
        This namespace is used to describe logical Software RAID
 
4223
        devices under Linux using the <literal>md</literal> driver. By
 
4224
        and large, all the same properties under
 
4225
        the <literal>storage</literal> name space applies except
 
4226
        that <literal>storage.serial</literal> is set to the UUID of
 
4227
        the RAID set, <literal>storage.firmware_version</literal> is
 
4228
        set to the version of the <literal>md</literal> driver and the
 
4229
        value of <literal>storage.hotpluggable</literal> is taken from
 
4230
        the enclosing drive of the first RAID component
 
4231
        encountered. In addition, the following properties are
 
4232
        available.
 
4233
      </para>
 
4234
      <informaltable>
 
4235
        <tgroup cols="2">
 
4236
          <thead>
 
4237
            <row>
 
4238
              <entry>Key (type)</entry>
 
4239
              <entry>Values</entry>
 
4240
              <entry>Mandatory</entry>
 
4241
              <entry>Description</entry>
 
4242
            </row>
 
4243
          </thead>
 
4244
          <tbody>
 
4245
            <row>
 
4246
              <entry>
 
4247
                <literal>storage.linux_raid.level</literal> (string)
 
4248
              </entry>
 
4249
              <entry></entry>
 
4250
              <entry>Yes</entry>
 
4251
              <entry>the RAID level of the device as reported by the kernel (linear, raid0, raid1, raid4, raid5, raid6, raid10)</entry>
 
4252
            </row>
 
4253
            <row>
 
4254
              <entry>
 
4255
                <literal>storage.linux_raid.sysfs_path</literal> (string)
 
4256
              </entry>
 
4257
              <entry></entry>
 
4258
              <entry>Yes</entry>
 
4259
              <entry>sysfs path of device, e.g. /sys/block/md0</entry>
 
4260
            </row>
 
4261
            <row>
 
4262
              <entry>
 
4263
                <literal>storage.linux_raid.num_components</literal> (int)
 
4264
              </entry>
 
4265
              <entry></entry>
 
4266
              <entry>Yes</entry>
 
4267
              <entry>Number of components in the RAID array</entry>
 
4268
            </row>
 
4269
            <row>
 
4270
              <entry>
 
4271
                <literal>storage.linux_raid.num_components_active</literal> (int)
 
4272
              </entry>
 
4273
              <entry></entry>
 
4274
              <entry>Yes</entry>
 
4275
              <entry>
 
4276
                Number of active components in the RAID array. If less
 
4277
                than <literal>storage.linux_raid.num_components</literal>
 
4278
                it means that the RAID array is running in degraded
 
4279
                mode.
 
4280
              </entry>
 
4281
            </row>
 
4282
            <row>
 
4283
              <entry>
 
4284
                <literal>storage.linux_raid.components</literal> (strlist)
 
4285
              </entry>
 
4286
              <entry></entry>
 
4287
              <entry>Yes</entry>
 
4288
              <entry>UDI's of the volumes constituting the array.</entry>
 
4289
            </row>
 
4290
            <row>
 
4291
              <entry>
 
4292
                <literal>storage.linux_raid.is_syncing</literal> (bool)
 
4293
              </entry>
 
4294
              <entry></entry>
 
4295
              <entry>Yes</entry>
 
4296
              <entry>TRUE if, and only if, the array is currently syncing</entry>
 
4297
            </row>
 
4298
            <row>
 
4299
              <entry>
 
4300
                <literal>storage.linux_raid.sync.action</literal> (string)
 
4301
              </entry>
 
4302
              <entry></entry>
 
4303
              <entry>only if <literal>.is_syncing</literal> is TRUE</entry>
 
4304
              <entry>The syncing mechanism as reported by the kernel (idle, resync, check, repair, recover)</entry>
 
4305
            </row>
 
4306
            <row>
 
4307
              <entry>
 
4308
                <literal>storage.linux_raid.sync.progress</literal> (double)
 
4309
              </entry>
 
4310
              <entry></entry>
 
4311
              <entry>only if <literal>.is_syncing</literal> is TRUE</entry>
 
4312
              <entry>Number between 0 and 1 representing progress of the sync operation. This is updated regulary when syncing is happening.</entry>
 
4313
            </row>
 
4314
            <row>
 
4315
              <entry>
 
4316
                <literal>storage.linux_raid.sync.speed</literal> (uint64)
 
4317
              </entry>
 
4318
              <entry></entry>
 
4319
              <entry>only if <literal>.is_syncing</literal> is TRUE</entry>
 
4320
              <entry>Speed of the sync operation, in kB/s. This is updated regulary when syncing is happening.</entry>
 
4321
            </row>
 
4322
          </tbody>
 
4323
        </tgroup>
 
4324
      </informaltable>
 
4325
    </sect2>
3953
4326
    <sect2 id="device-properties-net">
3954
4327
      <title>
3955
4328
        net namespace
3960
4333
        capability <literal>net</literal> and they will export the
3961
4334
        properties below. This namespace only describe the generic
3962
4335
        aspect of networking devices; specific networking technologies
3963
 
        such as IEEE 802.3 and IEEE 802.11 have separate namespaces.
 
4336
        such as IEEE 802.3, IEEE 802.11 and Bluetooth have separate
 
4337
        namespaces.
3964
4338
      </para>
3965
4339
      <informaltable>
3966
4340
        <tgroup cols="2">
4141
4515
      <para>
4142
4516
      </para>
4143
4517
    </sect2>
 
4518
    <sect2 id="device-properties-net-bluetooth">
 
4519
      <title>
 
4520
        net.bluetooth namespace
 
4521
      </title>
 
4522
      <para>
 
4523
        Bluetooth ethernet networking devices is described in this namespace
 
4524
        for device objects with the capability
 
4525
        <literal>net.bluetooth</literal>.
 
4526
        Note that device
 
4527
        objects can only have the <literal>net.bluetooth</literal> capability
 
4528
        if they already have the capability <literal>net</literal>.
 
4529
      </para>
 
4530
      <informaltable>
 
4531
        <tgroup cols="2">
 
4532
          <thead>
 
4533
            <row>
 
4534
              <entry>Key (type)</entry>
 
4535
              <entry>Values</entry>
 
4536
              <entry>Mandatory</entry>
 
4537
              <entry>Description</entry>
 
4538
            </row>
 
4539
          </thead>
 
4540
          <tbody>
 
4541
            <row>
 
4542
              <entry>
 
4543
                <literal>net.bluetooth.mac_address</literal> (uint64)
 
4544
              </entry>
 
4545
              <entry>example: 0x0010605d8ef4</entry>
 
4546
              <entry>
 
4547
                Only if the <literal>net.bluetooth</literal> capability is set
 
4548
              </entry>
 
4549
              <entry>48-bit address</entry>
 
4550
            </row>
 
4551
           <row>
 
4552
              <entry>
 
4553
                <literal>net.bluetooth.name</literal> (string)
 
4554
              </entry>
 
4555
              <entry>example: Network Access Point Service</entry>
 
4556
              <entry>
 
4557
                Only if the <literal>net.bluetooth</literal> capability is set and Bluez is being used.
 
4558
              </entry>
 
4559
              <entry>Displayable Name for network connection</entry>
 
4560
            </row>
 
4561
            <row>
 
4562
              <entry>
 
4563
                <literal>net.bluetooth.uuid</literal> (string)
 
4564
              </entry>
 
4565
              <entry>example: 00001116-0000-1000-8000-00805f9b34fb</entry>
 
4566
              <entry>
 
4567
                Only if the <literal>net.bluetooth</literal> capability is set and Bluez is being used.
 
4568
              </entry>
 
4569
              <entry>Universal Unique Identifier for network connection</entry>
 
4570
            </row>
 
4571
          </tbody>
 
4572
        </tgroup>
 
4573
      </informaltable>
 
4574
      <para>
 
4575
      </para>
 
4576
    </sect2>
4144
4577
    <sect2 id="device-properties-net-irda">
4145
4578
      <title>
4146
4579
        net.irda namespace
4200
4633
              <entry>Yes</entry>
4201
4634
              <entry>Special device file for recieving input events</entry>
4202
4635
            </row>
 
4636
            <row>
 
4637
              <entry>
 
4638
                <literal>input.x11_driver</literal> (string)
 
4639
              </entry>
 
4640
              <entry>e.g. "evdev"</entry>
 
4641
              <entry>No</entry>
 
4642
              <entry>X11 input driver to use</entry>
 
4643
            </row>
 
4644
          </tbody>
 
4645
        </tgroup>
 
4646
      </informaltable>
 
4647
    </sect2>
 
4648
    <sect2 id="device-properties-input-keys">
 
4649
      <title>
 
4650
        input.keys namespace
 
4651
      </title>
 
4652
      <para>
 
4653
        The input device have keys that can be pressed. No namespace
 
4654
        specific properties.
 
4655
      </para>
 
4656
    </sect2>
 
4657
    <sect2 id="device-properties-input-keypad">
 
4658
      <title>
 
4659
        input.keypad namespace
 
4660
      </title>
 
4661
      <para>
 
4662
        The input device have keypad keys. No namespace
 
4663
        specific properties.
 
4664
      </para>
 
4665
    </sect2>
 
4666
    <sect2 id="device-properties-input-keyboard">
 
4667
      <title>
 
4668
        input.keyboard namespace
 
4669
      </title>
 
4670
      <para>
 
4671
        The input device is a normal keyboard. No namespace specific
 
4672
        properties.
 
4673
      </para>
 
4674
    </sect2>
 
4675
    <sect2 id="device-properties-input-mouse">
 
4676
      <title>
 
4677
        input.mouse namespace
 
4678
      </title>
 
4679
      <para>
 
4680
        The input device is a mouse. No namespace specific
 
4681
        properties.
 
4682
      </para>
 
4683
    </sect2>
 
4684
    <sect2 id="device-properties-input-switch">
 
4685
      <title>
 
4686
        input.switch namespace
 
4687
      </title>
 
4688
      <para>
 
4689
        The input device is a switch, e.g. it has buttons with
 
4690
        state. No namespace specific properties.
 
4691
      </para>
 
4692
    </sect2>
 
4693
    <sect2 id="device-properties-input-joystick">
 
4694
      <title>
 
4695
        input.joystick namespace
 
4696
      </title>
 
4697
      <para>
 
4698
        The input device is a joystick. No namespace specific
 
4699
        properties.
 
4700
      </para>
 
4701
    </sect2>
 
4702
    <sect2 id="device-properties-input-tablet">
 
4703
      <title>
 
4704
        input.tablet namespace
 
4705
      </title>
 
4706
      <para>
 
4707
        The input device is a tablet. No namespace specific
 
4708
        properties.
 
4709
      </para>
 
4710
    </sect2>
 
4711
    <sect2 id="device-properties-input-keymap">
 
4712
      <title>
 
4713
        input.keymap namespace
 
4714
      </title>
 
4715
      <para>
 
4716
        Device objects with the capability <literal>input.keymap</literal>
 
4717
        provide facilities to remap keyboard buttons.
 
4718
      </para>
 
4719
      <informaltable>
 
4720
        <tgroup cols="2">
 
4721
          <thead>
 
4722
            <row>
 
4723
              <entry>Key (type)</entry>
 
4724
              <entry>Values</entry>
 
4725
              <entry>Mandatory</entry>
 
4726
              <entry>Description</entry>
 
4727
            </row>
 
4728
          </thead>
 
4729
          <tbody>
 
4730
            <row>
 
4731
              <entry>
 
4732
                <literal>input.keymap.data</literal> (strlist)
 
4733
              </entry>
 
4734
              <entry>e.g. "e017:brightnessup"</entry>
 
4735
              <entry>No</entry>
 
4736
              <entry>
 
4737
                The scancode is represented in hex and the keycode name as
 
4738
                as string. The keycode name is not case sensitive.
 
4739
                On Linux, the keycode name should be the same constant as
 
4740
                present in /usr/include/linux/input.h with the 'KEY_'
 
4741
                prefix removed, e.g. 'KEY_SLEEP' -> 'sleep'.
 
4742
                You can append as many <literal>input.keymap.data</literal>
 
4743
                values as there are keys to remap.
 
4744
              </entry>
 
4745
            </row>
 
4746
          </tbody>
 
4747
        </tgroup>
 
4748
      </informaltable>
 
4749
    </sect2>
 
4750
    <sect2 id="device-properties-input-xkb">
 
4751
      <title>
 
4752
        input.xkb namespace
 
4753
      </title>
 
4754
      <para>
 
4755
        Device objects with the capability <literal>input.keys</literal>
 
4756
        can provide information about their physical layout.
 
4757
      </para>
 
4758
      <informaltable>
 
4759
        <tgroup cols="2">
 
4760
          <thead>
 
4761
            <row>
 
4762
              <entry>Key (type)</entry>
 
4763
              <entry>Values</entry>
 
4764
              <entry>Mandatory</entry>
 
4765
              <entry>Description</entry>
 
4766
            </row>
 
4767
          </thead>
 
4768
          <tbody>
 
4769
            <row>
 
4770
              <entry>
 
4771
                <literal>input.xkb.rules</literal> (string)
 
4772
              </entry>
 
4773
              <entry>e.g. "base"</entry>
 
4774
              <entry>Yes</entry>
 
4775
              <entry>
 
4776
                XKB rules file to use; 'base' is standard, but 'xorg'
 
4777
                or 'xfree86' may be needed for backwards compatibility
 
4778
                with very old versions of XKB data.
 
4779
              </entry>
 
4780
            </row>
 
4781
            <row>
 
4782
              <entry>
 
4783
                <literal>input.xkb.model</literal> (string)
 
4784
              </entry>
 
4785
              <entry>e.g. "logicdp"</entry>
 
4786
              <entry>Yes</entry>
 
4787
              <entry>
 
4788
                Physical keyboard model (e.g. Logitech Cordless Freedom
 
4789
                Pro), as given to XKB.
 
4790
              </entry>
 
4791
            </row>
 
4792
            <row>
 
4793
              <entry>
 
4794
                <literal>input.xkb.layout</literal> (string)
 
4795
              </entry>
 
4796
              <entry>e.g. "us"</entry>
 
4797
              <entry>Yes</entry>
 
4798
              <entry>
 
4799
                Keyboard layout (as engraved on the keys).
 
4800
              </entry>
 
4801
            </row>
 
4802
            <row>
 
4803
              <entry>
 
4804
                <literal>input.xkb.variant</literal> (string)
 
4805
              </entry>
 
4806
              <entry>e.g. "nodeadkeys"</entry>
 
4807
              <entry>No</entry>
 
4808
              <entry>
 
4809
                Variant of the XKB layout (if any) to use.
 
4810
              </entry>
 
4811
            </row>
 
4812
            <row>
 
4813
              <entry>
 
4814
                <literal>input.xkb.options</literal> (strlist)
 
4815
              </entry>
 
4816
              <entry>e.g. "ctrl:nocaps"</entry>
 
4817
              <entry>No</entry>
 
4818
              <entry>
 
4819
                Options to be provided to XKB.
 
4820
              </entry>
 
4821
            </row>
4203
4822
          </tbody>
4204
4823
        </tgroup>
4205
4824
      </informaltable>
4339
4958
          <tbody>
4340
4959
            <row>
4341
4960
              <entry>
4342
 
                <literal>portable_audio_player.access_method</literal> (string)
4343
 
              </entry>
4344
 
              <entry></entry>
 
4961
                <literal>portable_audio_player.access_method.protocols</literal> (strlist)
 
4962
              </entry>
 
4963
              <entry>example: storage ipod mtp pde iriver karma</entry>
 
4964
              <entry>No</entry>
 
4965
              <entry>
 
4966
                Indicates transfer protocols that this device can speak.
 
4967
                <literal>storage</literal> indicates USB Mass Storage (UMS) is an access
 
4968
                protocol.  <literal>ipod</literal> indicates UMS plus an iTunes-style database.
 
4969
                <literal>mtp</literal> indicates a device using Microsoft's Media Transfer Protocol.
 
4970
                Arbitrary values for newer or obscure protocols are allowed but
 
4971
                entities providing this information should try to ensure that
 
4972
                they are not duplicating protocols under a different name.
 
4973
              </entry>
 
4974
            </row>
 
4975
            <row>
 
4976
              <entry>
 
4977
                <literal>portable_audio_player.access_method.drivers</literal> (strlist)
 
4978
              </entry>
 
4979
              <entry>example: libgpod, libmtp, libnjb, libifp, libkarma</entry>
 
4980
              <entry>No</entry>
 
4981
              <entry>
 
4982
                Indicates installed device driver libraries that can
 
4983
                handle this device.  These drivers can export information
 
4984
                in <literal>portable_audio_player.[drivername]</literal> sub-namespaces.
 
4985
                Can also be used by libraries or programs providing extra device information
 
4986
                to indicate the presence of this information in the appropriate sub-namespace.
 
4987
              </entry>
 
4988
            </row>
 
4989
            <row>
 
4990
              <entry>
 
4991
                <literal>portable_audio_player.[drivername].protocol</literal> (strlist)
 
4992
              </entry>
 
4993
              <entry>example: mtp</entry>
4345
4994
              <entry>Yes</entry>
4346
 
              <entry>This property defines how the device is accessed </entry>
4347
 
            </row>
4348
 
            <row>
4349
 
              <entry></entry>
4350
 
              <entry>storage</entry>
4351
 
              <entry></entry>
4352
 
              <entry>
4353
 
                The device is accessed as a Mass Storage device
4354
 
                through a kernel driver.  Application Developers
4355
 
                should descent down the device object tree to find the
4356
 
                device object of capability
4357
 
                <literal>storage</literal> in order to access the
4358
 
                device.
4359
 
              </entry>
4360
 
            </row>
4361
 
            <row>
4362
 
              <entry></entry>
4363
 
              <entry>user</entry>
4364
 
              <entry></entry>
4365
 
              <entry>
4366
 
                The device is accessed from userspace through
4367
 
                a userspace driver.
4368
 
              </entry>
4369
 
            </row>
4370
 
            <row>
4371
 
              <entry></entry>
4372
 
              <entry></entry>
4373
 
              <entry></entry>
4374
 
              <entry></entry>
 
4995
              <entry>
 
4996
                This entry is required for drivers listed in
 
4997
                <literal>portable_audio_player.access_method.drivers</literal>. Indicates which
 
4998
                protocol in <literal>portable_audio_player.access_method.protocols</literal>
 
4999
                a particular driver will use.  If the driver is providing information only, this
 
5000
                should be set to <literal>information</literal>.
 
5001
              </entry>
4375
5002
            </row>
4376
5003
            <row>
4377
5004
              <entry>
4381
5008
              <entry>Yes</entry>
4382
5009
              <entry>
4383
5010
                A string list of MIME-types representing the kind of audio
4384
 
                formats that the device can play back
 
5011
                formats that the device can play back.
4385
5012
              </entry>
4386
5013
            </row>
4387
5014
            <row>
5096
5723
        </tgroup>
5097
5724
      </informaltable>
5098
5725
    </sect2>
5099
 
    <sect2 id="device-properties-ac_adaptor">
 
5726
    <sect2 id="device-properties-ac_adapter">
5100
5727
      <title>
5101
 
        ac_adaptor namespace
 
5728
        ac_adapter namespace
5102
5729
      </title>
5103
5730
      <para>
5104
 
        Device objects with the capability <literal>ac_adaptor</literal>
 
5731
        Device objects with the capability <literal>ac_adapter</literal>
5105
5732
        represent all the devices capable of powering the system from AC power
5106
5733
      </para>
5107
5734
      <informaltable>
5117
5744
          <tbody>
5118
5745
            <row>
5119
5746
              <entry>
5120
 
                <literal>ac_adaptor.present</literal> (bool)
 
5747
                <literal>ac_adapter.present</literal> (bool)
5121
5748
              </entry>
5122
5749
              <entry></entry>
5123
5750
              <entry>Yes</entry>
5124
5751
              <entry>
5125
 
                The state of the adaptor, i.e. whether it is providing power to
 
5752
                The state of the adapter, i.e. whether it is providing power to
5126
5753
                the unit from mains power.
5127
5754
              </entry>
5128
5755
            </row>
5254
5881
            <row>
5255
5882
              <entry></entry>
5256
5883
              <entry>
 
5884
                <literal>usb</literal>
 
5885
              </entry>
 
5886
              <entry></entry>
 
5887
              <entry>
 
5888
                The device containing the battery is a generic usb device.
 
5889
              </entry>
 
5890
            </row>
 
5891
            <row>
 
5892
              <entry></entry>
 
5893
              <entry>
5257
5894
                <literal>unknown</literal>
5258
5895
              </entry>
5259
5896
              <entry></entry>
6066
6703
              <entry>No</entry>
6067
6704
              <entry>Turn off the Radeon DAC off before suspend.</entry>
6068
6705
            </row>
 
6706
            <row>
 
6707
              <entry>
 
6708
                <literal>power_management.quirk.reset_brightness</literal> (bool)
 
6709
              </entry>
 
6710
              <entry></entry>
 
6711
              <entry>No</entry>
 
6712
              <entry>Reset the brightness state after resume.</entry>
 
6713
            </row>
 
6714
            <row>
 
6715
              <entry>
 
6716
                <literal>power_management.quirk.no_fb</literal> (bool)
 
6717
              </entry>
 
6718
              <entry></entry>
 
6719
              <entry>No</entry>
 
6720
              <entry>True if the machine can only suspend when not using framebuffer.</entry>
 
6721
            </row>
 
6722
            <row>
 
6723
              <entry>
 
6724
                <literal>power_management.quirk.none</literal> (bool)
 
6725
              </entry>
 
6726
              <entry></entry>
 
6727
              <entry>No</entry>
 
6728
              <entry>No quirks are necessary for suspend or resume.</entry>
 
6729
            </row>
6069
6730
          </tbody>
6070
6731
        </tgroup>
6071
6732
      </informaltable>
6197
6858
            </row>
6198
6859
            <row>
6199
6860
              <entry>
 
6861
                <literal>access_control.type</literal> (string)
 
6862
              </entry>
 
6863
              <entry>Example: cdrom</entry>
 
6864
              <entry>Yes</entry>
 
6865
              <entry>
 
6866
                Type of access - only makes sense when PolicyKit
 
6867
                support is enabled; it's used by PolicyKit to compute
 
6868
                what privilege to check for by
 
6869
                prepending <literal>hal-device-file-</literal> to the
 
6870
                value.
 
6871
              </entry>
 
6872
            </row>
 
6873
            <row>
 
6874
              <entry>
6200
6875
                <literal>access_control.grant_user</literal> (strlist)
6201
6876
              </entry>
6202
6877
              <entry>Example: "gdm, flumotion"</entry>
6221
6896
                properly.
6222
6897
              </entry>
6223
6898
            </row>
6224
 
            <row>
6225
 
              <entry>
6226
 
                <literal>access_control.grant_local_session</literal> (bool)
6227
 
              </entry>
6228
 
              <entry></entry>
6229
 
              <entry>No</entry>
6230
 
              <entry>
6231
 
                If true, access to this device should be granted to local sessions.
6232
 
                (NOTE NOTE NOTE: this property is experimental and may disappear in the future).
6233
 
              </entry>
6234
 
            </row>
6235
 
            <row>
6236
 
              <entry>
6237
 
                <literal>access_control.grant_local_active_session</literal> (bool)
6238
 
              </entry>
6239
 
              <entry></entry>
6240
 
              <entry>No</entry>
6241
 
              <entry>
6242
 
                If true, access to this device should be granted to active local sessions.
6243
 
                (NOTE NOTE NOTE: this property is experimental and may disappear in the future).
6244
 
              </entry>
6245
 
            </row>
6246
6899
          </tbody>
6247
6900
        </tgroup>
6248
6901
      </informaltable>
 
6902
      <para>
 
6903
        See also <xref linkend="interface-device-accesscontrol"/>.
 
6904
      </para>
6249
6905
    </sect2>
6250
6906
  </sect1>
6251
6907
 
6279
6935
              <entry>Renamed to something more abstract, available until removed.</entry>
6280
6936
            </row>
6281
6937
            <row>
 
6938
                <entry><literal>portable_audio_player.access_method</literal> (string)</entry>
 
6939
                <entry><literal>portable_audio_player.access_method.[drivers, protocols]</literal> (strlist)</entry>
 
6940
                <entry>2008-05-03</entry>
 
6941
                <entry>Original entry can only indicate UMS or userspace driver devices, while some devices can be both.  New structure doesn't have this limitation.</entry>
 
6942
            </row>
 
6943
            <row>
 
6944
                <entry><literal>portable_audio_player.type</literal> (string)</entry>
 
6945
                <entry><literal>portable_audio_player.access_method.[drivers, protocols]</literal> (strlist)</entry>
 
6946
                <entry>2008-05-03</entry>
 
6947
                <entry>New structure allows for better definition of access protocols and handlers.</entry>
 
6948
            </row>
 
6949
            <row>
6282
6950
              <entry><literal>power_management.can_suspend_to_ram</literal> (bool)</entry>
6283
6951
              <entry><literal>power_management.can_suspend</literal></entry>
6284
6952
              <entry>2007-05-01</entry>