]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libudev/libudev-device-private.c
1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 This file is part of systemd.
5 Copyright 2008-2012 Kay Sievers <kay@vrfy.org>
6 Copyright 2015 Tom Gundersen <teg@jklm.no>
11 #include "device-private.h"
12 #include "libudev-device-internal.h"
13 #include "libudev-private.h"
15 int udev_device_tag_index(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
, bool add
) {
16 sd_device
*device_old
= NULL
;
22 device_old
= udev_device_old
->device
;
24 r
= device_tag_index(udev_device
->device
, device_old
, add
);
31 int udev_device_update_db(struct udev_device
*udev_device
) {
36 r
= device_update_db(udev_device
->device
);
43 int udev_device_delete_db(struct udev_device
*udev_device
) {
48 r
= device_delete_db(udev_device
->device
);
55 int udev_device_get_ifindex(struct udev_device
*udev_device
) {
60 r
= sd_device_get_ifindex(udev_device
->device
, &ifindex
);
67 const char *udev_device_get_devpath_old(struct udev_device
*udev_device
) {
68 const char *devpath_old
= NULL
;
73 r
= sd_device_get_property_value(udev_device
->device
, "DEVPATH_OLD", &devpath_old
);
74 if (r
< 0 && r
!= -ENOENT
) {
82 mode_t
udev_device_get_devnode_mode(struct udev_device
*udev_device
) {
88 r
= device_get_devnode_mode(udev_device
->device
, &mode
);
97 uid_t
udev_device_get_devnode_uid(struct udev_device
*udev_device
) {
103 r
= device_get_devnode_uid(udev_device
->device
, &uid
);
112 gid_t
udev_device_get_devnode_gid(struct udev_device
*udev_device
) {
118 r
= device_get_devnode_gid(udev_device
->device
, &gid
);
127 void udev_device_ensure_usec_initialized(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
) {
130 device_ensure_usec_initialized(udev_device
->device
,
131 udev_device_old
? udev_device_old
->device
: NULL
);
134 char **udev_device_get_properties_envp(struct udev_device
*udev_device
) {
140 r
= device_get_properties_strv(udev_device
->device
, &envp
);
149 ssize_t
udev_device_get_properties_monitor_buf(struct udev_device
*udev_device
, const char **buf
) {
157 r
= device_get_properties_nulstr(udev_device
->device
, (const uint8_t **)&nulstr
, &len
);
166 int udev_device_get_devlink_priority(struct udev_device
*udev_device
) {
171 r
= device_get_devlink_priority(udev_device
->device
, &priority
);
178 int udev_device_get_watch_handle(struct udev_device
*udev_device
) {
183 r
= device_get_watch_handle(udev_device
->device
, &handle
);
190 void udev_device_set_is_initialized(struct udev_device
*udev_device
) {
193 device_set_is_initialized(udev_device
->device
);
196 int udev_device_rename(struct udev_device
*udev_device
, const char *name
) {
201 r
= device_rename(udev_device
->device
, name
);
208 struct udev_device
*udev_device_shallow_clone(struct udev_device
*old_device
) {
209 struct udev_device
*device
;
214 device
= udev_device_new(old_device
->udev
);
218 r
= device_shallow_clone(old_device
->device
, &device
->device
);
220 udev_device_unref(device
);
228 struct udev_device
*udev_device_clone_with_db(struct udev_device
*udev_device_old
) {
229 struct udev_device
*udev_device
;
232 assert(udev_device_old
);
234 udev_device
= udev_device_new(udev_device_old
->udev
);
238 r
= device_clone_with_db(udev_device_old
->device
, &udev_device
->device
);
240 udev_device_unref(udev_device
);
248 struct udev_device
*udev_device_new_from_nulstr(struct udev
*udev
, char *nulstr
, ssize_t buflen
) {
249 struct udev_device
*device
;
252 device
= udev_device_new(udev
);
256 r
= device_new_from_nulstr(&device
->device
, (uint8_t*)nulstr
, buflen
);
258 udev_device_unref(device
);
266 struct udev_device
*udev_device_new_from_synthetic_event(struct udev
*udev
, const char *syspath
, const char *action
) {
267 struct udev_device
*device
;
270 device
= udev_device_new(udev
);
274 r
= device_new_from_synthetic_event(&device
->device
, syspath
, action
);
276 udev_device_unref(device
);
284 int udev_device_copy_properties(struct udev_device
*udev_device_dst
, struct udev_device
*udev_device_src
) {
287 assert(udev_device_dst
);
288 assert(udev_device_src
);
290 r
= device_copy_properties(udev_device_dst
->device
, udev_device_src
->device
);
297 const char *udev_device_get_id_filename(struct udev_device
*udev_device
) {
298 const char *filename
;
303 r
= device_get_id_filename(udev_device
->device
, &filename
);
312 int udev_device_set_watch_handle(struct udev_device
*udev_device
, int handle
) {
316 device_set_watch_handle(udev_device
->device
, handle
);
321 void udev_device_set_db_persist(struct udev_device
*udev_device
) {
324 device_set_db_persist(udev_device
->device
);
327 int udev_device_set_devlink_priority(struct udev_device
*udev_device
, int priority
) {
330 device_set_devlink_priority(udev_device
->device
, priority
);
335 int udev_device_add_devlink(struct udev_device
*udev_device
, const char *devlink
) {
340 r
= device_add_devlink(udev_device
->device
, devlink
);
347 int udev_device_add_property(struct udev_device
*udev_device
, const char *property
, const char *value
) {
352 r
= device_add_property(udev_device
->device
, property
, value
);
359 int udev_device_add_tag(struct udev_device
*udev_device
, const char *tag
) {
364 r
= device_add_tag(udev_device
->device
, tag
);
371 void udev_device_remove_tag(struct udev_device
*udev_device
, const char *tag
) {
374 device_remove_tag(udev_device
->device
, tag
);
377 void udev_device_cleanup_tags_list(struct udev_device
*udev_device
) {
380 device_cleanup_tags(udev_device
->device
);
383 void udev_device_cleanup_devlinks_list(struct udev_device
*udev_device
) {
386 device_cleanup_devlinks(udev_device
->device
);
389 void udev_device_set_info_loaded(struct udev_device
*udev_device
) {
392 device_seal(udev_device
->device
);
395 void udev_device_read_db(struct udev_device
*udev_device
) {
398 device_read_db_force(udev_device
->device
);