summaryrefslogtreecommitdiff
path: root/docs/libudev
diff options
context:
space:
mode:
authorMichael Stapelberg <michael@stapelberg.de>2014-04-26 10:08:46 +0200
committerMichael Stapelberg <michael@stapelberg.de>2014-04-26 10:08:46 +0200
commit663996b3bb3cdaa81ac830674fdda00e28a2485b (patch)
treeec5ccfae391a7cc7970f7618a58970c87dec770b /docs/libudev
downloadsystemd-663996b3bb3cdaa81ac830674fdda00e28a2485b.tar.gz
Imported Upstream version 204
Diffstat (limited to 'docs/libudev')
-rw-r--r--docs/libudev/Makefile.am109
-rw-r--r--docs/libudev/Makefile.in853
-rw-r--r--docs/libudev/html/api-index-full.html452
-rw-r--r--docs/libudev/html/ch01.html57
-rw-r--r--docs/libudev/html/home.pngbin0 -> 654 bytes
-rw-r--r--docs/libudev/html/index.html64
-rw-r--r--docs/libudev/html/index.sgml129
-rw-r--r--docs/libudev/html/left.pngbin0 -> 459 bytes
-rw-r--r--docs/libudev/html/libudev-udev-device.html1033
-rw-r--r--docs/libudev/html/libudev-udev-enumerate.html585
-rw-r--r--docs/libudev/html/libudev-udev-hwdb.html182
-rw-r--r--docs/libudev/html/libudev-udev-list.html197
-rw-r--r--docs/libudev/html/libudev-udev-monitor.html439
-rw-r--r--docs/libudev/html/libudev-udev-queue.html366
-rw-r--r--docs/libudev/html/libudev-udev-util.html94
-rw-r--r--docs/libudev/html/libudev-udev.html276
-rw-r--r--docs/libudev/html/libudev.devhelp2115
-rw-r--r--docs/libudev/html/right.pngbin0 -> 472 bytes
-rw-r--r--docs/libudev/html/style.css266
-rw-r--r--docs/libudev/html/up.pngbin0 -> 406 bytes
-rw-r--r--docs/libudev/libudev-docs.xml40
-rw-r--r--docs/libudev/libudev-overrides.txt0
-rw-r--r--docs/libudev/libudev-sections.txt135
-rw-r--r--docs/libudev/libudev.types0
-rw-r--r--docs/libudev/version.xml1
-rw-r--r--docs/libudev/version.xml.in1
26 files changed, 5394 insertions, 0 deletions
diff --git a/docs/libudev/Makefile.am b/docs/libudev/Makefile.am
new file mode 100644
index 0000000000..cf9a452e78
--- /dev/null
+++ b/docs/libudev/Makefile.am
@@ -0,0 +1,109 @@
+## Process this file with automake to produce Makefile.in
+
+# We require automake 1.10 at least.
+AUTOMAKE_OPTIONS = 1.10 color-tests
+
+# This is a blank Makefile.am for using gtk-doc.
+# Copy this to your project's API docs directory and modify the variables to
+# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
+# of using the various options.
+
+# The name of the module, e.g. 'glib'.
+DOC_MODULE=libudev
+
+# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
+#DOC_MODULE_VERSION=2
+
+# The top-level SGML file. You can change this if you want to.
+DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml
+
+# The directory containing the source code. Relative to $(srcdir).
+# gtk-doc will search all .c & .h files beneath here for inline comments
+# documenting the functions and macros.
+# e.g. DOC_SOURCE_DIR=../../../gtk
+DOC_SOURCE_DIR=$(top_srcdir)/src/libudev
+
+# Extra options to pass to gtkdoc-scangobj. Not normally needed.
+SCANGOBJ_OPTIONS=
+
+# Extra options to supply to gtkdoc-scan.
+# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
+SCAN_OPTIONS=
+
+# Extra options to supply to gtkdoc-mkdb.
+# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
+MKDB_OPTIONS=--xml-mode --output-format=xml --name-space=udev
+
+# Extra options to supply to gtkdoc-mktmpl
+# e.g. MKTMPL_OPTIONS=--only-section-tmpl
+MKTMPL_OPTIONS=
+
+# Extra options to supply to gtkdoc-mkhtml
+MKHTML_OPTIONS=--path=$(abs_srcdir) --path=$(abs_builddir)
+
+# Extra options to supply to gtkdoc-fixref. Not normally needed.
+# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
+FIXXREF_OPTIONS=>/dev/null 2>&1
+
+# Used for dependencies. The docs will be rebuilt if any of these change.
+# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
+# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
+HFILE_GLOB=$(top_srcdir)/src/libudev/libudev*.h
+CFILE_GLOB=$(top_srcdir)/src/libudev/libudev*.c
+
+# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
+# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
+EXTRA_HFILES=
+
+# Header files to ignore when scanning. Use base file name, no paths
+# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
+IGNORE_HFILES = libudev-private.h libudev-hwdb-def.h
+
+# Images to copy into HTML directory.
+# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
+HTML_IMAGES=
+
+# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
+# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
+content_files = version.xml
+
+# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
+# These files must be listed here *and* in content_files
+# e.g. expand_content_files=running.sgml
+expand_content_files=
+
+# Hack, hack. You silly gtk-doc, you must not add CFLAGS multiple
+# times when calling gcc; it surely can not work with options that must
+# be listed only once.
+# Kill CFLAGS here because gtk-doc thinks adding CFLAGS to CC _and_ also
+# adding CFLAGS itself again would work.
+override CFLAGS=
+override LDFLAGS=
+
+# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
+# Only needed if you are using gtkdoc-scangobj to dynamically query widget
+# signals and properties.
+# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
+# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
+GTKDOC_CFLAGS=
+GTKDOC_LIBS=
+
+# This includes the standard gtk-doc make rules, copied by gtkdocize.
+include $(top_srcdir)/docs/gtk-doc.make
+
+# Other files to distribute
+# e.g. EXTRA_DIST += version.xml.in
+EXTRA_DIST += version.xml.in
+
+# Files not to distribute
+# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
+# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
+#DISTCLEANFILES +=
+
+# Comment this out if you want your docs-status tested during 'make check'
+if ENABLE_GTK_DOC
+if ENABLE_GTK_DOC_TESTS
+#TESTS_ENVIRONMENT = cd $(top_srcdir)
+#TESTS = $(GTKDOC_CHECK)
+endif
+endif
diff --git a/docs/libudev/Makefile.in b/docs/libudev/Makefile.in
new file mode 100644
index 0000000000..080ab762e5
--- /dev/null
+++ b/docs/libudev/Makefile.in
@@ -0,0 +1,853 @@
+# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# -*- mode: makefile -*-
+
+####################################
+# Everything below here is generic #
+####################################
+VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(top_srcdir)/docs/gtk-doc.make $(srcdir)/Makefile.in \
+ $(srcdir)/Makefile.am $(srcdir)/version.xml.in
+subdir = docs/libudev
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/acx_libwrap.m4 \
+ $(top_srcdir)/m4/attributes.m4 $(top_srcdir)/m4/gtk-doc.m4 \
+ $(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = version.xml
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACL_LIBS = @ACL_LIBS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUDIT_LIBS = @AUDIT_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BLKID_CFLAGS = @BLKID_CFLAGS@
+BLKID_LIBS = @BLKID_LIBS@
+CAP_LIBS = @CAP_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHKCONFIG = @CHKCONFIG@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DEBUGTTY = @DEBUGTTY@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FIRMWARE_PATH = @FIRMWARE_PATH@
+GCRYPT_CFLAGS = @GCRYPT_CFLAGS@
+GCRYPT_LIBS = @GCRYPT_LIBS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GMSGFMT = @GMSGFMT@
+GPERF = @GPERF@
+GREP = @GREP@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+HTML_DIR = @HTML_DIR@
+INCLUDE_PREFIX = @INCLUDE_PREFIX@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+KBD_LOADKEYS = @KBD_LOADKEYS@
+KBD_SETFONT = @KBD_SETFONT@
+KILL = @KILL@
+KMOD_CFLAGS = @KMOD_CFLAGS@
+KMOD_LIBS = @KMOD_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBCRYPTSETUP_CFLAGS = @LIBCRYPTSETUP_CFLAGS@
+LIBCRYPTSETUP_LIBS = @LIBCRYPTSETUP_LIBS@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBWRAP_LIBS = @LIBWRAP_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+M4_DEFINES = @M4_DEFINES@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MICROHTTPD_CFLAGS = @MICROHTTPD_CFLAGS@
+MICROHTTPD_LIBS = @MICROHTTPD_LIBS@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJCOPY = @OBJCOPY@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+OUR_CFLAGS = @OUR_CFLAGS@
+OUR_CPPFLAGS = @OUR_CPPFLAGS@
+OUR_LDFLAGS = @OUR_LDFLAGS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PAM_LIBS = @PAM_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PYTHON = @PYTHON@
+PYTHON_BINARY = @PYTHON_BINARY@
+PYTHON_CFLAGS = @PYTHON_CFLAGS@
+PYTHON_CONFIG = @PYTHON_CONFIG@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QRENCODE_CFLAGS = @QRENCODE_CFLAGS@
+QRENCODE_LIBS = @QRENCODE_LIBS@
+QUOTACHECK = @QUOTACHECK@
+QUOTAON = @QUOTAON@
+RANLIB = @RANLIB@
+RC_LOCAL_SCRIPT_PATH_START = @RC_LOCAL_SCRIPT_PATH_START@
+RC_LOCAL_SCRIPT_PATH_STOP = @RC_LOCAL_SCRIPT_PATH_STOP@
+SED = @SED@
+SELINUX_CFLAGS = @SELINUX_CFLAGS@
+SELINUX_LIBS = @SELINUX_LIBS@
+SETCAP = @SETCAP@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SPHINX_BUILD = @SPHINX_BUILD@
+STRINGS = @STRINGS@
+STRIP = @STRIP@
+SUSHELL = @SUSHELL@
+SYSTEM_SYSVINIT_PATH = @SYSTEM_SYSVINIT_PATH@
+SYSTEM_SYSVRCND_PATH = @SYSTEM_SYSVRCND_PATH@
+TELINIT = @TELINIT@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XATTR_LIBS = @XATTR_LIBS@
+XGETTEXT = @XGETTEXT@
+XSLTPROC = @XSLTPROC@
+XZ_CFLAGS = @XZ_CFLAGS@
+XZ_LIBS = @XZ_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bashcompletiondir = @bashcompletiondir@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+dbusinterfacedir = @dbusinterfacedir@
+dbuspolicydir = @dbuspolicydir@
+dbussessionservicedir = @dbussessionservicedir@
+dbussystemservicedir = @dbussystemservicedir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pamlibdir = @pamlibdir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+rootlibdir = @rootlibdir@
+rootprefix = @rootprefix@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+# We require automake 1.10 at least.
+AUTOMAKE_OPTIONS = 1.10 color-tests
+
+# This is a blank Makefile.am for using gtk-doc.
+# Copy this to your project's API docs directory and modify the variables to
+# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
+# of using the various options.
+
+# The name of the module, e.g. 'glib'.
+DOC_MODULE = libudev
+
+# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
+#DOC_MODULE_VERSION=2
+
+# The top-level SGML file. You can change this if you want to.
+DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml
+
+# The directory containing the source code. Relative to $(srcdir).
+# gtk-doc will search all .c & .h files beneath here for inline comments
+# documenting the functions and macros.
+# e.g. DOC_SOURCE_DIR=../../../gtk
+DOC_SOURCE_DIR = $(top_srcdir)/src/libudev
+
+# Extra options to pass to gtkdoc-scangobj. Not normally needed.
+SCANGOBJ_OPTIONS =
+
+# Extra options to supply to gtkdoc-scan.
+# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
+SCAN_OPTIONS =
+
+# Extra options to supply to gtkdoc-mkdb.
+# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
+MKDB_OPTIONS = --xml-mode --output-format=xml --name-space=udev
+
+# Extra options to supply to gtkdoc-mktmpl
+# e.g. MKTMPL_OPTIONS=--only-section-tmpl
+MKTMPL_OPTIONS =
+
+# Extra options to supply to gtkdoc-mkhtml
+MKHTML_OPTIONS = --path=$(abs_srcdir) --path=$(abs_builddir)
+
+# Extra options to supply to gtkdoc-fixref. Not normally needed.
+# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
+FIXXREF_OPTIONS = >/dev/null 2>&1
+
+# Used for dependencies. The docs will be rebuilt if any of these change.
+# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
+# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
+HFILE_GLOB = $(top_srcdir)/src/libudev/libudev*.h
+CFILE_GLOB = $(top_srcdir)/src/libudev/libudev*.c
+
+# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
+# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
+EXTRA_HFILES =
+
+# Header files to ignore when scanning. Use base file name, no paths
+# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
+IGNORE_HFILES = libudev-private.h libudev-hwdb-def.h
+
+# Images to copy into HTML directory.
+# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
+HTML_IMAGES =
+
+# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
+# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
+content_files = version.xml
+
+# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
+# These files must be listed here *and* in content_files
+# e.g. expand_content_files=running.sgml
+expand_content_files =
+
+# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
+# Only needed if you are using gtkdoc-scangobj to dynamically query widget
+# signals and properties.
+# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
+# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
+GTKDOC_CFLAGS =
+GTKDOC_LIBS =
+@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
+@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN =
+@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute
+
+# We set GPATH here; this gives us semantics for GNU make
+# which are more like other make's VPATH, when it comes to
+# whether a source that is a target of one rule is then
+# searched for in VPATH/GPATH.
+#
+GPATH = $(srcdir)
+TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
+SETUP_FILES = \
+ $(content_files) \
+ $(DOC_MAIN_SGML_FILE) \
+ $(DOC_MODULE)-sections.txt \
+ $(DOC_MODULE)-overrides.txt
+
+
+# This includes the standard gtk-doc make rules, copied by gtkdocize.
+
+# Other files to distribute
+# e.g. EXTRA_DIST += version.xml.in
+EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) version.xml.in
+DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \
+ html-build.stamp pdf-build.stamp \
+ sgml.stamp html.stamp pdf.stamp
+
+SCANOBJ_FILES = \
+ $(DOC_MODULE).args \
+ $(DOC_MODULE).hierarchy \
+ $(DOC_MODULE).interfaces \
+ $(DOC_MODULE).prerequisites \
+ $(DOC_MODULE).signals
+
+REPORT_FILES = \
+ $(DOC_MODULE)-undocumented.txt \
+ $(DOC_MODULE)-undeclared.txt \
+ $(DOC_MODULE)-unused.txt
+
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP =
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP =
+@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/docs/gtk-doc.make $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/libudev/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign docs/libudev/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+$(top_srcdir)/docs/gtk-doc.make:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+version.xml: $(top_builddir)/config.status $(srcdir)/version.xml.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile all-local
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-local
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic \
+ maintainer-clean-local
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-local
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am clean clean-generic \
+ clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+ distclean distclean-generic distclean-libtool distclean-local \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-data-local \
+ install-dvi install-dvi-am install-exec install-exec-am \
+ install-html install-html-am install-info install-info-am \
+ install-man install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ maintainer-clean-local mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-local
+
+
+# Hack, hack. You silly gtk-doc, you must not add CFLAGS multiple
+# times when calling gcc; it surely can not work with options that must
+# be listed only once.
+# Kill CFLAGS here because gtk-doc thinks adding CFLAGS to CC _and_ also
+# adding CFLAGS itself again would work.
+override CFLAGS=
+override LDFLAGS=
+
+@ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+@ENABLE_GTK_DOC_FALSE@all-local:
+
+docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+
+$(REPORT_FILES): sgml-build.stamp
+
+#### setup ####
+
+setup-build.stamp:
+ -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+ echo ' DOC Preparing build'; \
+ files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
+ if test "x$$files" != "x" ; then \
+ for file in $$files ; do \
+ test -f $(abs_srcdir)/$$file && \
+ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+ done; \
+ fi; \
+ fi
+ @touch setup-build.stamp
+
+#### scan ####
+
+scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
+ @echo ' DOC Scanning header files'
+ @_source_dir='' ; \
+ for i in $(DOC_SOURCE_DIR) ; do \
+ _source_dir="$${_source_dir} --source-dir=$$i" ; \
+ done ; \
+ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
+ @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
+ echo " DOC Introspecting gobjects"; \
+ scanobj_options=""; \
+ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
+ if test "$(?)" = "0"; then \
+ if test "x$(V)" = "x1"; then \
+ scanobj_options="--verbose"; \
+ fi; \
+ fi; \
+ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \
+ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \
+ else \
+ for i in $(SCANOBJ_FILES) ; do \
+ test -f $$i || touch $$i ; \
+ done \
+ fi
+ @touch scan-build.stamp
+
+$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
+ @true
+
+#### xml ####
+
+sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
+ @echo ' DOC Building XML'
+ @_source_dir='' ; \
+ for i in $(DOC_SOURCE_DIR) ; do \
+ _source_dir="$${_source_dir} --source-dir=$$i" ; \
+ done ; \
+ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
+ @touch sgml-build.stamp
+
+sgml.stamp: sgml-build.stamp
+ @true
+
+#### html ####
+
+html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+ @echo ' DOC Building HTML'
+ @rm -rf html
+ @mkdir html
+ @mkhtml_options=""; \
+ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
+ if test "$(?)" = "0"; then \
+ if test "x$(V)" = "x1"; then \
+ mkhtml_options="$$mkhtml_options --verbose"; \
+ fi; \
+ fi; \
+ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
+ if test "$(?)" = "0"; then \
+ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
+ fi; \
+ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
+ -@test "x$(HTML_IMAGES)" = "x" || \
+ for file in $(HTML_IMAGES) ; do \
+ if test -f $(abs_srcdir)/$$file ; then \
+ cp $(abs_srcdir)/$$file $(abs_builddir)/html; \
+ fi; \
+ if test -f $(abs_builddir)/$$file ; then \
+ cp $(abs_builddir)/$$file $(abs_builddir)/html; \
+ fi; \
+ done;
+ @echo ' DOC Fixing cross-references'
+ @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+ @touch html-build.stamp
+
+#### pdf ####
+
+pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
+ @echo ' DOC Building PDF'
+ @rm -f $(DOC_MODULE).pdf
+ @mkpdf_options=""; \
+ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
+ if test "$(?)" = "0"; then \
+ if test "x$(V)" = "x1"; then \
+ mkpdf_options="$$mkpdf_options --verbose"; \
+ fi; \
+ fi; \
+ if test "x$(HTML_IMAGES)" != "x"; then \
+ for img in $(HTML_IMAGES); do \
+ part=`dirname $$img`; \
+ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \
+ if test $$? != 0; then \
+ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \
+ fi; \
+ done; \
+ fi; \
+ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
+ @touch pdf-build.stamp
+
+##############
+
+clean-local:
+ @rm -f *~ *.bak
+ @rm -rf .libs
+
+distclean-local:
+ @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
+ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
+ @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
+ rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
+ fi
+
+maintainer-clean-local: clean
+ @rm -rf xml html
+
+install-data-local:
+ @installfiles=`echo $(builddir)/html/*`; \
+ if test "$$installfiles" = '$(builddir)/html/*'; \
+ then echo 1>&2 'Nothing to install' ; \
+ else \
+ if test -n "$(DOC_MODULE_VERSION)"; then \
+ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
+ else \
+ installdir="$(DESTDIR)$(TARGET_DIR)"; \
+ fi; \
+ $(mkinstalldirs) $${installdir} ; \
+ for i in $$installfiles; do \
+ echo ' $(INSTALL_DATA) '$$i ; \
+ $(INSTALL_DATA) $$i $${installdir}; \
+ done; \
+ if test -n "$(DOC_MODULE_VERSION)"; then \
+ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
+ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
+ fi; \
+ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \
+ fi
+
+uninstall-local:
+ @if test -n "$(DOC_MODULE_VERSION)"; then \
+ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
+ else \
+ installdir="$(DESTDIR)$(TARGET_DIR)"; \
+ fi; \
+ rm -rf $${installdir}
+
+#
+# Require gtk-doc when making dist
+#
+@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc:
+@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc:
+@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist"
+@ENABLE_GTK_DOC_FALSE@ @false
+
+dist-hook: dist-check-gtkdoc dist-hook-local
+ @mkdir $(distdir)/html
+ @cp ./html/* $(distdir)/html
+ @-cp ./$(DOC_MODULE).pdf $(distdir)/
+ @-cp ./$(DOC_MODULE).types $(distdir)/
+ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/
+ @cd $(distdir) && rm -f $(DISTCLEANFILES)
+ @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html
+
+.PHONY : dist-hook-local docs
+
+# Files not to distribute
+# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
+# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
+#DISTCLEANFILES +=
+
+# Comment this out if you want your docs-status tested during 'make check'
+#TESTS_ENVIRONMENT = cd $(top_srcdir)
+#TESTS = $(GTKDOC_CHECK)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/docs/libudev/html/api-index-full.html b/docs/libudev/html/api-index-full.html
new file mode 100644
index 0000000000..7f332a26d4
--- /dev/null
+++ b/docs/libudev/html/api-index-full.html
@@ -0,0 +1,452 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="up" href="index.html" title="libudev Reference Manual">
+<link rel="prev" href="libudev-udev-util.html" title="udev_util">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libudev-udev-util.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libudev Reference Manual</th>
+<td> </td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a class="shortcut" href="#idx"></a>
+  | 
+ <a class="shortcut" href="#idxD">D</a>
+  | 
+ <a class="shortcut" href="#idxE">E</a>
+  | 
+ <a class="shortcut" href="#idxG">G</a>
+  | 
+ <a class="shortcut" href="#idxH">H</a>
+  | 
+ <a class="shortcut" href="#idxL">L</a>
+  | 
+ <a class="shortcut" href="#idxM">M</a>
+  | 
+ <a class="shortcut" href="#idxN">N</a>
+  | 
+ <a class="shortcut" href="#idxQ">Q</a>
+  | 
+ <a class="shortcut" href="#idxR">R</a>
+  | 
+ <a class="shortcut" href="#idxS">S</a>
+  | 
+ <a class="shortcut" href="#idxU">U</a>
+</td></tr>
+</table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-full"></a>Index</h1></div></div></div>
+<a name="idx"></a><a name="idx"></a><h3 class="title"></h3>
+<dt>
+<a class="link" href="libudev-udev.html#udev" title="struct udev">udev</a>, struct in <a class="link" href="libudev-udev.html" title="udev">udev</a>
+</dt>
+<dd></dd>
+<a name="idxD"></a><h3 class="title">D</h3>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device">udev_device</a>, struct in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-action" title="udev_device_get_action ()">udev_device_get_action</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-devlinks-list-entry" title="udev_device_get_devlinks_list_entry ()">udev_device_get_devlinks_list_entry</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-devnode" title="udev_device_get_devnode ()">udev_device_get_devnode</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-devnum" title="udev_device_get_devnum ()">udev_device_get_devnum</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-devpath" title="udev_device_get_devpath ()">udev_device_get_devpath</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-devtype" title="udev_device_get_devtype ()">udev_device_get_devtype</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-driver" title="udev_device_get_driver ()">udev_device_get_driver</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-is-initialized" title="udev_device_get_is_initialized ()">udev_device_get_is_initialized</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-parent" title="udev_device_get_parent ()">udev_device_get_parent</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-parent-with-subsystem-devtype" title="udev_device_get_parent_with_subsystem_devtype ()">udev_device_get_parent_with_subsystem_devtype</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-properties-list-entry" title="udev_device_get_properties_list_entry ()">udev_device_get_properties_list_entry</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-property-value" title="udev_device_get_property_value ()">udev_device_get_property_value</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-seqnum" title="udev_device_get_seqnum ()">udev_device_get_seqnum</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-subsystem" title="udev_device_get_subsystem ()">udev_device_get_subsystem</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-sysattr-list-entry" title="udev_device_get_sysattr_list_entry ()">udev_device_get_sysattr_list_entry</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-sysattr-value" title="udev_device_get_sysattr_value ()">udev_device_get_sysattr_value</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-sysname" title="udev_device_get_sysname ()">udev_device_get_sysname</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-sysnum" title="udev_device_get_sysnum ()">udev_device_get_sysnum</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-syspath" title="udev_device_get_syspath ()">udev_device_get_syspath</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-tags-list-entry" title="udev_device_get_tags_list_entry ()">udev_device_get_tags_list_entry</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-udev" title="udev_device_get_udev ()">udev_device_get_udev</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-get-usec-since-initialized" title="udev_device_get_usec_since_initialized ()">udev_device_get_usec_since_initialized</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-has-tag" title="udev_device_has_tag ()">udev_device_has_tag</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-new-from-device-id" title="udev_device_new_from_device_id ()">udev_device_new_from_device_id</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-new-from-devnum" title="udev_device_new_from_devnum ()">udev_device_new_from_devnum</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-new-from-environment" title="udev_device_new_from_environment ()">udev_device_new_from_environment</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-new-from-subsystem-sysname" title="udev_device_new_from_subsystem_sysname ()">udev_device_new_from_subsystem_sysname</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-new-from-syspath" title="udev_device_new_from_syspath ()">udev_device_new_from_syspath</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-ref" title="udev_device_ref ()">udev_device_ref</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-set-sysattr-value" title="udev_device_set_sysattr_value ()">udev_device_set_sysattr_value</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-device.html#udev-device-unref" title="udev_device_unref ()">udev_device_unref</a>, function in <a class="link" href="libudev-udev-device.html" title="udev_device">udev_device</a>
+</dt>
+<dd></dd>
+<a name="idxE"></a><h3 class="title">E</h3>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate" title="struct udev_enumerate">udev_enumerate</a>, struct in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-is-initialized" title="udev_enumerate_add_match_is_initialized ()">udev_enumerate_add_match_is_initialized</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-parent" title="udev_enumerate_add_match_parent ()">udev_enumerate_add_match_parent</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-property" title="udev_enumerate_add_match_property ()">udev_enumerate_add_match_property</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-subsystem" title="udev_enumerate_add_match_subsystem ()">udev_enumerate_add_match_subsystem</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-sysattr" title="udev_enumerate_add_match_sysattr ()">udev_enumerate_add_match_sysattr</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-sysname" title="udev_enumerate_add_match_sysname ()">udev_enumerate_add_match_sysname</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-tag" title="udev_enumerate_add_match_tag ()">udev_enumerate_add_match_tag</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-nomatch-subsystem" title="udev_enumerate_add_nomatch_subsystem ()">udev_enumerate_add_nomatch_subsystem</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-nomatch-sysattr" title="udev_enumerate_add_nomatch_sysattr ()">udev_enumerate_add_nomatch_sysattr</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-syspath" title="udev_enumerate_add_syspath ()">udev_enumerate_add_syspath</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-get-list-entry" title="udev_enumerate_get_list_entry ()">udev_enumerate_get_list_entry</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-get-udev" title="udev_enumerate_get_udev ()">udev_enumerate_get_udev</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-new" title="udev_enumerate_new ()">udev_enumerate_new</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-ref" title="udev_enumerate_ref ()">udev_enumerate_ref</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-scan-devices" title="udev_enumerate_scan_devices ()">udev_enumerate_scan_devices</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-scan-subsystems" title="udev_enumerate_scan_subsystems ()">udev_enumerate_scan_subsystems</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-enumerate.html#udev-enumerate-unref" title="udev_enumerate_unref ()">udev_enumerate_unref</a>, function in <a class="link" href="libudev-udev-enumerate.html" title="udev_enumerate">udev_enumerate</a>
+</dt>
+<dd></dd>
+<a name="idxG"></a><h3 class="title">G</h3>
+<dt>
+<a class="link" href="libudev-udev.html#udev-get-log-priority" title="udev_get_log_priority ()">udev_get_log_priority</a>, function in <a class="link" href="libudev-udev.html" title="udev">udev</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev.html#udev-get-userdata" title="udev_get_userdata ()">udev_get_userdata</a>, function in <a class="link" href="libudev-udev.html" title="udev">udev</a>
+</dt>
+<dd></dd>
+<a name="idxH"></a><h3 class="title">H</h3>
+<dt>
+<a class="link" href="libudev-udev-hwdb.html#udev-hwdb" title="struct udev_hwdb">udev_hwdb</a>, struct in <a class="link" href="libudev-udev-hwdb.html" title="udev_hwdb">udev_hwdb</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-hwdb.html#udev-hwdb-get-properties-list-entry" title="udev_hwdb_get_properties_list_entry ()">udev_hwdb_get_properties_list_entry</a>, function in <a class="link" href="libudev-udev-hwdb.html" title="udev_hwdb">udev_hwdb</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-hwdb.html#udev-hwdb-new" title="udev_hwdb_new ()">udev_hwdb_new</a>, function in <a class="link" href="libudev-udev-hwdb.html" title="udev_hwdb">udev_hwdb</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-hwdb.html#udev-hwdb-ref" title="udev_hwdb_ref ()">udev_hwdb_ref</a>, function in <a class="link" href="libudev-udev-hwdb.html" title="udev_hwdb">udev_hwdb</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-hwdb.html#udev-hwdb-unref" title="udev_hwdb_unref ()">udev_hwdb_unref</a>, function in <a class="link" href="libudev-udev-hwdb.html" title="udev_hwdb">udev_hwdb</a>
+</dt>
+<dd></dd>
+<a name="idxL"></a><h3 class="title">L</h3>
+<dt>
+<a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry">udev_list_entry</a>, struct in <a class="link" href="libudev-udev-list.html" title="udev_list">udev_list</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-list.html#udev-list-entry-foreach" title="udev_list_entry_foreach()">udev_list_entry_foreach</a>, macro in <a class="link" href="libudev-udev-list.html" title="udev_list">udev_list</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-list.html#udev-list-entry-get-by-name" title="udev_list_entry_get_by_name ()">udev_list_entry_get_by_name</a>, function in <a class="link" href="libudev-udev-list.html" title="udev_list">udev_list</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-list.html#udev-list-entry-get-name" title="udev_list_entry_get_name ()">udev_list_entry_get_name</a>, function in <a class="link" href="libudev-udev-list.html" title="udev_list">udev_list</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-list.html#udev-list-entry-get-next" title="udev_list_entry_get_next ()">udev_list_entry_get_next</a>, function in <a class="link" href="libudev-udev-list.html" title="udev_list">udev_list</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-list.html#udev-list-entry-get-value" title="udev_list_entry_get_value ()">udev_list_entry_get_value</a>, function in <a class="link" href="libudev-udev-list.html" title="udev_list">udev_list</a>
+</dt>
+<dd></dd>
+<a name="idxM"></a><h3 class="title">M</h3>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor">udev_monitor</a>, struct in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-enable-receiving" title="udev_monitor_enable_receiving ()">udev_monitor_enable_receiving</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-add-match-subsystem-devtype" title="udev_monitor_filter_add_match_subsystem_devtype ()">udev_monitor_filter_add_match_subsystem_devtype</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-add-match-tag" title="udev_monitor_filter_add_match_tag ()">udev_monitor_filter_add_match_tag</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-remove" title="udev_monitor_filter_remove ()">udev_monitor_filter_remove</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-update" title="udev_monitor_filter_update ()">udev_monitor_filter_update</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-get-fd" title="udev_monitor_get_fd ()">udev_monitor_get_fd</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-get-udev" title="udev_monitor_get_udev ()">udev_monitor_get_udev</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-new-from-netlink" title="udev_monitor_new_from_netlink ()">udev_monitor_new_from_netlink</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-receive-device" title="udev_monitor_receive_device ()">udev_monitor_receive_device</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-ref" title="udev_monitor_ref ()">udev_monitor_ref</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-set-receive-buffer-size" title="udev_monitor_set_receive_buffer_size ()">udev_monitor_set_receive_buffer_size</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-monitor.html#udev-monitor-unref" title="udev_monitor_unref ()">udev_monitor_unref</a>, function in <a class="link" href="libudev-udev-monitor.html" title="udev_monitor">udev_monitor</a>
+</dt>
+<dd></dd>
+<a name="idxN"></a><h3 class="title">N</h3>
+<dt>
+<a class="link" href="libudev-udev.html#udev-new" title="udev_new ()">udev_new</a>, function in <a class="link" href="libudev-udev.html" title="udev">udev</a>
+</dt>
+<dd></dd>
+<a name="idxQ"></a><h3 class="title">Q</h3>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue" title="struct udev_queue">udev_queue</a>, struct in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-get-kernel-seqnum" title="udev_queue_get_kernel_seqnum ()">udev_queue_get_kernel_seqnum</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-get-queued-list-entry" title="udev_queue_get_queued_list_entry ()">udev_queue_get_queued_list_entry</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-get-queue-is-empty" title="udev_queue_get_queue_is_empty ()">udev_queue_get_queue_is_empty</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-get-seqnum-is-finished" title="udev_queue_get_seqnum_is_finished ()">udev_queue_get_seqnum_is_finished</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-get-seqnum-sequence-is-finished" title="udev_queue_get_seqnum_sequence_is_finished ()">udev_queue_get_seqnum_sequence_is_finished</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-get-udev" title="udev_queue_get_udev ()">udev_queue_get_udev</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-get-udev-is-active" title="udev_queue_get_udev_is_active ()">udev_queue_get_udev_is_active</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-get-udev-seqnum" title="udev_queue_get_udev_seqnum ()">udev_queue_get_udev_seqnum</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-new" title="udev_queue_new ()">udev_queue_new</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-ref" title="udev_queue_ref ()">udev_queue_ref</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-queue.html#udev-queue-unref" title="udev_queue_unref ()">udev_queue_unref</a>, function in <a class="link" href="libudev-udev-queue.html" title="udev_queue">udev_queue</a>
+</dt>
+<dd></dd>
+<a name="idxR"></a><h3 class="title">R</h3>
+<dt>
+<a class="link" href="libudev-udev.html#udev-ref" title="udev_ref ()">udev_ref</a>, function in <a class="link" href="libudev-udev.html" title="udev">udev</a>
+</dt>
+<dd></dd>
+<a name="idxS"></a><h3 class="title">S</h3>
+<dt>
+<a class="link" href="libudev-udev.html#udev-set-log-fn" title="udev_set_log_fn ()">udev_set_log_fn</a>, function in <a class="link" href="libudev-udev.html" title="udev">udev</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev.html#udev-set-log-priority" title="udev_set_log_priority ()">udev_set_log_priority</a>, function in <a class="link" href="libudev-udev.html" title="udev">udev</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev.html#udev-set-userdata" title="udev_set_userdata ()">udev_set_userdata</a>, function in <a class="link" href="libudev-udev.html" title="udev">udev</a>
+</dt>
+<dd></dd>
+<a name="idxU"></a><h3 class="title">U</h3>
+<dt>
+<a class="link" href="libudev-udev.html#udev-unref" title="udev_unref ()">udev_unref</a>, function in <a class="link" href="libudev-udev.html" title="udev">udev</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="libudev-udev-util.html#udev-util-encode-string" title="udev_util_encode_string ()">udev_util_encode_string</a>, function in <a class="link" href="libudev-udev-util.html" title="udev_util">udev_util</a>
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/ch01.html b/docs/libudev/html/ch01.html
new file mode 100644
index 0000000000..e9fc0f75c5
--- /dev/null
+++ b/docs/libudev/html/ch01.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Reference</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="up" href="index.html" title="libudev Reference Manual">
+<link rel="prev" href="index.html" title="libudev Reference Manual">
+<link rel="next" href="libudev-udev.html" title="udev">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
+<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td> </td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libudev Reference Manual</th>
+<td><a accesskey="n" href="libudev-udev.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="idm259783011568"></a>API Reference</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="libudev-udev.html">udev</a></span><span class="refpurpose"> — libudev context</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-list.html">udev_list</a></span><span class="refpurpose"> — list operation</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-device.html">udev_device</a></span><span class="refpurpose"> — kernel sys devices</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-monitor.html">udev_monitor</a></span><span class="refpurpose"> — device event source</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-enumerate.html">udev_enumerate</a></span><span class="refpurpose"> — lookup and sort sys devices</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-queue.html">udev_queue</a></span><span class="refpurpose"> — access to currently active events</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-hwdb.html">udev_hwdb</a></span><span class="refpurpose"> — retrieve properties from the hardware database</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-util.html">udev_util</a></span><span class="refpurpose"> — utils</span>
+</dt>
+</dl></div>
+<a name="idx"></a>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/home.png b/docs/libudev/html/home.png
new file mode 100644
index 0000000000..17003611d9
--- /dev/null
+++ b/docs/libudev/html/home.png
Binary files differ
diff --git a/docs/libudev/html/index.html b/docs/libudev/html/index.html
new file mode 100644
index 0000000000..4600a0c7bb
--- /dev/null
+++ b/docs/libudev/html/index.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>libudev Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="next" href="ch01.html" title="API Reference">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="book">
+<div class="titlepage">
+<div>
+<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libudev Reference Manual</p></th></tr></table></div>
+<div><p class="releaseinfo">
+ For version 204
+ — the latest version of this
+ documentation can be found at
+ <a class="ulink" href="http://www.freedesktop.org/software/systemd/libudev/" target="_top">
+ http://www.freedesktop.org/software/systemd/libudev/
+ </a>.
+ </p></div>
+<div><p class="copyright">Copyright © 2009-2012 Kay Sievers &lt;kay@vrfy.org&gt;</p></div>
+</div>
+<hr>
+</div>
+<div class="toc"><dl class="toc">
+<dt><span class="chapter"><a href="ch01.html">API Reference</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev.html">udev</a></span><span class="refpurpose"> — libudev context</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-list.html">udev_list</a></span><span class="refpurpose"> — list operation</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-device.html">udev_device</a></span><span class="refpurpose"> — kernel sys devices</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-monitor.html">udev_monitor</a></span><span class="refpurpose"> — device event source</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-enumerate.html">udev_enumerate</a></span><span class="refpurpose"> — lookup and sort sys devices</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-queue.html">udev_queue</a></span><span class="refpurpose"> — access to currently active events</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-hwdb.html">udev_hwdb</a></span><span class="refpurpose"> — retrieve properties from the hardware database</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="libudev-udev-util.html">udev_util</a></span><span class="refpurpose"> — utils</span>
+</dt>
+</dl></dd>
+<dt><span class="index"><a href="api-index-full.html">Index</a></span></dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/index.sgml b/docs/libudev/html/index.sgml
new file mode 100644
index 0000000000..74c9d710a1
--- /dev/null
+++ b/docs/libudev/html/index.sgml
@@ -0,0 +1,129 @@
+<ONLINE href="http://www.freedesktop.org/software/systemd/libudev/">
+<ANCHOR id="libudev-udev" href="libudev/libudev-udev.html">
+<ANCHOR id="libudev-udev.synopsis" href="libudev/libudev-udev.html#libudev-udev.synopsis">
+<ANCHOR id="libudev-udev.description" href="libudev/libudev-udev.html#libudev-udev.description">
+<ANCHOR id="libudev-udev.details" href="libudev/libudev-udev.html#libudev-udev.details">
+<ANCHOR id="udev" href="libudev/libudev-udev.html#udev">
+<ANCHOR id="udev-ref" href="libudev/libudev-udev.html#udev-ref">
+<ANCHOR id="udev-unref" href="libudev/libudev-udev.html#udev-unref">
+<ANCHOR id="udev-new" href="libudev/libudev-udev.html#udev-new">
+<ANCHOR id="udev-set-log-fn" href="libudev/libudev-udev.html#udev-set-log-fn">
+<ANCHOR id="udev-get-log-priority" href="libudev/libudev-udev.html#udev-get-log-priority">
+<ANCHOR id="udev-set-log-priority" href="libudev/libudev-udev.html#udev-set-log-priority">
+<ANCHOR id="udev-get-userdata" href="libudev/libudev-udev.html#udev-get-userdata">
+<ANCHOR id="udev-set-userdata" href="libudev/libudev-udev.html#udev-set-userdata">
+<ANCHOR id="libudev-udev-list" href="libudev/libudev-udev-list.html">
+<ANCHOR id="libudev-udev-list.synopsis" href="libudev/libudev-udev-list.html#libudev-udev-list.synopsis">
+<ANCHOR id="libudev-udev-list.description" href="libudev/libudev-udev-list.html#libudev-udev-list.description">
+<ANCHOR id="libudev-udev-list.details" href="libudev/libudev-udev-list.html#libudev-udev-list.details">
+<ANCHOR id="udev-list-entry" href="libudev/libudev-udev-list.html#udev-list-entry">
+<ANCHOR id="udev-list-entry-get-next" href="libudev/libudev-udev-list.html#udev-list-entry-get-next">
+<ANCHOR id="udev-list-entry-get-by-name" href="libudev/libudev-udev-list.html#udev-list-entry-get-by-name">
+<ANCHOR id="udev-list-entry-get-name" href="libudev/libudev-udev-list.html#udev-list-entry-get-name">
+<ANCHOR id="udev-list-entry-get-value" href="libudev/libudev-udev-list.html#udev-list-entry-get-value">
+<ANCHOR id="udev-list-entry-foreach" href="libudev/libudev-udev-list.html#udev-list-entry-foreach">
+<ANCHOR id="libudev-udev-device" href="libudev/libudev-udev-device.html">
+<ANCHOR id="libudev-udev-device.synopsis" href="libudev/libudev-udev-device.html#libudev-udev-device.synopsis">
+<ANCHOR id="libudev-udev-device.description" href="libudev/libudev-udev-device.html#libudev-udev-device.description">
+<ANCHOR id="libudev-udev-device.details" href="libudev/libudev-udev-device.html#libudev-udev-device.details">
+<ANCHOR id="udev-device" href="libudev/libudev-udev-device.html#udev-device">
+<ANCHOR id="udev-device-ref" href="libudev/libudev-udev-device.html#udev-device-ref">
+<ANCHOR id="udev-device-unref" href="libudev/libudev-udev-device.html#udev-device-unref">
+<ANCHOR id="udev-device-get-udev" href="libudev/libudev-udev-device.html#udev-device-get-udev">
+<ANCHOR id="udev-device-new-from-syspath" href="libudev/libudev-udev-device.html#udev-device-new-from-syspath">
+<ANCHOR id="udev-device-new-from-devnum" href="libudev/libudev-udev-device.html#udev-device-new-from-devnum">
+<ANCHOR id="udev-device-new-from-subsystem-sysname" href="libudev/libudev-udev-device.html#udev-device-new-from-subsystem-sysname">
+<ANCHOR id="udev-device-new-from-device-id" href="libudev/libudev-udev-device.html#udev-device-new-from-device-id">
+<ANCHOR id="udev-device-new-from-environment" href="libudev/libudev-udev-device.html#udev-device-new-from-environment">
+<ANCHOR id="udev-device-get-parent" href="libudev/libudev-udev-device.html#udev-device-get-parent">
+<ANCHOR id="udev-device-get-parent-with-subsystem-devtype" href="libudev/libudev-udev-device.html#udev-device-get-parent-with-subsystem-devtype">
+<ANCHOR id="udev-device-get-devpath" href="libudev/libudev-udev-device.html#udev-device-get-devpath">
+<ANCHOR id="udev-device-get-subsystem" href="libudev/libudev-udev-device.html#udev-device-get-subsystem">
+<ANCHOR id="udev-device-get-devtype" href="libudev/libudev-udev-device.html#udev-device-get-devtype">
+<ANCHOR id="udev-device-get-syspath" href="libudev/libudev-udev-device.html#udev-device-get-syspath">
+<ANCHOR id="udev-device-get-sysname" href="libudev/libudev-udev-device.html#udev-device-get-sysname">
+<ANCHOR id="udev-device-get-sysnum" href="libudev/libudev-udev-device.html#udev-device-get-sysnum">
+<ANCHOR id="udev-device-get-devnode" href="libudev/libudev-udev-device.html#udev-device-get-devnode">
+<ANCHOR id="udev-device-get-is-initialized" href="libudev/libudev-udev-device.html#udev-device-get-is-initialized">
+<ANCHOR id="udev-device-get-devlinks-list-entry" href="libudev/libudev-udev-device.html#udev-device-get-devlinks-list-entry">
+<ANCHOR id="udev-device-get-properties-list-entry" href="libudev/libudev-udev-device.html#udev-device-get-properties-list-entry">
+<ANCHOR id="udev-device-get-tags-list-entry" href="libudev/libudev-udev-device.html#udev-device-get-tags-list-entry">
+<ANCHOR id="udev-device-get-property-value" href="libudev/libudev-udev-device.html#udev-device-get-property-value">
+<ANCHOR id="udev-device-get-driver" href="libudev/libudev-udev-device.html#udev-device-get-driver">
+<ANCHOR id="udev-device-get-devnum" href="libudev/libudev-udev-device.html#udev-device-get-devnum">
+<ANCHOR id="udev-device-get-action" href="libudev/libudev-udev-device.html#udev-device-get-action">
+<ANCHOR id="udev-device-get-sysattr-value" href="libudev/libudev-udev-device.html#udev-device-get-sysattr-value">
+<ANCHOR id="udev-device-set-sysattr-value" href="libudev/libudev-udev-device.html#udev-device-set-sysattr-value">
+<ANCHOR id="udev-device-get-sysattr-list-entry" href="libudev/libudev-udev-device.html#udev-device-get-sysattr-list-entry">
+<ANCHOR id="udev-device-get-seqnum" href="libudev/libudev-udev-device.html#udev-device-get-seqnum">
+<ANCHOR id="udev-device-get-usec-since-initialized" href="libudev/libudev-udev-device.html#udev-device-get-usec-since-initialized">
+<ANCHOR id="udev-device-has-tag" href="libudev/libudev-udev-device.html#udev-device-has-tag">
+<ANCHOR id="libudev-udev-monitor" href="libudev/libudev-udev-monitor.html">
+<ANCHOR id="libudev-udev-monitor.synopsis" href="libudev/libudev-udev-monitor.html#libudev-udev-monitor.synopsis">
+<ANCHOR id="libudev-udev-monitor.description" href="libudev/libudev-udev-monitor.html#libudev-udev-monitor.description">
+<ANCHOR id="libudev-udev-monitor.details" href="libudev/libudev-udev-monitor.html#libudev-udev-monitor.details">
+<ANCHOR id="udev-monitor" href="libudev/libudev-udev-monitor.html#udev-monitor">
+<ANCHOR id="udev-monitor-ref" href="libudev/libudev-udev-monitor.html#udev-monitor-ref">
+<ANCHOR id="udev-monitor-unref" href="libudev/libudev-udev-monitor.html#udev-monitor-unref">
+<ANCHOR id="udev-monitor-get-udev" href="libudev/libudev-udev-monitor.html#udev-monitor-get-udev">
+<ANCHOR id="udev-monitor-new-from-netlink" href="libudev/libudev-udev-monitor.html#udev-monitor-new-from-netlink">
+<ANCHOR id="udev-monitor-enable-receiving" href="libudev/libudev-udev-monitor.html#udev-monitor-enable-receiving">
+<ANCHOR id="udev-monitor-set-receive-buffer-size" href="libudev/libudev-udev-monitor.html#udev-monitor-set-receive-buffer-size">
+<ANCHOR id="udev-monitor-get-fd" href="libudev/libudev-udev-monitor.html#udev-monitor-get-fd">
+<ANCHOR id="udev-monitor-receive-device" href="libudev/libudev-udev-monitor.html#udev-monitor-receive-device">
+<ANCHOR id="udev-monitor-filter-add-match-subsystem-devtype" href="libudev/libudev-udev-monitor.html#udev-monitor-filter-add-match-subsystem-devtype">
+<ANCHOR id="udev-monitor-filter-add-match-tag" href="libudev/libudev-udev-monitor.html#udev-monitor-filter-add-match-tag">
+<ANCHOR id="udev-monitor-filter-update" href="libudev/libudev-udev-monitor.html#udev-monitor-filter-update">
+<ANCHOR id="udev-monitor-filter-remove" href="libudev/libudev-udev-monitor.html#udev-monitor-filter-remove">
+<ANCHOR id="libudev-udev-enumerate" href="libudev/libudev-udev-enumerate.html">
+<ANCHOR id="libudev-udev-enumerate.synopsis" href="libudev/libudev-udev-enumerate.html#libudev-udev-enumerate.synopsis">
+<ANCHOR id="libudev-udev-enumerate.description" href="libudev/libudev-udev-enumerate.html#libudev-udev-enumerate.description">
+<ANCHOR id="libudev-udev-enumerate.details" href="libudev/libudev-udev-enumerate.html#libudev-udev-enumerate.details">
+<ANCHOR id="udev-enumerate" href="libudev/libudev-udev-enumerate.html#udev-enumerate">
+<ANCHOR id="udev-enumerate-ref" href="libudev/libudev-udev-enumerate.html#udev-enumerate-ref">
+<ANCHOR id="udev-enumerate-unref" href="libudev/libudev-udev-enumerate.html#udev-enumerate-unref">
+<ANCHOR id="udev-enumerate-get-udev" href="libudev/libudev-udev-enumerate.html#udev-enumerate-get-udev">
+<ANCHOR id="udev-enumerate-new" href="libudev/libudev-udev-enumerate.html#udev-enumerate-new">
+<ANCHOR id="udev-enumerate-add-match-subsystem" href="libudev/libudev-udev-enumerate.html#udev-enumerate-add-match-subsystem">
+<ANCHOR id="udev-enumerate-add-nomatch-subsystem" href="libudev/libudev-udev-enumerate.html#udev-enumerate-add-nomatch-subsystem">
+<ANCHOR id="udev-enumerate-add-match-sysattr" href="libudev/libudev-udev-enumerate.html#udev-enumerate-add-match-sysattr">
+<ANCHOR id="udev-enumerate-add-nomatch-sysattr" href="libudev/libudev-udev-enumerate.html#udev-enumerate-add-nomatch-sysattr">
+<ANCHOR id="udev-enumerate-add-match-property" href="libudev/libudev-udev-enumerate.html#udev-enumerate-add-match-property">
+<ANCHOR id="udev-enumerate-add-match-tag" href="libudev/libudev-udev-enumerate.html#udev-enumerate-add-match-tag">
+<ANCHOR id="udev-enumerate-add-match-parent" href="libudev/libudev-udev-enumerate.html#udev-enumerate-add-match-parent">
+<ANCHOR id="udev-enumerate-add-match-is-initialized" href="libudev/libudev-udev-enumerate.html#udev-enumerate-add-match-is-initialized">
+<ANCHOR id="udev-enumerate-add-match-sysname" href="libudev/libudev-udev-enumerate.html#udev-enumerate-add-match-sysname">
+<ANCHOR id="udev-enumerate-add-syspath" href="libudev/libudev-udev-enumerate.html#udev-enumerate-add-syspath">
+<ANCHOR id="udev-enumerate-scan-devices" href="libudev/libudev-udev-enumerate.html#udev-enumerate-scan-devices">
+<ANCHOR id="udev-enumerate-scan-subsystems" href="libudev/libudev-udev-enumerate.html#udev-enumerate-scan-subsystems">
+<ANCHOR id="udev-enumerate-get-list-entry" href="libudev/libudev-udev-enumerate.html#udev-enumerate-get-list-entry">
+<ANCHOR id="libudev-udev-queue" href="libudev/libudev-udev-queue.html">
+<ANCHOR id="libudev-udev-queue.synopsis" href="libudev/libudev-udev-queue.html#libudev-udev-queue.synopsis">
+<ANCHOR id="libudev-udev-queue.description" href="libudev/libudev-udev-queue.html#libudev-udev-queue.description">
+<ANCHOR id="libudev-udev-queue.details" href="libudev/libudev-udev-queue.html#libudev-udev-queue.details">
+<ANCHOR id="udev-queue" href="libudev/libudev-udev-queue.html#udev-queue">
+<ANCHOR id="udev-queue-ref" href="libudev/libudev-udev-queue.html#udev-queue-ref">
+<ANCHOR id="udev-queue-unref" href="libudev/libudev-udev-queue.html#udev-queue-unref">
+<ANCHOR id="udev-queue-get-udev" href="libudev/libudev-udev-queue.html#udev-queue-get-udev">
+<ANCHOR id="udev-queue-new" href="libudev/libudev-udev-queue.html#udev-queue-new">
+<ANCHOR id="udev-queue-get-udev-is-active" href="libudev/libudev-udev-queue.html#udev-queue-get-udev-is-active">
+<ANCHOR id="udev-queue-get-queue-is-empty" href="libudev/libudev-udev-queue.html#udev-queue-get-queue-is-empty">
+<ANCHOR id="udev-queue-get-seqnum-is-finished" href="libudev/libudev-udev-queue.html#udev-queue-get-seqnum-is-finished">
+<ANCHOR id="udev-queue-get-seqnum-sequence-is-finished" href="libudev/libudev-udev-queue.html#udev-queue-get-seqnum-sequence-is-finished">
+<ANCHOR id="udev-queue-get-queued-list-entry" href="libudev/libudev-udev-queue.html#udev-queue-get-queued-list-entry">
+<ANCHOR id="udev-queue-get-kernel-seqnum" href="libudev/libudev-udev-queue.html#udev-queue-get-kernel-seqnum">
+<ANCHOR id="udev-queue-get-udev-seqnum" href="libudev/libudev-udev-queue.html#udev-queue-get-udev-seqnum">
+<ANCHOR id="libudev-udev-hwdb" href="libudev/libudev-udev-hwdb.html">
+<ANCHOR id="libudev-udev-hwdb.synopsis" href="libudev/libudev-udev-hwdb.html#libudev-udev-hwdb.synopsis">
+<ANCHOR id="libudev-udev-hwdb.description" href="libudev/libudev-udev-hwdb.html#libudev-udev-hwdb.description">
+<ANCHOR id="libudev-udev-hwdb.details" href="libudev/libudev-udev-hwdb.html#libudev-udev-hwdb.details">
+<ANCHOR id="udev-hwdb" href="libudev/libudev-udev-hwdb.html#udev-hwdb">
+<ANCHOR id="udev-hwdb-ref" href="libudev/libudev-udev-hwdb.html#udev-hwdb-ref">
+<ANCHOR id="udev-hwdb-unref" href="libudev/libudev-udev-hwdb.html#udev-hwdb-unref">
+<ANCHOR id="udev-hwdb-new" href="libudev/libudev-udev-hwdb.html#udev-hwdb-new">
+<ANCHOR id="udev-hwdb-get-properties-list-entry" href="libudev/libudev-udev-hwdb.html#udev-hwdb-get-properties-list-entry">
+<ANCHOR id="libudev-udev-util" href="libudev/libudev-udev-util.html">
+<ANCHOR id="libudev-udev-util.synopsis" href="libudev/libudev-udev-util.html#libudev-udev-util.synopsis">
+<ANCHOR id="libudev-udev-util.description" href="libudev/libudev-udev-util.html#libudev-udev-util.description">
+<ANCHOR id="libudev-udev-util.details" href="libudev/libudev-udev-util.html#libudev-udev-util.details">
+<ANCHOR id="udev-util-encode-string" href="libudev/libudev-udev-util.html#udev-util-encode-string">
diff --git a/docs/libudev/html/left.png b/docs/libudev/html/left.png
new file mode 100644
index 0000000000..2d05b3d5b4
--- /dev/null
+++ b/docs/libudev/html/left.png
Binary files differ
diff --git a/docs/libudev/html/libudev-udev-device.html b/docs/libudev/html/libudev-udev-device.html
new file mode 100644
index 0000000000..ea790c0323
--- /dev/null
+++ b/docs/libudev/html/libudev-udev-device.html
@@ -0,0 +1,1033 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>udev_device</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="up" href="ch01.html" title="API Reference">
+<link rel="prev" href="libudev-udev-list.html" title="udev_list">
+<link rel="next" href="libudev-udev-monitor.html" title="udev_monitor">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libudev-udev-list.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libudev Reference Manual</th>
+<td><a accesskey="n" href="libudev-udev-monitor.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libudev-udev-device.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libudev-udev-device.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libudev-udev-device"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libudev-udev-device.top_of_page"></a>udev_device</span></h2>
+<p>udev_device — kernel sys devices</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libudev-udev-device.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device">udev_device</a>;
+struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-ref" title="udev_device_ref ()">udev_device_ref</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-unref" title="udev_device_unref ()">udev_device_unref</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-get-udev" title="udev_device_get_udev ()">udev_device_get_udev</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-new-from-syspath" title="udev_device_new_from_syspath ()">udev_device_new_from_syspath</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *syspath</code></em>);
+struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-new-from-devnum" title="udev_device_new_from_devnum ()">udev_device_new_from_devnum</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code><span class="type">char</span> type</code></em>,
+ <em class="parameter"><code><span class="type">dev_t</span> devnum</code></em>);
+struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-new-from-subsystem-sysname" title="udev_device_new_from_subsystem_sysname ()">udev_device_new_from_subsystem_sysname</a>
+ (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysname</code></em>);
+struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-new-from-device-id" title="udev_device_new_from_device_id ()">udev_device_new_from_device_id</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *id</code></em>);
+struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-new-from-environment" title="udev_device_new_from_environment ()">udev_device_new_from_environment</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);
+struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-get-parent" title="udev_device_get_parent ()">udev_device_get_parent</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-get-parent-with-subsystem-devtype" title="udev_device_get_parent_with_subsystem_devtype ()">udev_device_get_parent_with_subsystem_devtype</a>
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *devtype</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-devpath" title="udev_device_get_devpath ()">udev_device_get_devpath</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-subsystem" title="udev_device_get_subsystem ()">udev_device_get_subsystem</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-devtype" title="udev_device_get_devtype ()">udev_device_get_devtype</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-syspath" title="udev_device_get_syspath ()">udev_device_get_syspath</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-sysname" title="udev_device_get_sysname ()">udev_device_get_sysname</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-sysnum" title="udev_device_get_sysnum ()">udev_device_get_sysnum</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-devnode" title="udev_device_get_devnode ()">udev_device_get_devnode</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-device.html#udev-device-get-is-initialized" title="udev_device_get_is_initialized ()">udev_device_get_is_initialized</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-get-devlinks-list-entry" title="udev_device_get_devlinks_list_entry ()">udev_device_get_devlinks_list_entry</a>
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-get-properties-list-entry" title="udev_device_get_properties_list_entry ()">udev_device_get_properties_list_entry</a>
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-get-tags-list-entry" title="udev_device_get_tags_list_entry ()">udev_device_get_tags_list_entry</a>
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-property-value" title="udev_device_get_property_value ()">udev_device_get_property_value</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *key</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-driver" title="udev_device_get_driver ()">udev_device_get_driver</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+<span class="returnvalue">dev_t</span> <a class="link" href="libudev-udev-device.html#udev-device-get-devnum" title="udev_device_get_devnum ()">udev_device_get_devnum</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-action" title="udev_device_get_action ()">udev_device_get_action</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-device.html#udev-device-get-sysattr-value" title="udev_device_get_sysattr_value ()">udev_device_get_sysattr_value</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysattr</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-device.html#udev-device-set-sysattr-value" title="udev_device_set_sysattr_value ()">udev_device_set_sysattr_value</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysattr</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *value</code></em>);
+struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * <a class="link" href="libudev-udev-device.html#udev-device-get-sysattr-list-entry" title="udev_device_get_sysattr_list_entry ()">udev_device_get_sysattr_list_entry</a>
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+unsigned long long <span class="returnvalue">int</span> <a class="link" href="libudev-udev-device.html#udev-device-get-seqnum" title="udev_device_get_seqnum ()">udev_device_get_seqnum</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+unsigned long long <span class="returnvalue">int</span> <a class="link" href="libudev-udev-device.html#udev-device-get-usec-since-initialized" title="udev_device_get_usec_since_initialized ()">udev_device_get_usec_since_initialized</a>
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-device.html#udev-device-has-tag" title="udev_device_has_tag ()">udev_device_has_tag</a> (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *tag</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-device.description"></a><h2>Description</h2>
+<p>
+Representation of kernel sys devices. Devices are uniquely identified
+by their syspath, every device has exactly one path in the kernel sys
+filesystem. Devices usually belong to a kernel subsystem, and and have
+a unique name inside that subsystem.
+</p>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-device.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="udev-device"></a><h3>struct udev_device</h3>
+<pre class="programlisting">struct udev_device;</pre>
+<p>
+Opaque object representing one kernel sys device.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-ref"></a><h3>udev_device_ref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * udev_device_ref (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Take a reference of a udev device.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed udev device</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-unref"></a><h3>udev_device_unref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * udev_device_unref (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Drop a reference of a udev device. If the refcount reaches zero,
+the resources of the device will be released.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed udev device if it has still an active reference, or <span class="type">NULL</span> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-udev"></a><h3>udev_device_get_udev ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * udev_device_get_udev (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Retrieve the udev library context the device was created with.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the udev library context</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-new-from-syspath"></a><h3>udev_device_new_from_syspath ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * udev_device_new_from_syspath (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *syspath</code></em>);</pre>
+<p>
+Create new udev device, and fill in information from the sys
+device and the udev database entry. The syspath is the absolute
+path to the device, including the sys mount point.
+</p>
+<p>
+The initial refcount is 1, and needs to be decremented to
+release the resources of the udev device.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>syspath</code></em> :</span></p></td>
+<td>sys device path including sys directory</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new udev device, or <span class="type">NULL</span>, if it does not exist</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-new-from-devnum"></a><h3>udev_device_new_from_devnum ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * udev_device_new_from_devnum (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code><span class="type">char</span> type</code></em>,
+ <em class="parameter"><code><span class="type">dev_t</span> devnum</code></em>);</pre>
+<p>
+Create new udev device, and fill in information from the sys
+device and the udev database entry. The device is looked-up
+by its major/minor number and type. Character and block device
+numbers are not unique across the two types.
+</p>
+<p>
+The initial refcount is 1, and needs to be decremented to
+release the resources of the udev device.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>char or block device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>devnum</code></em> :</span></p></td>
+<td>device major/minor number</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new udev device, or <span class="type">NULL</span>, if it does not exist</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-new-from-subsystem-sysname"></a><h3>udev_device_new_from_subsystem_sysname ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * udev_device_new_from_subsystem_sysname
+ (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysname</code></em>);</pre>
+<p>
+Create new udev device, and fill in information from the sys device
+and the udev database entry. The device is looked up by the subsystem
+and name string of the device, like "mem" / "zero", or "block" / "sda".
+</p>
+<p>
+The initial refcount is 1, and needs to be decremented to
+release the resources of the udev device.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>subsystem</code></em> :</span></p></td>
+<td>the subsystem of the device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sysname</code></em> :</span></p></td>
+<td>the name of the device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new udev device, or <span class="type">NULL</span>, if it does not exist</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-new-from-device-id"></a><h3>udev_device_new_from_device_id ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * udev_device_new_from_device_id (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *id</code></em>);</pre>
+<p>
+Create new udev device, and fill in information from the sys
+device and the udev database entry. The device is looked-up
+by a special string:
+ b8:2 - block device major:minor
+ c128:1 - char device major:minor
+ n3 - network device ifindex
+ +sound:card29 - kernel driver core subsystem:device name
+</p>
+<p>
+The initial refcount is 1, and needs to be decremented to
+release the resources of the udev device.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>id</code></em> :</span></p></td>
+<td>text string identifying a kernel device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new udev device, or <span class="type">NULL</span>, if it does not exist</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-new-from-environment"></a><h3>udev_device_new_from_environment ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * udev_device_new_from_environment (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);</pre>
+<p>
+Create new udev device, and fill in information from the
+current process environment. This only works reliable if
+the process is called from a udev rule. It is usually used
+for tools executed from IMPORT= rules.
+</p>
+<p>
+The initial refcount is 1, and needs to be decremented to
+release the resources of the udev device.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new udev device, or <span class="type">NULL</span>, if it does not exist</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-parent"></a><h3>udev_device_get_parent ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * udev_device_get_parent (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Find the next parent device, and fill in information from the sys
+device and the udev database entry.
+</p>
+<p>
+The returned the device is not referenced. It is attached to the
+child device, and will be cleaned up when the child device
+is cleaned up.
+</p>
+<p>
+It is not necessarily just the upper level directory, empty or not
+recognized sys directories are ignored.
+</p>
+<p>
+It can be called as many times as needed, without caring about
+references.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>the device to start searching from</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new udev device, or <span class="type">NULL</span>, if it no parent exist.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-parent-with-subsystem-devtype"></a><h3>udev_device_get_parent_with_subsystem_devtype ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * udev_device_get_parent_with_subsystem_devtype
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *devtype</code></em>);</pre>
+<p>
+Find the next parent device, with a matching subsystem and devtype
+value, and fill in information from the sys device and the udev
+database entry.
+</p>
+<p>
+If devtype is <span class="type">NULL</span>, only subsystem is checked, and any devtype will
+match.
+</p>
+<p>
+The returned the device is not referenced. It is attached to the
+child device, and will be cleaned up when the child device
+is cleaned up.
+</p>
+<p>
+It can be called as many times as needed, without caring about
+references.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device to start searching from</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>subsystem</code></em> :</span></p></td>
+<td>the subsystem of the device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>devtype</code></em> :</span></p></td>
+<td>the type (DEVTYPE) of the device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new udev device, or <span class="type">NULL</span> if no matching parent exists.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-devpath"></a><h3>udev_device_get_devpath ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_devpath (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Retrieve the kernel devpath value of the udev device. The path
+does not contain the sys mount point, and starts with a '/'.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the devpath of the udev device</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-subsystem"></a><h3>udev_device_get_subsystem ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_subsystem (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Retrieve the subsystem string of the udev device. The string does not
+contain any "/".
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the subsystem name of the udev device, or <span class="type">NULL</span> if it can not be determined</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-devtype"></a><h3>udev_device_get_devtype ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_devtype (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Retrieve the devtype string of the udev device.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the devtype name of the udev device, or <span class="type">NULL</span> if it can not be determined</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-syspath"></a><h3>udev_device_get_syspath ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_syspath (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Retrieve the sys path of the udev device. The path is an
+absolute path and starts with the sys mount point.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the sys path of the udev device</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-sysname"></a><h3>udev_device_get_sysname ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_sysname (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Get the kernel device name in /sys.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the name string of the device device</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-sysnum"></a><h3>udev_device_get_sysnum ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_sysnum (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Get the instance number of the device.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the trailing number string of the device name</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-devnode"></a><h3>udev_device_get_devnode ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_devnode (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Retrieve the device node file name belonging to the udev device.
+The path is an absolute path, and starts with the device directory.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the device node file name of the udev device, or <span class="type">NULL</span> if no device node exists</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-is-initialized"></a><h3>udev_device_get_is_initialized ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_device_get_is_initialized (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Check if udev has already handled the device and has set up
+device node permissions and context, or has renamed a network
+device.
+</p>
+<p>
+This is only implemented for devices with a device node
+or network interfaces. All other devices return 1 here.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>1 if the device is set up. 0 otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-devlinks-list-entry"></a><h3>udev_device_get_devlinks_list_entry ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * udev_device_get_devlinks_list_entry
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Retrieve the list of device links pointing to the device file of
+the udev device. The next list entry can be retrieved with
+<a class="link" href="libudev-udev-list.html#udev-list-entry-get-next" title="udev_list_entry_get_next ()"><code class="function">udev_list_entry_get_next()</code></a>, which returns <span class="type">NULL</span> if no more entries exist.
+The devlink path can be retrieved from the list entry by
+<a class="link" href="libudev-udev-list.html#udev-list-entry-get-name" title="udev_list_entry_get_name ()"><code class="function">udev_list_entry_get_name()</code></a>. The path is an absolute path, and starts with
+the device directory.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the first entry of the device node link list</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-properties-list-entry"></a><h3>udev_device_get_properties_list_entry ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * udev_device_get_properties_list_entry
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Retrieve the list of key/value device properties of the udev
+device. The next list entry can be retrieved with <a class="link" href="libudev-udev-list.html#udev-list-entry-get-next" title="udev_list_entry_get_next ()"><code class="function">udev_list_entry_get_next()</code></a>,
+which returns <span class="type">NULL</span> if no more entries exist. The property name
+can be retrieved from the list entry by <a class="link" href="libudev-udev-list.html#udev-list-entry-get-name" title="udev_list_entry_get_name ()"><code class="function">udev_list_entry_get_name()</code></a>,
+the property value by <a class="link" href="libudev-udev-list.html#udev-list-entry-get-value" title="udev_list_entry_get_value ()"><code class="function">udev_list_entry_get_value()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the first entry of the property list</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-tags-list-entry"></a><h3>udev_device_get_tags_list_entry ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * udev_device_get_tags_list_entry
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Retrieve the list of tags attached to the udev device. The next
+list entry can be retrieved with <a class="link" href="libudev-udev-list.html#udev-list-entry-get-next" title="udev_list_entry_get_next ()"><code class="function">udev_list_entry_get_next()</code></a>,
+which returns <span class="type">NULL</span> if no more entries exist. The tag string
+can be retrieved from the list entry by <a class="link" href="libudev-udev-list.html#udev-list-entry-get-name" title="udev_list_entry_get_name ()"><code class="function">udev_list_entry_get_name()</code></a>.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the first entry of the tag list</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-property-value"></a><h3>udev_device_get_property_value ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_property_value (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
+<p>
+Get the value of a given property.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
+<td>property name</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the property string, or <span class="type">NULL</span> if there is no such property.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-driver"></a><h3>udev_device_get_driver ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_driver (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Get the kernel driver name.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the driver name string, or <span class="type">NULL</span> if there is no driver attached.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-devnum"></a><h3>udev_device_get_devnum ()</h3>
+<pre class="programlisting"><span class="returnvalue">dev_t</span> udev_device_get_devnum (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Get the device major/minor number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the dev_t number.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-action"></a><h3>udev_device_get_action ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_action (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+This is only valid if the device was received through a monitor. Devices read from
+sys do not have an action string. Usual actions are: add, remove, change, online,
+offline.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the kernel action value, or <span class="type">NULL</span> if there is no action value available.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-sysattr-value"></a><h3>udev_device_get_sysattr_value ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_device_get_sysattr_value (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysattr</code></em>);</pre>
+<p>
+The retrieved value is cached in the device. Repeated calls will return the same
+value and not open the attribute again.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sysattr</code></em> :</span></p></td>
+<td>attribute name</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the content of a sys attribute file, or <span class="type">NULL</span> if there is no sys attribute value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-set-sysattr-value"></a><h3>udev_device_set_sysattr_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_device_set_sysattr_value (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysattr</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *value</code></em>);</pre>
+<p>
+Update the contents of the sys attribute and the cached value of the device.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sysattr</code></em> :</span></p></td>
+<td>attribute name</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>new value to be set</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Negative error code on failure or 0 on success.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-sysattr-list-entry"></a><h3>udev_device_get_sysattr_list_entry ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * udev_device_get_sysattr_list_entry
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Retrieve the list of available sysattrs, with value being empty;
+This just return all available sysfs attributes for a particular
+device without reading their values.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the first entry of the property list</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-seqnum"></a><h3>udev_device_get_seqnum ()</h3>
+<pre class="programlisting">unsigned long long <span class="returnvalue">int</span> udev_device_get_seqnum (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+This is only valid if the device was received through a monitor. Devices read from
+sys do not have a sequence number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the kernel event sequence number, or 0 if there is no sequence number available.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-get-usec-since-initialized"></a><h3>udev_device_get_usec_since_initialized ()</h3>
+<pre class="programlisting">unsigned long long <span class="returnvalue">int</span> udev_device_get_usec_since_initialized
+ (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>);</pre>
+<p>
+Return the number of microseconds passed since udev set up the
+device for the first time.
+</p>
+<p>
+This is only implemented for devices with need to store properties
+in the udev database. All other devices return 0 here.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of microseconds since the device was first seen.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-device-has-tag"></a><h3>udev_device_has_tag ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_device_has_tag (<em class="parameter"><code><span class="type">struct udev_device</span> *udev_device</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *tag</code></em>);</pre>
+<p>
+Check if a given device has a certain tag associated.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_device</code></em> :</span></p></td>
+<td>udev device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
+<td>tag name</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>1 if the tag is found. 0 otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/libudev-udev-enumerate.html b/docs/libudev/html/libudev-udev-enumerate.html
new file mode 100644
index 0000000000..335f432c64
--- /dev/null
+++ b/docs/libudev/html/libudev-udev-enumerate.html
@@ -0,0 +1,585 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>udev_enumerate</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="up" href="ch01.html" title="API Reference">
+<link rel="prev" href="libudev-udev-monitor.html" title="udev_monitor">
+<link rel="next" href="libudev-udev-queue.html" title="udev_queue">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libudev-udev-monitor.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libudev Reference Manual</th>
+<td><a accesskey="n" href="libudev-udev-queue.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libudev-udev-enumerate.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libudev-udev-enumerate.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libudev-udev-enumerate"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libudev-udev-enumerate.top_of_page"></a>udev_enumerate</span></h2>
+<p>udev_enumerate — lookup and sort sys devices</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libudev-udev-enumerate.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="libudev-udev-enumerate.html#udev-enumerate" title="struct udev_enumerate">udev_enumerate</a>;
+struct <a class="link" href="libudev-udev-enumerate.html#udev-enumerate" title="struct udev_enumerate"><span class="returnvalue">udev_enumerate</span></a> * <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-ref" title="udev_enumerate_ref ()">udev_enumerate_ref</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);
+struct <a class="link" href="libudev-udev-enumerate.html#udev-enumerate" title="struct udev_enumerate"><span class="returnvalue">udev_enumerate</span></a> * <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-unref" title="udev_enumerate_unref ()">udev_enumerate_unref</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);
+struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-get-udev" title="udev_enumerate_get_udev ()">udev_enumerate_get_udev</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);
+struct <a class="link" href="libudev-udev-enumerate.html#udev-enumerate" title="struct udev_enumerate"><span class="returnvalue">udev_enumerate</span></a> * <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-new" title="udev_enumerate_new ()">udev_enumerate_new</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-subsystem" title="udev_enumerate_add_match_subsystem ()">udev_enumerate_add_match_subsystem</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-nomatch-subsystem" title="udev_enumerate_add_nomatch_subsystem ()">udev_enumerate_add_nomatch_subsystem</a>
+ (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-sysattr" title="udev_enumerate_add_match_sysattr ()">udev_enumerate_add_match_sysattr</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysattr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-nomatch-sysattr" title="udev_enumerate_add_nomatch_sysattr ()">udev_enumerate_add_nomatch_sysattr</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysattr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-property" title="udev_enumerate_add_match_property ()">udev_enumerate_add_match_property</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *property</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-tag" title="udev_enumerate_add_match_tag ()">udev_enumerate_add_match_tag</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *tag</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-parent" title="udev_enumerate_add_match_parent ()">udev_enumerate_add_match_parent</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code><span class="type">struct udev_device</span> *parent</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-is-initialized" title="udev_enumerate_add_match_is_initialized ()">udev_enumerate_add_match_is_initialized</a>
+ (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-match-sysname" title="udev_enumerate_add_match_sysname ()">udev_enumerate_add_match_sysname</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysname</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-add-syspath" title="udev_enumerate_add_syspath ()">udev_enumerate_add_syspath</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *syspath</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-scan-devices" title="udev_enumerate_scan_devices ()">udev_enumerate_scan_devices</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-scan-subsystems" title="udev_enumerate_scan_subsystems ()">udev_enumerate_scan_subsystems</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);
+struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * <a class="link" href="libudev-udev-enumerate.html#udev-enumerate-get-list-entry" title="udev_enumerate_get_list_entry ()">udev_enumerate_get_list_entry</a> (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-enumerate.description"></a><h2>Description</h2>
+<p>
+Lookup devices in the sys filesystem, filter devices by properties,
+and return a sorted list of devices.
+</p>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-enumerate.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="udev-enumerate"></a><h3>struct udev_enumerate</h3>
+<pre class="programlisting">struct udev_enumerate;</pre>
+<p>
+Opaque object representing one device lookup/sort context.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-ref"></a><h3>udev_enumerate_ref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-enumerate.html#udev-enumerate" title="struct udev_enumerate"><span class="returnvalue">udev_enumerate</span></a> * udev_enumerate_ref (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);</pre>
+<p>
+Take a reference of a enumeration context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed enumeration context</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-unref"></a><h3>udev_enumerate_unref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-enumerate.html#udev-enumerate" title="struct udev_enumerate"><span class="returnvalue">udev_enumerate</span></a> * udev_enumerate_unref (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);</pre>
+<p>
+Drop a reference of an enumeration context. If the refcount reaches zero,
+all resources of the enumeration context will be released.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed enumeration context if it has still an active reference, or <span class="type">NULL</span> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-get-udev"></a><h3>udev_enumerate_get_udev ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * udev_enumerate_get_udev (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);</pre>
+<p>
+Get the udev library context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a pointer to the context.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-new"></a><h3>udev_enumerate_new ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-enumerate.html#udev-enumerate" title="struct udev_enumerate"><span class="returnvalue">udev_enumerate</span></a> * udev_enumerate_new (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);</pre>
+<p>
+Create an enumeration context to scan /sys.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>an enumeration context.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-add-match-subsystem"></a><h3>udev_enumerate_add_match_subsystem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_add_match_subsystem (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>);</pre>
+<p>
+Match only devices belonging to a certain kernel subsystem.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>subsystem</code></em> :</span></p></td>
+<td>filter for a subsystem of the device to include in the list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-add-nomatch-subsystem"></a><h3>udev_enumerate_add_nomatch_subsystem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_add_nomatch_subsystem
+ (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>);</pre>
+<p>
+Match only devices not belonging to a certain kernel subsystem.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>subsystem</code></em> :</span></p></td>
+<td>filter for a subsystem of the device to exclude from the list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-add-match-sysattr"></a><h3>udev_enumerate_add_match_sysattr ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_add_match_sysattr (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysattr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);</pre>
+<p>
+Match only devices with a certain /sys device attribute.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sysattr</code></em> :</span></p></td>
+<td>filter for a sys attribute at the device to include in the list</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>optional value of the sys attribute</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-add-nomatch-sysattr"></a><h3>udev_enumerate_add_nomatch_sysattr ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_add_nomatch_sysattr (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysattr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);</pre>
+<p>
+Match only devices not having a certain /sys device attribute.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sysattr</code></em> :</span></p></td>
+<td>filter for a sys attribute at the device to exclude from the list</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>optional value of the sys attribute</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-add-match-property"></a><h3>udev_enumerate_add_match_property ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_add_match_property (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *property</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *value</code></em>);</pre>
+<p>
+Match only devices with a certain property.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>property</code></em> :</span></p></td>
+<td>filter for a property of the device to include in the list</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
+<td>value of the property</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-add-match-tag"></a><h3>udev_enumerate_add_match_tag ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_add_match_tag (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *tag</code></em>);</pre>
+<p>
+Match only devices with a certain tag.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
+<td>filter for a tag of the device to include in the list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-add-match-parent"></a><h3>udev_enumerate_add_match_parent ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_add_match_parent (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code><span class="type">struct udev_device</span> *parent</code></em>);</pre>
+<p>
+Return the devices on the subtree of one given device. The parent
+itself is included in the list.
+</p>
+<p>
+A reference for the device is held until the udev_enumerate context
+is cleaned up.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>parent</code></em> :</span></p></td>
+<td>parent device where to start searching</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-add-match-is-initialized"></a><h3>udev_enumerate_add_match_is_initialized ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_add_match_is_initialized
+ (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);</pre>
+<p>
+Match only devices which udev has set up already. This makes
+sure, that the device node permissions and context are properly set
+and that network devices are fully renamed.
+</p>
+<p>
+Usually, devices which are found in the kernel but not already
+handled by udev, have still pending events. Services should subscribe
+to monitor events and wait for these devices to become ready, instead
+of using uninitialized devices.
+</p>
+<p>
+For now, this will not affect devices which do not have a device node
+and are not network interfaces.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-add-match-sysname"></a><h3>udev_enumerate_add_match_sysname ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_add_match_sysname (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *sysname</code></em>);</pre>
+<p>
+Match only devices with a given /sys device name.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sysname</code></em> :</span></p></td>
+<td>filter for the name of the device to include in the list</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-add-syspath"></a><h3>udev_enumerate_add_syspath ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_add_syspath (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *syspath</code></em>);</pre>
+<p>
+Add a device to the list of devices, to retrieve it back sorted in dependency order.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>syspath</code></em> :</span></p></td>
+<td>path of a device</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-scan-devices"></a><h3>udev_enumerate_scan_devices ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_scan_devices (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);</pre>
+<p>
+Scan /sys for all devices which match the given filters. No matches
+will return all currently available devices.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>udev enumeration context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-scan-subsystems"></a><h3>udev_enumerate_scan_subsystems ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_enumerate_scan_subsystems (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);</pre>
+<p>
+Scan /sys for all kernel subsystems, including buses, classes, drivers.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>udev enumeration context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-enumerate-get-list-entry"></a><h3>udev_enumerate_get_list_entry ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * udev_enumerate_get_list_entry (<em class="parameter"><code><span class="type">struct udev_enumerate</span> *udev_enumerate</code></em>);</pre>
+<p>
+Get the first entry of the sorted list of device paths.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_enumerate</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a udev_list_entry.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/libudev-udev-hwdb.html b/docs/libudev/html/libudev-udev-hwdb.html
new file mode 100644
index 0000000000..04abd9e008
--- /dev/null
+++ b/docs/libudev/html/libudev-udev-hwdb.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>udev_hwdb</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="up" href="ch01.html" title="API Reference">
+<link rel="prev" href="libudev-udev-queue.html" title="udev_queue">
+<link rel="next" href="libudev-udev-util.html" title="udev_util">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libudev-udev-queue.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libudev Reference Manual</th>
+<td><a accesskey="n" href="libudev-udev-util.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libudev-udev-hwdb.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libudev-udev-hwdb.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libudev-udev-hwdb"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libudev-udev-hwdb.top_of_page"></a>udev_hwdb</span></h2>
+<p>udev_hwdb — retrieve properties from the hardware database</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libudev-udev-hwdb.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="libudev-udev-hwdb.html#udev-hwdb" title="struct udev_hwdb">udev_hwdb</a>;
+struct <a class="link" href="libudev-udev-hwdb.html#udev-hwdb" title="struct udev_hwdb"><span class="returnvalue">udev_hwdb</span></a> * <a class="link" href="libudev-udev-hwdb.html#udev-hwdb-ref" title="udev_hwdb_ref ()">udev_hwdb_ref</a> (<em class="parameter"><code><span class="type">struct udev_hwdb</span> *hwdb</code></em>);
+struct <a class="link" href="libudev-udev-hwdb.html#udev-hwdb" title="struct udev_hwdb"><span class="returnvalue">udev_hwdb</span></a> * <a class="link" href="libudev-udev-hwdb.html#udev-hwdb-unref" title="udev_hwdb_unref ()">udev_hwdb_unref</a> (<em class="parameter"><code><span class="type">struct udev_hwdb</span> *hwdb</code></em>);
+struct <a class="link" href="libudev-udev-hwdb.html#udev-hwdb" title="struct udev_hwdb"><span class="returnvalue">udev_hwdb</span></a> * <a class="link" href="libudev-udev-hwdb.html#udev-hwdb-new" title="udev_hwdb_new ()">udev_hwdb_new</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);
+struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * <a class="link" href="libudev-udev-hwdb.html#udev-hwdb-get-properties-list-entry" title="udev_hwdb_get_properties_list_entry ()">udev_hwdb_get_properties_list_entry</a>
+ (<em class="parameter"><code><span class="type">struct udev_hwdb</span> *hwdb</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *modalias</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-hwdb.description"></a><h2>Description</h2>
+<p>
+Libudev hardware database interface.
+</p>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-hwdb.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="udev-hwdb"></a><h3>struct udev_hwdb</h3>
+<pre class="programlisting">struct udev_hwdb;</pre>
+<p>
+Opaque object representing the hardware database.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-hwdb-ref"></a><h3>udev_hwdb_ref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-hwdb.html#udev-hwdb" title="struct udev_hwdb"><span class="returnvalue">udev_hwdb</span></a> * udev_hwdb_ref (<em class="parameter"><code><span class="type">struct udev_hwdb</span> *hwdb</code></em>);</pre>
+<p>
+Take a reference of a hwdb context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>hwdb</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed enumeration context</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-hwdb-unref"></a><h3>udev_hwdb_unref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-hwdb.html#udev-hwdb" title="struct udev_hwdb"><span class="returnvalue">udev_hwdb</span></a> * udev_hwdb_unref (<em class="parameter"><code><span class="type">struct udev_hwdb</span> *hwdb</code></em>);</pre>
+<p>
+Drop a reference of a hwdb context. If the refcount reaches zero,
+all resources of the hwdb context will be released.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>hwdb</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed hwdb context if it has still an active reference, or <span class="type">NULL</span> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-hwdb-new"></a><h3>udev_hwdb_new ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-hwdb.html#udev-hwdb" title="struct udev_hwdb"><span class="returnvalue">udev_hwdb</span></a> * udev_hwdb_new (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);</pre>
+<p>
+Create a hardware database context to query properties for devices.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a hwdb context.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-hwdb-get-properties-list-entry"></a><h3>udev_hwdb_get_properties_list_entry ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * udev_hwdb_get_properties_list_entry
+ (<em class="parameter"><code><span class="type">struct udev_hwdb</span> *hwdb</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *modalias</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>
+Lookup a matching device in the hardware database. The lookup key is a
+modalias string, whose formats are defined for the Linux kernel modules.
+Examples are: pci:v00008086d00001C2D*, usb:v04F2pB221*. The first entry
+of a list of retrieved properties is returned.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>hwdb</code></em> :</span></p></td>
+<td>context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>modalias</code></em> :</span></p></td>
+<td>modalias string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>(unused)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a udev_list_entry.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/libudev-udev-list.html b/docs/libudev/html/libudev-udev-list.html
new file mode 100644
index 0000000000..9a8a62c41b
--- /dev/null
+++ b/docs/libudev/html/libudev-udev-list.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>udev_list</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="up" href="ch01.html" title="API Reference">
+<link rel="prev" href="libudev-udev.html" title="udev">
+<link rel="next" href="libudev-udev-device.html" title="udev_device">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libudev-udev.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libudev Reference Manual</th>
+<td><a accesskey="n" href="libudev-udev-device.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libudev-udev-list.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libudev-udev-list.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libudev-udev-list"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libudev-udev-list.top_of_page"></a>udev_list</span></h2>
+<p>udev_list — list operation</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libudev-udev-list.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry">udev_list_entry</a>;
+struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * <a class="link" href="libudev-udev-list.html#udev-list-entry-get-next" title="udev_list_entry_get_next ()">udev_list_entry_get_next</a> (<em class="parameter"><code><span class="type">struct udev_list_entry</span> *list_entry</code></em>);
+struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * <a class="link" href="libudev-udev-list.html#udev-list-entry-get-by-name" title="udev_list_entry_get_by_name ()">udev_list_entry_get_by_name</a> (<em class="parameter"><code><span class="type">struct udev_list_entry</span> *list_entry</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-list.html#udev-list-entry-get-name" title="udev_list_entry_get_name ()">udev_list_entry_get_name</a> (<em class="parameter"><code><span class="type">struct udev_list_entry</span> *list_entry</code></em>);
+const <span class="returnvalue">char</span> * <a class="link" href="libudev-udev-list.html#udev-list-entry-get-value" title="udev_list_entry_get_value ()">udev_list_entry_get_value</a> (<em class="parameter"><code><span class="type">struct udev_list_entry</span> *list_entry</code></em>);
+#define <a class="link" href="libudev-udev-list.html#udev-list-entry-foreach" title="udev_list_entry_foreach()">udev_list_entry_foreach</a> (list_entry,
+ first_entry)
+</pre>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-list.description"></a><h2>Description</h2>
+<p>
+Libudev list operations.
+</p>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-list.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="udev-list-entry"></a><h3>struct udev_list_entry</h3>
+<pre class="programlisting">struct udev_list_entry;</pre>
+<p>
+Opaque object representing one entry in a list. An entry contains
+contains a name, and optionally a value.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-list-entry-get-next"></a><h3>udev_list_entry_get_next ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * udev_list_entry_get_next (<em class="parameter"><code><span class="type">struct udev_list_entry</span> *list_entry</code></em>);</pre>
+<p>
+Get the next entry from the list.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list_entry</code></em> :</span></p></td>
+<td>current entry</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>udev_list_entry, <span class="type">NULL</span> if no more entries are available.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-list-entry-get-by-name"></a><h3>udev_list_entry_get_by_name ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * udev_list_entry_get_by_name (<em class="parameter"><code><span class="type">struct udev_list_entry</span> *list_entry</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
+<p>
+Lookup an entry in the list with a certain name.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list_entry</code></em> :</span></p></td>
+<td>current entry</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>name string to match</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>udev_list_entry, <span class="type">NULL</span> if no matching entry is found.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-list-entry-get-name"></a><h3>udev_list_entry_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_list_entry_get_name (<em class="parameter"><code><span class="type">struct udev_list_entry</span> *list_entry</code></em>);</pre>
+<p>
+Get the name of a list entry.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list_entry</code></em> :</span></p></td>
+<td>current entry</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the name string of this entry.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-list-entry-get-value"></a><h3>udev_list_entry_get_value ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> * udev_list_entry_get_value (<em class="parameter"><code><span class="type">struct udev_list_entry</span> *list_entry</code></em>);</pre>
+<p>
+Get the value of list entry.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list_entry</code></em> :</span></p></td>
+<td>current entry</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the value string of this entry.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-list-entry-foreach"></a><h3>udev_list_entry_foreach()</h3>
+<pre class="programlisting">#define udev_list_entry_foreach(list_entry, first_entry)</pre>
+<p>
+Helper to iterate over all entries of a list.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list_entry</code></em> :</span></p></td>
+<td>entry to store the current position</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>first_entry</code></em> :</span></p></td>
+<td>first entry to start with</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/libudev-udev-monitor.html b/docs/libudev/html/libudev-udev-monitor.html
new file mode 100644
index 0000000000..d93e109df3
--- /dev/null
+++ b/docs/libudev/html/libudev-udev-monitor.html
@@ -0,0 +1,439 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>udev_monitor</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="up" href="ch01.html" title="API Reference">
+<link rel="prev" href="libudev-udev-device.html" title="udev_device">
+<link rel="next" href="libudev-udev-enumerate.html" title="udev_enumerate">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libudev-udev-device.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libudev Reference Manual</th>
+<td><a accesskey="n" href="libudev-udev-enumerate.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libudev-udev-monitor.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libudev-udev-monitor.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libudev-udev-monitor"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libudev-udev-monitor.top_of_page"></a>udev_monitor</span></h2>
+<p>udev_monitor — device event source</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libudev-udev-monitor.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor">udev_monitor</a>;
+struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> * <a class="link" href="libudev-udev-monitor.html#udev-monitor-ref" title="udev_monitor_ref ()">udev_monitor_ref</a> (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);
+struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> * <a class="link" href="libudev-udev-monitor.html#udev-monitor-unref" title="udev_monitor_unref ()">udev_monitor_unref</a> (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);
+struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * <a class="link" href="libudev-udev-monitor.html#udev-monitor-get-udev" title="udev_monitor_get_udev ()">udev_monitor_get_udev</a> (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);
+struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> * <a class="link" href="libudev-udev-monitor.html#udev-monitor-new-from-netlink" title="udev_monitor_new_from_netlink ()">udev_monitor_new_from_netlink</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-monitor.html#udev-monitor-enable-receiving" title="udev_monitor_enable_receiving ()">udev_monitor_enable_receiving</a> (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-monitor.html#udev-monitor-set-receive-buffer-size" title="udev_monitor_set_receive_buffer_size ()">udev_monitor_set_receive_buffer_size</a>
+ (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>,
+ <em class="parameter"><code><span class="type">int</span> size</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-monitor.html#udev-monitor-get-fd" title="udev_monitor_get_fd ()">udev_monitor_get_fd</a> (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);
+struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * <a class="link" href="libudev-udev-monitor.html#udev-monitor-receive-device" title="udev_monitor_receive_device ()">udev_monitor_receive_device</a> (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-add-match-subsystem-devtype" title="udev_monitor_filter_add_match_subsystem_devtype ()">udev_monitor_filter_add_match_subsystem_devtype</a>
+ (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *devtype</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-add-match-tag" title="udev_monitor_filter_add_match_tag ()">udev_monitor_filter_add_match_tag</a> (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *tag</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-update" title="udev_monitor_filter_update ()">udev_monitor_filter_update</a> (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-remove" title="udev_monitor_filter_remove ()">udev_monitor_filter_remove</a> (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-monitor.description"></a><h2>Description</h2>
+<p>
+Connects to a device event source.
+</p>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-monitor.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="udev-monitor"></a><h3>struct udev_monitor</h3>
+<pre class="programlisting">struct udev_monitor;</pre>
+<p>
+Opaque object handling an event source.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-ref"></a><h3>udev_monitor_ref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> * udev_monitor_ref (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
+<p>
+Take a reference of a udev monitor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>udev monitor</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed udev monitor</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-unref"></a><h3>udev_monitor_unref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> * udev_monitor_unref (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
+<p>
+Drop a reference of a udev monitor. If the refcount reaches zero,
+the bound socket will be closed, and the resources of the monitor
+will be released.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>udev monitor</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed udev monitor if it has still an active reference, or <span class="type">NULL</span> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-get-udev"></a><h3>udev_monitor_get_udev ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * udev_monitor_get_udev (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
+<p>
+Retrieve the udev library context the monitor was created with.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>udev monitor</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the udev library context</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-new-from-netlink"></a><h3>udev_monitor_new_from_netlink ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> * udev_monitor_new_from_netlink (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
+<p>
+Create new udev monitor and connect to a specified event
+source. Valid sources identifiers are "udev" and "kernel".
+</p>
+<p>
+Applications should usually not connect directly to the
+"kernel" events, because the devices might not be useable
+at that time, before udev has configured them, and created
+device nodes. Accessing devices at the same time as udev,
+might result in unpredictable behavior. The "udev" events
+are sent out after udev has finished its event processing,
+all rules have been processed, and needed device nodes are
+created.
+</p>
+<p>
+The initial refcount is 1, and needs to be decremented to
+release the resources of the udev monitor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>name of event source</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new udev monitor, or <span class="type">NULL</span>, in case of an error</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-enable-receiving"></a><h3>udev_monitor_enable_receiving ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_monitor_enable_receiving (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
+<p>
+Binds the <em class="parameter"><code>udev_monitor</code></em> socket to the event source.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>the monitor which should receive events</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-set-receive-buffer-size"></a><h3>udev_monitor_set_receive_buffer_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_monitor_set_receive_buffer_size
+ (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>,
+ <em class="parameter"><code><span class="type">int</span> size</code></em>);</pre>
+<p>
+Set the size of the kernel socket buffer. This call needs the
+appropriate privileges to succeed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>the monitor which should receive events</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>the size in bytes</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise -1 on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-get-fd"></a><h3>udev_monitor_get_fd ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_monitor_get_fd (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
+<p>
+Retrieve the socket file descriptor associated with the monitor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>udev monitor</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the socket file descriptor</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-receive-device"></a><h3>udev_monitor_receive_device ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> * udev_monitor_receive_device (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
+<p>
+Receive data from the udev monitor socket, allocate a new udev
+device, fill in the received data, and return the device.
+</p>
+<p>
+Only socket connections with uid=0 are accepted.
+</p>
+<p>
+The monitor socket is by default set to NONBLOCK. A variant of <code class="function">poll()</code> on
+the file descriptor returned by <a class="link" href="libudev-udev-monitor.html#udev-monitor-get-fd" title="udev_monitor_get_fd ()"><code class="function">udev_monitor_get_fd()</code></a> should to be used to
+wake up when new devices arrive, or alternatively the file descriptor
+switched into blocking mode.
+</p>
+<p>
+The initial refcount is 1, and needs to be decremented to
+release the resources of the udev device.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>udev monitor</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new udev device, or <span class="type">NULL</span>, in case of an error</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-filter-add-match-subsystem-devtype"></a><h3>udev_monitor_filter_add_match_subsystem_devtype ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_monitor_filter_add_match_subsystem_devtype
+ (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *devtype</code></em>);</pre>
+<p>
+This filter is efficiently executed inside the kernel, and libudev subscribers
+will usually not be woken up for devices which do not match.
+</p>
+<p>
+The filter must be installed before the monitor is switched to listening mode.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>the monitor</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>subsystem</code></em> :</span></p></td>
+<td>the subsystem value to match the incoming devices against</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>devtype</code></em> :</span></p></td>
+<td>the devtype value to match the incoming devices against</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-filter-add-match-tag"></a><h3>udev_monitor_filter_add_match_tag ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_monitor_filter_add_match_tag (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *tag</code></em>);</pre>
+<p>
+This filter is efficiently executed inside the kernel, and libudev subscribers
+will usually not be woken up for devices which do not match.
+</p>
+<p>
+The filter must be installed before the monitor is switched to listening mode.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>the monitor</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
+<td>the name of a tag</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-filter-update"></a><h3>udev_monitor_filter_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_monitor_filter_update (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
+<p>
+Update the installed socket filter. This is only needed,
+if the filter was removed or changed.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>monitor</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-monitor-filter-remove"></a><h3>udev_monitor_filter_remove ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_monitor_filter_remove (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
+<p>
+Remove all filters from monitor.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_monitor</code></em> :</span></p></td>
+<td>monitor</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 on success, otherwise a negative error value.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/libudev-udev-queue.html b/docs/libudev/html/libudev-udev-queue.html
new file mode 100644
index 0000000000..0922f84a0c
--- /dev/null
+++ b/docs/libudev/html/libudev-udev-queue.html
@@ -0,0 +1,366 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>udev_queue</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="up" href="ch01.html" title="API Reference">
+<link rel="prev" href="libudev-udev-enumerate.html" title="udev_enumerate">
+<link rel="next" href="libudev-udev-hwdb.html" title="udev_hwdb">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libudev-udev-enumerate.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libudev Reference Manual</th>
+<td><a accesskey="n" href="libudev-udev-hwdb.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libudev-udev-queue.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libudev-udev-queue.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libudev-udev-queue"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libudev-udev-queue.top_of_page"></a>udev_queue</span></h2>
+<p>udev_queue — access to currently active events</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libudev-udev-queue.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="libudev-udev-queue.html#udev-queue" title="struct udev_queue">udev_queue</a>;
+struct <a class="link" href="libudev-udev-queue.html#udev-queue" title="struct udev_queue"><span class="returnvalue">udev_queue</span></a> * <a class="link" href="libudev-udev-queue.html#udev-queue-ref" title="udev_queue_ref ()">udev_queue_ref</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
+struct <a class="link" href="libudev-udev-queue.html#udev-queue" title="struct udev_queue"><span class="returnvalue">udev_queue</span></a> * <a class="link" href="libudev-udev-queue.html#udev-queue-unref" title="udev_queue_unref ()">udev_queue_unref</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
+struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * <a class="link" href="libudev-udev-queue.html#udev-queue-get-udev" title="udev_queue_get_udev ()">udev_queue_get_udev</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
+struct <a class="link" href="libudev-udev-queue.html#udev-queue" title="struct udev_queue"><span class="returnvalue">udev_queue</span></a> * <a class="link" href="libudev-udev-queue.html#udev-queue-new" title="udev_queue_new ()">udev_queue_new</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-queue.html#udev-queue-get-udev-is-active" title="udev_queue_get_udev_is_active ()">udev_queue_get_udev_is_active</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-queue.html#udev-queue-get-queue-is-empty" title="udev_queue_get_queue_is_empty ()">udev_queue_get_queue_is_empty</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-queue.html#udev-queue-get-seqnum-is-finished" title="udev_queue_get_seqnum_is_finished ()">udev_queue_get_seqnum_is_finished</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>,
+ <em class="parameter"><code>unsigned long long <span class="type">int</span> seqnum</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev-queue.html#udev-queue-get-seqnum-sequence-is-finished" title="udev_queue_get_seqnum_sequence_is_finished ()">udev_queue_get_seqnum_sequence_is_finished</a>
+ (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>,
+ <em class="parameter"><code>unsigned long long <span class="type">int</span> start</code></em>,
+ <em class="parameter"><code>unsigned long long <span class="type">int</span> end</code></em>);
+struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * <a class="link" href="libudev-udev-queue.html#udev-queue-get-queued-list-entry" title="udev_queue_get_queued_list_entry ()">udev_queue_get_queued_list_entry</a>
+ (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
+unsigned long long <span class="returnvalue">int</span> <a class="link" href="libudev-udev-queue.html#udev-queue-get-kernel-seqnum" title="udev_queue_get_kernel_seqnum ()">udev_queue_get_kernel_seqnum</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
+unsigned long long <span class="returnvalue">int</span> <a class="link" href="libudev-udev-queue.html#udev-queue-get-udev-seqnum" title="udev_queue_get_udev_seqnum ()">udev_queue_get_udev_seqnum</a> (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-queue.description"></a><h2>Description</h2>
+<p>
+The udev daemon processes events asynchronously. All events which do not have
+interdependencies run in parallel. This exports the current state of the
+event processing queue, and the current event sequence numbers from the kernel
+and the udev daemon.
+</p>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-queue.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="udev-queue"></a><h3>struct udev_queue</h3>
+<pre class="programlisting">struct udev_queue;</pre>
+<p>
+Opaque object representing the current event queue in the udev daemon.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-ref"></a><h3>udev_queue_ref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-queue.html#udev-queue" title="struct udev_queue"><span class="returnvalue">udev_queue</span></a> * udev_queue_ref (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);</pre>
+<p>
+Take a reference of a udev queue context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_queue</code></em> :</span></p></td>
+<td>udev queue context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the same udev queue context.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-unref"></a><h3>udev_queue_unref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-queue.html#udev-queue" title="struct udev_queue"><span class="returnvalue">udev_queue</span></a> * udev_queue_unref (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);</pre>
+<p>
+Drop a reference of a udev queue context. If the refcount reaches zero,
+the resources of the queue context will be released.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_queue</code></em> :</span></p></td>
+<td>udev queue context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed queue context if it has still an active reference, or <span class="type">NULL</span> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-get-udev"></a><h3>udev_queue_get_udev ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * udev_queue_get_udev (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);</pre>
+<p>
+Retrieve the udev library context the queue context was created with.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_queue</code></em> :</span></p></td>
+<td>udev queue context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the udev library context.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-new"></a><h3>udev_queue_new ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-queue.html#udev-queue" title="struct udev_queue"><span class="returnvalue">udev_queue</span></a> * udev_queue_new (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);</pre>
+<p>
+The initial refcount is 1, and needs to be decremented to
+release the resources of the udev queue context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the udev queue context, or <span class="type">NULL</span> on error.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-get-udev-is-active"></a><h3>udev_queue_get_udev_is_active ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_queue_get_udev_is_active (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);</pre>
+<p>
+Check if udev is active on the system.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_queue</code></em> :</span></p></td>
+<td>udev queue context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a flag indicating if udev is active.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-get-queue-is-empty"></a><h3>udev_queue_get_queue_is_empty ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_queue_get_queue_is_empty (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);</pre>
+<p>
+Check if udev is currently processing any events.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_queue</code></em> :</span></p></td>
+<td>udev queue context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a flag indicating if udev is currently handling events.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-get-seqnum-is-finished"></a><h3>udev_queue_get_seqnum_is_finished ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_queue_get_seqnum_is_finished (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>,
+ <em class="parameter"><code>unsigned long long <span class="type">int</span> seqnum</code></em>);</pre>
+<p>
+Check if udev is currently processing a given sequence number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_queue</code></em> :</span></p></td>
+<td>udev queue context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>seqnum</code></em> :</span></p></td>
+<td>sequence number</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a flag indicating if the given sequence number is currently active.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-get-seqnum-sequence-is-finished"></a><h3>udev_queue_get_seqnum_sequence_is_finished ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_queue_get_seqnum_sequence_is_finished
+ (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>,
+ <em class="parameter"><code>unsigned long long <span class="type">int</span> start</code></em>,
+ <em class="parameter"><code>unsigned long long <span class="type">int</span> end</code></em>);</pre>
+<p>
+Check if udev is currently processing any events in a given sequence number range.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_queue</code></em> :</span></p></td>
+<td>udev queue context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>start</code></em> :</span></p></td>
+<td>first event sequence number</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>end</code></em> :</span></p></td>
+<td>last event sequence number</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a flag indicating if any of the sequence numbers in the given range is currently active.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-get-queued-list-entry"></a><h3>udev_queue_get_queued_list_entry ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev-list.html#udev-list-entry" title="struct udev_list_entry"><span class="returnvalue">udev_list_entry</span></a> * udev_queue_get_queued_list_entry
+ (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);</pre>
+<p>
+Get the first entry of the list of queued events.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_queue</code></em> :</span></p></td>
+<td>udev queue context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a udev_list_entry.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-get-kernel-seqnum"></a><h3>udev_queue_get_kernel_seqnum ()</h3>
+<pre class="programlisting">unsigned long long <span class="returnvalue">int</span> udev_queue_get_kernel_seqnum (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);</pre>
+<p>
+Get the current kernel event sequence number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_queue</code></em> :</span></p></td>
+<td>udev queue context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the sequence number.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-queue-get-udev-seqnum"></a><h3>udev_queue_get_udev_seqnum ()</h3>
+<pre class="programlisting">unsigned long long <span class="returnvalue">int</span> udev_queue_get_udev_seqnum (<em class="parameter"><code><span class="type">struct udev_queue</span> *udev_queue</code></em>);</pre>
+<p>
+Get the last known udev event sequence number.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev_queue</code></em> :</span></p></td>
+<td>udev queue context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the sequence number.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/libudev-udev-util.html b/docs/libudev/html/libudev-udev-util.html
new file mode 100644
index 0000000000..9eebc39945
--- /dev/null
+++ b/docs/libudev/html/libudev-udev-util.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>udev_util</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="up" href="ch01.html" title="API Reference">
+<link rel="prev" href="libudev-udev-hwdb.html" title="udev_hwdb">
+<link rel="next" href="api-index-full.html" title="Index">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="libudev-udev-hwdb.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libudev Reference Manual</th>
+<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libudev-udev-util.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libudev-udev-util.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libudev-udev-util"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libudev-udev-util.top_of_page"></a>udev_util</span></h2>
+<p>udev_util — utils</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libudev-udev-util.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis"><span class="returnvalue">int</span> <a class="link" href="libudev-udev-util.html#udev-util-encode-string" title="udev_util_encode_string ()">udev_util_encode_string</a> (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *str_enc</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> len</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-util.description"></a><h2>Description</h2>
+<p>
+Utilities useful when dealing with devices and device node names.
+</p>
+</div>
+<div class="refsect1">
+<a name="libudev-udev-util.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="udev-util-encode-string"></a><h3>udev_util_encode_string ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_util_encode_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *str_enc</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> len</code></em>);</pre>
+<p>
+Encode all potentially unsafe characters of a string to the
+corresponding 2 char hex value prefixed by '\x'.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
+<td>input string to be encoded</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>str_enc</code></em> :</span></p></td>
+<td>output string to store the encoded input string</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>len</code></em> :</span></p></td>
+<td>maximum size of the output string, which may be
+four times as long as the input string</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>0 if the entire string was copied, non-zero otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/libudev-udev.html b/docs/libudev/html/libudev-udev.html
new file mode 100644
index 0000000000..60670806f8
--- /dev/null
+++ b/docs/libudev/html/libudev-udev.html
@@ -0,0 +1,276 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>udev</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="libudev Reference Manual">
+<link rel="up" href="ch01.html" title="API Reference">
+<link rel="prev" href="ch01.html" title="API Reference">
+<link rel="next" href="libudev-udev-list.html" title="udev_list">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="ch01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">libudev Reference Manual</th>
+<td><a accesskey="n" href="libudev-udev-list.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#libudev-udev.synopsis" class="shortcut">Top</a>
+  | 
+ <a href="#libudev-udev.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="libudev-udev"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="libudev-udev.top_of_page"></a>udev</span></h2>
+<p>udev — libudev context</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="libudev-udev.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">struct <a class="link" href="libudev-udev.html#udev" title="struct udev">udev</a>;
+struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * <a class="link" href="libudev-udev.html#udev-ref" title="udev_ref ()">udev_ref</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);
+struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * <a class="link" href="libudev-udev.html#udev-unref" title="udev_unref ()">udev_unref</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);
+struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * <a class="link" href="libudev-udev.html#udev-new" title="udev_new ()">udev_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libudev-udev.html#udev-set-log-fn" title="udev_set_log_fn ()">udev_set_log_fn</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code><span class="type">void</span> (*log_fn) (struct udev *udev, int priority, const char *file, int line, const char *fn, const char *format, va_list args)</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="libudev-udev.html#udev-get-log-priority" title="udev_get_log_priority ()">udev_get_log_priority</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libudev-udev.html#udev-set-log-priority" title="udev_set_log_priority ()">udev_set_log_priority</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code><span class="type">int</span> priority</code></em>);
+<span class="returnvalue">void</span> * <a class="link" href="libudev-udev.html#udev-get-userdata" title="udev_get_userdata ()">udev_get_userdata</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="libudev-udev.html#udev-set-userdata" title="udev_set_userdata ()">udev_set_userdata</a> (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="libudev-udev.description"></a><h2>Description</h2>
+<p>
+The context contains the default values read from the udev config file,
+and is passed to all library operations.
+</p>
+</div>
+<div class="refsect1">
+<a name="libudev-udev.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="udev"></a><h3>struct udev</h3>
+<pre class="programlisting">struct udev;</pre>
+<p>
+Opaque object representing the library context.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-ref"></a><h3>udev_ref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * udev_ref (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);</pre>
+<p>
+Take a reference of the udev library context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed udev library context</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-unref"></a><h3>udev_unref ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * udev_unref (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);</pre>
+<p>
+Drop a reference of the udev library context. If the refcount
+reaches zero, the resources of the context will be released.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the passed udev library context if it has still an active reference, or <span class="type">NULL</span> otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-new"></a><h3>udev_new ()</h3>
+<pre class="programlisting">struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> * udev_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Create udev library context. This reads the udev configuration
+file, and fills in the default values.
+</p>
+<p>
+The initial refcount is 1, and needs to be decremented to
+release the resources of the udev library context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new udev library context</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-set-log-fn"></a><h3>udev_set_log_fn ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> udev_set_log_fn (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code><span class="type">void</span> (*log_fn) (struct udev *udev, int priority, const char *file, int line, const char *fn, const char *format, va_list args)</code></em>);</pre>
+<p>
+The built-in logging writes to stderr. It can be
+overridden by a custom function, to plug log messages
+into the users' logging functionality.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>log_fn</code></em> :</span></p></td>
+<td>function to be called for logging messages</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-get-log-priority"></a><h3>udev_get_log_priority ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> udev_get_log_priority (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);</pre>
+<p>
+The initial logging priority is read from the udev config file
+at startup.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the current logging priority</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-set-log-priority"></a><h3>udev_set_log_priority ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> udev_set_log_priority (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code><span class="type">int</span> priority</code></em>);</pre>
+<p>
+Set the current logging priority. The value controls which messages
+are logged.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
+<td>the new logging priority</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-get-userdata"></a><h3>udev_get_userdata ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> * udev_get_userdata (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>);</pre>
+<p>
+Retrieve stored data pointer from library context. This might be useful
+to access from callbacks like a custom logging function.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>stored userdata</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="udev-set-userdata"></a><h3>udev_set_userdata ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> udev_set_userdata (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
+<p>
+Store custom <em class="parameter"><code>userdata</code></em> in the library context.
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>udev</code></em> :</span></p></td>
+<td>udev library context</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>userdata</code></em> :</span></p></td>
+<td>data pointer</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html> \ No newline at end of file
diff --git a/docs/libudev/html/libudev.devhelp2 b/docs/libudev/html/libudev.devhelp2
new file mode 100644
index 0000000000..3ae09b3d0e
--- /dev/null
+++ b/docs/libudev/html/libudev.devhelp2
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
+<book xmlns="http://www.devhelp.net/book" title="libudev Reference Manual" link="index.html" author="" name="libudev" version="2" language="c">
+ <chapters>
+ <sub name="API Reference" link="ch01.html">
+ <sub name="udev" link="libudev-udev.html"/>
+ <sub name="udev_list" link="libudev-udev-list.html"/>
+ <sub name="udev_device" link="libudev-udev-device.html"/>
+ <sub name="udev_monitor" link="libudev-udev-monitor.html"/>
+ <sub name="udev_enumerate" link="libudev-udev-enumerate.html"/>
+ <sub name="udev_queue" link="libudev-udev-queue.html"/>
+ <sub name="udev_hwdb" link="libudev-udev-hwdb.html"/>
+ <sub name="udev_util" link="libudev-udev-util.html"/>
+ </sub>
+ <sub name="Index" link="api-index-full.html"/>
+ </chapters>
+ <functions>
+ <keyword type="struct" name="struct udev" link="libudev-udev.html#udev"/>
+ <keyword type="function" name="udev_ref ()" link="libudev-udev.html#udev-ref"/>
+ <keyword type="function" name="udev_unref ()" link="libudev-udev.html#udev-unref"/>
+ <keyword type="function" name="udev_new ()" link="libudev-udev.html#udev-new"/>
+ <keyword type="function" name="udev_set_log_fn ()" link="libudev-udev.html#udev-set-log-fn"/>
+ <keyword type="function" name="udev_get_log_priority ()" link="libudev-udev.html#udev-get-log-priority"/>
+ <keyword type="function" name="udev_set_log_priority ()" link="libudev-udev.html#udev-set-log-priority"/>
+ <keyword type="function" name="udev_get_userdata ()" link="libudev-udev.html#udev-get-userdata"/>
+ <keyword type="function" name="udev_set_userdata ()" link="libudev-udev.html#udev-set-userdata"/>
+ <keyword type="struct" name="struct udev_list_entry" link="libudev-udev-list.html#udev-list-entry"/>
+ <keyword type="function" name="udev_list_entry_get_next ()" link="libudev-udev-list.html#udev-list-entry-get-next"/>
+ <keyword type="function" name="udev_list_entry_get_by_name ()" link="libudev-udev-list.html#udev-list-entry-get-by-name"/>
+ <keyword type="function" name="udev_list_entry_get_name ()" link="libudev-udev-list.html#udev-list-entry-get-name"/>
+ <keyword type="function" name="udev_list_entry_get_value ()" link="libudev-udev-list.html#udev-list-entry-get-value"/>
+ <keyword type="macro" name="udev_list_entry_foreach()" link="libudev-udev-list.html#udev-list-entry-foreach"/>
+ <keyword type="struct" name="struct udev_device" link="libudev-udev-device.html#udev-device"/>
+ <keyword type="function" name="udev_device_ref ()" link="libudev-udev-device.html#udev-device-ref"/>
+ <keyword type="function" name="udev_device_unref ()" link="libudev-udev-device.html#udev-device-unref"/>
+ <keyword type="function" name="udev_device_get_udev ()" link="libudev-udev-device.html#udev-device-get-udev"/>
+ <keyword type="function" name="udev_device_new_from_syspath ()" link="libudev-udev-device.html#udev-device-new-from-syspath"/>
+ <keyword type="function" name="udev_device_new_from_devnum ()" link="libudev-udev-device.html#udev-device-new-from-devnum"/>
+ <keyword type="function" name="udev_device_new_from_subsystem_sysname ()" link="libudev-udev-device.html#udev-device-new-from-subsystem-sysname"/>
+ <keyword type="function" name="udev_device_new_from_device_id ()" link="libudev-udev-device.html#udev-device-new-from-device-id"/>
+ <keyword type="function" name="udev_device_new_from_environment ()" link="libudev-udev-device.html#udev-device-new-from-environment"/>
+ <keyword type="function" name="udev_device_get_parent ()" link="libudev-udev-device.html#udev-device-get-parent"/>
+ <keyword type="function" name="udev_device_get_parent_with_subsystem_devtype ()" link="libudev-udev-device.html#udev-device-get-parent-with-subsystem-devtype"/>
+ <keyword type="function" name="udev_device_get_devpath ()" link="libudev-udev-device.html#udev-device-get-devpath"/>
+ <keyword type="function" name="udev_device_get_subsystem ()" link="libudev-udev-device.html#udev-device-get-subsystem"/>
+ <keyword type="function" name="udev_device_get_devtype ()" link="libudev-udev-device.html#udev-device-get-devtype"/>
+ <keyword type="function" name="udev_device_get_syspath ()" link="libudev-udev-device.html#udev-device-get-syspath"/>
+ <keyword type="function" name="udev_device_get_sysname ()" link="libudev-udev-device.html#udev-device-get-sysname"/>
+ <keyword type="function" name="udev_device_get_sysnum ()" link="libudev-udev-device.html#udev-device-get-sysnum"/>
+ <keyword type="function" name="udev_device_get_devnode ()" link="libudev-udev-device.html#udev-device-get-devnode"/>
+ <keyword type="function" name="udev_device_get_is_initialized ()" link="libudev-udev-device.html#udev-device-get-is-initialized"/>
+ <keyword type="function" name="udev_device_get_devlinks_list_entry ()" link="libudev-udev-device.html#udev-device-get-devlinks-list-entry"/>
+ <keyword type="function" name="udev_device_get_properties_list_entry ()" link="libudev-udev-device.html#udev-device-get-properties-list-entry"/>
+ <keyword type="function" name="udev_device_get_tags_list_entry ()" link="libudev-udev-device.html#udev-device-get-tags-list-entry"/>
+ <keyword type="function" name="udev_device_get_property_value ()" link="libudev-udev-device.html#udev-device-get-property-value"/>
+ <keyword type="function" name="udev_device_get_driver ()" link="libudev-udev-device.html#udev-device-get-driver"/>
+ <keyword type="function" name="udev_device_get_devnum ()" link="libudev-udev-device.html#udev-device-get-devnum"/>
+ <keyword type="function" name="udev_device_get_action ()" link="libudev-udev-device.html#udev-device-get-action"/>
+ <keyword type="function" name="udev_device_get_sysattr_value ()" link="libudev-udev-device.html#udev-device-get-sysattr-value"/>
+ <keyword type="function" name="udev_device_set_sysattr_value ()" link="libudev-udev-device.html#udev-device-set-sysattr-value"/>
+ <keyword type="function" name="udev_device_get_sysattr_list_entry ()" link="libudev-udev-device.html#udev-device-get-sysattr-list-entry"/>
+ <keyword type="function" name="udev_device_get_seqnum ()" link="libudev-udev-device.html#udev-device-get-seqnum"/>
+ <keyword type="function" name="udev_device_get_usec_since_initialized ()" link="libudev-udev-device.html#udev-device-get-usec-since-initialized"/>
+ <keyword type="function" name="udev_device_has_tag ()" link="libudev-udev-device.html#udev-device-has-tag"/>
+ <keyword type="struct" name="struct udev_monitor" link="libudev-udev-monitor.html#udev-monitor"/>
+ <keyword type="function" name="udev_monitor_ref ()" link="libudev-udev-monitor.html#udev-monitor-ref"/>
+ <keyword type="function" name="udev_monitor_unref ()" link="libudev-udev-monitor.html#udev-monitor-unref"/>
+ <keyword type="function" name="udev_monitor_get_udev ()" link="libudev-udev-monitor.html#udev-monitor-get-udev"/>
+ <keyword type="function" name="udev_monitor_new_from_netlink ()" link="libudev-udev-monitor.html#udev-monitor-new-from-netlink"/>
+ <keyword type="function" name="udev_monitor_enable_receiving ()" link="libudev-udev-monitor.html#udev-monitor-enable-receiving"/>
+ <keyword type="function" name="udev_monitor_set_receive_buffer_size ()" link="libudev-udev-monitor.html#udev-monitor-set-receive-buffer-size"/>
+ <keyword type="function" name="udev_monitor_get_fd ()" link="libudev-udev-monitor.html#udev-monitor-get-fd"/>
+ <keyword type="function" name="udev_monitor_receive_device ()" link="libudev-udev-monitor.html#udev-monitor-receive-device"/>
+ <keyword type="function" name="udev_monitor_filter_add_match_subsystem_devtype ()" link="libudev-udev-monitor.html#udev-monitor-filter-add-match-subsystem-devtype"/>
+ <keyword type="function" name="udev_monitor_filter_add_match_tag ()" link="libudev-udev-monitor.html#udev-monitor-filter-add-match-tag"/>
+ <keyword type="function" name="udev_monitor_filter_update ()" link="libudev-udev-monitor.html#udev-monitor-filter-update"/>
+ <keyword type="function" name="udev_monitor_filter_remove ()" link="libudev-udev-monitor.html#udev-monitor-filter-remove"/>
+ <keyword type="struct" name="struct udev_enumerate" link="libudev-udev-enumerate.html#udev-enumerate"/>
+ <keyword type="function" name="udev_enumerate_ref ()" link="libudev-udev-enumerate.html#udev-enumerate-ref"/>
+ <keyword type="function" name="udev_enumerate_unref ()" link="libudev-udev-enumerate.html#udev-enumerate-unref"/>
+ <keyword type="function" name="udev_enumerate_get_udev ()" link="libudev-udev-enumerate.html#udev-enumerate-get-udev"/>
+ <keyword type="function" name="udev_enumerate_new ()" link="libudev-udev-enumerate.html#udev-enumerate-new"/>
+ <keyword type="function" name="udev_enumerate_add_match_subsystem ()" link="libudev-udev-enumerate.html#udev-enumerate-add-match-subsystem"/>
+ <keyword type="function" name="udev_enumerate_add_nomatch_subsystem ()" link="libudev-udev-enumerate.html#udev-enumerate-add-nomatch-subsystem"/>
+ <keyword type="function" name="udev_enumerate_add_match_sysattr ()" link="libudev-udev-enumerate.html#udev-enumerate-add-match-sysattr"/>
+ <keyword type="function" name="udev_enumerate_add_nomatch_sysattr ()" link="libudev-udev-enumerate.html#udev-enumerate-add-nomatch-sysattr"/>
+ <keyword type="function" name="udev_enumerate_add_match_property ()" link="libudev-udev-enumerate.html#udev-enumerate-add-match-property"/>
+ <keyword type="function" name="udev_enumerate_add_match_tag ()" link="libudev-udev-enumerate.html#udev-enumerate-add-match-tag"/>
+ <keyword type="function" name="udev_enumerate_add_match_parent ()" link="libudev-udev-enumerate.html#udev-enumerate-add-match-parent"/>
+ <keyword type="function" name="udev_enumerate_add_match_is_initialized ()" link="libudev-udev-enumerate.html#udev-enumerate-add-match-is-initialized"/>
+ <keyword type="function" name="udev_enumerate_add_match_sysname ()" link="libudev-udev-enumerate.html#udev-enumerate-add-match-sysname"/>
+ <keyword type="function" name="udev_enumerate_add_syspath ()" link="libudev-udev-enumerate.html#udev-enumerate-add-syspath"/>
+ <keyword type="function" name="udev_enumerate_scan_devices ()" link="libudev-udev-enumerate.html#udev-enumerate-scan-devices"/>
+ <keyword type="function" name="udev_enumerate_scan_subsystems ()" link="libudev-udev-enumerate.html#udev-enumerate-scan-subsystems"/>
+ <keyword type="function" name="udev_enumerate_get_list_entry ()" link="libudev-udev-enumerate.html#udev-enumerate-get-list-entry"/>
+ <keyword type="struct" name="struct udev_queue" link="libudev-udev-queue.html#udev-queue"/>
+ <keyword type="function" name="udev_queue_ref ()" link="libudev-udev-queue.html#udev-queue-ref"/>
+ <keyword type="function" name="udev_queue_unref ()" link="libudev-udev-queue.html#udev-queue-unref"/>
+ <keyword type="function" name="udev_queue_get_udev ()" link="libudev-udev-queue.html#udev-queue-get-udev"/>
+ <keyword type="function" name="udev_queue_new ()" link="libudev-udev-queue.html#udev-queue-new"/>
+ <keyword type="function" name="udev_queue_get_udev_is_active ()" link="libudev-udev-queue.html#udev-queue-get-udev-is-active"/>
+ <keyword type="function" name="udev_queue_get_queue_is_empty ()" link="libudev-udev-queue.html#udev-queue-get-queue-is-empty"/>
+ <keyword type="function" name="udev_queue_get_seqnum_is_finished ()" link="libudev-udev-queue.html#udev-queue-get-seqnum-is-finished"/>
+ <keyword type="function" name="udev_queue_get_seqnum_sequence_is_finished ()" link="libudev-udev-queue.html#udev-queue-get-seqnum-sequence-is-finished"/>
+ <keyword type="function" name="udev_queue_get_queued_list_entry ()" link="libudev-udev-queue.html#udev-queue-get-queued-list-entry"/>
+ <keyword type="function" name="udev_queue_get_kernel_seqnum ()" link="libudev-udev-queue.html#udev-queue-get-kernel-seqnum"/>
+ <keyword type="function" name="udev_queue_get_udev_seqnum ()" link="libudev-udev-queue.html#udev-queue-get-udev-seqnum"/>
+ <keyword type="struct" name="struct udev_hwdb" link="libudev-udev-hwdb.html#udev-hwdb"/>
+ <keyword type="function" name="udev_hwdb_ref ()" link="libudev-udev-hwdb.html#udev-hwdb-ref"/>
+ <keyword type="function" name="udev_hwdb_unref ()" link="libudev-udev-hwdb.html#udev-hwdb-unref"/>
+ <keyword type="function" name="udev_hwdb_new ()" link="libudev-udev-hwdb.html#udev-hwdb-new"/>
+ <keyword type="function" name="udev_hwdb_get_properties_list_entry ()" link="libudev-udev-hwdb.html#udev-hwdb-get-properties-list-entry"/>
+ <keyword type="function" name="udev_util_encode_string ()" link="libudev-udev-util.html#udev-util-encode-string"/>
+ </functions>
+</book>
diff --git a/docs/libudev/html/right.png b/docs/libudev/html/right.png
new file mode 100644
index 0000000000..92832e3a45
--- /dev/null
+++ b/docs/libudev/html/right.png
Binary files differ
diff --git a/docs/libudev/html/style.css b/docs/libudev/html/style.css
new file mode 100644
index 0000000000..d6f6c26ece
--- /dev/null
+++ b/docs/libudev/html/style.css
@@ -0,0 +1,266 @@
+.synopsis, .classsynopsis
+{
+ /* tango:aluminium 1/2 */
+ background: #eeeeec;
+ border: solid 1px #d3d7cf;
+ padding: 0.5em;
+}
+.programlisting
+{
+ /* tango:sky blue 0/1 */
+ background: #e6f3ff;
+ border: solid 1px #729fcf;
+ padding: 0.5em;
+}
+.variablelist
+{
+ padding: 4px;
+ margin-left: 3em;
+}
+.variablelist td:first-child
+{
+ vertical-align: top;
+}
+
+@media screen {
+ sup a.footnote
+ {
+ position: relative;
+ top: 0em ! important;
+
+ }
+ /* this is needed so that the local anchors are displayed below the naviagtion */
+ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+ {
+ display: inline-block;
+ position: relative;
+ top:-5em;
+ }
+ /* this seems to be a bug in the xsl style sheets when generating indexes */
+ div.index div.index
+ {
+ top: 0em;
+ }
+ /* make space for the fixed navigation bar and add space at the bottom so that
+ * link targets appear somewhat close to top
+ */
+ body
+ {
+ padding-top: 3.2em;
+ padding-bottom: 20em;
+ }
+ /* style and size the navigation bar */
+ table.navigation#top
+ {
+ position: fixed;
+ /* tango:scarlet red 0/1 */
+ background: #ffe6e6;
+ border: solid 1px #ef2929;
+ margin-top: 0;
+ margin-bottom: 0;
+ top: 0;
+ left: 0;
+ height: 3em;
+ z-index: 10;
+ }
+ .navigation a, .navigation a:visited
+ {
+ /* tango:scarlet red 3 */
+ color: #a40000;
+ }
+ .navigation a:hover
+ {
+ /* tango:scarlet red 1 */
+ color: #ef2929;
+ }
+ td.shortcuts
+ {
+ /* tango:scarlet red 1 */
+ color: #ef2929;
+ font-size: 80%;
+ white-space: nowrap;
+ }
+}
+@media print {
+ table.navigation {
+ visibility: collapse;
+ display: none;
+ }
+ div.titlepage table.navigation {
+ visibility: visible;
+ display: table;
+ /* tango:scarlet red 0/1 */
+ background: #ffe6e6;
+ border: solid 1px #ef2929;
+ margin-top: 0;
+ margin-bottom: 0;
+ top: 0;
+ left: 0;
+ height: 3em;
+ }
+}
+
+.navigation .title
+{
+ font-size: 200%;
+}
+
+div.gallery-float
+{
+ float: left;
+ padding: 10px;
+}
+div.gallery-float img
+{
+ border-style: none;
+}
+div.gallery-spacer
+{
+ clear: both;
+}
+
+a, a:visited
+{
+ text-decoration: none;
+ /* tango:sky blue 2 */
+ color: #3465a4;
+}
+a:hover
+{
+ text-decoration: underline;
+ /* tango:sky blue 1 */
+ color: #729fcf;
+}
+
+div.table table
+{
+ border-collapse: collapse;
+ border-spacing: 0px;
+ /* tango:aluminium 3 */
+ border: solid 1px #babdb6;
+}
+
+div.table table td, div.table table th
+{
+ /* tango:aluminium 3 */
+ border: solid 1px #babdb6;
+ padding: 3px;
+ vertical-align: top;
+}
+
+div.table table th
+{
+ /* tango:aluminium 2 */
+ background-color: #d3d7cf;
+}
+
+hr
+{
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ background: #babdb6;
+ border: none 0px;
+ height: 1px;
+ clear: both;
+}
+
+.footer
+{
+ padding-top: 3.5em;
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ text-align: center;
+ font-size: 80%;
+}
+
+.warning
+{
+ /* tango:orange 0/1 */
+ background: #ffeed9;
+ border-color: #ffb04f;
+}
+.note
+{
+ /* tango:chameleon 0/0.5 */
+ background: #d8ffb2;
+ border-color: #abf562;
+}
+.note, .warning
+{
+ padding: 0.5em;
+ border-width: 1px;
+ border-style: solid;
+}
+.note h3, .warning h3
+{
+ margin-top: 0.0em
+}
+.note p, .warning p
+{
+ margin-bottom: 0.0em
+}
+
+/* blob links */
+h2 .extralinks, h3 .extralinks
+{
+ float: right;
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ font-size: 80%;
+ font-weight: normal;
+}
+
+.annotation
+{
+ /* tango:aluminium 5 */
+ color: #555753;
+ font-size: 80%;
+ font-weight: normal;
+}
+
+/* code listings */
+
+.listing_code .programlisting .cbracket { color: #a40000; } /* tango: scarlet red 3 */
+.listing_code .programlisting .comment { color: #a1a39d; } /* tango: aluminium 4 */
+.listing_code .programlisting .function { color: #000000; font-weight: bold; }
+.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
+.listing_code .programlisting .keyword { color: #4e9a06; } /* tango: chameleon 3 */
+.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */
+.listing_code .programlisting .normal { color: #000000; }
+.listing_code .programlisting .number { color: #75507b; } /* tango: plum 2 */
+.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */
+.listing_code .programlisting .string { color: #c17d11; } /* tango: chocolate 2 */
+.listing_code .programlisting .type { color: #000000; }
+.listing_code .programlisting .type a { color: #11326b; } /* tango: sky blue 4 */
+.listing_code .programlisting .symbol { color: #ce5c00; } /* tango: orange 3 */
+
+.listing_frame {
+ /* tango:sky blue 1 */
+ border: solid 1px #729fcf;
+ padding: 0px;
+}
+
+.listing_lines, .listing_code {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0.5em;
+}
+.listing_lines {
+ /* tango:sky blue 0.5 */
+ background: #a6c5e3;
+ /* tango:aluminium 6 */
+ color: #2e3436;
+}
+.listing_code {
+ /* tango:sky blue 0 */
+ background: #e6f3ff;
+}
+.listing_code .programlisting {
+ /* override from previous */
+ border: none 0px;
+ padding: 0px;
+}
+.listing_lines pre, .listing_code pre {
+ margin: 0px;
+}
+
diff --git a/docs/libudev/html/up.png b/docs/libudev/html/up.png
new file mode 100644
index 0000000000..85b3e2a275
--- /dev/null
+++ b/docs/libudev/html/up.png
Binary files differ
diff --git a/docs/libudev/libudev-docs.xml b/docs/libudev/libudev-docs.xml
new file mode 100644
index 0000000000..454cd31646
--- /dev/null
+++ b/docs/libudev/libudev-docs.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
+[
+ <!ENTITY version SYSTEM "version.xml">
+]>
+<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
+ <bookinfo>
+ <title>libudev Reference Manual</title>
+ <releaseinfo>
+ For version &version; — the latest version of this
+ documentation can be found at
+ <ulink role="online-location" url="http://www.freedesktop.org/software/systemd/libudev/">
+ http://www.freedesktop.org/software/systemd/libudev/
+ </ulink>.
+ </releaseinfo>
+ <copyright>
+ <year>2009-2012</year>
+ <holder>Kay Sievers &lt;kay@vrfy.org&gt;</holder>
+ </copyright>
+ </bookinfo>
+
+ <chapter>
+ <title>API Reference</title>
+ <xi:include href="xml/libudev.xml"/>
+ <xi:include href="xml/libudev-list.xml"/>
+ <xi:include href="xml/libudev-device.xml"/>
+ <xi:include href="xml/libudev-monitor.xml"/>
+ <xi:include href="xml/libudev-enumerate.xml"/>
+ <xi:include href="xml/libudev-queue.xml"/>
+ <xi:include href="xml/libudev-hwdb.xml"/>
+ <xi:include href="xml/libudev-util.xml"/>
+ <xi:include href="xml/api-index-deprecated.xml"/>
+ </chapter>
+
+ <index id="api-index-full">
+ <title>Index</title>
+ <xi:include href="xml/api-index-full.xml"/>
+ </index>
+</book>
diff --git a/docs/libudev/libudev-overrides.txt b/docs/libudev/libudev-overrides.txt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/docs/libudev/libudev-overrides.txt
diff --git a/docs/libudev/libudev-sections.txt b/docs/libudev/libudev-sections.txt
new file mode 100644
index 0000000000..c1546458f4
--- /dev/null
+++ b/docs/libudev/libudev-sections.txt
@@ -0,0 +1,135 @@
+<SECTION>
+<FILE>libudev</FILE>
+<TITLE>udev</TITLE>
+udev
+udev_ref
+udev_unref
+udev_new
+udev_set_log_fn
+udev_get_log_priority
+udev_set_log_priority
+udev_get_userdata
+udev_set_userdata
+</SECTION>
+
+<SECTION>
+<FILE>libudev-list</FILE>
+<TITLE>udev_list</TITLE>
+udev_list_entry
+udev_list_entry_get_next
+udev_list_entry_get_by_name
+udev_list_entry_get_name
+udev_list_entry_get_value
+udev_list_entry_foreach
+</SECTION>
+
+<SECTION>
+<FILE>libudev-device</FILE>
+<TITLE>udev_device</TITLE>
+udev_device
+udev_device_ref
+udev_device_unref
+udev_device_get_udev
+udev_device_new_from_syspath
+udev_device_new_from_devnum
+udev_device_new_from_subsystem_sysname
+udev_device_new_from_device_id
+udev_device_new_from_environment
+udev_device_get_parent
+udev_device_get_parent_with_subsystem_devtype
+udev_device_get_devpath
+udev_device_get_subsystem
+udev_device_get_devtype
+udev_device_get_syspath
+udev_device_get_sysname
+udev_device_get_sysnum
+udev_device_get_devnode
+udev_device_get_is_initialized
+udev_device_get_devlinks_list_entry
+udev_device_get_properties_list_entry
+udev_device_get_tags_list_entry
+udev_device_get_property_value
+udev_device_get_driver
+udev_device_get_devnum
+udev_device_get_action
+udev_device_get_sysattr_value
+udev_device_set_sysattr_value
+udev_device_get_sysattr_list_entry
+udev_device_get_seqnum
+udev_device_get_usec_since_initialized
+udev_device_has_tag
+</SECTION>
+
+<SECTION>
+<FILE>libudev-monitor</FILE>
+<TITLE>udev_monitor</TITLE>
+udev_monitor
+udev_monitor_ref
+udev_monitor_unref
+udev_monitor_get_udev
+udev_monitor_new_from_netlink
+udev_monitor_enable_receiving
+udev_monitor_set_receive_buffer_size
+udev_monitor_get_fd
+udev_monitor_receive_device
+udev_monitor_filter_add_match_subsystem_devtype
+udev_monitor_filter_add_match_tag
+udev_monitor_filter_update
+udev_monitor_filter_remove
+</SECTION>
+
+<SECTION>
+<FILE>libudev-enumerate</FILE>
+<TITLE>udev_enumerate</TITLE>
+udev_enumerate
+udev_enumerate_ref
+udev_enumerate_unref
+udev_enumerate_get_udev
+udev_enumerate_new
+udev_enumerate_add_match_subsystem
+udev_enumerate_add_nomatch_subsystem
+udev_enumerate_add_match_sysattr
+udev_enumerate_add_nomatch_sysattr
+udev_enumerate_add_match_property
+udev_enumerate_add_match_tag
+udev_enumerate_add_match_parent
+udev_enumerate_add_match_is_initialized
+udev_enumerate_add_match_sysname
+udev_enumerate_add_syspath
+udev_enumerate_scan_devices
+udev_enumerate_scan_subsystems
+udev_enumerate_get_list_entry
+</SECTION>
+
+<SECTION>
+<FILE>libudev-queue</FILE>
+<TITLE>udev_queue</TITLE>
+udev_queue
+udev_queue_ref
+udev_queue_unref
+udev_queue_get_udev
+udev_queue_new
+udev_queue_get_udev_is_active
+udev_queue_get_queue_is_empty
+udev_queue_get_seqnum_is_finished
+udev_queue_get_seqnum_sequence_is_finished
+udev_queue_get_queued_list_entry
+udev_queue_get_kernel_seqnum
+udev_queue_get_udev_seqnum
+</SECTION>
+
+<SECTION>
+<FILE>libudev-hwdb</FILE>
+<TITLE>udev_hwdb</TITLE>
+udev_hwdb
+udev_hwdb_ref
+udev_hwdb_unref
+udev_hwdb_new
+udev_hwdb_get_properties_list_entry
+</SECTION>
+
+<SECTION>
+<FILE>libudev-util</FILE>
+<TITLE>udev_util</TITLE>
+udev_util_encode_string
+</SECTION>
diff --git a/docs/libudev/libudev.types b/docs/libudev/libudev.types
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/docs/libudev/libudev.types
diff --git a/docs/libudev/version.xml b/docs/libudev/version.xml
new file mode 100644
index 0000000000..ad03f7c5a8
--- /dev/null
+++ b/docs/libudev/version.xml
@@ -0,0 +1 @@
+204
diff --git a/docs/libudev/version.xml.in b/docs/libudev/version.xml.in
new file mode 100644
index 0000000000..d78bda9342
--- /dev/null
+++ b/docs/libudev/version.xml.in
@@ -0,0 +1 @@
+@VERSION@