]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd/sd-device/device-util.c
56acec67f6de2a2a4b536b685ecef60c0366fcec
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
3 #include "device-private.h"
4 #include "device-util.h"
5 #include "devnum-util.h"
7 #include "string-util.h"
9 int devname_from_devnum(mode_t mode
, dev_t devnum
, char **ret
) {
10 _cleanup_(sd_device_unrefp
) sd_device
*dev
= NULL
;
11 _cleanup_free_
char *s
= NULL
;
17 if (major(devnum
) == 0 && minor(devnum
) == 0)
18 return device_path_make_inaccessible(mode
, ret
);
20 r
= device_new_from_mode_and_devnum(&dev
, mode
, devnum
);
24 r
= sd_device_get_devname(dev
, &devname
);
36 int device_open_from_devnum(mode_t mode
, dev_t devnum
, int flags
, char **ret
) {
37 _cleanup_(sd_device_unrefp
) sd_device
*dev
= NULL
;
38 _cleanup_close_
int fd
= -EBADF
;
41 r
= device_new_from_mode_and_devnum(&dev
, mode
, devnum
);
45 fd
= sd_device_open(dev
, flags
);
53 r
= sd_device_get_devname(dev
, &devname
);