mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
remove gudev and gtk-doc
The library moved to: https://git.gnome.org/browse/libgudev/
This commit is contained in:
parent
7e518afab9
commit
2375607039
1
.gitignore
vendored
1
.gitignore
vendored
@ -38,7 +38,6 @@
|
||||
/defined
|
||||
/exported
|
||||
/exported-*
|
||||
/gtk-doc.make
|
||||
/hostnamectl
|
||||
/install-tree
|
||||
/journalctl
|
||||
|
@ -3,8 +3,8 @@ compiler:
|
||||
- gcc
|
||||
before_install:
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install autotools-dev automake autoconf libtool libdbus-1-dev libcap-dev libblkid-dev libmount-dev libpam-dev libcryptsetup-dev libaudit-dev libacl1-dev libattr1-dev libselinux-dev liblzma-dev libgcrypt-dev libqrencode-dev libmicrohttpd-dev gtk-doc-tools gperf python2.7-dev
|
||||
script: ./autogen.sh && ./configure --enable-gtk-doc --enable-gtk-doc-pdf && make V=1 && sudo ./systemd-machine-id-setup && make check && make distcheck
|
||||
- sudo apt-get install autotools-dev automake autoconf libtool libdbus-1-dev libcap-dev libblkid-dev libmount-dev libpam-dev libcryptsetup-dev libaudit-dev libacl1-dev libattr1-dev libselinux-dev liblzma-dev libgcrypt-dev libqrencode-dev libmicrohttpd-dev gperf python2.7-dev
|
||||
script: ./autogen.sh && ./configure && make V=1 && sudo ./systemd-machine-id-setup && make check && make distcheck
|
||||
after_failure: cat test-suite.log
|
||||
notifications:
|
||||
irc:
|
||||
|
174
Makefile.am
174
Makefile.am
@ -42,10 +42,6 @@ LIBUDEV_CURRENT=7
|
||||
LIBUDEV_REVISION=3
|
||||
LIBUDEV_AGE=6
|
||||
|
||||
LIBGUDEV_CURRENT=2
|
||||
LIBGUDEV_REVISION=0
|
||||
LIBGUDEV_AGE=2
|
||||
|
||||
LIBSYSTEMD_CURRENT=7
|
||||
LIBSYSTEMD_REVISION=0
|
||||
LIBSYSTEMD_AGE=7
|
||||
@ -3667,15 +3663,6 @@ src/libsystemd-terminal/unifont-glyph-array.bin: tools/compile-unifont.py $(UNIF
|
||||
$(AM_V_GEN)$(PYTHON) $< <$(UNIFONT) >$@
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
if ENABLE_GTK_DOC
|
||||
SUBDIRS += \
|
||||
docs/libudev
|
||||
|
||||
noinst_DATA += \
|
||||
docs/html/libudev \
|
||||
docs/html/gudev
|
||||
endif
|
||||
|
||||
include_HEADERS += \
|
||||
src/libudev/libudev.h
|
||||
|
||||
@ -3716,17 +3703,12 @@ EXTRA_DIST += \
|
||||
src/libudev/libudev.pc.in
|
||||
|
||||
CLEANFILES += \
|
||||
docs/html/libudev \
|
||||
docs/html/gudev
|
||||
docs/html/libudev
|
||||
|
||||
docs/html/libudev:
|
||||
$(AM_V_at)$(MKDIR_P) $(dir $@)
|
||||
$(AM_V_LN)$(LN_S) -f ../libudev/html $@
|
||||
|
||||
docs/html/gudev:
|
||||
$(AM_V_at)$(MKDIR_P) $(dir $@)
|
||||
$(AM_V_LN)$(LN_S) -f ../gudev/html $@
|
||||
|
||||
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
|
||||
libudev-install-hook:
|
||||
libname=libudev.so && $(move-to-rootlibdir)
|
||||
@ -4122,151 +4104,6 @@ udevlibexec_PROGRAMS += \
|
||||
dist_udevrules_DATA += \
|
||||
rules/61-accelerometer.rules
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
if ENABLE_GUDEV
|
||||
if ENABLE_GTK_DOC
|
||||
SUBDIRS += \
|
||||
docs/gudev
|
||||
endif
|
||||
|
||||
libgudev_includedir = \
|
||||
$(includedir)/gudev-1.0/gudev
|
||||
|
||||
libgudev_include_HEADERS = \
|
||||
src/gudev/gudev.h \
|
||||
src/gudev/gudevenums.h \
|
||||
src/gudev/gudevenumtypes.h \
|
||||
src/gudev/gudevtypes.h \
|
||||
src/gudev/gudevclient.h \
|
||||
src/gudev/gudevdevice.h \
|
||||
src/gudev/gudevenumerator.h
|
||||
|
||||
lib_LTLIBRARIES += libgudev-1.0.la
|
||||
|
||||
pkgconfiglib_DATA += \
|
||||
src/gudev/gudev-1.0.pc
|
||||
|
||||
libgudev_1_0_la_SOURCES = \
|
||||
src/gudev/libgudev-1.0.sym \
|
||||
src/gudev/gudevenums.h \
|
||||
src/gudev/gudevenumtypes.h \
|
||||
src/gudev/gudevenumtypes.h\
|
||||
src/gudev/gudevtypes.h \
|
||||
src/gudev/gudevclient.h \
|
||||
src/gudev/gudevclient.c \
|
||||
src/gudev/gudevdevice.h \
|
||||
src/gudev/gudevdevice.c \
|
||||
src/gudev/gudevenumerator.h \
|
||||
src/gudev/gudevenumerator.c \
|
||||
src/gudev/gudevprivate.h
|
||||
|
||||
nodist_libgudev_1_0_la_SOURCES = \
|
||||
src/gudev/gudevmarshal.h \
|
||||
src/gudev/gudevmarshal.c \
|
||||
src/gudev/gudevenumtypes.h \
|
||||
src/gudev/gudevenumtypes.c
|
||||
|
||||
BUILT_SOURCES += \
|
||||
$(nodist_libgudev_1_0_la_SOURCES)
|
||||
|
||||
libgudev_1_0_la_CPPFLAGS = \
|
||||
$(AM_CPPFLAGS) \
|
||||
-I$(top_builddir)/src\
|
||||
-I$(top_srcdir)/src\
|
||||
-I$(top_builddir)/src/gudev \
|
||||
-I$(top_srcdir)/src/gudev \
|
||||
-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT \
|
||||
-D_GUDEV_COMPILATION \
|
||||
-DG_LOG_DOMAIN=\"GUdev\"
|
||||
|
||||
libgudev_1_0_la_CFLAGS = \
|
||||
$(AM_CFLAGS) \
|
||||
-fvisibility=default \
|
||||
$(GLIB_CFLAGS)
|
||||
|
||||
libgudev_1_0_la_LIBADD = \
|
||||
libudev.la \
|
||||
$(GLIB_LIBS)
|
||||
|
||||
libgudev_1_0_la_LDFLAGS = \
|
||||
$(AM_LDFLAGS) \
|
||||
-version-info $(LIBGUDEV_CURRENT):$(LIBGUDEV_REVISION):$(LIBGUDEV_AGE) \
|
||||
-export-dynamic \
|
||||
-no-undefined \
|
||||
-Wl,--version-script=$(top_srcdir)/src/gudev/libgudev-1.0.sym
|
||||
|
||||
src/gudev/gudevmarshal.h: src/gudev/gudevmarshal.list
|
||||
$(AM_V_at)$(MKDIR_P) $(dir $@)
|
||||
$(AM_V_GEN)glib-genmarshal $< --prefix=g_udev_marshal --header > $@
|
||||
|
||||
src/gudev/gudevmarshal.c: src/gudev/gudevmarshal.list
|
||||
$(AM_V_at)$(MKDIR_P) $(dir $@)
|
||||
$(AM_V_GEN)echo '#include "gudevmarshal.h"' > $@ && \
|
||||
glib-genmarshal $< --prefix=g_udev_marshal --body >> $@
|
||||
|
||||
src/gudev/gudevenumtypes.%: src/gudev/gudevenumtypes.%.template src/gudev/gudevenums.h
|
||||
$(AM_V_at)$(MKDIR_P) $(dir $@)
|
||||
$(AM_V_GEN)glib-mkenums --template $^ > $@
|
||||
|
||||
if HAVE_INTROSPECTION
|
||||
-include $(INTROSPECTION_MAKEFILE)
|
||||
|
||||
src/gudev/GUdev-1.0.gir: libgudev-1.0.la
|
||||
|
||||
src_gudev_GUdev_1_0_gir_INCLUDES = GObject-2.0
|
||||
|
||||
src_gudev_GUdev_1_0_gir_CFLAGS = \
|
||||
$(AM_CFLAGS) \
|
||||
$(INCLUDES) \
|
||||
-D_GUDEV_COMPILATION \
|
||||
-D_GUDEV_WORK_AROUND_DEV_T_BUG \
|
||||
-I$(top_srcdir)/src \
|
||||
-I$(top_builddir)/src \
|
||||
-I$(top_srcdir)/src/gudev \
|
||||
-I$(top_builddir)/src/gudev
|
||||
|
||||
src_gudev_GUdev_1_0_gir_LIBS = libgudev-1.0.la
|
||||
|
||||
src_gudev_GUdev_1_0_gir_SCANNERFLAGS = \
|
||||
--pkg-export=gudev-1.0 \
|
||||
--warn-all
|
||||
|
||||
src_gudev_GUdev_1_0_gir_FILES = \
|
||||
src/gudev/gudev.h \
|
||||
src/gudev/gudevtypes.h \
|
||||
src/gudev/gudevenums.h \
|
||||
src/gudev/gudevenumtypes.h \
|
||||
src/gudev/gudevclient.h \
|
||||
src/gudev/gudevdevice.h \
|
||||
src/gudev/gudevenumerator.h \
|
||||
src/gudev/gudevclient.c \
|
||||
src/gudev/gudevdevice.c \
|
||||
src/gudev/gudevenumerator.c
|
||||
|
||||
INTROSPECTION_GIRS = src/gudev/GUdev-1.0.gir
|
||||
INTROSPECTION_SCANNER_ARGS = --c-include=gudev/gudev.h
|
||||
|
||||
girdir = $(datadir)/gir-1.0
|
||||
gir_DATA = \
|
||||
src/gudev/GUdev-1.0.gir
|
||||
|
||||
typelibsdir = $(libdir)/girepository-1.0
|
||||
typelibs_DATA = \
|
||||
src/gudev/GUdev-1.0.typelib
|
||||
|
||||
CLEANFILES += $(gir_DATA) $(typelibs_DATA)
|
||||
endif # HAVE_INTROSPECTION
|
||||
endif
|
||||
|
||||
EXTRA_DIST += \
|
||||
src/gudev/gudev-1.0.pc.in \
|
||||
src/gudev/gudevmarshal.list \
|
||||
src/gudev/gudevenumtypes.h.template \
|
||||
src/gudev/gudevenumtypes.c.template \
|
||||
src/gudev/gjs-example.js \
|
||||
src/gudev/seed-example-enum.js \
|
||||
src/gudev/seed-example.js
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
mtd_probe_SOURCES = \
|
||||
src/udev/mtd_probe/mtd_probe.c \
|
||||
@ -6826,11 +6663,6 @@ DISTCHECK_CONFIGURE_FLAGS += \
|
||||
--with-python
|
||||
endif
|
||||
|
||||
if ENABLE_GTK_DOC
|
||||
DISTCHECK_CONFIGURE_FLAGS += \
|
||||
--enable-gtk-doc
|
||||
endif
|
||||
|
||||
if ENABLE_SPLIT_USR
|
||||
DISTCHECK_CONFIGURE_FLAGS += \
|
||||
--enable-split-usr
|
||||
@ -6895,10 +6727,6 @@ upload: all check dist
|
||||
|
||||
.PHONY: doc-sync
|
||||
doc-sync: all destdir-sphinx
|
||||
gtkdoc-rebase --html-dir=docs/libudev/html --online
|
||||
rsync -rlv --delete docs/libudev/html/ --omit-dir-times $(www_target)/libudev/
|
||||
gtkdoc-rebase --html-dir=docs/gudev/html --online
|
||||
rsync -rlv --delete docs/gudev/html/ --omit-dir-times $(www_target)/gudev/
|
||||
rsync -rlv --delete-excluded --include="*.html" --exclude="*" --omit-dir-times man/ $(www_target)/man/
|
||||
rsync -rlv --delete --omit-dir-times docs/html/python-systemd/ $(www_target)/python-systemd/
|
||||
|
||||
|
1
README
1
README
@ -152,7 +152,6 @@ REQUIREMENTS:
|
||||
libtool
|
||||
intltool
|
||||
gperf
|
||||
gtkdocize (optional)
|
||||
python (optional)
|
||||
python-lxml (optional, but required to build the indices)
|
||||
sphinx (optional)
|
||||
|
2
TODO
2
TODO
@ -537,8 +537,6 @@ Features:
|
||||
|
||||
* maybe do not install getty@tty1.service symlink in /etc but in /usr?
|
||||
|
||||
* re-enable "make check" for gtk-doc (broken for unknown reason)
|
||||
|
||||
* fstab: add new mount option x-systemd-after=/foobar/waldo to allow manual dependencies to other mount points
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=812826
|
||||
|
||||
|
11
autogen.sh
11
autogen.sh
@ -28,15 +28,6 @@ if [ -f .git/hooks/pre-commit.sample ] && [ ! -f .git/hooks/pre-commit ]; then
|
||||
echo "Activated pre-commit hook." || :
|
||||
fi
|
||||
|
||||
if which gtkdocize >/dev/null 2>/dev/null; then
|
||||
gtkdocize --docdir docs/ --flavour no-tmpl
|
||||
gtkdocargs=--enable-gtk-doc
|
||||
else
|
||||
echo "You don't have gtk-doc installed, and thus won't be able to generate the documentation."
|
||||
rm -f docs/gtk-doc.make
|
||||
echo 'EXTRA_DIST =' > docs/gtk-doc.make
|
||||
fi
|
||||
|
||||
intltoolize --force --automake
|
||||
autoreconf --force --install --symlink
|
||||
|
||||
@ -48,7 +39,7 @@ args="\
|
||||
--sysconfdir=/etc \
|
||||
--localstatedir=/var \
|
||||
--libdir=$(libdir /usr/lib) \
|
||||
$gtkdocargs"
|
||||
"
|
||||
|
||||
if [ -f "$topdir/.config.args" ]; then
|
||||
args="$args $(cat $topdir/.config.args)"
|
||||
|
40
configure.ac
40
configure.ac
@ -107,22 +107,6 @@ AS_IF([! ln --relative --help > /dev/null 2>&1], [AC_MSG_ERROR([*** ln doesn't s
|
||||
|
||||
M4_DEFINES=
|
||||
|
||||
# gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
|
||||
m4_ifdef([GTK_DOC_CHECK], [
|
||||
GTK_DOC_CHECK([1.18],[--flavour no-tmpl])],
|
||||
[AM_CONDITIONAL([ENABLE_GTK_DOC], [false])
|
||||
enable_gtk_doc=no])
|
||||
|
||||
AS_IF([test "x$enable_gtk_doc" = "xyes" -a "x$XSLTPROC" = x], [
|
||||
AC_MSG_ERROR([*** GTK doc requested but xsltproc not found])
|
||||
])
|
||||
|
||||
m4_ifdef([GOBJECT_INTROSPECTION_CHECK], [
|
||||
GOBJECT_INTROSPECTION_CHECK([1.31.1])
|
||||
], [
|
||||
AM_CONDITIONAL([HAVE_INTROSPECTION], [false])
|
||||
enable_introspection=no])
|
||||
|
||||
AC_CHECK_TOOL(OBJCOPY, objcopy)
|
||||
AC_CHECK_TOOL(STRINGS, strings)
|
||||
AC_CHECK_TOOL(GPERF, gperf)
|
||||
@ -1293,14 +1277,6 @@ if test "x$enable_myhostname" != "xno"; then
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"])
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
AC_ARG_ENABLE([gudev],
|
||||
AS_HELP_STRING([--disable-gudev], [disable Gobject libudev support @<:@default=enabled@:>@]),
|
||||
[], [enable_gudev=yes])
|
||||
AS_IF([test "x$enable_gudev" = "xyes"], [ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.22.0 gobject-2.0 >= 2.22.0 gio-2.0]) ])
|
||||
AM_CONDITIONAL([ENABLE_GUDEV], [test "x$enable_gudev" = "xyes"])
|
||||
AS_IF([test "x$enable_gudev" = "xyes"], [ AC_DEFINE(HAVE_GLIB, 1, [Define if glib is available]) ])
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
AC_ARG_ENABLE(hwdb, [AC_HELP_STRING([--disable-hwdb], [disable hardware database support])],
|
||||
enable_hwdb=$enableval, enable_hwdb=yes)
|
||||
@ -1444,13 +1420,6 @@ AS_IF([test "x${enable_split_usr}" = "xyes"], [
|
||||
])
|
||||
AM_CONDITIONAL(ENABLE_SPLIT_USR, [test "x${enable_split_usr}" = "xyes"])
|
||||
|
||||
# Work around intltoolize and gtk-doc problems in VPATH builds
|
||||
AM_CONDITIONAL([ENABLE_GTK_DOC_TESTS], [test "x$0" = "x./configure"],
|
||||
[Define to do gtk-doc tests])
|
||||
AS_IF([test "x$0" != "x./configure"], [
|
||||
AC_SUBST([INTLTOOL_UPDATE], [/bin/true])
|
||||
])
|
||||
|
||||
# QEMU and OVMF UEFI firmware
|
||||
AS_IF([test x"$cross_compiling" = "xyes"], [], [
|
||||
AC_PATH_PROG([QEMU], [qemu-system-x86_64])
|
||||
@ -1505,11 +1474,8 @@ AC_SUBST([rootprefix], [$with_rootprefix])
|
||||
AC_SUBST([rootlibdir], [$with_rootlibdir])
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile po/Makefile.in
|
||||
docs/libudev/Makefile
|
||||
docs/libudev/version.xml
|
||||
docs/gudev/Makefile
|
||||
docs/gudev/version.xml
|
||||
Makefile
|
||||
po/Makefile.in
|
||||
])
|
||||
|
||||
AC_OUTPUT
|
||||
@ -1575,7 +1541,6 @@ AC_MSG_RESULT([
|
||||
libmount: ${have_libmount}
|
||||
dbus: ${have_dbus}
|
||||
nss-myhostname: ${have_myhostname}
|
||||
gudev: ${enable_gudev}
|
||||
hwdb: ${enable_hwdb}
|
||||
gintrospection: ${enable_introspection}
|
||||
terminal: ${have_terminal}
|
||||
@ -1583,7 +1548,6 @@ AC_MSG_RESULT([
|
||||
Python: ${have_python}
|
||||
Python Headers: ${have_python_devel}
|
||||
man pages: ${have_manpages}
|
||||
gtk-doc: ${enable_gtk_doc}
|
||||
test coverage: ${have_coverage}
|
||||
Split /usr: ${enable_split_usr}
|
||||
SysV compatibility: ${SYSTEM_SYSV_COMPAT}
|
||||
|
1
docs/.gitignore
vendored
1
docs/.gitignore
vendored
@ -1,2 +1 @@
|
||||
/gtk-doc.make
|
||||
/html/
|
||||
|
19
docs/gudev/.gitignore
vendored
19
docs/gudev/.gitignore
vendored
@ -1,19 +0,0 @@
|
||||
/*.bak
|
||||
/gtk-doc.make
|
||||
/version.xml
|
||||
/Makefile
|
||||
/gudev-overrides.txt
|
||||
/gudev-decl-list.txt
|
||||
/gudev-decl.txt
|
||||
/gudev-undeclared.txt
|
||||
/gudev-undocumented.txt
|
||||
/gudev-unused.txt
|
||||
/gudev.args
|
||||
/gudev.hierarchy
|
||||
/gudev.interfaces
|
||||
/gudev.prerequisites
|
||||
/gudev.signals
|
||||
/html/
|
||||
/xml/
|
||||
/*.stamp
|
||||
/tmpl/
|
@ -1,115 +0,0 @@
|
||||
## 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=gudev
|
||||
|
||||
# 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/gudev $(top_builddir)/src/gudev
|
||||
|
||||
# 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=g_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/gudev/*.h
|
||||
CFILE_GLOB=$(top_srcdir)/src/gudev/*.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=gudevenumtypes.h gudevmarshal.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 = \
|
||||
$(GLIB_CFLAGS) \
|
||||
-I$(top_srcdir)/src/gudev \
|
||||
-I$(top_builddir)/src/gudev
|
||||
|
||||
GTKDOC_LIBS = \
|
||||
$(GLIB_LIBS) \
|
||||
$(top_builddir)/libgudev-1.0.la
|
||||
|
||||
# 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
|
@ -1,52 +0,0 @@
|
||||
<?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>GUdev 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/gudev/">
|
||||
http://www.freedesktop.org/software/systemd/gudev/
|
||||
</ulink>.
|
||||
</releaseinfo>
|
||||
<copyright>
|
||||
<year>2009-2012</year>
|
||||
<holder>David Zeuthen <davidz@redhat.com></holder>
|
||||
<holder>Bastien Nocera <hadess@hadess.net></holder>
|
||||
</copyright>
|
||||
</bookinfo>
|
||||
|
||||
<chapter id="ref-API">
|
||||
<title>API Reference</title>
|
||||
<xi:include href="xml/gudevclient.xml"/>
|
||||
<xi:include href="xml/gudevdevice.xml"/>
|
||||
<xi:include href="xml/gudevenumerator.xml"/>
|
||||
</chapter>
|
||||
|
||||
<chapter id="gudev-hierarchy">
|
||||
<title>Object Hierarchy</title>
|
||||
<xi:include href="xml/tree_index.sgml"/>
|
||||
</chapter>
|
||||
|
||||
<index id="api-index-full">
|
||||
<title>API Index</title>
|
||||
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<index role="165">
|
||||
<title>Index of new symbols in 165</title>
|
||||
<xi:include href="xml/api-index-165.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<index id="api-index-deprecated" role="deprecated">
|
||||
<title>Index of deprecated API</title>
|
||||
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
</book>
|
@ -1,102 +0,0 @@
|
||||
<SECTION>
|
||||
<FILE>gudevclient</FILE>
|
||||
<TITLE>GUdevClient</TITLE>
|
||||
GUdevClient
|
||||
GUdevClientClass
|
||||
GUdevDeviceType
|
||||
GUdevDeviceNumber
|
||||
g_udev_client_new
|
||||
g_udev_client_query_by_subsystem
|
||||
g_udev_client_query_by_device_number
|
||||
g_udev_client_query_by_device_file
|
||||
g_udev_client_query_by_sysfs_path
|
||||
g_udev_client_query_by_subsystem_and_name
|
||||
<SUBSECTION Standard>
|
||||
G_UDEV_CLIENT
|
||||
G_UDEV_IS_CLIENT
|
||||
G_UDEV_TYPE_CLIENT
|
||||
g_udev_client_get_type
|
||||
G_UDEV_CLIENT_CLASS
|
||||
G_UDEV_IS_CLIENT_CLASS
|
||||
G_UDEV_CLIENT_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GUdevClientPrivate
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gudevdevice</FILE>
|
||||
<TITLE>GUdevDevice</TITLE>
|
||||
GUdevDevice
|
||||
GUdevDeviceClass
|
||||
g_udev_device_get_subsystem
|
||||
g_udev_device_get_devtype
|
||||
g_udev_device_get_name
|
||||
g_udev_device_get_number
|
||||
g_udev_device_get_sysfs_path
|
||||
g_udev_device_get_driver
|
||||
g_udev_device_get_action
|
||||
g_udev_device_get_seqnum
|
||||
g_udev_device_get_device_type
|
||||
g_udev_device_get_device_number
|
||||
g_udev_device_get_device_file
|
||||
g_udev_device_get_device_file_symlinks
|
||||
g_udev_device_get_parent
|
||||
g_udev_device_get_parent_with_subsystem
|
||||
g_udev_device_get_tags
|
||||
g_udev_device_get_is_initialized
|
||||
g_udev_device_get_usec_since_initialized
|
||||
g_udev_device_get_property_keys
|
||||
g_udev_device_has_property
|
||||
g_udev_device_get_property
|
||||
g_udev_device_get_property_as_int
|
||||
g_udev_device_get_property_as_uint64
|
||||
g_udev_device_get_property_as_double
|
||||
g_udev_device_get_property_as_boolean
|
||||
g_udev_device_get_property_as_strv
|
||||
g_udev_device_get_sysfs_attr_keys
|
||||
g_udev_device_has_sysfs_attr
|
||||
g_udev_device_get_sysfs_attr
|
||||
g_udev_device_get_sysfs_attr_as_int
|
||||
g_udev_device_get_sysfs_attr_as_uint64
|
||||
g_udev_device_get_sysfs_attr_as_double
|
||||
g_udev_device_get_sysfs_attr_as_boolean
|
||||
g_udev_device_get_sysfs_attr_as_strv
|
||||
<SUBSECTION Standard>
|
||||
G_UDEV_DEVICE
|
||||
G_UDEV_IS_DEVICE
|
||||
G_UDEV_TYPE_DEVICE
|
||||
g_udev_device_get_type
|
||||
G_UDEV_DEVICE_CLASS
|
||||
G_UDEV_IS_DEVICE_CLASS
|
||||
G_UDEV_DEVICE_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GUdevDevicePrivate
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gudevenumerator</FILE>
|
||||
<TITLE>GUdevEnumerator</TITLE>
|
||||
GUdevEnumerator
|
||||
GUdevEnumeratorClass
|
||||
g_udev_enumerator_new
|
||||
g_udev_enumerator_add_match_subsystem
|
||||
g_udev_enumerator_add_nomatch_subsystem
|
||||
g_udev_enumerator_add_match_sysfs_attr
|
||||
g_udev_enumerator_add_nomatch_sysfs_attr
|
||||
g_udev_enumerator_add_match_property
|
||||
g_udev_enumerator_add_match_name
|
||||
g_udev_enumerator_add_match_tag
|
||||
g_udev_enumerator_add_match_is_initialized
|
||||
g_udev_enumerator_add_sysfs_path
|
||||
g_udev_enumerator_execute
|
||||
<SUBSECTION Standard>
|
||||
G_UDEV_ENUMERATOR
|
||||
G_UDEV_IS_ENUMERATOR
|
||||
G_UDEV_TYPE_ENUMERATOR
|
||||
g_udev_enumerator_get_type
|
||||
G_UDEV_ENUMERATOR_CLASS
|
||||
G_UDEV_IS_ENUMERATOR_CLASS
|
||||
G_UDEV_ENUMERATOR_GET_CLASS
|
||||
<SUBSECTION Private>
|
||||
GUdevEnumeratorPrivate
|
||||
</SECTION>
|
@ -1,4 +0,0 @@
|
||||
g_udev_device_type_get_type
|
||||
g_udev_device_get_type
|
||||
g_udev_client_get_type
|
||||
g_udev_enumerator_get_type
|
@ -1 +0,0 @@
|
||||
@VERSION@
|
19
docs/libudev/.gitignore
vendored
19
docs/libudev/.gitignore
vendored
@ -1,19 +0,0 @@
|
||||
/gtk-doc.make
|
||||
/version.xml
|
||||
/Makefile
|
||||
/libudev-overrides.txt
|
||||
/libudev-decl-list.txt
|
||||
/libudev-decl.txt
|
||||
/libudev-undeclared.txt
|
||||
/libudev-undocumented.txt
|
||||
/libudev-unused.txt
|
||||
/libudev.args
|
||||
/libudev.hierarchy
|
||||
/libudev.interfaces
|
||||
/libudev.prerequisites
|
||||
/libudev.signals
|
||||
/html/
|
||||
/xml/
|
||||
/*.stamp
|
||||
/*.bak
|
||||
/tmpl/
|
@ -1,109 +0,0 @@
|
||||
## 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
|
||||
|
||||
# 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
|
@ -1,40 +0,0 @@
|
||||
<?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 <kay@vrfy.org></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>
|
@ -1,137 +0,0 @@
|
||||
<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
|
||||
udev_queue_get_fd
|
||||
udev_queue_flush
|
||||
</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>
|
@ -1 +0,0 @@
|
||||
@VERSION@
|
1
m4/.gitignore
vendored
1
m4/.gitignore
vendored
@ -4,4 +4,3 @@ ltoptions.m4
|
||||
ltsugar.m4
|
||||
ltversion.m4
|
||||
lt~obsolete.m4
|
||||
gtk-doc.m4
|
||||
|
@ -232,18 +232,6 @@
|
||||
</xsl:attribute>
|
||||
<xsl:text>Python </xsl:text>
|
||||
</a>·
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
<xsl:text>../libudev/index.html</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:text>libudev </xsl:text>
|
||||
</a>·
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
<xsl:text>../libudev/index.html</xsl:text>
|
||||
</xsl:attribute>
|
||||
<xsl:text>gudev </xsl:text>
|
||||
</a>
|
||||
|
||||
<span style="float:right">
|
||||
<xsl:text>systemd </xsl:text>
|
||||
|
7
src/gudev/.gitignore
vendored
7
src/gudev/.gitignore
vendored
@ -1,7 +0,0 @@
|
||||
gudev-1.0.pc
|
||||
gudevenumtypes.c
|
||||
gudevenumtypes.h
|
||||
gudevmarshal.c
|
||||
gudevmarshal.h
|
||||
GUdev-1.0.gir
|
||||
GUdev-1.0.typelib
|
@ -1 +0,0 @@
|
||||
../Makefile
|
@ -1,75 +0,0 @@
|
||||
#!/usr/bin/env gjs-console
|
||||
|
||||
// This currently depends on the following patches to gjs
|
||||
//
|
||||
// http://bugzilla.gnome.org/show_bug.cgi?id=584558
|
||||
// http://bugzilla.gnome.org/show_bug.cgi?id=584560
|
||||
// http://bugzilla.gnome.org/show_bug.cgi?id=584568
|
||||
|
||||
const GUdev = imports.gi.GUdev;
|
||||
const Mainloop = imports.mainloop;
|
||||
|
||||
function print_device (device) {
|
||||
print (" subsystem: " + device.get_subsystem ());
|
||||
print (" devtype: " + device.get_devtype ());
|
||||
print (" name: " + device.get_name ());
|
||||
print (" number: " + device.get_number ());
|
||||
print (" sysfs_path: " + device.get_sysfs_path ());
|
||||
print (" driver: " + device.get_driver ());
|
||||
print (" action: " + device.get_action ());
|
||||
print (" seqnum: " + device.get_seqnum ());
|
||||
print (" device type: " + device.get_device_type ());
|
||||
print (" device number: " + device.get_device_number ());
|
||||
print (" device file: " + device.get_device_file ());
|
||||
print (" device file symlinks: " + device.get_device_file_symlinks ());
|
||||
print (" foo: " + device.get_sysfs_attr_as_strv ("stat"));
|
||||
var keys = device.get_property_keys ();
|
||||
for (var n = 0; n < keys.length; n++) {
|
||||
print (" " + keys[n] + "=" + device.get_property (keys[n]));
|
||||
}
|
||||
}
|
||||
|
||||
function on_uevent (client, action, device) {
|
||||
print ("action " + action + " on device " + device.get_sysfs_path());
|
||||
print_device (device);
|
||||
print ("");
|
||||
}
|
||||
|
||||
var client = new GUdev.Client ({subsystems: ["block", "usb/usb_interface"]});
|
||||
client.connect ("uevent", on_uevent);
|
||||
|
||||
var block_devices = client.query_by_subsystem ("block");
|
||||
for (var n = 0; n < block_devices.length; n++) {
|
||||
print ("block device: " + block_devices[n].get_device_file ());
|
||||
}
|
||||
|
||||
var d;
|
||||
|
||||
d = client.query_by_device_number (GUdev.DeviceType.BLOCK, 0x0810);
|
||||
if (d == null) {
|
||||
print ("query_by_device_number 0x810 -> null");
|
||||
} else {
|
||||
print ("query_by_device_number 0x810 -> " + d.get_device_file ());
|
||||
var dd = d.get_parent_with_subsystem ("usb", null);
|
||||
print_device (dd);
|
||||
print ("--------------------------------------------------------------------------");
|
||||
while (d != null) {
|
||||
print_device (d);
|
||||
print ("");
|
||||
d = d.get_parent ();
|
||||
}
|
||||
}
|
||||
|
||||
d = client.query_by_sysfs_path ("/sys/block/sda/sda1");
|
||||
print ("query_by_sysfs_path (\"/sys/block/sda1\") -> " + d.get_device_file ());
|
||||
|
||||
d = client.query_by_subsystem_and_name ("block", "sda2");
|
||||
print ("query_by_subsystem_and_name (\"block\", \"sda2\") -> " + d.get_device_file ());
|
||||
|
||||
d = client.query_by_device_file ("/dev/sda");
|
||||
print ("query_by_device_file (\"/dev/sda\") -> " + d.get_device_file ());
|
||||
|
||||
d = client.query_by_device_file ("/dev/block/8:0");
|
||||
print ("query_by_device_file (\"/dev/block/8:0\") -> " + d.get_device_file ());
|
||||
|
||||
Mainloop.run('udev-example');
|
@ -1,11 +0,0 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: gudev-1.0
|
||||
Description: GObject bindings for libudev
|
||||
Version: @VERSION@
|
||||
Requires: glib-2.0, gobject-2.0
|
||||
Libs: -L${libdir} -lgudev-1.0
|
||||
Cflags: -I${includedir}/gudev-1.0
|
@ -1,32 +0,0 @@
|
||||
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef __G_UDEV_H__
|
||||
#define __G_UDEV_H__
|
||||
|
||||
#define _GUDEV_INSIDE_GUDEV_H
|
||||
#include <gudev/gudevenums.h>
|
||||
#include <gudev/gudevenumtypes.h>
|
||||
#include <gudev/gudevtypes.h>
|
||||
#include <gudev/gudevclient.h>
|
||||
#include <gudev/gudevdevice.h>
|
||||
#include <gudev/gudevenumerator.h>
|
||||
#undef _GUDEV_INSIDE_GUDEV_H
|
||||
|
||||
#endif /* __G_UDEV_H__ */
|
@ -1,533 +0,0 @@
|
||||
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright (C) 2008-2010 David Zeuthen <davidz@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "gudevclient.h"
|
||||
#include "gudevdevice.h"
|
||||
#include "gudevmarshal.h"
|
||||
#include "gudevprivate.h"
|
||||
|
||||
/**
|
||||
* SECTION:gudevclient
|
||||
* @short_description: Query devices and listen to uevents
|
||||
*
|
||||
* #GUdevClient is used to query information about devices on a Linux
|
||||
* system from the Linux kernel and the udev device
|
||||
* manager.
|
||||
*
|
||||
* Device information is retrieved from the kernel (through the
|
||||
* <literal>sysfs</literal> filesystem) and the udev daemon (through a
|
||||
* <literal>tmpfs</literal> filesystem) and presented through
|
||||
* #GUdevDevice objects. This means that no blocking IO ever happens
|
||||
* (in both cases, we are essentially just reading data from kernel
|
||||
* memory) and as such there are no asynchronous versions of the
|
||||
* provided methods.
|
||||
*
|
||||
* To get #GUdevDevice objects, use
|
||||
* g_udev_client_query_by_subsystem(),
|
||||
* g_udev_client_query_by_device_number(),
|
||||
* g_udev_client_query_by_device_file(),
|
||||
* g_udev_client_query_by_sysfs_path(),
|
||||
* g_udev_client_query_by_subsystem_and_name()
|
||||
* or the #GUdevEnumerator type.
|
||||
*
|
||||
* To listen to uevents, connect to the #GUdevClient::uevent signal.
|
||||
*/
|
||||
|
||||
struct _GUdevClientPrivate
|
||||
{
|
||||
GSource *watch_source;
|
||||
struct udev *udev;
|
||||
struct udev_monitor *monitor;
|
||||
|
||||
gchar **subsystems;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_SUBSYSTEMS,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
UEVENT_SIGNAL,
|
||||
LAST_SIGNAL,
|
||||
};
|
||||
|
||||
static guint signals[LAST_SIGNAL] = { 0 };
|
||||
|
||||
G_DEFINE_TYPE (GUdevClient, g_udev_client, G_TYPE_OBJECT)
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------- */
|
||||
|
||||
static gboolean
|
||||
monitor_event (GIOChannel *source,
|
||||
GIOCondition condition,
|
||||
gpointer data)
|
||||
{
|
||||
GUdevClient *client = (GUdevClient *) data;
|
||||
GUdevDevice *device;
|
||||
struct udev_device *udevice;
|
||||
|
||||
if (client->priv->monitor == NULL)
|
||||
goto out;
|
||||
udevice = udev_monitor_receive_device (client->priv->monitor);
|
||||
if (udevice == NULL)
|
||||
goto out;
|
||||
|
||||
device = _g_udev_device_new (udevice);
|
||||
udev_device_unref (udevice);
|
||||
g_signal_emit (client,
|
||||
signals[UEVENT_SIGNAL],
|
||||
0,
|
||||
g_udev_device_get_action (device),
|
||||
device);
|
||||
g_object_unref (device);
|
||||
|
||||
out:
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
g_udev_client_finalize (GObject *object)
|
||||
{
|
||||
GUdevClient *client = G_UDEV_CLIENT (object);
|
||||
|
||||
if (client->priv->watch_source != NULL)
|
||||
{
|
||||
g_source_destroy (client->priv->watch_source);
|
||||
client->priv->watch_source = NULL;
|
||||
}
|
||||
|
||||
if (client->priv->monitor != NULL)
|
||||
{
|
||||
udev_monitor_unref (client->priv->monitor);
|
||||
client->priv->monitor = NULL;
|
||||
}
|
||||
|
||||
if (client->priv->udev != NULL)
|
||||
{
|
||||
udev_unref (client->priv->udev);
|
||||
client->priv->udev = NULL;
|
||||
}
|
||||
|
||||
g_strfreev (client->priv->subsystems);
|
||||
|
||||
if (G_OBJECT_CLASS (g_udev_client_parent_class)->finalize != NULL)
|
||||
G_OBJECT_CLASS (g_udev_client_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
g_udev_client_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GUdevClient *client = G_UDEV_CLIENT (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_SUBSYSTEMS:
|
||||
if (client->priv->subsystems != NULL)
|
||||
g_strfreev (client->priv->subsystems);
|
||||
client->priv->subsystems = g_strdupv (g_value_get_boxed (value));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
g_udev_client_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GUdevClient *client = G_UDEV_CLIENT (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_SUBSYSTEMS:
|
||||
g_value_set_boxed (value, client->priv->subsystems);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
g_udev_client_constructed (GObject *object)
|
||||
{
|
||||
GUdevClient *client = G_UDEV_CLIENT (object);
|
||||
GIOChannel *channel;
|
||||
guint n;
|
||||
|
||||
client->priv->udev = udev_new ();
|
||||
|
||||
/* connect to event source */
|
||||
client->priv->monitor = udev_monitor_new_from_netlink (client->priv->udev, "udev");
|
||||
|
||||
//g_debug ("ss = %p", client->priv->subsystems);
|
||||
|
||||
if (client->priv->subsystems != NULL)
|
||||
{
|
||||
/* install subsystem filters to only wake up for certain events */
|
||||
for (n = 0; client->priv->subsystems[n] != NULL; n++)
|
||||
{
|
||||
gchar *subsystem;
|
||||
gchar *devtype;
|
||||
gchar *s;
|
||||
|
||||
subsystem = g_strdup (client->priv->subsystems[n]);
|
||||
devtype = NULL;
|
||||
|
||||
//g_debug ("s = '%s'", subsystem);
|
||||
|
||||
s = strstr (subsystem, "/");
|
||||
if (s != NULL)
|
||||
{
|
||||
devtype = s + 1;
|
||||
*s = '\0';
|
||||
}
|
||||
|
||||
if (client->priv->monitor != NULL)
|
||||
udev_monitor_filter_add_match_subsystem_devtype (client->priv->monitor, subsystem, devtype);
|
||||
|
||||
g_free (subsystem);
|
||||
}
|
||||
|
||||
/* listen to events, and buffer them */
|
||||
if (client->priv->monitor != NULL)
|
||||
{
|
||||
udev_monitor_enable_receiving (client->priv->monitor);
|
||||
channel = g_io_channel_unix_new (udev_monitor_get_fd (client->priv->monitor));
|
||||
client->priv->watch_source = g_io_create_watch (channel, G_IO_IN);
|
||||
g_io_channel_unref (channel);
|
||||
g_source_set_callback (client->priv->watch_source, (GSourceFunc) monitor_event, client, NULL);
|
||||
g_source_attach (client->priv->watch_source, g_main_context_get_thread_default ());
|
||||
g_source_unref (client->priv->watch_source);
|
||||
}
|
||||
else
|
||||
{
|
||||
client->priv->watch_source = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (G_OBJECT_CLASS (g_udev_client_parent_class)->constructed != NULL)
|
||||
G_OBJECT_CLASS (g_udev_client_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
g_udev_client_class_init (GUdevClientClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = (GObjectClass *) klass;
|
||||
|
||||
gobject_class->constructed = g_udev_client_constructed;
|
||||
gobject_class->set_property = g_udev_client_set_property;
|
||||
gobject_class->get_property = g_udev_client_get_property;
|
||||
gobject_class->finalize = g_udev_client_finalize;
|
||||
|
||||
/**
|
||||
* GUdevClient:subsystems:
|
||||
*
|
||||
* The subsystems to listen for uevents on.
|
||||
*
|
||||
* To listen for only a specific DEVTYPE for a given SUBSYSTEM, use
|
||||
* "subsystem/devtype". For example, to only listen for uevents
|
||||
* where SUBSYSTEM is usb and DEVTYPE is usb_interface, use
|
||||
* "usb/usb_interface".
|
||||
*
|
||||
* If this property is %NULL, then no events will be reported. If
|
||||
* it's the empty array, events from all subsystems will be
|
||||
* reported.
|
||||
*/
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_SUBSYSTEMS,
|
||||
g_param_spec_boxed ("subsystems",
|
||||
"The subsystems to listen for changes on",
|
||||
"The subsystems to listen for changes on",
|
||||
G_TYPE_STRV,
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
/**
|
||||
* GUdevClient::uevent:
|
||||
* @client: The #GUdevClient receiving the event.
|
||||
* @action: The action for the uevent e.g. "add", "remove", "change", "move", etc.
|
||||
* @device: Details about the #GUdevDevice the event is for.
|
||||
*
|
||||
* Emitted when @client receives an uevent.
|
||||
*
|
||||
* This signal is emitted in the
|
||||
* <link linkend="g-main-context-push-thread-default">thread-default main loop</link>
|
||||
* of the thread that @client was created in.
|
||||
*/
|
||||
signals[UEVENT_SIGNAL] = g_signal_new ("uevent",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (GUdevClientClass, uevent),
|
||||
NULL,
|
||||
NULL,
|
||||
g_udev_marshal_VOID__STRING_OBJECT,
|
||||
G_TYPE_NONE,
|
||||
2,
|
||||
G_TYPE_STRING,
|
||||
G_UDEV_TYPE_DEVICE);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (GUdevClientPrivate));
|
||||
}
|
||||
|
||||
static void
|
||||
g_udev_client_init (GUdevClient *client)
|
||||
{
|
||||
client->priv = G_TYPE_INSTANCE_GET_PRIVATE (client,
|
||||
G_UDEV_TYPE_CLIENT,
|
||||
GUdevClientPrivate);
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_client_new:
|
||||
* @subsystems: (array zero-terminated=1) (element-type utf8) (transfer none) (allow-none): A %NULL terminated string array of subsystems to listen for uevents on, %NULL to not listen on uevents at all, or an empty array to listen to uevents on all subsystems. See the documentation for the #GUdevClient:subsystems property for details on this parameter.
|
||||
*
|
||||
* Constructs a #GUdevClient object that can be used to query
|
||||
* information about devices. Connect to the #GUdevClient::uevent
|
||||
* signal to listen for uevents. Note that signals are emitted in the
|
||||
* <link linkend="g-main-context-push-thread-default">thread-default main loop</link>
|
||||
* of the thread that you call this constructor from.
|
||||
*
|
||||
* Returns: A new #GUdevClient object. Free with g_object_unref().
|
||||
*/
|
||||
GUdevClient *
|
||||
g_udev_client_new (const gchar * const *subsystems)
|
||||
{
|
||||
return G_UDEV_CLIENT (g_object_new (G_UDEV_TYPE_CLIENT, "subsystems", subsystems, NULL));
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_client_query_by_subsystem:
|
||||
* @client: A #GUdevClient.
|
||||
* @subsystem: (allow-none): The subsystem to get devices for or %NULL to get all devices.
|
||||
*
|
||||
* Gets all devices belonging to @subsystem.
|
||||
*
|
||||
* Returns: (nullable) (element-type GUdevDevice) (transfer full): A
|
||||
* list of #GUdevDevice objects. The caller should free the result by
|
||||
* using g_object_unref() on each element in the list and then
|
||||
* g_list_free() on the list.
|
||||
*/
|
||||
GList *
|
||||
g_udev_client_query_by_subsystem (GUdevClient *client,
|
||||
const gchar *subsystem)
|
||||
{
|
||||
struct udev_enumerate *enumerate;
|
||||
struct udev_list_entry *l, *devices;
|
||||
GList *ret;
|
||||
|
||||
g_return_val_if_fail (G_UDEV_IS_CLIENT (client), NULL);
|
||||
|
||||
ret = NULL;
|
||||
|
||||
/* prepare a device scan */
|
||||
enumerate = udev_enumerate_new (client->priv->udev);
|
||||
|
||||
/* filter for subsystem */
|
||||
if (subsystem != NULL)
|
||||
udev_enumerate_add_match_subsystem (enumerate, subsystem);
|
||||
/* retrieve the list */
|
||||
udev_enumerate_scan_devices (enumerate);
|
||||
|
||||
/* add devices to the list */
|
||||
devices = udev_enumerate_get_list_entry (enumerate);
|
||||
for (l = devices; l != NULL; l = udev_list_entry_get_next (l))
|
||||
{
|
||||
struct udev_device *udevice;
|
||||
GUdevDevice *device;
|
||||
|
||||
udevice = udev_device_new_from_syspath (udev_enumerate_get_udev (enumerate),
|
||||
udev_list_entry_get_name (l));
|
||||
if (udevice == NULL)
|
||||
continue;
|
||||
device = _g_udev_device_new (udevice);
|
||||
udev_device_unref (udevice);
|
||||
ret = g_list_prepend (ret, device);
|
||||
}
|
||||
udev_enumerate_unref (enumerate);
|
||||
|
||||
ret = g_list_reverse (ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_client_query_by_device_number:
|
||||
* @client: A #GUdevClient.
|
||||
* @type: A value from the #GUdevDeviceType enumeration.
|
||||
* @number: A device number.
|
||||
*
|
||||
* Looks up a device for a type and device number.
|
||||
*
|
||||
* Returns: (nullable) (transfer full): A #GUdevDevice object or %NULL
|
||||
* if the device was not found. Free with g_object_unref().
|
||||
*/
|
||||
GUdevDevice *
|
||||
g_udev_client_query_by_device_number (GUdevClient *client,
|
||||
GUdevDeviceType type,
|
||||
GUdevDeviceNumber number)
|
||||
{
|
||||
struct udev_device *udevice;
|
||||
GUdevDevice *device;
|
||||
|
||||
g_return_val_if_fail (G_UDEV_IS_CLIENT (client), NULL);
|
||||
|
||||
device = NULL;
|
||||
udevice = udev_device_new_from_devnum (client->priv->udev, type, number);
|
||||
|
||||
if (udevice == NULL)
|
||||
goto out;
|
||||
|
||||
device = _g_udev_device_new (udevice);
|
||||
udev_device_unref (udevice);
|
||||
|
||||
out:
|
||||
return device;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_client_query_by_device_file:
|
||||
* @client: A #GUdevClient.
|
||||
* @device_file: A device file.
|
||||
*
|
||||
* Looks up a device for a device file.
|
||||
*
|
||||
* Returns: (nullable) (transfer full): A #GUdevDevice object or %NULL
|
||||
* if the device was not found. Free with g_object_unref().
|
||||
*/
|
||||
GUdevDevice *
|
||||
g_udev_client_query_by_device_file (GUdevClient *client,
|
||||
const gchar *device_file)
|
||||
{
|
||||
struct stat stat_buf;
|
||||
GUdevDevice *device;
|
||||
|
||||
g_return_val_if_fail (G_UDEV_IS_CLIENT (client), NULL);
|
||||
g_return_val_if_fail (device_file != NULL, NULL);
|
||||
|
||||
device = NULL;
|
||||
|
||||
if (stat (device_file, &stat_buf) != 0)
|
||||
goto out;
|
||||
|
||||
if (stat_buf.st_rdev == 0)
|
||||
goto out;
|
||||
|
||||
if (S_ISBLK (stat_buf.st_mode))
|
||||
device = g_udev_client_query_by_device_number (client, G_UDEV_DEVICE_TYPE_BLOCK, stat_buf.st_rdev);
|
||||
else if (S_ISCHR (stat_buf.st_mode))
|
||||
device = g_udev_client_query_by_device_number (client, G_UDEV_DEVICE_TYPE_CHAR, stat_buf.st_rdev);
|
||||
|
||||
out:
|
||||
return device;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_client_query_by_sysfs_path:
|
||||
* @client: A #GUdevClient.
|
||||
* @sysfs_path: A sysfs path.
|
||||
*
|
||||
* Looks up a device for a sysfs path.
|
||||
*
|
||||
* Returns: (nullable) (transfer full): A #GUdevDevice object or %NULL
|
||||
* if the device was not found. Free with g_object_unref().
|
||||
*/
|
||||
GUdevDevice *
|
||||
g_udev_client_query_by_sysfs_path (GUdevClient *client,
|
||||
const gchar *sysfs_path)
|
||||
{
|
||||
struct udev_device *udevice;
|
||||
GUdevDevice *device;
|
||||
|
||||
g_return_val_if_fail (G_UDEV_IS_CLIENT (client), NULL);
|
||||
g_return_val_if_fail (sysfs_path != NULL, NULL);
|
||||
|
||||
device = NULL;
|
||||
udevice = udev_device_new_from_syspath (client->priv->udev, sysfs_path);
|
||||
if (udevice == NULL)
|
||||
goto out;
|
||||
|
||||
device = _g_udev_device_new (udevice);
|
||||
udev_device_unref (udevice);
|
||||
|
||||
out:
|
||||
return device;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_client_query_by_subsystem_and_name:
|
||||
* @client: A #GUdevClient.
|
||||
* @subsystem: A subsystem name.
|
||||
* @name: The name of the device.
|
||||
*
|
||||
* Looks up a device for a subsystem and name.
|
||||
*
|
||||
* Returns: (nullable) (transfer full): A #GUdevDevice object or %NULL
|
||||
* if the device was not found. Free with g_object_unref().
|
||||
*/
|
||||
GUdevDevice *
|
||||
g_udev_client_query_by_subsystem_and_name (GUdevClient *client,
|
||||
const gchar *subsystem,
|
||||
const gchar *name)
|
||||
{
|
||||
struct udev_device *udevice;
|
||||
GUdevDevice *device;
|
||||
|
||||
g_return_val_if_fail (G_UDEV_IS_CLIENT (client), NULL);
|
||||
g_return_val_if_fail (subsystem != NULL, NULL);
|
||||
g_return_val_if_fail (name != NULL, NULL);
|
||||
|
||||
device = NULL;
|
||||
udevice = udev_device_new_from_subsystem_sysname (client->priv->udev, subsystem, name);
|
||||
if (udevice == NULL)
|
||||
goto out;
|
||||
|
||||
device = _g_udev_device_new (udevice);
|
||||
udev_device_unref (udevice);
|
||||
|
||||
out:
|
||||
return device;
|
||||
}
|
||||
|
||||
struct udev *
|
||||
_g_udev_client_get_udev (GUdevClient *client)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_CLIENT (client), NULL);
|
||||
return client->priv->udev;
|
||||
}
|
@ -1,99 +0,0 @@
|
||||
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
|
||||
#error "Only <gudev/gudev.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __G_UDEV_CLIENT_H__
|
||||
#define __G_UDEV_CLIENT_H__
|
||||
|
||||
#include <gudev/gudevtypes.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define G_UDEV_TYPE_CLIENT (g_udev_client_get_type ())
|
||||
#define G_UDEV_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_UDEV_TYPE_CLIENT, GUdevClient))
|
||||
#define G_UDEV_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_UDEV_TYPE_CLIENT, GUdevClientClass))
|
||||
#define G_UDEV_IS_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_UDEV_TYPE_CLIENT))
|
||||
#define G_UDEV_IS_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_UDEV_TYPE_CLIENT))
|
||||
#define G_UDEV_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_UDEV_TYPE_CLIENT, GUdevClientClass))
|
||||
|
||||
typedef struct _GUdevClientClass GUdevClientClass;
|
||||
typedef struct _GUdevClientPrivate GUdevClientPrivate;
|
||||
|
||||
/**
|
||||
* GUdevClient:
|
||||
*
|
||||
* The #GUdevClient struct is opaque and should not be accessed directly.
|
||||
*/
|
||||
struct _GUdevClient
|
||||
{
|
||||
GObject parent;
|
||||
|
||||
/*< private >*/
|
||||
GUdevClientPrivate *priv;
|
||||
};
|
||||
|
||||
/**
|
||||
* GUdevClientClass:
|
||||
* @parent_class: Parent class.
|
||||
* @uevent: Signal class handler for the #GUdevClient::uevent signal.
|
||||
*
|
||||
* Class structure for #GUdevClient.
|
||||
*/
|
||||
struct _GUdevClientClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
/* signals */
|
||||
void (*uevent) (GUdevClient *client,
|
||||
const gchar *action,
|
||||
GUdevDevice *device);
|
||||
|
||||
/*< private >*/
|
||||
/* Padding for future expansion */
|
||||
void (*reserved1) (void);
|
||||
void (*reserved2) (void);
|
||||
void (*reserved3) (void);
|
||||
void (*reserved4) (void);
|
||||
void (*reserved5) (void);
|
||||
void (*reserved6) (void);
|
||||
void (*reserved7) (void);
|
||||
void (*reserved8) (void);
|
||||
};
|
||||
|
||||
GType g_udev_client_get_type (void) G_GNUC_CONST;
|
||||
GUdevClient *g_udev_client_new (const gchar* const *subsystems);
|
||||
GList *g_udev_client_query_by_subsystem (GUdevClient *client,
|
||||
const gchar *subsystem);
|
||||
GUdevDevice *g_udev_client_query_by_device_number (GUdevClient *client,
|
||||
GUdevDeviceType type,
|
||||
GUdevDeviceNumber number);
|
||||
GUdevDevice *g_udev_client_query_by_device_file (GUdevClient *client,
|
||||
const gchar *device_file);
|
||||
GUdevDevice *g_udev_client_query_by_sysfs_path (GUdevClient *client,
|
||||
const gchar *sysfs_path);
|
||||
GUdevDevice *g_udev_client_query_by_subsystem_and_name (GUdevClient *client,
|
||||
const gchar *subsystem,
|
||||
const gchar *name);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __G_UDEV_CLIENT_H__ */
|
File diff suppressed because it is too large
Load Diff
@ -1,130 +0,0 @@
|
||||
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
|
||||
#error "Only <gudev/gudev.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __G_UDEV_DEVICE_H__
|
||||
#define __G_UDEV_DEVICE_H__
|
||||
|
||||
#include <gudev/gudevtypes.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define G_UDEV_TYPE_DEVICE (g_udev_device_get_type ())
|
||||
#define G_UDEV_DEVICE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_UDEV_TYPE_DEVICE, GUdevDevice))
|
||||
#define G_UDEV_DEVICE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_UDEV_TYPE_DEVICE, GUdevDeviceClass))
|
||||
#define G_UDEV_IS_DEVICE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_UDEV_TYPE_DEVICE))
|
||||
#define G_UDEV_IS_DEVICE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_UDEV_TYPE_DEVICE))
|
||||
#define G_UDEV_DEVICE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_UDEV_TYPE_DEVICE, GUdevDeviceClass))
|
||||
|
||||
typedef struct _GUdevDeviceClass GUdevDeviceClass;
|
||||
typedef struct _GUdevDevicePrivate GUdevDevicePrivate;
|
||||
|
||||
/**
|
||||
* GUdevDevice:
|
||||
*
|
||||
* The #GUdevDevice struct is opaque and should not be accessed directly.
|
||||
*/
|
||||
struct _GUdevDevice
|
||||
{
|
||||
GObject parent;
|
||||
|
||||
/*< private >*/
|
||||
GUdevDevicePrivate *priv;
|
||||
};
|
||||
|
||||
/**
|
||||
* GUdevDeviceClass:
|
||||
* @parent_class: Parent class.
|
||||
*
|
||||
* Class structure for #GUdevDevice.
|
||||
*/
|
||||
struct _GUdevDeviceClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
/*< private >*/
|
||||
/* Padding for future expansion */
|
||||
void (*reserved1) (void);
|
||||
void (*reserved2) (void);
|
||||
void (*reserved3) (void);
|
||||
void (*reserved4) (void);
|
||||
void (*reserved5) (void);
|
||||
void (*reserved6) (void);
|
||||
void (*reserved7) (void);
|
||||
void (*reserved8) (void);
|
||||
};
|
||||
|
||||
GType g_udev_device_get_type (void) G_GNUC_CONST;
|
||||
gboolean g_udev_device_get_is_initialized (GUdevDevice *device);
|
||||
guint64 g_udev_device_get_usec_since_initialized (GUdevDevice *device);
|
||||
const gchar *g_udev_device_get_subsystem (GUdevDevice *device);
|
||||
const gchar *g_udev_device_get_devtype (GUdevDevice *device);
|
||||
const gchar *g_udev_device_get_name (GUdevDevice *device);
|
||||
const gchar *g_udev_device_get_number (GUdevDevice *device);
|
||||
const gchar *g_udev_device_get_sysfs_path (GUdevDevice *device);
|
||||
const gchar *g_udev_device_get_driver (GUdevDevice *device);
|
||||
const gchar *g_udev_device_get_action (GUdevDevice *device);
|
||||
guint64 g_udev_device_get_seqnum (GUdevDevice *device);
|
||||
GUdevDeviceType g_udev_device_get_device_type (GUdevDevice *device);
|
||||
GUdevDeviceNumber g_udev_device_get_device_number (GUdevDevice *device);
|
||||
const gchar *g_udev_device_get_device_file (GUdevDevice *device);
|
||||
const gchar* const *g_udev_device_get_device_file_symlinks (GUdevDevice *device);
|
||||
GUdevDevice *g_udev_device_get_parent (GUdevDevice *device);
|
||||
GUdevDevice *g_udev_device_get_parent_with_subsystem (GUdevDevice *device,
|
||||
const gchar *subsystem,
|
||||
const gchar *devtype);
|
||||
const gchar* const *g_udev_device_get_property_keys (GUdevDevice *device);
|
||||
gboolean g_udev_device_has_property (GUdevDevice *device,
|
||||
const gchar *key);
|
||||
const gchar *g_udev_device_get_property (GUdevDevice *device,
|
||||
const gchar *key);
|
||||
gint g_udev_device_get_property_as_int (GUdevDevice *device,
|
||||
const gchar *key);
|
||||
guint64 g_udev_device_get_property_as_uint64 (GUdevDevice *device,
|
||||
const gchar *key);
|
||||
gdouble g_udev_device_get_property_as_double (GUdevDevice *device,
|
||||
const gchar *key);
|
||||
gboolean g_udev_device_get_property_as_boolean (GUdevDevice *device,
|
||||
const gchar *key);
|
||||
const gchar* const *g_udev_device_get_property_as_strv (GUdevDevice *device,
|
||||
const gchar *key);
|
||||
|
||||
const gchar* const *g_udev_device_get_sysfs_attr_keys (GUdevDevice *device);
|
||||
gboolean g_udev_device_has_sysfs_attr (GUdevDevice *device,
|
||||
const gchar *key);
|
||||
const gchar *g_udev_device_get_sysfs_attr (GUdevDevice *device,
|
||||
const gchar *name);
|
||||
gint g_udev_device_get_sysfs_attr_as_int (GUdevDevice *device,
|
||||
const gchar *name);
|
||||
guint64 g_udev_device_get_sysfs_attr_as_uint64 (GUdevDevice *device,
|
||||
const gchar *name);
|
||||
gdouble g_udev_device_get_sysfs_attr_as_double (GUdevDevice *device,
|
||||
const gchar *name);
|
||||
gboolean g_udev_device_get_sysfs_attr_as_boolean (GUdevDevice *device,
|
||||
const gchar *name);
|
||||
const gchar* const *g_udev_device_get_sysfs_attr_as_strv (GUdevDevice *device,
|
||||
const gchar *name);
|
||||
const gchar* const *g_udev_device_get_tags (GUdevDevice *device);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __G_UDEV_DEVICE_H__ */
|
@ -1,429 +0,0 @@
|
||||
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright (C) 2008-2010 David Zeuthen <davidz@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "gudevclient.h"
|
||||
#include "gudevenumerator.h"
|
||||
#include "gudevdevice.h"
|
||||
#include "gudevmarshal.h"
|
||||
#include "gudevprivate.h"
|
||||
|
||||
/**
|
||||
* SECTION:gudevenumerator
|
||||
* @short_description: Lookup and sort devices
|
||||
*
|
||||
* #GUdevEnumerator is used to lookup and sort devices.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
|
||||
struct _GUdevEnumeratorPrivate
|
||||
{
|
||||
GUdevClient *client;
|
||||
struct udev_enumerate *e;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_CLIENT,
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (GUdevEnumerator, g_udev_enumerator, G_TYPE_OBJECT)
|
||||
|
||||
/* ---------------------------------------------------------------------------------------------------- */
|
||||
|
||||
static void
|
||||
g_udev_enumerator_finalize (GObject *object)
|
||||
{
|
||||
GUdevEnumerator *enumerator = G_UDEV_ENUMERATOR (object);
|
||||
|
||||
if (enumerator->priv->client != NULL)
|
||||
{
|
||||
g_object_unref (enumerator->priv->client);
|
||||
enumerator->priv->client = NULL;
|
||||
}
|
||||
|
||||
if (enumerator->priv->e != NULL)
|
||||
{
|
||||
udev_enumerate_unref (enumerator->priv->e);
|
||||
enumerator->priv->e = NULL;
|
||||
}
|
||||
|
||||
if (G_OBJECT_CLASS (g_udev_enumerator_parent_class)->finalize != NULL)
|
||||
G_OBJECT_CLASS (g_udev_enumerator_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
g_udev_enumerator_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GUdevEnumerator *enumerator = G_UDEV_ENUMERATOR (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_CLIENT:
|
||||
if (enumerator->priv->client != NULL)
|
||||
g_object_unref (enumerator->priv->client);
|
||||
enumerator->priv->client = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
g_udev_enumerator_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GUdevEnumerator *enumerator = G_UDEV_ENUMERATOR (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_CLIENT:
|
||||
g_value_set_object (value, enumerator->priv->client);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
g_udev_enumerator_constructed (GObject *object)
|
||||
{
|
||||
GUdevEnumerator *enumerator = G_UDEV_ENUMERATOR (object);
|
||||
|
||||
g_assert (G_UDEV_IS_CLIENT (enumerator->priv->client));
|
||||
|
||||
enumerator->priv->e = udev_enumerate_new (_g_udev_client_get_udev (enumerator->priv->client));
|
||||
|
||||
if (G_OBJECT_CLASS (g_udev_enumerator_parent_class)->constructed != NULL)
|
||||
G_OBJECT_CLASS (g_udev_enumerator_parent_class)->constructed (object);
|
||||
}
|
||||
|
||||
static void
|
||||
g_udev_enumerator_class_init (GUdevEnumeratorClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = (GObjectClass *) klass;
|
||||
|
||||
gobject_class->finalize = g_udev_enumerator_finalize;
|
||||
gobject_class->set_property = g_udev_enumerator_set_property;
|
||||
gobject_class->get_property = g_udev_enumerator_get_property;
|
||||
gobject_class->constructed = g_udev_enumerator_constructed;
|
||||
|
||||
/**
|
||||
* GUdevEnumerator:client:
|
||||
*
|
||||
* The #GUdevClient to enumerate devices from.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_CLIENT,
|
||||
g_param_spec_object ("client",
|
||||
"The client to enumerate devices from",
|
||||
"The client to enumerate devices from",
|
||||
G_UDEV_TYPE_CLIENT,
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_type_class_add_private (klass, sizeof (GUdevEnumeratorPrivate));
|
||||
}
|
||||
|
||||
static void
|
||||
g_udev_enumerator_init (GUdevEnumerator *enumerator)
|
||||
{
|
||||
enumerator->priv = G_TYPE_INSTANCE_GET_PRIVATE (enumerator,
|
||||
G_UDEV_TYPE_ENUMERATOR,
|
||||
GUdevEnumeratorPrivate);
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_new:
|
||||
* @client: A #GUdevClient to enumerate devices from.
|
||||
*
|
||||
* Constructs a #GUdevEnumerator object that can be used to enumerate
|
||||
* and sort devices. Use the add_match_*() and add_nomatch_*() methods
|
||||
* and execute the query to get a list of devices with
|
||||
* g_udev_enumerator_execute().
|
||||
*
|
||||
* Returns: A new #GUdevEnumerator object. Free with g_object_unref().
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GUdevEnumerator *
|
||||
g_udev_enumerator_new (GUdevClient *client)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_CLIENT (client), NULL);
|
||||
return G_UDEV_ENUMERATOR (g_object_new (G_UDEV_TYPE_ENUMERATOR, "client", client, NULL));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_add_match_subsystem:
|
||||
* @enumerator: A #GUdevEnumerator.
|
||||
* @subsystem: Wildcard for subsystem name e.g. 'scsi' or 'a*'.
|
||||
*
|
||||
* All returned devices will match the given @subsystem.
|
||||
*
|
||||
* Returns: (transfer none): The passed in @enumerator.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GUdevEnumerator *
|
||||
g_udev_enumerator_add_match_subsystem (GUdevEnumerator *enumerator,
|
||||
const gchar *subsystem)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_ENUMERATOR (enumerator), NULL);
|
||||
g_return_val_if_fail (subsystem != NULL, NULL);
|
||||
udev_enumerate_add_match_subsystem (enumerator->priv->e, subsystem);
|
||||
return enumerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_add_nomatch_subsystem:
|
||||
* @enumerator: A #GUdevEnumerator.
|
||||
* @subsystem: Wildcard for subsystem name e.g. 'scsi' or 'a*'.
|
||||
*
|
||||
* All returned devices will not match the given @subsystem.
|
||||
*
|
||||
* Returns: (transfer none): The passed in @enumerator.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GUdevEnumerator *
|
||||
g_udev_enumerator_add_nomatch_subsystem (GUdevEnumerator *enumerator,
|
||||
const gchar *subsystem)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_ENUMERATOR (enumerator), NULL);
|
||||
g_return_val_if_fail (subsystem != NULL, NULL);
|
||||
udev_enumerate_add_nomatch_subsystem (enumerator->priv->e, subsystem);
|
||||
return enumerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_add_match_sysfs_attr:
|
||||
* @enumerator: A #GUdevEnumerator.
|
||||
* @name: Wildcard filter for sysfs attribute key.
|
||||
* @value: Wildcard filter for sysfs attribute value.
|
||||
*
|
||||
* All returned devices will have a sysfs attribute matching the given @name and @value.
|
||||
*
|
||||
* Returns: (transfer none): The passed in @enumerator.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GUdevEnumerator *
|
||||
g_udev_enumerator_add_match_sysfs_attr (GUdevEnumerator *enumerator,
|
||||
const gchar *name,
|
||||
const gchar *value)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_ENUMERATOR (enumerator), NULL);
|
||||
g_return_val_if_fail (name != NULL, NULL);
|
||||
g_return_val_if_fail (value != NULL, NULL);
|
||||
udev_enumerate_add_match_sysattr (enumerator->priv->e, name, value);
|
||||
return enumerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_add_nomatch_sysfs_attr:
|
||||
* @enumerator: A #GUdevEnumerator.
|
||||
* @name: Wildcard filter for sysfs attribute key.
|
||||
* @value: Wildcard filter for sysfs attribute value.
|
||||
*
|
||||
* All returned devices will not have a sysfs attribute matching the given @name and @value.
|
||||
*
|
||||
* Returns: (transfer none): The passed in @enumerator.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GUdevEnumerator *
|
||||
g_udev_enumerator_add_nomatch_sysfs_attr (GUdevEnumerator *enumerator,
|
||||
const gchar *name,
|
||||
const gchar *value)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_ENUMERATOR (enumerator), NULL);
|
||||
g_return_val_if_fail (name != NULL, NULL);
|
||||
g_return_val_if_fail (value != NULL, NULL);
|
||||
udev_enumerate_add_nomatch_sysattr (enumerator->priv->e, name, value);
|
||||
return enumerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_add_match_property:
|
||||
* @enumerator: A #GUdevEnumerator.
|
||||
* @name: Wildcard filter for property name.
|
||||
* @value: Wildcard filter for property value.
|
||||
*
|
||||
* All returned devices will have a property matching the given @name and @value.
|
||||
*
|
||||
* Returns: (transfer none): The passed in @enumerator.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GUdevEnumerator *
|
||||
g_udev_enumerator_add_match_property (GUdevEnumerator *enumerator,
|
||||
const gchar *name,
|
||||
const gchar *value)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_ENUMERATOR (enumerator), NULL);
|
||||
g_return_val_if_fail (name != NULL, NULL);
|
||||
g_return_val_if_fail (value != NULL, NULL);
|
||||
udev_enumerate_add_match_property (enumerator->priv->e, name, value);
|
||||
return enumerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_add_match_name:
|
||||
* @enumerator: A #GUdevEnumerator.
|
||||
* @name: Wildcard filter for kernel name e.g. "sda*".
|
||||
*
|
||||
* All returned devices will match the given @name.
|
||||
*
|
||||
* Returns: (transfer none): The passed in @enumerator.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GUdevEnumerator *
|
||||
g_udev_enumerator_add_match_name (GUdevEnumerator *enumerator,
|
||||
const gchar *name)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_ENUMERATOR (enumerator), NULL);
|
||||
g_return_val_if_fail (name != NULL, NULL);
|
||||
udev_enumerate_add_match_sysname (enumerator->priv->e, name);
|
||||
return enumerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_add_sysfs_path:
|
||||
* @enumerator: A #GUdevEnumerator.
|
||||
* @sysfs_path: A sysfs path, e.g. "/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda"
|
||||
*
|
||||
* Add a device to the list of devices, to retrieve it back sorted in dependency order.
|
||||
*
|
||||
* Returns: (transfer none): The passed in @enumerator.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GUdevEnumerator *
|
||||
g_udev_enumerator_add_sysfs_path (GUdevEnumerator *enumerator,
|
||||
const gchar *sysfs_path)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_ENUMERATOR (enumerator), NULL);
|
||||
g_return_val_if_fail (sysfs_path != NULL, NULL);
|
||||
udev_enumerate_add_syspath (enumerator->priv->e, sysfs_path);
|
||||
return enumerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_add_match_tag:
|
||||
* @enumerator: A #GUdevEnumerator.
|
||||
* @tag: A udev tag e.g. "udev-acl".
|
||||
*
|
||||
* All returned devices will match the given @tag.
|
||||
*
|
||||
* Returns: (transfer none): The passed in @enumerator.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GUdevEnumerator *
|
||||
g_udev_enumerator_add_match_tag (GUdevEnumerator *enumerator,
|
||||
const gchar *tag)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_ENUMERATOR (enumerator), NULL);
|
||||
g_return_val_if_fail (tag != NULL, NULL);
|
||||
udev_enumerate_add_match_tag (enumerator->priv->e, tag);
|
||||
return enumerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_add_match_is_initialized:
|
||||
* @enumerator: A #GUdevEnumerator.
|
||||
*
|
||||
* All returned devices will be initialized.
|
||||
*
|
||||
* Returns: (transfer none): The passed in @enumerator.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GUdevEnumerator *
|
||||
g_udev_enumerator_add_match_is_initialized (GUdevEnumerator *enumerator)
|
||||
{
|
||||
g_return_val_if_fail (G_UDEV_IS_ENUMERATOR (enumerator), NULL);
|
||||
udev_enumerate_add_match_is_initialized (enumerator->priv->e);
|
||||
return enumerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* g_udev_enumerator_execute:
|
||||
* @enumerator: A #GUdevEnumerator.
|
||||
*
|
||||
* Executes the query in @enumerator.
|
||||
*
|
||||
* Returns: (element-type GUdevDevice) (transfer full): A list of #GUdevDevice objects. The caller should free the result by using g_object_unref() on each element in the list and then g_list_free() on the list.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
GList *
|
||||
g_udev_enumerator_execute (GUdevEnumerator *enumerator)
|
||||
{
|
||||
GList *ret;
|
||||
struct udev_list_entry *l, *devices;
|
||||
|
||||
g_return_val_if_fail (G_UDEV_IS_ENUMERATOR (enumerator), NULL);
|
||||
|
||||
ret = NULL;
|
||||
|
||||
/* retrieve the list */
|
||||
udev_enumerate_scan_devices (enumerator->priv->e);
|
||||
|
||||
devices = udev_enumerate_get_list_entry (enumerator->priv->e);
|
||||
for (l = devices; l != NULL; l = udev_list_entry_get_next (l))
|
||||
{
|
||||
struct udev_device *udevice;
|
||||
GUdevDevice *device;
|
||||
|
||||
udevice = udev_device_new_from_syspath (udev_enumerate_get_udev (enumerator->priv->e),
|
||||
udev_list_entry_get_name (l));
|
||||
if (udevice == NULL)
|
||||
continue;
|
||||
|
||||
device = _g_udev_device_new (udevice);
|
||||
udev_device_unref (udevice);
|
||||
ret = g_list_prepend (ret, device);
|
||||
}
|
||||
|
||||
ret = g_list_reverse (ret);
|
||||
|
||||
return ret;
|
||||
}
|
@ -1,106 +0,0 @@
|
||||
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright (C) 2008-2010 David Zeuthen <davidz@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
|
||||
#error "Only <gudev/gudev.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __G_UDEV_ENUMERATOR_H__
|
||||
#define __G_UDEV_ENUMERATOR_H__
|
||||
|
||||
#include <gudev/gudevtypes.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define G_UDEV_TYPE_ENUMERATOR (g_udev_enumerator_get_type ())
|
||||
#define G_UDEV_ENUMERATOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_UDEV_TYPE_ENUMERATOR, GUdevEnumerator))
|
||||
#define G_UDEV_ENUMERATOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_UDEV_TYPE_ENUMERATOR, GUdevEnumeratorClass))
|
||||
#define G_UDEV_IS_ENUMERATOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_UDEV_TYPE_ENUMERATOR))
|
||||
#define G_UDEV_IS_ENUMERATOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_UDEV_TYPE_ENUMERATOR))
|
||||
#define G_UDEV_ENUMERATOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_UDEV_TYPE_ENUMERATOR, GUdevEnumeratorClass))
|
||||
|
||||
typedef struct _GUdevEnumeratorClass GUdevEnumeratorClass;
|
||||
typedef struct _GUdevEnumeratorPrivate GUdevEnumeratorPrivate;
|
||||
|
||||
/**
|
||||
* GUdevEnumerator:
|
||||
*
|
||||
* The #GUdevEnumerator struct is opaque and should not be accessed directly.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
struct _GUdevEnumerator
|
||||
{
|
||||
GObject parent;
|
||||
|
||||
/*< private >*/
|
||||
GUdevEnumeratorPrivate *priv;
|
||||
};
|
||||
|
||||
/**
|
||||
* GUdevEnumeratorClass:
|
||||
* @parent_class: Parent class.
|
||||
*
|
||||
* Class structure for #GUdevEnumerator.
|
||||
*
|
||||
* Since: 165
|
||||
*/
|
||||
struct _GUdevEnumeratorClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
/*< private >*/
|
||||
/* Padding for future expansion */
|
||||
void (*reserved1) (void);
|
||||
void (*reserved2) (void);
|
||||
void (*reserved3) (void);
|
||||
void (*reserved4) (void);
|
||||
void (*reserved5) (void);
|
||||
void (*reserved6) (void);
|
||||
void (*reserved7) (void);
|
||||
void (*reserved8) (void);
|
||||
};
|
||||
|
||||
GType g_udev_enumerator_get_type (void) G_GNUC_CONST;
|
||||
GUdevEnumerator *g_udev_enumerator_new (GUdevClient *client);
|
||||
GUdevEnumerator *g_udev_enumerator_add_match_subsystem (GUdevEnumerator *enumerator,
|
||||
const gchar *subsystem);
|
||||
GUdevEnumerator *g_udev_enumerator_add_nomatch_subsystem (GUdevEnumerator *enumerator,
|
||||
const gchar *subsystem);
|
||||
GUdevEnumerator *g_udev_enumerator_add_match_sysfs_attr (GUdevEnumerator *enumerator,
|
||||
const gchar *name,
|
||||
const gchar *value);
|
||||
GUdevEnumerator *g_udev_enumerator_add_nomatch_sysfs_attr (GUdevEnumerator *enumerator,
|
||||
const gchar *name,
|
||||
const gchar *value);
|
||||
GUdevEnumerator *g_udev_enumerator_add_match_property (GUdevEnumerator *enumerator,
|
||||
const gchar *name,
|
||||
const gchar *value);
|
||||
GUdevEnumerator *g_udev_enumerator_add_match_name (GUdevEnumerator *enumerator,
|
||||
const gchar *name);
|
||||
GUdevEnumerator *g_udev_enumerator_add_match_tag (GUdevEnumerator *enumerator,
|
||||
const gchar *tag);
|
||||
GUdevEnumerator *g_udev_enumerator_add_match_is_initialized (GUdevEnumerator *enumerator);
|
||||
GUdevEnumerator *g_udev_enumerator_add_sysfs_path (GUdevEnumerator *enumerator,
|
||||
const gchar *sysfs_path);
|
||||
GList *g_udev_enumerator_execute (GUdevEnumerator *enumerator);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __G_UDEV_ENUMERATOR_H__ */
|
@ -1,48 +0,0 @@
|
||||
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
|
||||
#error "Only <gudev/gudev.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __G_UDEV_ENUMS_H__
|
||||
#define __G_UDEV_ENUMS_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GUdevDeviceType:
|
||||
* @G_UDEV_DEVICE_TYPE_NONE: Device does not have a device file.
|
||||
* @G_UDEV_DEVICE_TYPE_BLOCK: Device is a block device.
|
||||
* @G_UDEV_DEVICE_TYPE_CHAR: Device is a character device.
|
||||
*
|
||||
* Enumeration used to specify a the type of a device.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
G_UDEV_DEVICE_TYPE_NONE = 0,
|
||||
G_UDEV_DEVICE_TYPE_BLOCK = 'b',
|
||||
G_UDEV_DEVICE_TYPE_CHAR = 'c',
|
||||
} GUdevDeviceType;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __G_UDEV_ENUMS_H__ */
|
@ -1,39 +0,0 @@
|
||||
/*** BEGIN file-header ***/
|
||||
#include <gudev.h>
|
||||
|
||||
/*** END file-header ***/
|
||||
|
||||
/*** BEGIN file-production ***/
|
||||
/* enumerations from "@filename@" */
|
||||
/*** END file-production ***/
|
||||
|
||||
/*** BEGIN value-header ***/
|
||||
GType
|
||||
@enum_name@_get_type (void)
|
||||
{
|
||||
static volatile gsize g_define_type_id__volatile = 0;
|
||||
|
||||
if (g_once_init_enter (&g_define_type_id__volatile))
|
||||
{
|
||||
static const G@Type@Value values[] = {
|
||||
/*** END value-header ***/
|
||||
|
||||
/*** BEGIN value-production ***/
|
||||
{ @VALUENAME@, "@VALUENAME@", "@valuenick@" },
|
||||
/*** END value-production ***/
|
||||
|
||||
/*** BEGIN value-tail ***/
|
||||
{ 0, NULL, NULL }
|
||||
};
|
||||
GType g_define_type_id =
|
||||
g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
|
||||
g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
|
||||
}
|
||||
|
||||
return g_define_type_id__volatile;
|
||||
}
|
||||
|
||||
/*** END value-tail ***/
|
||||
|
||||
/*** BEGIN file-tail ***/
|
||||
/*** END file-tail ***/
|
@ -1,24 +0,0 @@
|
||||
/*** BEGIN file-header ***/
|
||||
#ifndef __GUDEV_ENUM_TYPES_H__
|
||||
#define __GUDEV_ENUM_TYPES_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
/*** END file-header ***/
|
||||
|
||||
/*** BEGIN file-production ***/
|
||||
|
||||
/* enumerations from "@filename@" */
|
||||
/*** END file-production ***/
|
||||
|
||||
/*** BEGIN value-header ***/
|
||||
GType @enum_name@_get_type (void) G_GNUC_CONST;
|
||||
#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
|
||||
/*** END value-header ***/
|
||||
|
||||
/*** BEGIN file-tail ***/
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GUDEV_ENUM_TYPES_H__ */
|
||||
/*** END file-tail ***/
|
@ -1 +0,0 @@
|
||||
VOID:STRING,OBJECT
|
@ -1,40 +0,0 @@
|
||||
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
|
||||
#error "Only <gudev/gudev.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __G_UDEV_PRIVATE_H__
|
||||
#define __G_UDEV_PRIVATE_H__
|
||||
|
||||
#include <gudev/gudevtypes.h>
|
||||
|
||||
#include <libudev.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
GUdevDevice *
|
||||
_g_udev_device_new (struct udev_device *udevice);
|
||||
|
||||
struct udev *_g_udev_client_get_udev (GUdevClient *client);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __G_UDEV_PRIVATE_H__ */
|
@ -1,50 +0,0 @@
|
||||
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
|
||||
#error "Only <gudev/gudev.h> can be included directly, this file may disappear or change contents."
|
||||
#endif
|
||||
|
||||
#ifndef __G_UDEV_TYPES_H__
|
||||
#define __G_UDEV_TYPES_H__
|
||||
|
||||
#include <gudev/gudevenums.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _GUdevClient GUdevClient;
|
||||
typedef struct _GUdevDevice GUdevDevice;
|
||||
typedef struct _GUdevEnumerator GUdevEnumerator;
|
||||
|
||||
/**
|
||||
* GUdevDeviceNumber:
|
||||
*
|
||||
* Corresponds to the standard #dev_t type as defined by POSIX (Until
|
||||
* bug 584517 is resolved this work-around is needed).
|
||||
*/
|
||||
#ifdef _GUDEV_WORK_AROUND_DEV_T_BUG
|
||||
typedef guint64 GUdevDeviceNumber; /* __UQUAD_TYPE */
|
||||
#else
|
||||
typedef dev_t GUdevDeviceNumber;
|
||||
#endif
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __G_UDEV_TYPES_H__ */
|
@ -1,68 +0,0 @@
|
||||
/***
|
||||
This file is part of systemd.
|
||||
|
||||
systemd is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
***/
|
||||
|
||||
{
|
||||
global:
|
||||
g_udev_client_get_type;
|
||||
g_udev_client_new;
|
||||
g_udev_client_query_by_device_file;
|
||||
g_udev_client_query_by_device_number;
|
||||
g_udev_client_query_by_subsystem;
|
||||
g_udev_client_query_by_subsystem_and_name;
|
||||
g_udev_client_query_by_sysfs_path;
|
||||
g_udev_device_get_action;
|
||||
g_udev_device_get_device_file;
|
||||
g_udev_device_get_device_file_symlinks;
|
||||
g_udev_device_get_device_number;
|
||||
g_udev_device_get_device_type;
|
||||
g_udev_device_get_devtype;
|
||||
g_udev_device_get_driver;
|
||||
g_udev_device_get_is_initialized;
|
||||
g_udev_device_get_name;
|
||||
g_udev_device_get_number;
|
||||
g_udev_device_get_parent;
|
||||
g_udev_device_get_parent_with_subsystem;
|
||||
g_udev_device_get_property;
|
||||
g_udev_device_get_property_as_boolean;
|
||||
g_udev_device_get_property_as_double;
|
||||
g_udev_device_get_property_as_int;
|
||||
g_udev_device_get_property_as_strv;
|
||||
g_udev_device_get_property_as_uint64;
|
||||
g_udev_device_get_property_keys;
|
||||
g_udev_device_get_seqnum;
|
||||
g_udev_device_get_subsystem;
|
||||
g_udev_device_get_sysfs_attr;
|
||||
g_udev_device_get_sysfs_attr_as_boolean;
|
||||
g_udev_device_get_sysfs_attr_as_double;
|
||||
g_udev_device_get_sysfs_attr_as_int;
|
||||
g_udev_device_get_sysfs_attr_as_strv;
|
||||
g_udev_device_get_sysfs_attr_as_uint64;
|
||||
g_udev_device_get_sysfs_attr_keys;
|
||||
g_udev_device_get_sysfs_path;
|
||||
g_udev_device_get_tags;
|
||||
g_udev_device_get_type;
|
||||
g_udev_device_get_usec_since_initialized;
|
||||
g_udev_device_has_property;
|
||||
g_udev_device_has_sysfs_attr;
|
||||
g_udev_device_type_get_type;
|
||||
g_udev_enumerator_add_match_is_initialized;
|
||||
g_udev_enumerator_add_match_name;
|
||||
g_udev_enumerator_add_match_property;
|
||||
g_udev_enumerator_add_match_subsystem;
|
||||
g_udev_enumerator_add_match_sysfs_attr;
|
||||
g_udev_enumerator_add_match_tag;
|
||||
g_udev_enumerator_add_nomatch_subsystem;
|
||||
g_udev_enumerator_add_nomatch_sysfs_attr;
|
||||
g_udev_enumerator_add_sysfs_path;
|
||||
g_udev_enumerator_execute;
|
||||
g_udev_enumerator_get_type;
|
||||
g_udev_enumerator_new;
|
||||
local:
|
||||
*;
|
||||
};
|
@ -1,38 +0,0 @@
|
||||
#!/usr/bin/env seed
|
||||
|
||||
const GLib = imports.gi.GLib;
|
||||
const GUdev = imports.gi.GUdev;
|
||||
|
||||
function print_device(device) {
|
||||
print(" initialized: " + device.get_is_initialized());
|
||||
print(" usec since initialized: " + device.get_usec_since_initialized());
|
||||
print(" subsystem: " + device.get_subsystem());
|
||||
print(" devtype: " + device.get_devtype());
|
||||
print(" name: " + device.get_name());
|
||||
print(" number: " + device.get_number());
|
||||
print(" sysfs_path: " + device.get_sysfs_path());
|
||||
print(" driver: " + device.get_driver());
|
||||
print(" action: " + device.get_action());
|
||||
print(" seqnum: " + device.get_seqnum());
|
||||
print(" device type: " + device.get_device_type());
|
||||
print(" device number: " + device.get_device_number());
|
||||
print(" device file: " + device.get_device_file());
|
||||
print(" device file symlinks: " + device.get_device_file_symlinks());
|
||||
print(" tags: " + device.get_tags());
|
||||
var keys = device.get_property_keys();
|
||||
for (var n = 0; n < keys.length; n++) {
|
||||
print(" " + keys[n] + "=" + device.get_property(keys[n]));
|
||||
}
|
||||
}
|
||||
|
||||
var client = new GUdev.Client({subsystems: []});
|
||||
var enumerator = new GUdev.Enumerator({client: client});
|
||||
enumerator.add_match_subsystem('b*')
|
||||
|
||||
var devices = enumerator.execute();
|
||||
|
||||
for (var n=0; n < devices.length; n++) {
|
||||
var device = devices[n];
|
||||
print_device(device);
|
||||
print("");
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
#!/usr/bin/env seed
|
||||
|
||||
// seed example
|
||||
|
||||
const GLib = imports.gi.GLib;
|
||||
const GUdev = imports.gi.GUdev;
|
||||
|
||||
function print_device (device) {
|
||||
print (" subsystem: " + device.get_subsystem ());
|
||||
print (" devtype: " + device.get_devtype ());
|
||||
print (" name: " + device.get_name ());
|
||||
print (" number: " + device.get_number ());
|
||||
print (" sysfs_path: " + device.get_sysfs_path ());
|
||||
print (" driver: " + device.get_driver ());
|
||||
print (" action: " + device.get_action ());
|
||||
print (" seqnum: " + device.get_seqnum ());
|
||||
print (" device type: " + device.get_device_type ());
|
||||
print (" device number: " + device.get_device_number ());
|
||||
print (" device file: " + device.get_device_file ());
|
||||
print (" device file symlinks: " + device.get_device_file_symlinks ());
|
||||
print (" foo: " + device.get_sysfs_attr_as_strv ("stat"));
|
||||
var keys = device.get_property_keys ();
|
||||
for (var n = 0; n < keys.length; n++) {
|
||||
print (" " + keys[n] + "=" + device.get_property (keys[n]));
|
||||
}
|
||||
}
|
||||
|
||||
function on_uevent (client, action, device) {
|
||||
print ("action " + action + " on device " + device.get_sysfs_path());
|
||||
print_device (device);
|
||||
print ("");
|
||||
}
|
||||
|
||||
var client = new GUdev.Client ({subsystems: ["block", "usb/usb_interface"]});
|
||||
client.signal.connect ("uevent", on_uevent);
|
||||
|
||||
var block_devices = client.query_by_subsystem ("block");
|
||||
for (var n = 0; n < block_devices.length; n++) {
|
||||
print ("block device: " + block_devices[n].get_device_file ());
|
||||
}
|
||||
|
||||
var d;
|
||||
|
||||
d = client.query_by_device_number (GUdev.DeviceType.BLOCK, 0x0810);
|
||||
if (d == null) {
|
||||
print ("query_by_device_number 0x810 -> null");
|
||||
} else {
|
||||
print ("query_by_device_number 0x810 -> " + d.get_device_file ());
|
||||
dd = d.get_parent_with_subsystem ("usb", null);
|
||||
print_device (dd);
|
||||
print ("--------------------------------------------------------------------------");
|
||||
while (d != null) {
|
||||
print_device (d);
|
||||
print ("");
|
||||
d = d.get_parent ();
|
||||
}
|
||||
}
|
||||
|
||||
d = client.query_by_sysfs_path ("/sys/block/sda/sda1");
|
||||
print ("query_by_sysfs_path (\"/sys/block/sda1\") -> " + d.get_device_file ());
|
||||
|
||||
d = client.query_by_subsystem_and_name ("block", "sda2");
|
||||
print ("query_by_subsystem_and_name (\"block\", \"sda2\") -> " + d.get_device_file ());
|
||||
|
||||
d = client.query_by_device_file ("/dev/sda");
|
||||
print ("query_by_device_file (\"/dev/sda\") -> " + d.get_device_file ());
|
||||
|
||||
d = client.query_by_device_file ("/dev/block/8:0");
|
||||
print ("query_by_device_file (\"/dev/block/8:0\") -> " + d.get_device_file ());
|
||||
|
||||
var mainloop = GLib.main_loop_new ();
|
||||
GLib.main_loop_run (mainloop);
|
@ -4,8 +4,6 @@
|
||||
<a href="../man/systemd.index.html">Index </a>·
|
||||
<a href="../man/systemd.directives.html">Directives </a>·
|
||||
<a href="index.html">Python </a>·
|
||||
<a href="../libudev/index.html">libudev </a>·
|
||||
<a href="../libudev/index.html">gudev </a>
|
||||
<span style="float:right">systemd {{release}}</span>
|
||||
<hr />
|
||||
{% endblock %}
|
||||
|
@ -10,8 +10,6 @@ $ sudo make clean check
|
||||
make[1]: Entering directory `/mnt/data/harald/git/systemd/test/TEST-01-BASIC'
|
||||
Making all in .
|
||||
Making all in po
|
||||
Making all in docs/libudev
|
||||
Making all in docs/gudev
|
||||
TEST: Basic systemd setup [OK]
|
||||
make[1]: Leaving directory `/mnt/data/harald/git/systemd/test/TEST-01-BASIC'
|
||||
...
|
||||
|
@ -125,7 +125,7 @@ install_systemd() {
|
||||
# install compiled files
|
||||
(cd $TEST_BASE_DIR/..; set -x; make DESTDIR=$initdir install)
|
||||
# remove unneeded documentation
|
||||
rm -fr $initdir/usr/share/{man,doc,gtk-doc}
|
||||
rm -fr $initdir/usr/share/{man,doc}
|
||||
# we strip binaries since debug symbols increase binaries size a lot
|
||||
# and it could fill the available space
|
||||
strip_binaries
|
||||
|
Loading…
Reference in New Issue
Block a user