]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libudev/libudev-device-private.c
2 This file is part of systemd.
4 Copyright 2008-2012 Kay Sievers <kay@vrfy.org>
5 Copyright 2015 Tom Gundersen <teg@jklm.no>
7 systemd is free software; you can redistribute it and/or modify it
8 under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation; either version 2.1 of the License, or
10 (at your option) any later version.
12 systemd is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
17 You should have received a copy of the GNU Lesser General Public License
18 along with systemd; If not, see <http://www.gnu.org/licenses/>.
23 #include "device-private.h"
24 #include "libudev-device-internal.h"
25 #include "libudev-private.h"
27 int udev_device_tag_index(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
, bool add
) {
28 sd_device
*device_old
= NULL
;
34 device_old
= udev_device_old
->device
;
36 r
= device_tag_index(udev_device
->device
, device_old
, add
);
43 int udev_device_update_db(struct udev_device
*udev_device
) {
48 r
= device_update_db(udev_device
->device
);
55 int udev_device_delete_db(struct udev_device
*udev_device
) {
60 r
= device_delete_db(udev_device
->device
);
67 int udev_device_get_ifindex(struct udev_device
*udev_device
) {
72 r
= sd_device_get_ifindex(udev_device
->device
, &ifindex
);
79 const char *udev_device_get_devpath_old(struct udev_device
*udev_device
) {
80 const char *devpath_old
= NULL
;
85 r
= sd_device_get_property_value(udev_device
->device
, "DEVPATH_OLD", &devpath_old
);
86 if (r
< 0 && r
!= -ENOENT
) {
94 mode_t
udev_device_get_devnode_mode(struct udev_device
*udev_device
) {
100 r
= device_get_devnode_mode(udev_device
->device
, &mode
);
109 uid_t
udev_device_get_devnode_uid(struct udev_device
*udev_device
) {
115 r
= device_get_devnode_uid(udev_device
->device
, &uid
);
124 gid_t
udev_device_get_devnode_gid(struct udev_device
*udev_device
) {
130 r
= device_get_devnode_gid(udev_device
->device
, &gid
);
139 void udev_device_ensure_usec_initialized(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
) {
142 device_ensure_usec_initialized(udev_device
->device
,
143 udev_device_old
? udev_device_old
->device
: NULL
);
146 char **udev_device_get_properties_envp(struct udev_device
*udev_device
) {
152 r
= device_get_properties_strv(udev_device
->device
, &envp
);
161 ssize_t
udev_device_get_properties_monitor_buf(struct udev_device
*udev_device
, const char **buf
) {
169 r
= device_get_properties_nulstr(udev_device
->device
, (const uint8_t **)&nulstr
, &len
);
178 int udev_device_get_devlink_priority(struct udev_device
*udev_device
) {
183 r
= device_get_devlink_priority(udev_device
->device
, &priority
);
190 int udev_device_get_watch_handle(struct udev_device
*udev_device
) {
195 r
= device_get_watch_handle(udev_device
->device
, &handle
);
202 void udev_device_set_is_initialized(struct udev_device
*udev_device
) {
205 device_set_is_initialized(udev_device
->device
);
208 int udev_device_rename(struct udev_device
*udev_device
, const char *name
) {
213 r
= device_rename(udev_device
->device
, name
);
220 struct udev_device
*udev_device_shallow_clone(struct udev_device
*old_device
) {
221 struct udev_device
*device
;
226 device
= udev_device_new(old_device
->udev
);
230 r
= device_shallow_clone(old_device
->device
, &device
->device
);
232 udev_device_unref(device
);
240 struct udev_device
*udev_device_clone_with_db(struct udev_device
*udev_device_old
) {
241 struct udev_device
*udev_device
;
244 assert(udev_device_old
);
246 udev_device
= udev_device_new(udev_device_old
->udev
);
250 r
= device_clone_with_db(udev_device_old
->device
, &udev_device
->device
);
252 udev_device_unref(udev_device
);
260 struct udev_device
*udev_device_new_from_nulstr(struct udev
*udev
, char *nulstr
, ssize_t buflen
) {
261 struct udev_device
*device
;
264 device
= udev_device_new(udev
);
268 r
= device_new_from_nulstr(&device
->device
, (uint8_t*)nulstr
, buflen
);
270 udev_device_unref(device
);
278 struct udev_device
*udev_device_new_from_synthetic_event(struct udev
*udev
, const char *syspath
, const char *action
) {
279 struct udev_device
*device
;
282 device
= udev_device_new(udev
);
286 r
= device_new_from_synthetic_event(&device
->device
, syspath
, action
);
288 udev_device_unref(device
);
296 int udev_device_copy_properties(struct udev_device
*udev_device_dst
, struct udev_device
*udev_device_src
) {
299 assert(udev_device_dst
);
300 assert(udev_device_src
);
302 r
= device_copy_properties(udev_device_dst
->device
, udev_device_src
->device
);
309 const char *udev_device_get_id_filename(struct udev_device
*udev_device
) {
310 const char *filename
;
315 r
= device_get_id_filename(udev_device
->device
, &filename
);
324 int udev_device_set_watch_handle(struct udev_device
*udev_device
, int handle
) {
328 device_set_watch_handle(udev_device
->device
, handle
);
333 void udev_device_set_db_persist(struct udev_device
*udev_device
) {
336 device_set_db_persist(udev_device
->device
);
339 int udev_device_set_devlink_priority(struct udev_device
*udev_device
, int priority
) {
342 device_set_devlink_priority(udev_device
->device
, priority
);
347 int udev_device_add_devlink(struct udev_device
*udev_device
, const char *devlink
) {
352 r
= device_add_devlink(udev_device
->device
, devlink
);
359 int udev_device_add_property(struct udev_device
*udev_device
, const char *property
, const char *value
) {
364 r
= device_add_property(udev_device
->device
, property
, value
);
371 int udev_device_add_tag(struct udev_device
*udev_device
, const char *tag
) {
376 r
= device_add_tag(udev_device
->device
, tag
);
383 void udev_device_remove_tag(struct udev_device
*udev_device
, const char *tag
) {
386 device_remove_tag(udev_device
->device
, tag
);
389 void udev_device_cleanup_tags_list(struct udev_device
*udev_device
) {
392 device_cleanup_tags(udev_device
->device
);
395 void udev_device_cleanup_devlinks_list(struct udev_device
*udev_device
) {
398 device_cleanup_devlinks(udev_device
->device
);
401 void udev_device_set_info_loaded(struct udev_device
*udev_device
) {
404 device_seal(udev_device
->device
);
407 void udev_device_read_db(struct udev_device
*udev_device
) {
410 device_read_db_force(udev_device
->device
);