chiark / gitweb /
docs: hook-up gtk-doc to 'make check'
[elogind.git] / src / libudev / libudev-device.c
index 212163bb92d12d2c5c733e2a07339575f73c6937..97cf6654eee94a0567aa3889f8008eeb6799c679 100644 (file)
@@ -136,7 +136,9 @@ static int udev_device_set_ifindex(struct udev_device *udev_device, int ifindex)
  * udev_device_get_devnum:
  * @udev_device: udev device
  *
- * Returns: the device major/minor number.
+ * Get the device major/minor number.
+ *
+ * Returns: the dev_t number.
  **/
 _public_ dev_t udev_device_get_devnum(struct udev_device *udev_device)
 {
@@ -185,7 +187,9 @@ static int udev_device_set_devpath_old(struct udev_device *udev_device, const ch
  * udev_device_get_driver:
  * @udev_device: udev device
  *
- * Returns: the driver string, or #NULL if there is no driver attached.
+ * Get the kernel driver name.
+ *
+ * Returns: the driver name string, or #NULL if there is no driver attached.
  **/
 _public_ const char *udev_device_get_driver(struct udev_device *udev_device)
 {
@@ -276,7 +280,7 @@ _public_ const char *udev_device_get_subsystem(struct udev_device *udev_device)
                         return udev_device->subsystem;
                 }
                 /* implicit names */
-                if (strncmp(udev_device->devpath, "/module/", 8) == 0) {
+                if (startswith(udev_device->devpath, "/module/")) {
                         udev_device_set_subsystem(udev_device, "module");
                         return udev_device->subsystem;
                 }
@@ -284,9 +288,9 @@ _public_ const char *udev_device_get_subsystem(struct udev_device *udev_device)
                         udev_device_set_subsystem(udev_device, "drivers");
                         return udev_device->subsystem;
                 }
-                if (strncmp(udev_device->devpath, "/subsystem/", 11) == 0 ||
-                    strncmp(udev_device->devpath, "/class/", 7) == 0 ||
-                    strncmp(udev_device->devpath, "/bus/", 5) == 0) {
+                if (startswith(udev_device->devpath, "/subsystem/") ||
+                    startswith(udev_device->devpath, "/class/") ||
+                    startswith(udev_device->devpath, "/bus/")) {
                         udev_device_set_subsystem(udev_device, "subsystem");
                         return udev_device->subsystem;
                 }
@@ -353,18 +357,18 @@ static struct udev_list_entry *udev_device_add_property_from_string(struct udev_
  */
 void udev_device_add_property_from_string_parse(struct udev_device *udev_device, const char *property)
 {
-        if (strncmp(property, "DEVPATH=", 8) == 0) {
+        if (startswith(property, "DEVPATH=")) {
                 char path[UTIL_PATH_SIZE];
 
                 util_strscpyl(path, sizeof(path), TEST_PREFIX "/sys", &property[8], NULL);
                 udev_device_set_syspath(udev_device, path);
-        } else if (strncmp(property, "SUBSYSTEM=", 10) == 0) {
+        } else if (startswith(property, "SUBSYSTEM=")) {
                 udev_device_set_subsystem(udev_device, &property[10]);
-        } else if (strncmp(property, "DEVTYPE=", 8) == 0) {
+        } else if (startswith(property, "DEVTYPE=")) {
                 udev_device_set_devtype(udev_device, &property[8]);
-        } else if (strncmp(property, "DEVNAME=", 8) == 0) {
+        } else if (startswith(property, "DEVNAME=")) {
                 udev_device_set_devnode(udev_device, &property[8]);
-        } else if (strncmp(property, "DEVLINKS=", 9) == 0) {
+        } else if (startswith(property, "DEVLINKS=")) {
                 char devlinks[UTIL_PATH_SIZE];
                 char *slink;
                 char *next;
@@ -380,7 +384,7 @@ void udev_device_add_property_from_string_parse(struct udev_device *udev_device,
                 }
                 if (slink[0] != '\0')
                         udev_device_add_devlink(udev_device, slink, 0);
-        } else if (strncmp(property, "TAGS=", 5) == 0) {
+        } else if (startswith(property, "TAGS=")) {
                 char tags[UTIL_PATH_SIZE];
                 char *next;
 
@@ -400,23 +404,23 @@ void udev_device_add_property_from_string_parse(struct udev_device *udev_device,
                                 udev_device_add_tag(udev_device, tag);
                         }
                 }
-        } else if (strncmp(property, "USEC_INITIALIZED=", 19) == 0) {
+        } else if (startswith(property, "USEC_INITIALIZED=")) {
                 udev_device_set_usec_initialized(udev_device, strtoull(&property[19], NULL, 10));
-        } else if (strncmp(property, "DRIVER=", 7) == 0) {
+        } else if (startswith(property, "DRIVER=")) {
                 udev_device_set_driver(udev_device, &property[7]);
-        } else if (strncmp(property, "ACTION=", 7) == 0) {
+        } else if (startswith(property, "ACTION=")) {
                 udev_device_set_action(udev_device, &property[7]);
-        } else if (strncmp(property, "MAJOR=", 6) == 0) {
+        } else if (startswith(property, "MAJOR=")) {
                 udev_device->maj = strtoull(&property[6], NULL, 10);
-        } else if (strncmp(property, "MINOR=", 6) == 0) {
+        } else if (startswith(property, "MINOR=")) {
                 udev_device->min = strtoull(&property[6], NULL, 10);
-        } else if (strncmp(property, "DEVPATH_OLD=", 12) == 0) {
+        } else if (startswith(property, "DEVPATH_OLD=")) {
                 udev_device_set_devpath_old(udev_device, &property[12]);
-        } else if (strncmp(property, "SEQNUM=", 7) == 0) {
+        } else if (startswith(property, "SEQNUM=")) {
                 udev_device_set_seqnum(udev_device, strtoull(&property[7], NULL, 10));
-        } else if (strncmp(property, "IFINDEX=", 8) == 0) {
+        } else if (startswith(property, "IFINDEX=")) {
                 udev_device_set_ifindex(udev_device, strtoull(&property[8], NULL, 10));
-        } else if (strncmp(property, "DEVMODE=", 8) == 0) {
+        } else if (startswith(property, "DEVMODE=")) {
                 udev_device_set_devnode_mode(udev_device, strtoul(&property[8], NULL, 8));
         } else {
                 udev_device_add_property_from_string(udev_device, property);
@@ -440,7 +444,9 @@ int udev_device_add_property_from_string_parse_finish(struct udev_device *udev_d
  * @udev_device: udev device
  * @key: property name
  *
- * Returns: the value of a device property, or #NULL if there is no such property.
+ * Get the value of a given property.
+ *
+ * Returns: the property string, or #NULL if there is no such property.
  **/
 _public_ const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key)
 {
@@ -548,24 +554,24 @@ int udev_device_read_uevent_file(struct udev_device *udev_device)
                         continue;
                 pos[0] = '\0';
 
-                if (strncmp(line, "DEVTYPE=", 8) == 0) {
+                if (startswith(line, "DEVTYPE=")) {
                         udev_device_set_devtype(udev_device, &line[8]);
                         continue;
                 }
-                if (strncmp(line, "IFINDEX=", 8) == 0) {
+                if (startswith(line, "IFINDEX=")) {
                         udev_device_set_ifindex(udev_device, strtoull(&line[8], NULL, 10));
                         continue;
                 }
-                if (strncmp(line, "DEVNAME=", 8) == 0) {
+                if (startswith(line, "DEVNAME=")) {
                         udev_device_set_devnode(udev_device, &line[8]);
                         continue;
                 }
 
-                if (strncmp(line, "MAJOR=", 6) == 0)
+                if (startswith(line, "MAJOR="))
                         maj = strtoull(&line[6], NULL, 10);
-                else if (strncmp(line, "MINOR=", 6) == 0)
+                else if (startswith(line, "MINOR="))
                         min = strtoull(&line[6], NULL, 10);
-                else if (strncmp(line, "DEVMODE=", 8) == 0)
+                else if (startswith(line, "DEVMODE="))
                         udev_device->devnode_mode = strtoul(&line[8], NULL, 8);
 
                 udev_device_add_property_from_string(udev_device, line);
@@ -636,7 +642,7 @@ _public_ struct udev_device *udev_device_new_from_syspath(struct udev *udev, con
                 return NULL;
 
         /* path starts in sys */
-        if (strncmp(syspath, TEST_PREFIX "/sys", strlen(TEST_PREFIX "/sys")) != 0) {
+        if (!startswith(syspath, TEST_PREFIX "/sys")) {
                 dbg(udev, "not in sys :%s\n", syspath);
                 return NULL;
         }
@@ -651,7 +657,7 @@ _public_ struct udev_device *udev_device_new_from_syspath(struct udev *udev, con
         util_strscpy(path, sizeof(path), syspath);
         util_resolve_sys_link(udev, path, sizeof(path));
 
-        if (strncmp(path + strlen(TEST_PREFIX "/sys"), "/devices/", 9) == 0) {
+        if (startswith(path + strlen(TEST_PREFIX "/sys"), "/devices/")) {
                 char file[UTIL_PATH_SIZE];
 
                 /* all "devices" require a "uevent" file */
@@ -783,7 +789,7 @@ _public_ struct udev_device *udev_device_new_from_subsystem_sysname(struct udev
         char path[UTIL_PATH_SIZE];
         struct stat statbuf;
 
-        if (strcmp(subsystem, "subsystem") == 0) {
+        if (streq(subsystem, "subsystem")) {
                 util_strscpyl(path, sizeof(path), TEST_PREFIX "/sys/subsystem/", sysname, NULL);
                 if (stat(path, &statbuf) == 0)
                         goto found;
@@ -798,14 +804,14 @@ _public_ struct udev_device *udev_device_new_from_subsystem_sysname(struct udev
                 goto out;
         }
 
-        if (strcmp(subsystem, "module") == 0) {
+        if (streq(subsystem, "module")) {
                 util_strscpyl(path, sizeof(path), TEST_PREFIX "/sys/module/", sysname, NULL);
                 if (stat(path, &statbuf) == 0)
                         goto found;
                 goto out;
         }
 
-        if (strcmp(subsystem, "drivers") == 0) {
+        if (streq(subsystem, "drivers")) {
                 char subsys[UTIL_NAME_SIZE];
                 char *driver;
 
@@ -966,11 +972,11 @@ _public_ struct udev_device *udev_device_get_parent_with_subsystem_devtype(struc
                 const char *parent_devtype;
 
                 parent_subsystem = udev_device_get_subsystem(parent);
-                if (parent_subsystem != NULL && strcmp(parent_subsystem, subsystem) == 0) {
+                if (parent_subsystem != NULL && streq(parent_subsystem, subsystem)) {
                         if (devtype == NULL)
                                 break;
                         parent_devtype = udev_device_get_devtype(parent);
-                        if (parent_devtype != NULL && strcmp(parent_devtype, devtype) == 0)
+                        if (parent_devtype != NULL && streq(parent_devtype, devtype))
                                 break;
                 }
                 parent = udev_device_get_parent(parent);
@@ -1081,7 +1087,9 @@ _public_ const char *udev_device_get_syspath(struct udev_device *udev_device)
  * udev_device_get_sysname:
  * @udev_device: udev device
  *
- * Returns: the sys name of the device device
+ * Get the kernel device name in /sys.
+ *
+ * Returns: the name string of the device device
  **/
 _public_ const char *udev_device_get_sysname(struct udev_device *udev_device)
 {
@@ -1094,7 +1102,9 @@ _public_ const char *udev_device_get_sysname(struct udev_device *udev_device)
  * udev_device_get_sysnum:
  * @udev_device: udev device
  *
- * Returns: the trailing number of of the device name
+ * Get the instance number of the device.
+ *
+ * Returns: the trailing number string of of the device name
  **/
 _public_ const char *udev_device_get_sysnum(struct udev_device *udev_device)
 {
@@ -1237,7 +1247,7 @@ _public_ const char *udev_device_get_action(struct udev_device *udev_device)
  **/
 _public_ unsigned long long int udev_device_get_usec_since_initialized(struct udev_device *udev_device)
 {
-        unsigned long long now;
+        unsigned long long now_ts;
 
         if (udev_device == NULL)
                 return 0;
@@ -1245,10 +1255,10 @@ _public_ unsigned long long int udev_device_get_usec_since_initialized(struct ud
                 udev_device_read_db(udev_device, NULL);
         if (udev_device->usec_initialized == 0)
                 return 0;
-        now = now_usec();
-        if (now == 0)
+        now_ts = now_usec();
+        if (now_ts == 0)
                 return 0;
-        return now - udev_device->usec_initialized;
+        return now_ts - udev_device->usec_initialized;
 }
 
 unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device)
@@ -1309,9 +1319,9 @@ _public_ const char *udev_device_get_sysattr_value(struct udev_device *udev_devi
                  * Some core links return only the last element of the target path,
                  * these are just values, the paths should not be exposed.
                  */
-                if (strcmp(sysattr, "driver") == 0 ||
-                    strcmp(sysattr, "subsystem") == 0 ||
-                    strcmp(sysattr, "module") == 0) {
+                if (streq(sysattr, "driver") ||
+                    streq(sysattr, "subsystem") ||
+                    streq(sysattr, "module")) {
                         if (util_get_sys_core_link_value(udev_device->udev, sysattr,
                                                          udev_device->syspath, value, sizeof(value)) < 0)
                                 return NULL;
@@ -1497,7 +1507,7 @@ const char *udev_device_get_id_filename(struct udev_device *udev_device)
                 if (major(udev_device_get_devnum(udev_device)) > 0) {
                         /* use dev_t -- b259:131072, c254:0 */
                         if (asprintf(&udev_device->id_filename, "%c%u:%u",
-                                     strcmp(udev_device_get_subsystem(udev_device), "block") == 0 ? 'b' : 'c',
+                                     streq(udev_device_get_subsystem(udev_device), "block") ? 'b' : 'c',
                                      major(udev_device_get_devnum(udev_device)),
                                      minor(udev_device_get_devnum(udev_device))) < 0)
                                 udev_device->id_filename = NULL;
@@ -1583,6 +1593,15 @@ _public_ struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_dev
         return udev_list_get_entry(&udev_device->tags_list);
 }
 
+/**
+ * udev_device_has_tag:
+ * @udev_device: udev device
+ * @tag: tag name
+ *
+ * Check if a given device has a certain tag associated.
+ *
+ * Returns: 1 if the tag is found. 0 otherwise.
+ **/
 _public_ int udev_device_has_tag(struct udev_device *udev_device, const char *tag)
 {
         struct udev_list_entry *list_entry;