]>
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
);
61 const char *udev_device_get_devpath_old(struct udev_device
*udev_device
) {
62 const char *devpath_old
= NULL
;
67 r
= sd_device_get_property_value(udev_device
->device
, "DEVPATH_OLD", &devpath_old
);
68 if (r
< 0 && r
!= -ENOENT
) {
76 mode_t
udev_device_get_devnode_mode(struct udev_device
*udev_device
) {
82 r
= device_get_devnode_mode(udev_device
->device
, &mode
);
91 uid_t
udev_device_get_devnode_uid(struct udev_device
*udev_device
) {
97 r
= device_get_devnode_uid(udev_device
->device
, &uid
);
106 gid_t
udev_device_get_devnode_gid(struct udev_device
*udev_device
) {
112 r
= device_get_devnode_gid(udev_device
->device
, &gid
);
121 void udev_device_ensure_usec_initialized(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
) {
124 device_ensure_usec_initialized(udev_device
->device
,
125 udev_device_old
? udev_device_old
->device
: NULL
);
128 char **udev_device_get_properties_envp(struct udev_device
*udev_device
) {
134 r
= device_get_properties_strv(udev_device
->device
, &envp
);
143 ssize_t
udev_device_get_properties_monitor_buf(struct udev_device
*udev_device
, const char **buf
) {
151 r
= device_get_properties_nulstr(udev_device
->device
, (const uint8_t **)&nulstr
, &len
);
160 int udev_device_get_devlink_priority(struct udev_device
*udev_device
) {
165 r
= device_get_devlink_priority(udev_device
->device
, &priority
);
172 int udev_device_get_watch_handle(struct udev_device
*udev_device
) {
177 r
= device_get_watch_handle(udev_device
->device
, &handle
);
184 void udev_device_set_is_initialized(struct udev_device
*udev_device
) {
187 device_set_is_initialized(udev_device
->device
);
190 int udev_device_rename(struct udev_device
*udev_device
, const char *name
) {
195 r
= device_rename(udev_device
->device
, name
);
202 struct udev_device
*udev_device_shallow_clone(struct udev_device
*old_device
) {
203 _cleanup_(sd_device_unrefp
) sd_device
*device
= NULL
;
208 r
= device_shallow_clone(old_device
->device
, &device
);
214 return udev_device_new(old_device
->udev
, device
);
217 struct udev_device
*udev_device_clone_with_db(struct udev_device
*udev_device_old
) {
218 _cleanup_(sd_device_unrefp
) sd_device
*device
= NULL
;
221 assert(udev_device_old
);
223 r
= device_clone_with_db(udev_device_old
->device
, &device
);
229 return udev_device_new(udev_device_old
->udev
, device
);
232 struct udev_device
*udev_device_new_from_nulstr(struct udev
*udev
, char *nulstr
, ssize_t buflen
) {
233 _cleanup_(sd_device_unrefp
) sd_device
*device
= NULL
;
236 r
= device_new_from_nulstr(&device
, (uint8_t*)nulstr
, buflen
);
242 return udev_device_new(udev
, device
);
245 struct udev_device
*udev_device_new_from_synthetic_event(struct udev
*udev
, const char *syspath
, const char *action
) {
246 _cleanup_(sd_device_unrefp
) sd_device
*device
= NULL
;
249 r
= device_new_from_synthetic_event(&device
, syspath
, action
);
255 return udev_device_new(udev
, device
);
258 int udev_device_copy_properties(struct udev_device
*udev_device_dst
, struct udev_device
*udev_device_src
) {
261 assert(udev_device_dst
);
262 assert(udev_device_src
);
264 r
= device_copy_properties(udev_device_dst
->device
, udev_device_src
->device
);
271 const char *udev_device_get_id_filename(struct udev_device
*udev_device
) {
272 const char *filename
;
277 r
= device_get_id_filename(udev_device
->device
, &filename
);
286 int udev_device_set_watch_handle(struct udev_device
*udev_device
, int handle
) {
290 device_set_watch_handle(udev_device
->device
, handle
);
295 void udev_device_set_db_persist(struct udev_device
*udev_device
) {
298 device_set_db_persist(udev_device
->device
);
301 int udev_device_set_devlink_priority(struct udev_device
*udev_device
, int priority
) {
304 device_set_devlink_priority(udev_device
->device
, priority
);
309 int udev_device_add_devlink(struct udev_device
*udev_device
, const char *devlink
) {
314 r
= device_add_devlink(udev_device
->device
, devlink
);
321 int udev_device_add_property(struct udev_device
*udev_device
, const char *property
, const char *value
) {
326 r
= device_add_property(udev_device
->device
, property
, value
);
333 int udev_device_add_tag(struct udev_device
*udev_device
, const char *tag
) {
338 r
= device_add_tag(udev_device
->device
, tag
);
345 void udev_device_remove_tag(struct udev_device
*udev_device
, const char *tag
) {
348 device_remove_tag(udev_device
->device
, tag
);
351 void udev_device_cleanup_tags_list(struct udev_device
*udev_device
) {
354 device_cleanup_tags(udev_device
->device
);
357 void udev_device_cleanup_devlinks_list(struct udev_device
*udev_device
) {
360 device_cleanup_devlinks(udev_device
->device
);
363 void udev_device_set_info_loaded(struct udev_device
*udev_device
) {
366 device_seal(udev_device
->device
);
369 void udev_device_read_db(struct udev_device
*udev_device
) {
372 device_read_db_force(udev_device
->device
);