]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libudev/libudev-device-private.c
1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 Copyright 2008-2012 Kay Sievers <kay@vrfy.org>
4 Copyright 2015 Tom Gundersen <teg@jklm.no>
9 #include "device-private.h"
10 #include "libudev-device-internal.h"
11 #include "libudev-private.h"
13 int udev_device_tag_index(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
, bool add
) {
14 sd_device
*device_old
= NULL
;
20 device_old
= udev_device_old
->device
;
22 r
= device_tag_index(udev_device
->device
, device_old
, add
);
29 int udev_device_update_db(struct udev_device
*udev_device
) {
34 r
= device_update_db(udev_device
->device
);
41 int udev_device_delete_db(struct udev_device
*udev_device
) {
46 r
= device_delete_db(udev_device
->device
);
53 int udev_device_get_ifindex(struct udev_device
*udev_device
) {
58 r
= sd_device_get_ifindex(udev_device
->device
, &ifindex
);
65 const char *udev_device_get_devpath_old(struct udev_device
*udev_device
) {
66 const char *devpath_old
= NULL
;
71 r
= sd_device_get_property_value(udev_device
->device
, "DEVPATH_OLD", &devpath_old
);
72 if (r
< 0 && r
!= -ENOENT
) {
80 mode_t
udev_device_get_devnode_mode(struct udev_device
*udev_device
) {
86 r
= device_get_devnode_mode(udev_device
->device
, &mode
);
95 uid_t
udev_device_get_devnode_uid(struct udev_device
*udev_device
) {
101 r
= device_get_devnode_uid(udev_device
->device
, &uid
);
110 gid_t
udev_device_get_devnode_gid(struct udev_device
*udev_device
) {
116 r
= device_get_devnode_gid(udev_device
->device
, &gid
);
125 void udev_device_ensure_usec_initialized(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
) {
128 device_ensure_usec_initialized(udev_device
->device
,
129 udev_device_old
? udev_device_old
->device
: NULL
);
132 char **udev_device_get_properties_envp(struct udev_device
*udev_device
) {
138 r
= device_get_properties_strv(udev_device
->device
, &envp
);
147 ssize_t
udev_device_get_properties_monitor_buf(struct udev_device
*udev_device
, const char **buf
) {
155 r
= device_get_properties_nulstr(udev_device
->device
, (const uint8_t **)&nulstr
, &len
);
164 int udev_device_get_devlink_priority(struct udev_device
*udev_device
) {
169 r
= device_get_devlink_priority(udev_device
->device
, &priority
);
176 int udev_device_get_watch_handle(struct udev_device
*udev_device
) {
181 r
= device_get_watch_handle(udev_device
->device
, &handle
);
188 void udev_device_set_is_initialized(struct udev_device
*udev_device
) {
191 device_set_is_initialized(udev_device
->device
);
194 int udev_device_rename(struct udev_device
*udev_device
, const char *name
) {
199 r
= device_rename(udev_device
->device
, name
);
206 struct udev_device
*udev_device_shallow_clone(struct udev_device
*old_device
) {
207 struct udev_device
*device
;
212 device
= udev_device_new(old_device
->udev
);
216 r
= device_shallow_clone(old_device
->device
, &device
->device
);
218 udev_device_unref(device
);
226 struct udev_device
*udev_device_clone_with_db(struct udev_device
*udev_device_old
) {
227 struct udev_device
*udev_device
;
230 assert(udev_device_old
);
232 udev_device
= udev_device_new(udev_device_old
->udev
);
236 r
= device_clone_with_db(udev_device_old
->device
, &udev_device
->device
);
238 udev_device_unref(udev_device
);
246 struct udev_device
*udev_device_new_from_nulstr(struct udev
*udev
, char *nulstr
, ssize_t buflen
) {
247 struct udev_device
*device
;
250 device
= udev_device_new(udev
);
254 r
= device_new_from_nulstr(&device
->device
, (uint8_t*)nulstr
, buflen
);
256 udev_device_unref(device
);
264 struct udev_device
*udev_device_new_from_synthetic_event(struct udev
*udev
, const char *syspath
, const char *action
) {
265 struct udev_device
*device
;
268 device
= udev_device_new(udev
);
272 r
= device_new_from_synthetic_event(&device
->device
, syspath
, action
);
274 udev_device_unref(device
);
282 int udev_device_copy_properties(struct udev_device
*udev_device_dst
, struct udev_device
*udev_device_src
) {
285 assert(udev_device_dst
);
286 assert(udev_device_src
);
288 r
= device_copy_properties(udev_device_dst
->device
, udev_device_src
->device
);
295 const char *udev_device_get_id_filename(struct udev_device
*udev_device
) {
296 const char *filename
;
301 r
= device_get_id_filename(udev_device
->device
, &filename
);
310 int udev_device_set_watch_handle(struct udev_device
*udev_device
, int handle
) {
314 device_set_watch_handle(udev_device
->device
, handle
);
319 void udev_device_set_db_persist(struct udev_device
*udev_device
) {
322 device_set_db_persist(udev_device
->device
);
325 int udev_device_set_devlink_priority(struct udev_device
*udev_device
, int priority
) {
328 device_set_devlink_priority(udev_device
->device
, priority
);
333 int udev_device_add_devlink(struct udev_device
*udev_device
, const char *devlink
) {
338 r
= device_add_devlink(udev_device
->device
, devlink
);
345 int udev_device_add_property(struct udev_device
*udev_device
, const char *property
, const char *value
) {
350 r
= device_add_property(udev_device
->device
, property
, value
);
357 int udev_device_add_tag(struct udev_device
*udev_device
, const char *tag
) {
362 r
= device_add_tag(udev_device
->device
, tag
);
369 void udev_device_remove_tag(struct udev_device
*udev_device
, const char *tag
) {
372 device_remove_tag(udev_device
->device
, tag
);
375 void udev_device_cleanup_tags_list(struct udev_device
*udev_device
) {
378 device_cleanup_tags(udev_device
->device
);
381 void udev_device_cleanup_devlinks_list(struct udev_device
*udev_device
) {
384 device_cleanup_devlinks(udev_device
->device
);
387 void udev_device_set_info_loaded(struct udev_device
*udev_device
) {
390 device_seal(udev_device
->device
);
393 void udev_device_read_db(struct udev_device
*udev_device
) {
396 device_read_db_force(udev_device
->device
);