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 <systemd/sd-device.h></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>
|