chiark / gitweb /
release 171
[elogind.git] / libudev / libudev-device.c
index d57a9eb59717c2c6fd692979e0fafe2e98d6c1a1..8289acf3a97149a548de0bdd1179a92a18bec34b 100644 (file)
@@ -57,7 +57,6 @@ struct udev_device {
        char *driver;
        char *action;
        char *devpath_old;
-       char *sysname_old;
        char *knodename;
        char *id_filename;
        char **envp;
@@ -92,6 +91,260 @@ struct udev_device {
        bool db_persist;
 };
 
+/**
+ * udev_device_get_devnum:
+ * @udev_device: udev device
+ *
+ * This is only valid if the device was received through a monitor. Devices read from
+ * sys do not have a sequence number.
+ *
+ * Returns: the kernel event sequence number, or 0 if there is no sequence number available.
+ **/
+UDEV_EXPORT unsigned long long int udev_device_get_seqnum(struct udev_device *udev_device)
+{
+       if (udev_device == NULL)
+               return 0;
+       return udev_device->seqnum;
+}
+
+static int udev_device_set_seqnum(struct udev_device *udev_device, unsigned long long int seqnum)
+{
+       char num[32];
+
+       udev_device->seqnum = seqnum;
+       snprintf(num, sizeof(num), "%llu", seqnum);
+       udev_device_add_property(udev_device, "SEQNUM", num);
+       return 0;
+}
+
+int udev_device_get_ifindex(struct udev_device *udev_device)
+{
+       if (!udev_device->info_loaded)
+               udev_device_read_uevent_file(udev_device);
+       return udev_device->ifindex;
+}
+
+static int udev_device_set_ifindex(struct udev_device *udev_device, int ifindex)
+{
+       char num[32];
+
+       udev_device->ifindex = ifindex;
+       snprintf(num, sizeof(num), "%u", ifindex);
+       udev_device_add_property(udev_device, "IFINDEX", num);
+       return 0;
+}
+
+/**
+ * udev_device_get_devnum:
+ * @udev_device: udev device
+ *
+ * Returns: the device major/minor number.
+ **/
+UDEV_EXPORT dev_t udev_device_get_devnum(struct udev_device *udev_device)
+{
+       if (udev_device == NULL)
+               return makedev(0, 0);
+       if (!udev_device->info_loaded)
+               udev_device_read_uevent_file(udev_device);
+       return udev_device->devnum;
+}
+
+static int udev_device_set_devnum(struct udev_device *udev_device, dev_t devnum)
+{
+       char num[32];
+
+       udev_device->devnum = devnum;
+
+       snprintf(num, sizeof(num), "%u", major(devnum));
+       udev_device_add_property(udev_device, "MAJOR", num);
+       snprintf(num, sizeof(num), "%u", minor(devnum));
+       udev_device_add_property(udev_device, "MINOR", num);
+       return 0;
+}
+
+int udev_device_get_timeout(struct udev_device *udev_device)
+{
+       return udev_device->timeout;
+}
+
+static int udev_device_set_timeout(struct udev_device *udev_device, int timeout)
+{
+       char num[32];
+
+       udev_device->timeout = timeout;
+       snprintf(num, sizeof(num), "%u", timeout);
+       udev_device_add_property(udev_device, "TIMEOUT", num);
+       return 0;
+}
+
+const char *udev_device_get_knodename(struct udev_device *udev_device)
+{
+       return udev_device->knodename;
+}
+
+static int udev_device_set_knodename(struct udev_device *udev_device, const char *knodename)
+{
+       free(udev_device->knodename);
+       udev_device->knodename = strdup(knodename);
+       if (udev_device->knodename == NULL)
+               return -ENOMEM;
+       /* do not overwrite the udev property with the kernel property */
+       if (udev_device->devnode == NULL)
+               udev_device_add_property(udev_device, "DEVNAME", udev_device->knodename);
+       return 0;
+}
+
+const char *udev_device_get_devpath_old(struct udev_device *udev_device)
+{
+       return udev_device->devpath_old;
+}
+
+static int udev_device_set_devpath_old(struct udev_device *udev_device, const char *devpath_old)
+{
+       const char *pos;
+
+       free(udev_device->devpath_old);
+       udev_device->devpath_old = strdup(devpath_old);
+       if (udev_device->devpath_old == NULL)
+               return -ENOMEM;
+       udev_device_add_property(udev_device, "DEVPATH_OLD", udev_device->devpath_old);
+
+       pos = strrchr(udev_device->devpath_old, '/');
+       if (pos == NULL)
+               return -EINVAL;
+       return 0;
+}
+
+/**
+ * udev_device_get_driver:
+ * @udev_device: udev device
+ *
+ * Returns: the driver string, or #NULL if there is no driver attached.
+ **/
+UDEV_EXPORT const char *udev_device_get_driver(struct udev_device *udev_device)
+{
+       char driver[UTIL_NAME_SIZE];
+
+       if (udev_device == NULL)
+               return NULL;
+       if (!udev_device->driver_set) {
+               udev_device->driver_set = true;
+               if (util_get_sys_driver(udev_device->udev, udev_device->syspath, driver, sizeof(driver)) > 0)
+                       udev_device->driver = strdup(driver);
+       }
+       return udev_device->driver;
+}
+
+static int udev_device_set_driver(struct udev_device *udev_device, const char *driver)
+{
+       free(udev_device->driver);
+       udev_device->driver = strdup(driver);
+       if (udev_device->driver == NULL)
+               return -ENOMEM;
+       udev_device->driver_set = true;
+       udev_device_add_property(udev_device, "DRIVER", udev_device->driver);
+       return 0;
+}
+
+/**
+ * udev_device_get_devtype:
+ * @udev_device: udev device
+ *
+ * Retrieve the devtype string of the udev device.
+ *
+ * Returns: the devtype name of the udev device, or #NULL if it can not be determined
+ **/
+UDEV_EXPORT const char *udev_device_get_devtype(struct udev_device *udev_device)
+{
+       if (udev_device == NULL)
+               return NULL;
+       if (!udev_device->devtype_set) {
+               udev_device->devtype_set = true;
+               udev_device_read_uevent_file(udev_device);
+       }
+       return udev_device->devtype;
+}
+
+static int udev_device_set_devtype(struct udev_device *udev_device, const char *devtype)
+{
+       free(udev_device->devtype);
+       udev_device->devtype = strdup(devtype);
+       if (udev_device->devtype == NULL)
+               return -ENOMEM;
+       udev_device->devtype_set = true;
+       udev_device_add_property(udev_device, "DEVTYPE", udev_device->devtype);
+       return 0;
+}
+
+static int udev_device_set_subsystem(struct udev_device *udev_device, const char *subsystem)
+{
+       free(udev_device->subsystem);
+       udev_device->subsystem = strdup(subsystem);
+       if (udev_device->subsystem == NULL)
+               return -ENOMEM;
+       udev_device->subsystem_set = true;
+       udev_device_add_property(udev_device, "SUBSYSTEM", udev_device->subsystem);
+       return 0;
+}
+
+/**
+ * udev_device_get_subsystem:
+ * @udev_device: udev device
+ *
+ * Retrieve the subsystem string of the udev device. The string does not
+ * contain any "/".
+ *
+ * Returns: the subsystem name of the udev device, or #NULL if it can not be determined
+ **/
+UDEV_EXPORT const char *udev_device_get_subsystem(struct udev_device *udev_device)
+{
+       char subsystem[UTIL_NAME_SIZE];
+
+       if (udev_device == NULL)
+               return NULL;
+       if (!udev_device->subsystem_set) {
+               udev_device->subsystem_set = true;
+               /* read "subsystem" link */
+               if (util_get_sys_subsystem(udev_device->udev, udev_device->syspath, subsystem, sizeof(subsystem)) > 0) {
+                       udev_device_set_subsystem(udev_device, subsystem);
+                       return udev_device->subsystem;
+               }
+               /* implicit names */
+               if (strncmp(udev_device->devpath, "/module/", 8) == 0) {
+                       udev_device_set_subsystem(udev_device, "module");
+                       return udev_device->subsystem;
+               }
+               if (strstr(udev_device->devpath, "/drivers/") != NULL) {
+                       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) {
+                       udev_device_set_subsystem(udev_device, "subsystem");
+                       return udev_device->subsystem;
+               }
+       }
+       return udev_device->subsystem;
+}
+
+mode_t udev_device_get_devnode_mode(struct udev_device *udev_device)
+{
+       if (!udev_device->info_loaded)
+               udev_device_read_uevent_file(udev_device);
+       return udev_device->devnode_mode;
+}
+
+static int udev_device_set_devnode_mode(struct udev_device *udev_device, mode_t mode)
+{
+       char num[32];
+
+       udev_device->devnode_mode = mode;
+       snprintf(num, sizeof(num), "%#o", mode);
+       udev_device_add_property(udev_device, "DEVMODE", num);
+       return 0;
+}
+
 struct udev_list_entry *udev_device_add_property(struct udev_device *udev_device, const char *key, const char *value)
 {
        udev_device->envp_uptodate = false;
@@ -226,7 +479,7 @@ int udev_device_add_property_from_string_parse_finish(struct udev_device *udev_d
  *
  * Returns: the value of a device property, or #NULL if there is no such property.
  **/
-const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key)
+UDEV_EXPORT const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key)
 {
        struct udev_list_entry *list_entry;
 
@@ -405,7 +658,7 @@ struct udev_device *udev_device_new(struct udev *udev)
  *
  * Returns: a new udev device, or #NULL, if it does not exist
  **/
-struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath)
+UDEV_EXPORT struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *syspath)
 {
        size_t len;
        const char *subdir;
@@ -481,7 +734,7 @@ struct udev_device *udev_device_new_from_syspath(struct udev *udev, const char *
  *
  * Returns: a new udev device, or #NULL, if it does not exist
  **/
-struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum)
+UDEV_EXPORT struct udev_device *udev_device_new_from_devnum(struct udev *udev, char type, dev_t devnum)
 {
        char path[UTIL_PATH_SIZE];
        const char *type_str;
@@ -569,7 +822,7 @@ struct udev_device *udev_device_new_from_id_filename(struct udev *udev, char *id
  *
  * Returns: a new udev device, or #NULL, if it does not exist
  **/
-struct udev_device *udev_device_new_from_subsystem_sysname(struct udev *udev, const char *subsystem, const char *sysname)
+UDEV_EXPORT struct udev_device *udev_device_new_from_subsystem_sysname(struct udev *udev, const char *subsystem, const char *sysname)
 {
        char path_full[UTIL_PATH_SIZE];
        char *path;
@@ -653,7 +906,7 @@ found:
  *
  * Returns: a new udev device, or #NULL, if it does not exist
  **/
-struct udev_device *udev_device_new_from_environment(struct udev *udev)
+UDEV_EXPORT struct udev_device *udev_device_new_from_environment(struct udev *udev)
 {
        int i;
        struct udev_device *udev_device;
@@ -716,7 +969,7 @@ static struct udev_device *device_new_from_parent(struct udev_device *udev_devic
  *
  * Returns: a new udev device, or #NULL, if it no parent exist.
  **/
-struct udev_device *udev_device_get_parent(struct udev_device *udev_device)
+UDEV_EXPORT struct udev_device *udev_device_get_parent(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -751,7 +1004,7 @@ struct udev_device *udev_device_get_parent(struct udev_device *udev_device)
  *
  * Returns: a new udev device, or #NULL if no matching parent exists.
  **/
-struct udev_device *udev_device_get_parent_with_subsystem_devtype(struct udev_device *udev_device, const char *subsystem, const char *devtype)
+UDEV_EXPORT struct udev_device *udev_device_get_parent_with_subsystem_devtype(struct udev_device *udev_device, const char *subsystem, const char *devtype)
 {
        struct udev_device *parent;
 
@@ -784,7 +1037,7 @@ struct udev_device *udev_device_get_parent_with_subsystem_devtype(struct udev_de
  *
  * Returns: the udev library context
  **/
-struct udev *udev_device_get_udev(struct udev_device *udev_device)
+UDEV_EXPORT struct udev *udev_device_get_udev(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -799,7 +1052,7 @@ struct udev *udev_device_get_udev(struct udev_device *udev_device)
  *
  * Returns: the passed udev device
  **/
-struct udev_device *udev_device_ref(struct udev_device *udev_device)
+UDEV_EXPORT struct udev_device *udev_device_ref(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -815,7 +1068,7 @@ struct udev_device *udev_device_ref(struct udev_device *udev_device)
  * the resources of the device will be released.
  *
  **/
-void udev_device_unref(struct udev_device *udev_device)
+UDEV_EXPORT void udev_device_unref(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return;
@@ -837,7 +1090,6 @@ void udev_device_unref(struct udev_device *udev_device)
        free(udev_device->action);
        free(udev_device->driver);
        free(udev_device->devpath_old);
-       free(udev_device->sysname_old);
        free(udev_device->knodename);
        free(udev_device->id_filename);
        free(udev_device->envp);
@@ -855,7 +1107,7 @@ void udev_device_unref(struct udev_device *udev_device)
  *
  * Returns: the devpath of the udev device
  **/
-const char *udev_device_get_devpath(struct udev_device *udev_device)
+UDEV_EXPORT const char *udev_device_get_devpath(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -871,7 +1123,7 @@ const char *udev_device_get_devpath(struct udev_device *udev_device)
  *
  * Returns: the sys path of the udev device
  **/
-const char *udev_device_get_syspath(struct udev_device *udev_device)
+UDEV_EXPORT const char *udev_device_get_syspath(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -884,7 +1136,7 @@ const char *udev_device_get_syspath(struct udev_device *udev_device)
  *
  * Returns: the sys name of the device device
  **/
-const char *udev_device_get_sysname(struct udev_device *udev_device)
+UDEV_EXPORT const char *udev_device_get_sysname(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -897,7 +1149,7 @@ const char *udev_device_get_sysname(struct udev_device *udev_device)
  *
  * Returns: the trailing number of of the device name
  **/
-const char *udev_device_get_sysnum(struct udev_device *udev_device)
+UDEV_EXPORT const char *udev_device_get_sysnum(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -913,7 +1165,7 @@ const char *udev_device_get_sysnum(struct udev_device *udev_device)
  *
  * Returns: the device node file name of the udev device, or #NULL if no device node exists
  **/
-const char *udev_device_get_devnode(struct udev_device *udev_device)
+UDEV_EXPORT const char *udev_device_get_devnode(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -935,73 +1187,6 @@ const char *udev_device_get_devnode(struct udev_device *udev_device)
        return udev_device->devnode;
 }
 
-mode_t udev_device_get_devnode_mode(struct udev_device *udev_device)
-{
-       if (!udev_device->info_loaded)
-               udev_device_read_uevent_file(udev_device);
-       return udev_device->devnode_mode;
-}
-
-/**
- * udev_device_get_subsystem:
- * @udev_device: udev device
- *
- * Retrieve the subsystem string of the udev device. The string does not
- * contain any "/".
- *
- * Returns: the subsystem name of the udev device, or #NULL if it can not be determined
- **/
-const char *udev_device_get_subsystem(struct udev_device *udev_device)
-{
-       char subsystem[UTIL_NAME_SIZE];
-
-       if (udev_device == NULL)
-               return NULL;
-       if (!udev_device->subsystem_set) {
-               udev_device->subsystem_set = true;
-               /* read "subsystem" link */
-               if (util_get_sys_subsystem(udev_device->udev, udev_device->syspath, subsystem, sizeof(subsystem)) > 0) {
-                       udev_device_set_subsystem(udev_device, subsystem);
-                       return udev_device->subsystem;
-               }
-               /* implicit names */
-               if (strncmp(udev_device->devpath, "/module/", 8) == 0) {
-                       udev_device_set_subsystem(udev_device, "module");
-                       return udev_device->subsystem;
-               }
-               if (strstr(udev_device->devpath, "/drivers/") != NULL) {
-                       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) {
-                       udev_device_set_subsystem(udev_device, "subsystem");
-                       return udev_device->subsystem;
-               }
-       }
-       return udev_device->subsystem;
-}
-
-/**
- * udev_device_get_devtype:
- * @udev_device: udev device
- *
- * Retrieve the devtype string of the udev device.
- *
- * Returns: the devtype name of the udev device, or #NULL if it can not be determined
- **/
-const char *udev_device_get_devtype(struct udev_device *udev_device)
-{
-       if (udev_device == NULL)
-               return NULL;
-       if (!udev_device->devtype_set) {
-               udev_device->devtype_set = true;
-               udev_device_read_uevent_file(udev_device);
-       }
-       return udev_device->devtype;
-}
-
 /**
  * udev_device_get_devlinks_list_entry:
  * @udev_device: udev device
@@ -1015,7 +1200,7 @@ const char *udev_device_get_devtype(struct udev_device *udev_device)
  *
  * Returns: the first entry of the device node link list
  **/
-struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device)
+UDEV_EXPORT struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -1042,7 +1227,7 @@ void udev_device_cleanup_devlinks_list(struct udev_device *udev_device)
  *
  * Returns: the first entry of the property list
  **/
-struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device)
+UDEV_EXPORT struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -1085,41 +1270,6 @@ struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device
        return udev_list_get_entry(&udev_device->properties_list);
 }
 
-/**
- * udev_device_get_driver:
- * @udev_device: udev device
- *
- * Returns: the driver string, or #NULL if there is no driver attached.
- **/
-const char *udev_device_get_driver(struct udev_device *udev_device)
-{
-       char driver[UTIL_NAME_SIZE];
-
-       if (udev_device == NULL)
-               return NULL;
-       if (!udev_device->driver_set) {
-               udev_device->driver_set = true;
-               if (util_get_sys_driver(udev_device->udev, udev_device->syspath, driver, sizeof(driver)) > 0)
-                       udev_device->driver = strdup(driver);
-       }
-       return udev_device->driver;
-}
-
-/**
- * udev_device_get_devnum:
- * @udev_device: udev device
- *
- * Returns: the device major/minor number.
- **/
-dev_t udev_device_get_devnum(struct udev_device *udev_device)
-{
-       if (udev_device == NULL)
-               return makedev(0, 0);
-       if (!udev_device->info_loaded)
-               udev_device_read_uevent_file(udev_device);
-       return udev_device->devnum;
-}
-
 /**
  * udev_device_get_action:
  * @udev_device: udev device
@@ -1130,29 +1280,13 @@ dev_t udev_device_get_devnum(struct udev_device *udev_device)
  *
  * Returns: the kernel action value, or #NULL if there is no action value available.
  **/
-const char *udev_device_get_action(struct udev_device *udev_device)
+UDEV_EXPORT const char *udev_device_get_action(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
        return udev_device->action;
 }
 
-/**
- * udev_device_get_devnum:
- * @udev_device: udev device
- *
- * This is only valid if the device was received through a monitor. Devices read from
- * sys do not have a sequence number.
- *
- * Returns: the kernel event sequence number, or 0 if there is no sequence number available.
- **/
-unsigned long long int udev_device_get_seqnum(struct udev_device *udev_device)
-{
-       if (udev_device == NULL)
-               return 0;
-       return udev_device->seqnum;
-}
-
 /**
  * udev_device_get_usec_since_initialized:
  * @udev_device: udev device
@@ -1165,7 +1299,7 @@ unsigned long long int udev_device_get_seqnum(struct udev_device *udev_device)
  *
  * Returns: the number of microseconds since the device was first seen.
  **/
-unsigned long long int udev_device_get_usec_since_initialized(struct udev_device *udev_device)
+UDEV_EXPORT unsigned long long int udev_device_get_usec_since_initialized(struct udev_device *udev_device)
 {
        unsigned long long now;
 
@@ -1201,7 +1335,7 @@ void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned
  *
  * Returns: the content of a sys attribute file, or #NULL if there is no sys attribute value.
  **/
-const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr)
+UDEV_EXPORT const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr)
 {
        struct udev_list_entry *list_entry;
        char path[UTIL_PATH_SIZE];
@@ -1344,7 +1478,7 @@ static int udev_device_sysattr_list_read(struct udev_device *udev_device)
  *
  * Returns: the first entry of the property list
  **/
-struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_device *udev_device)
+UDEV_EXPORT struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_device *udev_device)
 {
        if (!udev_device->sysattr_list_read) {
                int ret;
@@ -1394,28 +1528,6 @@ int udev_device_set_syspath(struct udev_device *udev_device, const char *syspath
        return 0;
 }
 
-int udev_device_set_subsystem(struct udev_device *udev_device, const char *subsystem)
-{
-       free(udev_device->subsystem);
-       udev_device->subsystem = strdup(subsystem);
-       if (udev_device->subsystem == NULL)
-               return -ENOMEM;
-       udev_device->subsystem_set = true;
-       udev_device_add_property(udev_device, "SUBSYSTEM", udev_device->subsystem);
-       return 0;
-}
-
-int udev_device_set_devtype(struct udev_device *udev_device, const char *devtype)
-{
-       free(udev_device->devtype);
-       udev_device->devtype = strdup(devtype);
-       if (udev_device->devtype == NULL)
-               return -ENOMEM;
-       udev_device->devtype_set = true;
-       udev_device_add_property(udev_device, "DEVTYPE", udev_device->devtype);
-       return 0;
-}
-
 int udev_device_set_devnode(struct udev_device *udev_device, const char *devnode)
 {
        free(udev_device->devnode);
@@ -1426,16 +1538,6 @@ int udev_device_set_devnode(struct udev_device *udev_device, const char *devnode
        return 0;
 }
 
-int udev_device_set_devnode_mode(struct udev_device *udev_device, mode_t mode)
-{
-       char num[32];
-
-       udev_device->devnode_mode = mode;
-       snprintf(num, sizeof(num), "%#o", mode);
-       udev_device_add_property(udev_device, "DEVMODE", num);
-       return 0;
-}
-
 int udev_device_add_devlink(struct udev_device *udev_device, const char *devlink, int unique)
 {
        struct udev_list_entry *list_entry;
@@ -1496,7 +1598,7 @@ const char *udev_device_get_id_filename(struct udev_device *udev_device)
  *
  * Returns: 1 if the device is set up. 0 otherwise.
  **/
-int udev_device_get_is_initialized(struct udev_device *udev_device)
+UDEV_EXPORT int udev_device_get_is_initialized(struct udev_device *udev_device)
 {
        if (!udev_device->info_loaded)
                udev_device_read_db(udev_device, NULL);
@@ -1535,7 +1637,7 @@ void udev_device_cleanup_tags_list(struct udev_device *udev_device)
  *
  * Returns: the first entry of the tag list
  **/
-struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device)
+UDEV_EXPORT struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device)
 {
        if (udev_device == NULL)
                return NULL;
@@ -1636,112 +1738,6 @@ int udev_device_set_action(struct udev_device *udev_device, const char *action)
        return 0;
 }
 
-int udev_device_set_driver(struct udev_device *udev_device, const char *driver)
-{
-       free(udev_device->driver);
-       udev_device->driver = strdup(driver);
-       if (udev_device->driver == NULL)
-               return -ENOMEM;
-       udev_device->driver_set = true;
-       udev_device_add_property(udev_device, "DRIVER", udev_device->driver);
-       return 0;
-}
-
-const char *udev_device_get_devpath_old(struct udev_device *udev_device)
-{
-       return udev_device->devpath_old;
-}
-
-int udev_device_set_devpath_old(struct udev_device *udev_device, const char *devpath_old)
-{
-       const char *pos;
-       size_t len;
-
-       free(udev_device->devpath_old);
-       udev_device->devpath_old = strdup(devpath_old);
-       if (udev_device->devpath_old == NULL)
-               return -ENOMEM;
-       udev_device_add_property(udev_device, "DEVPATH_OLD", udev_device->devpath_old);
-
-       pos = strrchr(udev_device->devpath_old, '/');
-       if (pos == NULL)
-               return -EINVAL;
-       udev_device->sysname_old = strdup(&pos[1]);
-       if (udev_device->sysname_old == NULL)
-               return -ENOMEM;
-
-       /* some devices have '!' in their name, change that to '/' */
-       len = 0;
-       while (udev_device->sysname_old[len] != '\0') {
-               if (udev_device->sysname_old[len] == '!')
-                       udev_device->sysname_old[len] = '/';
-               len++;
-       }
-       return 0;
-}
-
-const char *udev_device_get_sysname_old(struct udev_device *udev_device)
-{
-       if (udev_device == NULL)
-               return NULL;
-       return udev_device->sysname_old;
-}
-
-const char *udev_device_get_knodename(struct udev_device *udev_device)
-{
-       return udev_device->knodename;
-}
-
-int udev_device_set_knodename(struct udev_device *udev_device, const char *knodename)
-{
-       free(udev_device->knodename);
-       udev_device->knodename = strdup(knodename);
-       if (udev_device->knodename == NULL)
-               return -ENOMEM;
-       /* do not overwrite the udev property with the kernel property */
-       if (udev_device->devnode == NULL)
-               udev_device_add_property(udev_device, "DEVNAME", udev_device->knodename);
-       return 0;
-}
-
-int udev_device_get_timeout(struct udev_device *udev_device)
-{
-       return udev_device->timeout;
-}
-
-int udev_device_set_timeout(struct udev_device *udev_device, int timeout)
-{
-       char num[32];
-
-       udev_device->timeout = timeout;
-       snprintf(num, sizeof(num), "%u", timeout);
-       udev_device_add_property(udev_device, "TIMEOUT", num);
-       return 0;
-}
-
-int udev_device_set_seqnum(struct udev_device *udev_device, unsigned long long int seqnum)
-{
-       char num[32];
-
-       udev_device->seqnum = seqnum;
-       snprintf(num, sizeof(num), "%llu", seqnum);
-       udev_device_add_property(udev_device, "SEQNUM", num);
-       return 0;
-}
-
-int udev_device_set_devnum(struct udev_device *udev_device, dev_t devnum)
-{
-       char num[32];
-
-       udev_device->devnum = devnum;
-
-       snprintf(num, sizeof(num), "%u", major(devnum));
-       udev_device_add_property(udev_device, "MAJOR", num);
-       snprintf(num, sizeof(num), "%u", minor(devnum));
-       udev_device_add_property(udev_device, "MINOR", num);
-       return 0;
-}
-
 int udev_device_get_devlink_priority(struct udev_device *udev_device)
 {
        if (!udev_device->info_loaded)
@@ -1768,23 +1764,6 @@ int udev_device_set_watch_handle(struct udev_device *udev_device, int handle)
        return 0;
 }
 
-int udev_device_get_ifindex(struct udev_device *udev_device)
-{
-       if (!udev_device->info_loaded)
-               udev_device_read_uevent_file(udev_device);
-       return udev_device->ifindex;
-}
-
-int udev_device_set_ifindex(struct udev_device *udev_device, int ifindex)
-{
-       char num[32];
-
-       udev_device->ifindex = ifindex;
-       snprintf(num, sizeof(num), "%u", ifindex);
-       udev_device_add_property(udev_device, "IFINDEX", num);
-       return 0;
-}
-
 bool udev_device_get_db_persist(struct udev_device *udev_device)
 {
        return udev_device->db_persist;