chiark / gitweb /
[PATCH] add install and uninstall the etc/dev.d/net/hotplug.dev file to the Makefile
[elogind.git] / namedev.h
index 10a5dcaf0c53733300005e88cbcd5c85881f2933..fa924b14d96dd12e4076a0ddb8e518d6c863d5e8 100644 (file)
--- a/namedev.h
+++ b/namedev.h
@@ -44,14 +44,26 @@ struct sysfs_class_device;
 #define FIELD_KERNEL           "KERNEL"
 #define FIELD_NAME             "NAME"
 #define FIELD_SYMLINK          "SYMLINK"
+#define FIELD_OWNER            "OWNER"
+#define FIELD_GROUP            "GROUP"
+#define FIELD_MODE             "MODE"
 
 #define ATTR_PARTITIONS                "all_partitions"
 #define PARTITIONS_COUNT       15
 
-
-#define PROGRAM_MAXARG         10
 #define MAX_SYSFS_PAIRS                5
 
+#define RULEFILE_SUFFIX                ".rules"
+#define PERMFILE_SUFFIX                ".permissions"
+
+#define set_empty_perms(dev, m, o, g)          \
+       if (dev->mode == 0)                     \
+               dev->mode = m;                  \
+       if (dev->owner[0] == '\0')              \
+               strfieldcpy(dev->owner, o);     \
+       if (dev->group[0] == '\0')              \
+               strfieldcpy(dev->group, g);
+
 struct sysfs_pair {
        char file[FILE_SIZE];
        char value[VALUE_SIZE];
@@ -69,7 +81,11 @@ struct config_device {
        char name[NAME_SIZE];
        char symlink[NAME_SIZE];
        struct sysfs_pair sysfs_pair[MAX_SYSFS_PAIRS];
+       char owner[OWNER_SIZE];
+       char group[GROUP_SIZE];
+       unsigned int mode;
        int partitions;
+       char config_file[NAME_SIZE];
        int config_line;
 };
 
@@ -90,7 +106,6 @@ extern int namedev_name_device(struct sysfs_class_device *class_dev, struct udev
 extern int namedev_init_permissions(void);
 extern int namedev_init_rules(void);
 
-extern int add_perm_dev(struct perm_device *new_dev);
 extern void dump_config_dev(struct config_device *dev);
 extern void dump_config_dev_list(void);
 extern void dump_perm_dev(struct perm_device *dev);