sd_hwdb_new(3) — Linux manual page


SD_HWDB_NEW(3)                 sd_hwdb_new                SD_HWDB_NEW(3)

NAME         top

       sd_hwdb_new, sd_hwdb_new_from_path, sd_hwdb_ref, sd_hwdb_unref -
       Create a new hwdb object and create or destroy references to it

SYNOPSIS         top

       #include <systemd/sd-hwdb.h>

       int sd_hwdb_new(sd_hwdb **hwdb);

       int sd_hwdb_new_from_path(const char *path, sd_hwdb **hwdb);

       sd_hwdb* sd_hwdb_ref(sd_hwdb *hwdb);

       sd_hwdb* sd_hwdb_unref(sd_hwdb *hwdb);

DESCRIPTION         top

       sd_hwdb_new() creates a new hwdb object to access the binary hwdb
       database. Upon initialization, the file containing the binary
       representation of the hardware database is located and opened.
       The new object is returned in hwdb.

       sd_hwdb_new_from_path() may be used to specify the path from
       which the binary hardware database should be opened.

       The hwdb object is reference counted.  sd_hwdb_ref() and
       sd_hwdb_unref() may be used to get a new reference or destroy an
       existing reference to an object. The caller must dispose of the
       reference acquired with sd_hwdb_new() by calling sd_hwdb_unref()
       when done with the object.

       Use sd_hwdb_seek(3), sd_hwdb_get(3), and sd_hwdb_enumerate(3) to
       access entries.

RETURN VALUE         top

       On success, sd_hwdb_new() and sd_hwdb_new_from_path() return a
       non-negative integer. On failure, a negative errno-style error
       code is returned.

       sd_hwdb_ref() always returns the argument.

       sd_hwdb_unref() always returns NULL.

       Returned errors may indicate the following problems:

           The binary hardware database file could not be located. See
           systemd-hwdb(8) for more information.

           Added in version 246.

           The located binary hardware database file is in an
           incompatible format.

           Added in version 246.

           Memory allocation failed.

           Added in version 246.

NOTES         top

       Functions described here are available as a shared library, which
       can be compiled against and linked to with the
       libsystemd pkg-config(1) file.

       The code described here uses getenv(3), which is declared to be
       not multi-thread-safe. This means that the code calling the
       functions described here must not call setenv(3) from a parallel
       thread. It is recommended to only do calls to setenv() from an
       early phase of the program when no other threads have been

HISTORY         top

       sd_hwdb_new(), sd_hwdb_ref(), and sd_hwdb_unref() were added in
       version 246.

       sd_hwdb_new_from_path() was added in version 252.

SEE ALSO         top

       systemd(1), systemd-udevd.service(8), sd-hwdb(3), systemd-hwdb(3)

COLOPHON         top

       This page is part of the systemd (systemd system and service
       manager) project.  Information about the project can be found at
       ⟨⟩.  If you have
       a bug report for this manual page, see
       This page was obtained from the project's upstream Git repository
       ⟨⟩ on 2023-12-22.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2023-12-22.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

systemd 255                                               SD_HWDB_NEW(3)

Pages that refer to this page: sd-hwdb(3)sd_hwdb_get(3)systemd.directives(7)systemd.index(7)