sd-device: introduce devname_from_stat_rdev()

This commit is contained in:
Yu Watanabe
2022-09-03 00:42:31 +09:00
parent 4fe46c349d
commit 778912a659
2 changed files with 8 additions and 0 deletions
+5
View File
@@ -2,6 +2,7 @@
#pragma once
#include <stdbool.h>
#include <sys/stat.h>
#include <sys/types.h>
#include "sd-device.h"
@@ -82,4 +83,8 @@
#define log_device_error_errno(device, error, ...) log_device_full_errno(device, LOG_ERR, error, __VA_ARGS__)
int devname_from_devnum(mode_t mode, dev_t devnum, char **ret);
static inline int devname_from_stat_rdev(const struct stat *st, char **ret) {
assert(st);
return devname_from_devnum(st->st_mode, st->st_rdev, ret);
}
int device_open_from_devnum(mode_t mode, dev_t devnum, int flags, char **ret);
@@ -514,6 +514,9 @@ static void test_devname_from_devnum_one(const char *path) {
assert_se(devname_from_devnum(st.st_mode, st.st_rdev, &resolved) >= 0);
assert_se(path_equal(path, resolved));
resolved = mfree(resolved);
assert_se(devname_from_stat_rdev(&st, &resolved) >= 0);
assert_se(path_equal(path, resolved));
}
TEST(devname_from_devnum) {