]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libudev/libudev-device-private.c
1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 #include "device-private.h"
6 #include "libudev-device-internal.h"
7 #include "libudev-private.h"
9 int udev_device_tag_index(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
, bool add
) {
10 sd_device
*device_old
= NULL
;
16 device_old
= udev_device_old
->device
;
18 r
= device_tag_index(udev_device
->device
, device_old
, add
);
25 int udev_device_update_db(struct udev_device
*udev_device
) {
30 r
= device_update_db(udev_device
->device
);
37 int udev_device_delete_db(struct udev_device
*udev_device
) {
42 r
= device_delete_db(udev_device
->device
);
49 int udev_device_get_ifindex(struct udev_device
*udev_device
) {
54 r
= sd_device_get_ifindex(udev_device
->device
, &ifindex
);
63 const char *udev_device_get_devpath_old(struct udev_device
*udev_device
) {
64 const char *devpath_old
= NULL
;
69 r
= sd_device_get_property_value(udev_device
->device
, "DEVPATH_OLD", &devpath_old
);
70 if (r
< 0 && r
!= -ENOENT
) {
78 mode_t
udev_device_get_devnode_mode(struct udev_device
*udev_device
) {
84 r
= device_get_devnode_mode(udev_device
->device
, &mode
);
93 uid_t
udev_device_get_devnode_uid(struct udev_device
*udev_device
) {
99 r
= device_get_devnode_uid(udev_device
->device
, &uid
);
108 gid_t
udev_device_get_devnode_gid(struct udev_device
*udev_device
) {
114 r
= device_get_devnode_gid(udev_device
->device
, &gid
);
123 void udev_device_ensure_usec_initialized(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
) {
126 device_ensure_usec_initialized(udev_device
->device
,
127 udev_device_old
? udev_device_old
->device
: NULL
);
130 char **udev_device_get_properties_envp(struct udev_device
*udev_device
) {
136 r
= device_get_properties_strv(udev_device
->device
, &envp
);
145 ssize_t
udev_device_get_properties_monitor_buf(struct udev_device
*udev_device
, const char **buf
) {
153 r
= device_get_properties_nulstr(udev_device
->device
, (const uint8_t **)&nulstr
, &len
);
162 int udev_device_get_devlink_priority(struct udev_device
*udev_device
) {
167 r
= device_get_devlink_priority(udev_device
->device
, &priority
);
174 int udev_device_get_watch_handle(struct udev_device
*udev_device
) {
179 r
= device_get_watch_handle(udev_device
->device
, &handle
);
186 void udev_device_set_is_initialized(struct udev_device
*udev_device
) {
189 device_set_is_initialized(udev_device
->device
);
192 int udev_device_rename(struct udev_device
*udev_device
, const char *name
) {
197 r
= device_rename(udev_device
->device
, name
);
204 struct udev_device
*udev_device_shallow_clone(struct udev_device
*old_device
) {
205 _cleanup_(sd_device_unrefp
) sd_device
*device
= NULL
;
210 r
= device_shallow_clone(old_device
->device
, &device
);
216 return udev_device_new(old_device
->udev
, device
);
219 struct udev_device
*udev_device_clone_with_db(struct udev_device
*udev_device_old
) {
220 _cleanup_(sd_device_unrefp
) sd_device
*device
= NULL
;
223 assert(udev_device_old
);
225 r
= device_clone_with_db(udev_device_old
->device
, &device
);
231 return udev_device_new(udev_device_old
->udev
, device
);
234 struct udev_device
*udev_device_new_from_nulstr(struct udev
*udev
, char *nulstr
, ssize_t buflen
) {
235 _cleanup_(sd_device_unrefp
) sd_device
*device
= NULL
;
238 r
= device_new_from_nulstr(&device
, (uint8_t*)nulstr
, buflen
);
244 return udev_device_new(udev
, device
);
247 struct udev_device
*udev_device_new_from_synthetic_event(struct udev
*udev
, const char *syspath
, const char *action
) {
248 _cleanup_(sd_device_unrefp
) sd_device
*device
= NULL
;
251 r
= device_new_from_synthetic_event(&device
, syspath
, action
);
257 return udev_device_new(udev
, device
);
260 int udev_device_copy_properties(struct udev_device
*udev_device_dst
, struct udev_device
*udev_device_src
) {
263 assert(udev_device_dst
);
264 assert(udev_device_src
);
266 r
= device_copy_properties(udev_device_dst
->device
, udev_device_src
->device
);
273 const char *udev_device_get_id_filename(struct udev_device
*udev_device
) {
274 const char *filename
;
279 r
= device_get_id_filename(udev_device
->device
, &filename
);
288 int udev_device_set_watch_handle(struct udev_device
*udev_device
, int handle
) {
292 device_set_watch_handle(udev_device
->device
, handle
);
297 void udev_device_set_db_persist(struct udev_device
*udev_device
) {
300 device_set_db_persist(udev_device
->device
);
303 int udev_device_set_devlink_priority(struct udev_device
*udev_device
, int priority
) {
306 device_set_devlink_priority(udev_device
->device
, priority
);
311 int udev_device_add_devlink(struct udev_device
*udev_device
, const char *devlink
) {
316 r
= device_add_devlink(udev_device
->device
, devlink
);
323 int udev_device_add_property(struct udev_device
*udev_device
, const char *property
, const char *value
) {
328 r
= device_add_property(udev_device
->device
, property
, value
);
335 int udev_device_add_tag(struct udev_device
*udev_device
, const char *tag
) {
340 r
= device_add_tag(udev_device
->device
, tag
);
347 void udev_device_remove_tag(struct udev_device
*udev_device
, const char *tag
) {
350 device_remove_tag(udev_device
->device
, tag
);
353 void udev_device_cleanup_tags_list(struct udev_device
*udev_device
) {
356 device_cleanup_tags(udev_device
->device
);
359 void udev_device_cleanup_devlinks_list(struct udev_device
*udev_device
) {
362 device_cleanup_devlinks(udev_device
->device
);
365 void udev_device_set_info_loaded(struct udev_device
*udev_device
) {
368 device_seal(udev_device
->device
);
371 void udev_device_read_db(struct udev_device
*udev_device
) {
374 device_read_db_force(udev_device
->device
);