From 6bf0ffe8fd312c1e6549cb1721d7a7efeee77185 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Fri, 24 Jun 2005 18:05:32 +0200 Subject: allow rules to be compiled to one binary file All the rule files can be compiled into a single file, which can be mapped into the udev process to avoid parsing the rules with every event. Signed-off-by: Kay Sievers --- udev_rules.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'udev_rules.c') diff --git a/udev_rules.c b/udev_rules.c index 52e0712d35..c416128b62 100644 --- a/udev_rules.c +++ b/udev_rules.c @@ -846,7 +846,12 @@ int udev_rules_get_name(struct udevice *udev, struct sysfs_class_device *class_d dbg("udev->kernel_name='%s'", udev->kernel_name); /* look for a matching rule to apply */ - list_for_each_entry(rule, &udev_rule_list, node) { + udev_rules_iter_init(); + while (1) { + rule = udev_rules_iter_next(); + if (rule == NULL) + break; + if (udev->name_set && rule->name_operation != KEY_OP_UNSET) { dbg("node name already set, rule ignored"); continue; @@ -1000,9 +1005,13 @@ int udev_rules_get_run(struct udevice *udev, struct sysfs_device *sysfs_device) struct udev_rule *rule; /* look for a matching rule to apply */ - list_for_each_entry(rule, &udev_rule_list, node) { - dbg("process rule"); + udev_rules_iter_init(); + while (1) { + rule = udev_rules_iter_next(); + if (rule == NULL) + break; + dbg("process rule"); if (rule->run_operation == KEY_OP_UNSET) continue; -- cgit v1.2.3-54-g00ecf