File: sd_device_enumerator_get_device_first.xml

package info (click to toggle)
systemd 259-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 105,132 kB
  • sloc: ansic: 726,480; xml: 121,118; python: 36,740; sh: 35,016; cpp: 946; makefile: 273; awk: 102; lisp: 13; sed: 1
file content (108 lines) | stat: -rw-r--r-- 5,370 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="sd_device_enumerator_get_device_first" xmlns:xi="http://www.w3.org/2001/XInclude">

  <refentryinfo>
    <title>sd_device_enumerator_get_device_first</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>sd_device_enumerator_get_device_first</refentrytitle>
    <manvolnum>3</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>sd_device_enumerator_get_device_first</refname>
    <refname>sd_device_enumerator_get_device_next</refname>
    <refname>sd_device_enumerator_get_subsystem_first</refname>
    <refname>sd_device_enumerator_get_subsystem_next</refname>

    <refpurpose>Enumerates devices and get the first or next device.</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcsynopsisinfo>#include &lt;systemd/sd-device.h&gt;</funcsynopsisinfo>

      <funcprototype>
        <funcdef>sd_device *<function>sd_device_enumerator_get_device_first</function></funcdef>
        <paramdef>sd_device_enumerator *<parameter>enumerator</parameter></paramdef>
      </funcprototype>

      <funcprototype>
        <funcdef>sd_device *<function>sd_device_enumerator_get_device_next</function></funcdef>
        <paramdef>sd_device_enumerator *<parameter>enumerator</parameter></paramdef>
      </funcprototype>

      <funcprototype>
        <funcdef>sd_device *<function>sd_device_enumerator_get_subsystem_first</function></funcdef>
        <paramdef>sd_device_enumerator *<parameter>enumerator</parameter></paramdef>
      </funcprototype>

      <funcprototype>
        <funcdef>sd_device *<function>sd_device_enumerator_get_subsystem_next</function></funcdef>
        <paramdef>sd_device_enumerator *<parameter>enumerator</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>
    <para>The <function>sd_device_enumerator_get_device_first()</function> function enumerates all
    matching devices under <filename>/sys/bus/<replaceable>SUBSYSTEM</replaceable>/devices/</filename>
    and <filename>/sys/class/<replaceable>SUBSYSTEM</replaceable>/devices/</filename>,
    and returns a pointer to the first <type>sd_device</type> object. If no devices are found,
    <constant>NULL</constant> is returned.</para>

    <para>The <function>sd_device_enumerator_get_device_next()</function> function returns the pointer
    to the next <type>sd_device</type> from the <parameter>enumerator</parameter>. It should
    be called after <function>sd_device_enumerator_get_device_first()</function> or after a previous
    call to this function. If no more devices are available, <constant>NULL</constant> is returned.</para>

    <para>The <function>sd_device_enumerator_get_subsystem_first()</function> function enumerates all
    matching subsystem devices in <filename>/sys/module/</filename>, <filename>/sys/bus/</filename>,
    and <filename>/sys/bus/<replaceable>SUBSYSTEM</replaceable>/drivers/</filename>
    (such as <filename>/sys/bus/pci/drivers/</filename>). It returns a pointer to the first
    <type>sd_device</type> object. If no devices are found <constant>NULL</constant> is returned.
    Note that this does <emphasis>not</emphasis> enumerate devices provided by
    <function>sd_device_enumerator_get_device_first/next()</function>. Hence, e.g.
    <filename>/sys/bus/pci/</filename>, <filename>/sys/bus/pci/drivers/ahci/</filename> and so on are
    enumerated, but <filename>/sys/bus/pci/devices/0000:00:00.0/</filename> and so on are not.</para>

    <para>The <function>sd_device_enumerator_get_subsystem_next()</function> function returns the next
    subsystem device from the enumerator. It should be called after
    <function>sd_device_enumerator_get_subsystem_first()</function> or after a previous call to this
    function. If no more subsystem devices are available, <constant>NULL</constant> is returned.</para>
  </refsect1>

  <refsect1>
    <title>Return Value</title>
    <para>On success, these functions return a pointer to an <type>sd_device</type> object.
    On failure or when no more devices are available, <constant>NULL</constant> is returned. The
    returned pointers are owned by the enumerator and should not be freed by the caller.</para>
  </refsect1>

  <refsect1>
    <title>History</title>
    <para><function>sd_device_enumerator_get_device_first()</function>,
    <function>sd_device_enumerator_get_device_next()</function>,
    <function>sd_device_enumerator_get_subsystem_first()</function>, and
    <function>sd_device_enumerator_get_subsystem_next()</function> were introduced in systemd version
    240.</para>
  </refsect1>

  <refsect1>
    <title>See Also</title>

    <para><simplelist type="inline">
      <member><citerefentry><refentrytitle>sd_device_enumerator_new</refentrytitle><manvolnum>3</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>sd_device_enumerator_add_match_parent</refentrytitle><manvolnum>3</manvolnum></citerefentry></member>
      <member><citerefentry><refentrytitle>sd_device_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry></member>
    </simplelist></para>
  </refsect1>

</refentry>