]>
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>
8 systemd is free software; you can redistribute it and/or modify it
9 under the terms of the GNU Lesser General Public License as published by
10 the Free Software Foundation; either version 2.1 of the License, or
11 (at your option) any later version.
13 systemd is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
18 You should have received a copy of the GNU Lesser General Public License
19 along with systemd; If not, see <http://www.gnu.org/licenses/>.
24 #include "device-private.h"
25 #include "libudev-device-internal.h"
26 #include "libudev-private.h"
28 int udev_device_tag_index(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
, bool add
) {
29 sd_device
*device_old
= NULL
;
35 device_old
= udev_device_old
->device
;
37 r
= device_tag_index(udev_device
->device
, device_old
, add
);
44 int udev_device_update_db(struct udev_device
*udev_device
) {
49 r
= device_update_db(udev_device
->device
);
56 int udev_device_delete_db(struct udev_device
*udev_device
) {
61 r
= device_delete_db(udev_device
->device
);
68 int udev_device_get_ifindex(struct udev_device
*udev_device
) {
73 r
= sd_device_get_ifindex(udev_device
->device
, &ifindex
);
80 const char *udev_device_get_devpath_old(struct udev_device
*udev_device
) {
81 const char *devpath_old
= NULL
;
86 r
= sd_device_get_property_value(udev_device
->device
, "DEVPATH_OLD", &devpath_old
);
87 if (r
< 0 && r
!= -ENOENT
) {
95 mode_t
udev_device_get_devnode_mode(struct udev_device
*udev_device
) {
101 r
= device_get_devnode_mode(udev_device
->device
, &mode
);
110 uid_t
udev_device_get_devnode_uid(struct udev_device
*udev_device
) {
116 r
= device_get_devnode_uid(udev_device
->device
, &uid
);
125 gid_t
udev_device_get_devnode_gid(struct udev_device
*udev_device
) {
131 r
= device_get_devnode_gid(udev_device
->device
, &gid
);
140 void udev_device_ensure_usec_initialized(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
) {
143 device_ensure_usec_initialized(udev_device
->device
,
144 udev_device_old
? udev_device_old
->device
: NULL
);
147 char **udev_device_get_properties_envp(struct udev_device
*udev_device
) {
153 r
= device_get_properties_strv(udev_device
->device
, &envp
);
162 ssize_t
udev_device_get_properties_monitor_buf(struct udev_device
*udev_device
, const char **buf
) {
170 r
= device_get_properties_nulstr(udev_device
->device
, (const uint8_t **)&nulstr
, &len
);
179 int udev_device_get_devlink_priority(struct udev_device
*udev_device
) {
184 r
= device_get_devlink_priority(udev_device
->device
, &priority
);
191 int udev_device_get_watch_handle(struct udev_device
*udev_device
) {
196 r
= device_get_watch_handle(udev_device
->device
, &handle
);
203 void udev_device_set_is_initialized(struct udev_device
*udev_device
) {
206 device_set_is_initialized(udev_device
->device
);
209 int udev_device_rename(struct udev_device
*udev_device
, const char *name
) {
214 r
= device_rename(udev_device
->device
, name
);
221 struct udev_device
*udev_device_shallow_clone(struct udev_device
*old_device
) {
222 struct udev_device
*device
;
227 device
= udev_device_new(old_device
->udev
);
231 r
= device_shallow_clone(old_device
->device
, &device
->device
);
233 udev_device_unref(device
);
241 struct udev_device
*udev_device_clone_with_db(struct udev_device
*udev_device_old
) {
242 struct udev_device
*udev_device
;
245 assert(udev_device_old
);
247 udev_device
= udev_device_new(udev_device_old
->udev
);
251 r
= device_clone_with_db(udev_device_old
->device
, &udev_device
->device
);
253 udev_device_unref(udev_device
);
261 struct udev_device
*udev_device_new_from_nulstr(struct udev
*udev
, char *nulstr
, ssize_t buflen
) {
262 struct udev_device
*device
;
265 device
= udev_device_new(udev
);
269 r
= device_new_from_nulstr(&device
->device
, (uint8_t*)nulstr
, buflen
);
271 udev_device_unref(device
);
279 struct udev_device
*udev_device_new_from_synthetic_event(struct udev
*udev
, const char *syspath
, const char *action
) {
280 struct udev_device
*device
;
283 device
= udev_device_new(udev
);
287 r
= device_new_from_synthetic_event(&device
->device
, syspath
, action
);
289 udev_device_unref(device
);
297 int udev_device_copy_properties(struct udev_device
*udev_device_dst
, struct udev_device
*udev_device_src
) {
300 assert(udev_device_dst
);
301 assert(udev_device_src
);
303 r
= device_copy_properties(udev_device_dst
->device
, udev_device_src
->device
);
310 const char *udev_device_get_id_filename(struct udev_device
*udev_device
) {
311 const char *filename
;
316 r
= device_get_id_filename(udev_device
->device
, &filename
);
325 int udev_device_set_watch_handle(struct udev_device
*udev_device
, int handle
) {
329 device_set_watch_handle(udev_device
->device
, handle
);
334 void udev_device_set_db_persist(struct udev_device
*udev_device
) {
337 device_set_db_persist(udev_device
->device
);
340 int udev_device_set_devlink_priority(struct udev_device
*udev_device
, int priority
) {
343 device_set_devlink_priority(udev_device
->device
, priority
);
348 int udev_device_add_devlink(struct udev_device
*udev_device
, const char *devlink
) {
353 r
= device_add_devlink(udev_device
->device
, devlink
);
360 int udev_device_add_property(struct udev_device
*udev_device
, const char *property
, const char *value
) {
365 r
= device_add_property(udev_device
->device
, property
, value
);
372 int udev_device_add_tag(struct udev_device
*udev_device
, const char *tag
) {
377 r
= device_add_tag(udev_device
->device
, tag
);
384 void udev_device_remove_tag(struct udev_device
*udev_device
, const char *tag
) {
387 device_remove_tag(udev_device
->device
, tag
);
390 void udev_device_cleanup_tags_list(struct udev_device
*udev_device
) {
393 device_cleanup_tags(udev_device
->device
);
396 void udev_device_cleanup_devlinks_list(struct udev_device
*udev_device
) {
399 device_cleanup_devlinks(udev_device
->device
);
402 void udev_device_set_info_loaded(struct udev_device
*udev_device
) {
405 device_seal(udev_device
->device
);
408 void udev_device_read_db(struct udev_device
*udev_device
) {
411 device_read_db_force(udev_device
->device
);