chiark / gitweb /
add EXTRAS documentation to the README file.
[elogind.git] / udev_rules.h
index 4ecada1c039dba3632d5b32e779dc1af1857016d..be13378e4e1e58b3c749216fc0598b3e648277db 100644 (file)
@@ -1,9 +1,8 @@
 /*
  * udev_rules.h
  *
- * Userspace devfs
- *
- * Copyright (C) 2003,2004 Greg Kroah-Hartman <greg@kroah.com>
+ * Copyright (C) 2003-2004 Greg Kroah-Hartman <greg@kroah.com>
+ * Copyright (C) 2004-2005 Kay Sievers <kay.sievers@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
@@ -54,7 +53,16 @@ struct key_pairs {
        struct key_pair keys[PAIRS_MAX];
 };
 
+enum import_type {
+       IMPORT_UNSET,
+       IMPORT_PROGRAM,
+       IMPORT_FILE,
+       IMPORT_PARENT,
+};
+
 struct udev_rule {
+       struct key label;
+       struct key goto_label;
        struct key kernel_name;
        struct key subsystem;
        struct key action;
@@ -66,6 +74,8 @@ struct udev_rule {
        struct key result;
        struct key modalias;
        struct key import;
+       enum import_type import_type;
+       struct key wait_for_sysfs;
        struct key_pairs sysfs;
        struct key_pairs env;
 
@@ -80,8 +90,7 @@ struct udev_rule {
        unsigned int partitions;
        unsigned int last_rule:1,
                     ignore_device:1,
-                    ignore_remove:1,
-                    import_exec:1;
+                    ignore_remove:1;
 
        size_t bufsize;
        char buf[];
@@ -95,13 +104,19 @@ struct udev_rules {
        int resolve_names;
 };
 
-extern int udev_rules_init(struct udev_rules *rules, int resolve_names);
+extern int udev_rules_init(struct udev_rules *rules, int read_compiled, int resolve_names);
 extern void udev_rules_close(struct udev_rules *rules);
 
+extern void udev_apply_format(struct udevice *udev, char *string, size_t maxsize,
+                             struct sysfs_class_device *class_dev, struct sysfs_device *sysfs_device);
+
 extern void udev_rules_iter_init(struct udev_rules *rules);
 extern struct udev_rule *udev_rules_iter_next(struct udev_rules *rules);
+extern struct udev_rule *udev_rules_iter_label(struct udev_rules *rules, const char *label);
 
-extern int udev_rules_get_name(struct udev_rules *rules, struct udevice *udev, struct sysfs_class_device *class_dev);
-extern int udev_rules_get_run(struct udev_rules *rules, struct udevice *udev, struct sysfs_device *sysfs_device);
+extern int udev_rules_get_name(struct udev_rules *rules, struct udevice *udev,
+                              struct sysfs_class_device *class_dev);
+extern int udev_rules_get_run(struct udev_rules *rules, struct udevice *udev,
+                             struct sysfs_class_device *class_dev, struct sysfs_device *sysfs_dev);
 
 #endif