X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev_rules.h;h=5fba2d55714ca67903a2d73279fc462807411623;hb=1682c8c4a3909f9d80f17544bcfc6fb73379bc7e;hp=94a5d9d5fd11c3e9143229d8c30714799f678d71;hpb=79f651f4bd2fb395a705792eb8ce551a6021bcd6;p=elogind.git diff --git a/udev_rules.h b/udev_rules.h index 94a5d9d5f..5fba2d557 100644 --- a/udev_rules.h +++ b/udev_rules.h @@ -30,17 +30,20 @@ #define KEY_KERNEL "KERNEL" #define KEY_SUBSYSTEM "SUBSYSTEM" +#define KEY_ACTION "ACTION" #define KEY_BUS "BUS" -#define KEY_SYSFS "SYSFS" #define KEY_ID "ID" #define KEY_PROGRAM "PROGRAM" #define KEY_RESULT "RESULT" #define KEY_DRIVER "DRIVER" +#define KEY_SYSFS "SYSFS" +#define KEY_ENV "ENV" #define KEY_NAME "NAME" #define KEY_SYMLINK "SYMLINK" #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" @@ -49,11 +52,12 @@ #define OPTION_PARTITIONS "all_partitions" #define KEY_SYSFS_PAIRS_MAX 5 +#define KEY_ENV_PAIRS_MAX 5 #define RULEFILE_SUFFIX ".rules" enum key_operation { - KEY_OP_UNKNOWN, + KEY_OP_UNSET, KEY_OP_MATCH, KEY_OP_NOMATCH, KEY_OP_ADD, @@ -73,6 +77,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]; @@ -85,12 +91,15 @@ struct udev_rule { enum key_operation result_operation; struct key_pair sysfs_pair[KEY_SYSFS_PAIRS_MAX]; int sysfs_pair_count; + struct key_pair env_pair[KEY_ENV_PAIRS_MAX]; + int env_pair_count; char name[PATH_SIZE]; char symlink[PATH_SIZE]; char owner[USER_SIZE]; char group[USER_SIZE]; mode_t mode; + char run[PATH_SIZE]; int last_rule; int ignore_device; @@ -105,6 +114,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