X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev_rules.h;h=f4a74bba4564e2b06b4bfe668293c00c57e4da67;hb=c974742bf4d6d8fab1e1c90e2e57dae0a2f297a1;hp=423a6f641ecb1f24632c4c5eeeecc595caf0e44a;hpb=3e5958dee5f24283eb5c6a2d2d95e1a39428a3b8;p=elogind.git diff --git a/udev_rules.h b/udev_rules.h index 423a6f641..f4a74bba4 100644 --- a/udev_rules.h +++ b/udev_rules.h @@ -30,6 +30,7 @@ #define KEY_KERNEL "KERNEL" #define KEY_SUBSYSTEM "SUBSYSTEM" +#define KEY_ACTION "ACTION" #define KEY_BUS "BUS" #define KEY_ID "ID" #define KEY_PROGRAM "PROGRAM" @@ -42,6 +43,7 @@ #define KEY_OWNER "OWNER" #define KEY_GROUP "GROUP" #define KEY_MODE "MODE" +#define KEY_RUN "RUN" #define KEY_OPTIONS "OPTIONS" #define OPTION_LAST_RULE "last_rule" @@ -55,11 +57,12 @@ #define RULEFILE_SUFFIX ".rules" enum key_operation { - KEY_OP_UNKNOWN, + KEY_OP_UNSET, KEY_OP_MATCH, KEY_OP_NOMATCH, KEY_OP_ADD, KEY_OP_ASSIGN, + KEY_OP_ASSIGN_FINAL, }; struct key_pair { @@ -75,6 +78,8 @@ struct udev_rule { enum key_operation kernel_operation; char subsystem[NAME_SIZE]; enum key_operation subsystem_operation; + char action[NAME_SIZE]; + enum key_operation action_operation; char bus[NAME_SIZE]; enum key_operation bus_operation; char id[NAME_SIZE]; @@ -92,9 +97,15 @@ struct udev_rule { char name[PATH_SIZE]; char symlink[PATH_SIZE]; + enum key_operation symlink_operation; char owner[USER_SIZE]; + enum key_operation owner_operation; char group[USER_SIZE]; + enum key_operation group_operation; mode_t mode; + enum key_operation mode_operation; + char run[PATH_SIZE]; + enum key_operation run_operation; int last_rule; int ignore_device; @@ -109,6 +120,7 @@ extern struct list_head udev_rule_list; extern int udev_rules_init(void); extern int udev_rules_get_name(struct udevice *udev, struct sysfs_class_device *class_dev); +extern int udev_rules_get_run(struct udevice *udev); extern void udev_rules_close(void); #endif