]>
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/>.
21 #include "device-private.h"
22 #include "libudev-device-internal.h"
23 #include "libudev-private.h"
26 int udev_device_tag_index(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
, bool add
) {
27 sd_device
*device_old
= NULL
;
33 device_old
= udev_device_old
->device
;
35 r
= device_tag_index(udev_device
->device
, device_old
, add
);
42 int udev_device_update_db(struct udev_device
*udev_device
) {
47 r
= device_update_db(udev_device
->device
);
54 int udev_device_delete_db(struct udev_device
*udev_device
) {
59 r
= device_delete_db(udev_device
->device
);
66 int udev_device_get_ifindex(struct udev_device
*udev_device
) {
71 r
= sd_device_get_ifindex(udev_device
->device
, &ifindex
);
78 const char *udev_device_get_devpath_old(struct udev_device
*udev_device
) {
79 const char *devpath_old
= NULL
;
84 r
= sd_device_get_property_value(udev_device
->device
, "DEVPATH_OLD", &devpath_old
);
85 if (r
< 0 && r
!= -ENOENT
) {
93 mode_t
udev_device_get_devnode_mode(struct udev_device
*udev_device
) {
99 r
= device_get_devnode_mode(udev_device
->device
, &mode
);
108 uid_t
udev_device_get_devnode_uid(struct udev_device
*udev_device
) {
114 r
= device_get_devnode_uid(udev_device
->device
, &uid
);
123 gid_t
udev_device_get_devnode_gid(struct udev_device
*udev_device
) {
129 r
= device_get_devnode_gid(udev_device
->device
, &gid
);
138 void udev_device_ensure_usec_initialized(struct udev_device
*udev_device
, struct udev_device
*udev_device_old
) {
139 sd_device
*device_old
= NULL
;
144 device_old
= udev_device_old
->device
;
146 device_ensure_usec_initialized(udev_device
->device
, device_old
);
149 char **udev_device_get_properties_envp(struct udev_device
*udev_device
) {
155 r
= device_get_properties_strv(udev_device
->device
, &envp
);
164 ssize_t
udev_device_get_properties_monitor_buf(struct udev_device
*udev_device
, const char **buf
) {
172 r
= device_get_properties_nulstr(udev_device
->device
, (const uint8_t **)&nulstr
, &len
);
181 int udev_device_get_devlink_priority(struct udev_device
*udev_device
) {
186 r
= device_get_devlink_priority(udev_device
->device
, &priority
);
193 int udev_device_get_watch_handle(struct udev_device
*udev_device
) {
198 r
= device_get_watch_handle(udev_device
->device
, &handle
);
205 void udev_device_set_is_initialized(struct udev_device
*udev_device
) {
208 device_set_is_initialized(udev_device
->device
);
211 int udev_device_rename(struct udev_device
*udev_device
, const char *name
) {
216 r
= device_rename(udev_device
->device
, name
);
223 struct udev_device
*udev_device_shallow_clone(struct udev_device
*old_device
) {
224 struct udev_device
*device
;
229 device
= udev_device_new(old_device
->udev
);
233 r
= device_shallow_clone(old_device
->device
, &device
->device
);
235 udev_device_unref(device
);
243 struct udev_device
*udev_device_clone_with_db(struct udev_device
*udev_device_old
) {
244 struct udev_device
*udev_device
;
247 assert(udev_device_old
);
249 udev_device
= udev_device_new(udev_device_old
->udev
);
253 r
= device_clone_with_db(udev_device_old
->device
, &udev_device
->device
);
255 udev_device_unref(udev_device
);
263 struct udev_device
*udev_device_new_from_nulstr(struct udev
*udev
, char *nulstr
, ssize_t buflen
) {
264 struct udev_device
*device
;
267 device
= udev_device_new(udev
);
271 r
= device_new_from_nulstr(&device
->device
, (uint8_t*)nulstr
, buflen
);
273 udev_device_unref(device
);
281 struct udev_device
*udev_device_new_from_synthetic_event(struct udev
*udev
, const char *syspath
, const char *action
) {
282 struct udev_device
*device
;
285 device
= udev_device_new(udev
);
289 r
= device_new_from_synthetic_event(&device
->device
, syspath
, action
);
291 udev_device_unref(device
);
299 int udev_device_copy_properties(struct udev_device
*udev_device_dst
, struct udev_device
*udev_device_src
) {
302 assert(udev_device_dst
);
303 assert(udev_device_src
);
305 r
= device_copy_properties(udev_device_dst
->device
, udev_device_src
->device
);
312 const char *udev_device_get_id_filename(struct udev_device
*udev_device
) {
313 const char *filename
;
318 r
= device_get_id_filename(udev_device
->device
, &filename
);
327 int udev_device_set_watch_handle(struct udev_device
*udev_device
, int handle
) {
331 device_set_watch_handle(udev_device
->device
, handle
);
336 void udev_device_set_db_persist(struct udev_device
*udev_device
) {
339 device_set_db_persist(udev_device
->device
);
342 int udev_device_set_devlink_priority(struct udev_device
*udev_device
, int priority
) {
345 device_set_devlink_priority(udev_device
->device
, priority
);
350 int udev_device_add_devlink(struct udev_device
*udev_device
, const char *devlink
) {
355 r
= device_add_devlink(udev_device
->device
, devlink
);
362 int udev_device_add_property(struct udev_device
*udev_device
, const char *property
, const char *value
) {
367 r
= device_add_property(udev_device
->device
, property
, value
);
374 int udev_device_add_tag(struct udev_device
*udev_device
, const char *tag
) {
379 r
= device_add_tag(udev_device
->device
, tag
);
386 void udev_device_remove_tag(struct udev_device
*udev_device
, const char *tag
) {
389 device_remove_tag(udev_device
->device
, tag
);
392 void udev_device_cleanup_tags_list(struct udev_device
*udev_device
) {
395 device_cleanup_tags(udev_device
->device
);
398 void udev_device_cleanup_devlinks_list(struct udev_device
*udev_device
) {
401 device_cleanup_devlinks(udev_device
->device
);
404 void udev_device_set_info_loaded(struct udev_device
*udev_device
) {
407 device_seal(udev_device
->device
);
410 void udev_device_read_db(struct udev_device
*udev_device
) {
413 device_read_db_force(udev_device
->device
);