summaryrefslogtreecommitdiff
path: root/src/libudev
diff options
context:
space:
mode:
Diffstat (limited to 'src/libudev')
-rw-r--r--[l---------]src/libudev/Makefile29
-rw-r--r--src/libudev/include/libudev.h (renamed from src/libudev/libudev.h)0
-rw-r--r--src/libudev/src/.gitignore (renamed from src/libudev/.gitignore)0
-rw-r--r--src/libudev/src/Makefile83
-rw-r--r--src/libudev/src/libudev-device-internal.h (renamed from src/libudev/libudev-device-internal.h)2
-rw-r--r--src/libudev/src/libudev-device-private.c (renamed from src/libudev/libudev-device-private.c)0
-rw-r--r--src/libudev/src/libudev-device.c (renamed from src/libudev/libudev-device.c)2
-rw-r--r--src/libudev/src/libudev-enumerate.c (renamed from src/libudev/libudev-enumerate.c)2
-rw-r--r--src/libudev/src/libudev-hwdb.c (renamed from src/libudev/libudev-hwdb.c)2
-rw-r--r--src/libudev/src/libudev-list.c (renamed from src/libudev/libudev-list.c)0
-rw-r--r--src/libudev/src/libudev-monitor.c (renamed from src/libudev/libudev-monitor.c)0
-rw-r--r--src/libudev/src/libudev-private.h (renamed from src/libudev/libudev-private.h)0
-rw-r--r--src/libudev/src/libudev-queue.c (renamed from src/libudev/libudev-queue.c)0
-rw-r--r--src/libudev/src/libudev-util.c (renamed from src/libudev/libudev-util.c)0
-rw-r--r--src/libudev/src/libudev.c (renamed from src/libudev/libudev.c)0
-rw-r--r--src/libudev/src/libudev.pc.in (renamed from src/libudev/libudev.pc.in)0
-rw-r--r--src/libudev/src/libudev.sym (renamed from src/libudev/libudev.sym)0
-rw-r--r--src/libudev/src/udev.h216
18 files changed, 331 insertions, 5 deletions
diff --git a/src/libudev/Makefile b/src/libudev/Makefile
index d0b0e8e008..8d9fecb1fb 120000..100644
--- a/src/libudev/Makefile
+++ b/src/libudev/Makefile
@@ -1 +1,28 @@
-../Makefile \ No newline at end of file
+# -*- Mode: makefile; indent-tabs-mode: t -*-
+#
+# This file is part of systemd.
+#
+# Copyright 2010-2012 Lennart Poettering
+# Copyright 2010-2012 Kay Sievers
+# Copyright 2013 Zbigniew Jędrzejewski-Szmek
+# Copyright 2013 David Strauss
+# Copyright 2016 Luke Shumaker
+#
+# 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.
+#
+# systemd 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk
+include $(topsrcdir)/build-aux/Makefile.head.mk
+
+at.subdirs += src
+
+include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/src/libudev/libudev.h b/src/libudev/include/libudev.h
index 3f6d0ed16c..3f6d0ed16c 100644
--- a/src/libudev/libudev.h
+++ b/src/libudev/include/libudev.h
diff --git a/src/libudev/.gitignore b/src/libudev/src/.gitignore
index 0c8a5d5231..0c8a5d5231 100644
--- a/src/libudev/.gitignore
+++ b/src/libudev/src/.gitignore
diff --git a/src/libudev/src/Makefile b/src/libudev/src/Makefile
new file mode 100644
index 0000000000..ed606315e1
--- /dev/null
+++ b/src/libudev/src/Makefile
@@ -0,0 +1,83 @@
+# -*- Mode: makefile; indent-tabs-mode: t -*-
+#
+# This file is part of systemd.
+#
+# Copyright 2010-2012 Lennart Poettering
+# Copyright 2010-2012 Kay Sievers
+# Copyright 2013 Zbigniew Jędrzejewski-Szmek
+# Copyright 2013 David Strauss
+# Copyright 2016 Luke Shumaker
+#
+# 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.
+#
+# systemd 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
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk
+include $(topsrcdir)/build-aux/Makefile.head.mk
+
+LIBUDEV_CURRENT=7
+LIBUDEV_REVISION=4
+LIBUDEV_AGE=6
+
+include_HEADERS += \
+ src/libudev/libudev.h
+
+lib_LTLIBRARIES += \
+ libudev.la
+
+libudev_la_SOURCES =\
+ src/libudev/libudev.sym \
+ src/libudev/libudev-private.h \
+ src/libudev/libudev-device-internal.h \
+ src/libudev/libudev.c \
+ src/libudev/libudev-list.c \
+ src/libudev/libudev-util.c \
+ src/libudev/libudev-device.c \
+ src/libudev/libudev-device-private.c \
+ src/libudev/libudev-enumerate.c \
+ src/libudev/libudev-monitor.c \
+ src/libudev/libudev-queue.c \
+ src/libudev/libudev-hwdb.c
+
+libudev_la_LDFLAGS = \
+ $(AM_LDFLAGS) \
+ -version-info $(LIBUDEV_CURRENT):$(LIBUDEV_REVISION):$(LIBUDEV_AGE) \
+ -Wl,--version-script=$(srcdir)/libudev.sym
+
+libudev_la_LIBADD = \
+ libsystemd-internal.la
+
+pkgconfiglib_DATA += \
+ src/libudev/libudev.pc
+
+EXTRA_DIST += \
+ src/libudev/libudev.pc.in
+
+noinst_LTLIBRARIES += \
+ libudev-internal.la
+
+libudev_internal_la_SOURCES =\
+ $(libudev_la_SOURCES)
+
+test-libudev-sym.c: \
+ src/libudev/libudev.sym \
+ src/udev/udev.h
+ $(generate-sym-test)
+
+nodist_test_libudev_sym_SOURCES = \
+ test-libudev-sym.c
+test_libudev_sym_CFLAGS = \
+ $(AM_CFLAGS) \
+ -Wno-deprecated-declarations
+test_libudev_sym_LDADD = \
+ libudev.la
+
+include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/src/libudev/libudev-device-internal.h b/src/libudev/src/libudev-device-internal.h
index 0e9af8ec09..f76da09407 100644
--- a/src/libudev/libudev-device-internal.h
+++ b/src/libudev/src/libudev-device-internal.h
@@ -21,7 +21,7 @@
***/
#include "libudev.h"
-#include "sd-device.h"
+#include <systemd/sd-device.h>
#include "libudev-private.h"
diff --git a/src/libudev/libudev-device-private.c b/src/libudev/src/libudev-device-private.c
index 2aae0726c1..2aae0726c1 100644
--- a/src/libudev/libudev-device-private.c
+++ b/src/libudev/src/libudev-device-private.c
diff --git a/src/libudev/libudev-device.c b/src/libudev/src/libudev-device.c
index 814e016800..6536f4cfbb 100644
--- a/src/libudev/libudev-device.c
+++ b/src/libudev/src/libudev-device.c
@@ -35,7 +35,7 @@
#include <unistd.h>
#include "libudev.h"
-#include "sd-device.h"
+#include <systemd/sd-device.h>
#include "alloc-util.h"
#include "device-private.h"
diff --git a/src/libudev/libudev-enumerate.c b/src/libudev/src/libudev-enumerate.c
index 3b8abfb260..9910cea957 100644
--- a/src/libudev/libudev-enumerate.c
+++ b/src/libudev/src/libudev-enumerate.c
@@ -29,7 +29,7 @@
#include <sys/stat.h>
#include "libudev.h"
-#include "sd-device.h"
+#include <systemd/sd-device.h>
#include "alloc-util.h"
#include "device-enumerator-private.h"
diff --git a/src/libudev/libudev-hwdb.c b/src/libudev/src/libudev-hwdb.c
index a53f000015..8c4b488086 100644
--- a/src/libudev/libudev-hwdb.c
+++ b/src/libudev/src/libudev-hwdb.c
@@ -17,7 +17,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include "sd-hwdb.h"
+#include <systemd/sd-hwdb.h>
#include "alloc-util.h"
#include "hwdb-util.h"
diff --git a/src/libudev/libudev-list.c b/src/libudev/src/libudev-list.c
index da496ed456..da496ed456 100644
--- a/src/libudev/libudev-list.c
+++ b/src/libudev/src/libudev-list.c
diff --git a/src/libudev/libudev-monitor.c b/src/libudev/src/libudev-monitor.c
index f870eba9eb..f870eba9eb 100644
--- a/src/libudev/libudev-monitor.c
+++ b/src/libudev/src/libudev-monitor.c
diff --git a/src/libudev/libudev-private.h b/src/libudev/src/libudev-private.h
index 52c5075110..52c5075110 100644
--- a/src/libudev/libudev-private.h
+++ b/src/libudev/src/libudev-private.h
diff --git a/src/libudev/libudev-queue.c b/src/libudev/src/libudev-queue.c
index e3dffa6925..e3dffa6925 100644
--- a/src/libudev/libudev-queue.c
+++ b/src/libudev/src/libudev-queue.c
diff --git a/src/libudev/libudev-util.c b/src/libudev/src/libudev-util.c
index 574cfeac85..574cfeac85 100644
--- a/src/libudev/libudev-util.c
+++ b/src/libudev/src/libudev-util.c
diff --git a/src/libudev/libudev.c b/src/libudev/src/libudev.c
index 63fb05547d..63fb05547d 100644
--- a/src/libudev/libudev.c
+++ b/src/libudev/src/libudev.c
diff --git a/src/libudev/libudev.pc.in b/src/libudev/src/libudev.pc.in
index a0f3f524e0..a0f3f524e0 100644
--- a/src/libudev/libudev.pc.in
+++ b/src/libudev/src/libudev.pc.in
diff --git a/src/libudev/libudev.sym b/src/libudev/src/libudev.sym
index 76726fca77..76726fca77 100644
--- a/src/libudev/libudev.sym
+++ b/src/libudev/src/libudev.sym
diff --git a/src/libudev/src/udev.h b/src/libudev/src/udev.h
new file mode 100644
index 0000000000..00de88972a
--- /dev/null
+++ b/src/libudev/src/udev.h
@@ -0,0 +1,216 @@
+#pragma once
+
+/*
+ * Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
+ * Copyright (C) 2003-2010 Kay Sievers <kay@vrfy.org>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <sys/param.h>
+#include <sys/sysmacros.h>
+#include <sys/types.h>
+
+#include "libudev.h"
+#include <systemd/sd-netlink.h>
+
+#include "label.h"
+#include "libudev-private.h"
+#include "macro.h"
+#include "strv.h"
+#include "util.h"
+
+struct udev_event {
+ struct udev *udev;
+ struct udev_device *dev;
+ struct udev_device *dev_parent;
+ struct udev_device *dev_db;
+ char *name;
+ char *program_result;
+ mode_t mode;
+ uid_t uid;
+ gid_t gid;
+ struct udev_list seclabel_list;
+ struct udev_list run_list;
+ int exec_delay;
+ usec_t birth_usec;
+ sd_netlink *rtnl;
+ unsigned int builtin_run;
+ unsigned int builtin_ret;
+ bool inotify_watch;
+ bool inotify_watch_final;
+ bool group_set;
+ bool group_final;
+ bool owner_set;
+ bool owner_final;
+ bool mode_set;
+ bool mode_final;
+ bool name_final;
+ bool devlink_final;
+ bool run_final;
+};
+
+struct udev_watch {
+ struct udev_list_node node;
+ int handle;
+ char *name;
+};
+
+/* udev-rules.c */
+struct udev_rules;
+struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names);
+struct udev_rules *udev_rules_unref(struct udev_rules *rules);
+bool udev_rules_check_timestamp(struct udev_rules *rules);
+void udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event,
+ usec_t timeout_usec, usec_t timeout_warn_usec,
+ struct udev_list *properties_list);
+int udev_rules_apply_static_dev_perms(struct udev_rules *rules);
+
+/* udev-event.c */
+struct udev_event *udev_event_new(struct udev_device *dev);
+void udev_event_unref(struct udev_event *event);
+size_t udev_event_apply_format(struct udev_event *event, const char *src, char *dest, size_t size);
+int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string,
+ char *result, size_t maxsize, int read_value);
+int udev_event_spawn(struct udev_event *event,
+ usec_t timeout_usec,
+ usec_t timeout_warn_usec,
+ bool accept_failure,
+ const char *cmd, char *result, size_t ressize);
+void udev_event_execute_rules(struct udev_event *event,
+ usec_t timeout_usec, usec_t timeout_warn_usec,
+ struct udev_list *properties_list,
+ struct udev_rules *rules);
+void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec);
+int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]);
+
+/* udev-watch.c */
+int udev_watch_init(struct udev *udev);
+void udev_watch_restore(struct udev *udev);
+void udev_watch_begin(struct udev *udev, struct udev_device *dev);
+void udev_watch_end(struct udev *udev, struct udev_device *dev);
+struct udev_device *udev_watch_lookup(struct udev *udev, int wd);
+
+/* udev-node.c */
+void udev_node_add(struct udev_device *dev, bool apply,
+ mode_t mode, uid_t uid, gid_t gid,
+ struct udev_list *seclabel_list);
+void udev_node_remove(struct udev_device *dev);
+void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev_old);
+
+/* udev-ctrl.c */
+struct udev_ctrl;
+struct udev_ctrl *udev_ctrl_new(struct udev *udev);
+struct udev_ctrl *udev_ctrl_new_from_fd(struct udev *udev, int fd);
+int udev_ctrl_enable_receiving(struct udev_ctrl *uctrl);
+struct udev_ctrl *udev_ctrl_unref(struct udev_ctrl *uctrl);
+int udev_ctrl_cleanup(struct udev_ctrl *uctrl);
+struct udev *udev_ctrl_get_udev(struct udev_ctrl *uctrl);
+int udev_ctrl_get_fd(struct udev_ctrl *uctrl);
+int udev_ctrl_send_set_log_level(struct udev_ctrl *uctrl, int priority, int timeout);
+int udev_ctrl_send_stop_exec_queue(struct udev_ctrl *uctrl, int timeout);
+int udev_ctrl_send_start_exec_queue(struct udev_ctrl *uctrl, int timeout);
+int udev_ctrl_send_reload(struct udev_ctrl *uctrl, int timeout);
+int udev_ctrl_send_ping(struct udev_ctrl *uctrl, int timeout);
+int udev_ctrl_send_exit(struct udev_ctrl *uctrl, int timeout);
+int udev_ctrl_send_set_env(struct udev_ctrl *uctrl, const char *key, int timeout);
+int udev_ctrl_send_set_children_max(struct udev_ctrl *uctrl, int count, int timeout);
+struct udev_ctrl_connection;
+struct udev_ctrl_connection *udev_ctrl_get_connection(struct udev_ctrl *uctrl);
+struct udev_ctrl_connection *udev_ctrl_connection_ref(struct udev_ctrl_connection *conn);
+struct udev_ctrl_connection *udev_ctrl_connection_unref(struct udev_ctrl_connection *conn);
+struct udev_ctrl_msg;
+struct udev_ctrl_msg *udev_ctrl_receive_msg(struct udev_ctrl_connection *conn);
+struct udev_ctrl_msg *udev_ctrl_msg_unref(struct udev_ctrl_msg *ctrl_msg);
+int udev_ctrl_get_set_log_level(struct udev_ctrl_msg *ctrl_msg);
+int udev_ctrl_get_stop_exec_queue(struct udev_ctrl_msg *ctrl_msg);
+int udev_ctrl_get_start_exec_queue(struct udev_ctrl_msg *ctrl_msg);
+int udev_ctrl_get_reload(struct udev_ctrl_msg *ctrl_msg);
+int udev_ctrl_get_ping(struct udev_ctrl_msg *ctrl_msg);
+int udev_ctrl_get_exit(struct udev_ctrl_msg *ctrl_msg);
+const char *udev_ctrl_get_set_env(struct udev_ctrl_msg *ctrl_msg);
+int udev_ctrl_get_set_children_max(struct udev_ctrl_msg *ctrl_msg);
+
+/* built-in commands */
+enum udev_builtin_cmd {
+#ifdef HAVE_BLKID
+ UDEV_BUILTIN_BLKID,
+#endif
+ UDEV_BUILTIN_BTRFS,
+ UDEV_BUILTIN_HWDB,
+ UDEV_BUILTIN_INPUT_ID,
+ UDEV_BUILTIN_KEYBOARD,
+#ifdef HAVE_KMOD
+ UDEV_BUILTIN_KMOD,
+#endif
+ UDEV_BUILTIN_NET_ID,
+ UDEV_BUILTIN_NET_LINK,
+ UDEV_BUILTIN_PATH_ID,
+ UDEV_BUILTIN_USB_ID,
+#ifdef HAVE_ACL
+ UDEV_BUILTIN_UACCESS,
+#endif
+ UDEV_BUILTIN_MAX
+};
+struct udev_builtin {
+ const char *name;
+ int (*cmd)(struct udev_device *dev, int argc, char *argv[], bool test);
+ const char *help;
+ int (*init)(struct udev *udev);
+ void (*exit)(struct udev *udev);
+ bool (*validate)(struct udev *udev);
+ bool run_once;
+};
+#ifdef HAVE_BLKID
+extern const struct udev_builtin udev_builtin_blkid;
+#endif
+extern const struct udev_builtin udev_builtin_btrfs;
+extern const struct udev_builtin udev_builtin_hwdb;
+extern const struct udev_builtin udev_builtin_input_id;
+extern const struct udev_builtin udev_builtin_keyboard;
+#ifdef HAVE_KMOD
+extern const struct udev_builtin udev_builtin_kmod;
+#endif
+extern const struct udev_builtin udev_builtin_net_id;
+extern const struct udev_builtin udev_builtin_net_setup_link;
+extern const struct udev_builtin udev_builtin_path_id;
+extern const struct udev_builtin udev_builtin_usb_id;
+extern const struct udev_builtin udev_builtin_uaccess;
+void udev_builtin_init(struct udev *udev);
+void udev_builtin_exit(struct udev *udev);
+enum udev_builtin_cmd udev_builtin_lookup(const char *command);
+const char *udev_builtin_name(enum udev_builtin_cmd cmd);
+bool udev_builtin_run_once(enum udev_builtin_cmd cmd);
+int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, const char *command, bool test);
+void udev_builtin_list(struct udev *udev);
+bool udev_builtin_validate(struct udev *udev);
+int udev_builtin_add_property(struct udev_device *dev, bool test, const char *key, const char *val);
+int udev_builtin_hwdb_lookup(struct udev_device *dev, const char *prefix, const char *modalias,
+ const char *filter, bool test);
+
+/* udevadm commands */
+struct udevadm_cmd {
+ const char *name;
+ int (*cmd)(struct udev *udev, int argc, char *argv[]);
+ const char *help;
+ int debug;
+};
+extern const struct udevadm_cmd udevadm_info;
+extern const struct udevadm_cmd udevadm_trigger;
+extern const struct udevadm_cmd udevadm_settle;
+extern const struct udevadm_cmd udevadm_control;
+extern const struct udevadm_cmd udevadm_monitor;
+extern const struct udevadm_cmd udevadm_hwdb;
+extern const struct udevadm_cmd udevadm_test;
+extern const struct udevadm_cmd udevadm_test_builtin;