X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev_rules.h;h=be13378e4e1e58b3c749216fc0598b3e648277db;hp=4ecada1c039dba3632d5b32e779dc1af1857016d;hb=da4aec2fb4e3c9f1f73a67a5e326c90220fb0c59;hpb=8bd41f36f793f7fc208ef6beb4b2b84e35a5e728 diff --git a/udev_rules.h b/udev_rules.h index 4ecada1c0..be13378e4 100644 --- a/udev_rules.h +++ b/udev_rules.h @@ -1,9 +1,8 @@ /* * udev_rules.h * - * Userspace devfs - * - * Copyright (C) 2003,2004 Greg Kroah-Hartman + * Copyright (C) 2003-2004 Greg Kroah-Hartman + * Copyright (C) 2004-2005 Kay Sievers * * 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