]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-device: reorder elements in sd_device object
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 5 Mar 2025 18:47:56 +0000 (03:47 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 12 Mar 2025 16:08:57 +0000 (01:08 +0900)
No functional change, just refactoring.

src/libsystemd/sd-device/device-internal.h

index c79181d5bb6053c0144af9c140a3f357dc721ea0..cbd89849bde74181103fadec557519cd0165db8a 100644 (file)
 struct sd_device {
         unsigned n_ref;
 
+        /* syspath */
+        char *syspath;
+        const char *devpath;
+        const char *sysnum;
+        char *sysname;
+
+        /* only set when device is passed through netlink */
+        sd_device_action_t action;
+        uint64_t seqnum;
+
+        /* basic kernel properties */
+        char *subsystem;
+        char *driver_subsystem; /* only set for the 'drivers' subsystem */
+        char *driver;
+        char *devtype;
+
+        /* device node properties */
+        char *devname;
+        dev_t devnum;
+        mode_t devmode;
+        uid_t devuid;
+        gid_t devgid;
+
+        /* block device properties */
+        uint64_t diskseq; /* Block device sequence number, monothonically incremented by the kernel on create/attach */
+
+        /* network interface properties */
+        int ifindex;
+
+        /* determined by devnnum, ifindex, subsystem, and sysname */
+        char *device_id;
+
+        /* sysfs attributes */
+        Hashmap *sysattr_values; /* cached sysattr values */
+        Set *sysattrs; /* names of sysattrs */
+        Iterator sysattrs_iterator;
+
         /* The database version indicates the supported features by the udev database.
          * This is saved and parsed in V field.
          *
@@ -21,68 +58,38 @@ struct sd_device {
          */
         unsigned database_version;
 
-        sd_device *parent;
+        /* when device is initialized by udevd */
+        usec_t usec_initialized;
 
-        OrderedHashmap *properties;
+        /* properties */
+        OrderedHashmap *properties; /* all properties set from uevent and by udevd */
         Iterator properties_iterator;
         uint64_t properties_generation; /* changes whenever the properties are changed */
         uint64_t properties_iterator_generation; /* generation when iteration was started */
+        OrderedHashmap *properties_db; /* the subset of the properties that should be written to the db */
+        char **properties_strv; /* the properties hashmap as a strv */
+        char *properties_nulstr; /* the same as a nulstr */
+        size_t properties_nulstr_len;
 
-        /* the subset of the properties that should be written to the db */
-        OrderedHashmap *properties_db;
-
-        Hashmap *sysattr_values; /* cached sysattr values */
-
-        Set *sysattrs; /* names of sysattrs */
-        Iterator sysattrs_iterator;
-
+        /* TAG keyword */
         Set *all_tags, *current_tags;
         Iterator all_tags_iterator, current_tags_iterator;
         uint64_t all_tags_iterator_generation, current_tags_iterator_generation; /* generation when iteration was started */
         uint64_t tags_generation; /* changes whenever the tags are changed */
 
+        /* SYMLINK keyword */
         Set *devlinks;
         Iterator devlinks_iterator;
         uint64_t devlinks_generation; /* changes whenever the devlinks are changed */
         uint64_t devlinks_iterator_generation; /* generation when iteration was started */
         int devlink_priority;
 
+        /* parent and child devices */
+        sd_device *parent;
         Hashmap *children;
         Iterator children_iterator;
         bool children_enumerated;
 
-        int ifindex;
-        char *devtype;
-        char *devname;
-        dev_t devnum;
-
-        char **properties_strv; /* the properties hashmap as a strv */
-        char *properties_nulstr; /* the same as a nulstr */
-        size_t properties_nulstr_len;
-
-        char *syspath;
-        const char *devpath;
-        const char *sysnum;
-        char *sysname;
-
-        char *subsystem;
-        char *driver_subsystem; /* only set for the 'drivers' subsystem */
-        char *driver;
-
-        char *device_id;
-
-        usec_t usec_initialized;
-
-        mode_t devmode;
-        uid_t devuid;
-        gid_t devgid;
-
-        uint64_t diskseq; /* Block device sequence number, monothonically incremented by the kernel on create/attach */
-
-        /* only set when device is passed through netlink */
-        sd_device_action_t action;
-        uint64_t seqnum;
-
         bool parent_set:1; /* no need to try to reload parent */
         bool sysattrs_read:1; /* don't try to re-read sysattrs once read */
         bool property_tags_outdated:1; /* need to update TAGS= or CURRENT_TAGS= property */
@@ -92,7 +99,6 @@ struct sd_device {
         bool driver_set:1; /* don't reread driver */
         bool uevent_loaded:1; /* don't reread uevent */
         bool db_loaded; /* don't reread db */
-
         bool is_initialized:1;
         bool sealed:1; /* don't read more information from uevent/db */
         bool db_persist:1; /* don't clean up the db when switching from initrd to real root */