summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RELEASE-NOTES11
-rw-r--r--test/udev-test.pl10
-rw-r--r--udev_rules.h7
-rw-r--r--udev_rules_parse.c27
4 files changed, 26 insertions, 29 deletions
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index ee77d845be..8895f46215 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -9,12 +9,13 @@ THE PLACE= key is gone. It can be replaced by an ID= for a long time, cause
we walk up the chain of physical devices to find a match.
The KEY="<value>" format supports '=', '==', '!=,' , '+=' now. This makes it
-easier to skip certain devices without composing rules with weird character
-class negations like:
+easy to skip certain attribute matches without composing rules with weird
+character class negations like:
KERNEL="[!s][!c][!d]*"
-this can be replaced by:
+this can now be replaced with:
KERNEL!="scd*"
-The simple '=' is still supported, but the rules should be converted if
-possible, to be better human-readable.
+The current simple '=' is still supported, and should work as it does today,
+but existing rules should be converted if possible, to be better readable.
+
diff --git a/test/udev-test.pl b/test/udev-test.pl
index 8d66536b94..ebceccecb2 100644
--- a/test/udev-test.pl
+++ b/test/udev-test.pl
@@ -1161,6 +1161,16 @@ KERNEL=="sda1", PROGRAM!="/bin/false", NAME="nonzero-program"
BUS=="scsi", KERNEL=="sda1", NAME="wrong"
EOF
},
+ {
+ desc => "test for whitespace between the operator",
+ subsys => "block",
+ devpath => "/block/sda/sda1",
+ exp_name => "true",
+ conf => <<EOF
+KERNEL == "sda1" , NAME = "true"
+BUS=="scsi", KERNEL=="sda1", NAME="wrong"
+EOF
+ },
);
# set env
diff --git a/udev_rules.h b/udev_rules.h
index d0142031e7..688d4798e1 100644
--- a/udev_rules.h
+++ b/udev_rules.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef NAMEDEV_H
-#define NAMEDEV_H
+#ifndef UDEV_RULES_H
+#define UDEV_RULES_H
#include "libsysfs/sysfs/libsysfs.h"
#include "udev.h"
@@ -106,7 +106,4 @@ extern int udev_rules_init(void);
extern int udev_rules_get_name(struct udevice *udev, struct sysfs_class_device *class_dev);
extern void udev_rules_close(void);
-extern void udev_rule_dump(struct udev_rule *rule);
-extern void udev_rule_list_dump(void);
-
#endif
diff --git a/udev_rules_parse.c b/udev_rules_parse.c
index ac4755fd37..db83a67953 100644
--- a/udev_rules_parse.c
+++ b/udev_rules_parse.c
@@ -39,38 +39,27 @@
LIST_HEAD(udev_rule_list);
-static int add_config_dev(struct udev_rule *new_rule)
+static int add_config_dev(struct udev_rule *rule)
{
struct udev_rule *tmp_rule;
tmp_rule = malloc(sizeof(*tmp_rule));
if (tmp_rule == NULL)
return -ENOMEM;
- memcpy(tmp_rule, new_rule, sizeof(*tmp_rule));
+ memcpy(tmp_rule, rule, sizeof(struct udev_rule));
list_add_tail(&tmp_rule->node, &udev_rule_list);
- udev_rule_dump(tmp_rule);
- return 0;
-}
-
-void udev_rule_dump(struct udev_rule *rule)
-{
dbg("name='%s', symlink='%s', bus='%s', id='%s', "
"sysfs_file[0]='%s', sysfs_value[0]='%s', "
- "kernel='%s', program='%s', result='%s'"
- "owner='%s', group='%s', mode=%#o",
+ "kernel='%s', program='%s', result='%s', "
+ "owner='%s', group='%s', mode=%#o, "
+ "all_partions=%u, ignore_remove=%u, ignore_device=%u, last_rule=%u",
rule->name, rule->symlink, rule->bus, rule->id,
rule->sysfs_pair[0].file, rule->sysfs_pair[0].value,
- rule->kernel, rule->program, rule->result,
- rule->owner, rule->group, rule->mode);
-}
+ rule->kernel, rule->program, rule->result, rule->owner, rule->group, rule->mode,
+ rule->partitions, rule->ignore_remove, rule->ignore_device, rule->last_rule);
-void udev_rule_list_dump(void)
-{
- struct udev_rule *rule;
-
- list_for_each_entry(rule, &udev_rule_list, node)
- udev_rule_dump(rule);
+ return 0;
}
static int get_key(char **line, char **key, enum key_operation *operation, char **value)