#pragma once
#include <stddef.h>
-#include <sys/types.h>
-
-#include "macro.h"
-#include "stdio-util.h"
int encode_devnode_name(const char *str, char *str_enc, size_t len);
int allow_listed_char_for_devnode(char c, const char *additional);
-
-#define DEV_NUM_PATH_MAX \
- (STRLEN("/dev/block/") + DECIMAL_STR_MAX(dev_t) + 1 + DECIMAL_STR_MAX(dev_t))
-#define xsprintf_dev_num_path(buf, type, devno) \
- xsprintf(buf, "/dev/%s/%u:%u", type, major(devno), minor(devno))
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include <stdio.h>
#include <sys/types.h>
#include "alloc-util.h"
#include "device-nodes.h"
#include "string-util.h"
-#include "util.h"
/* helpers for test_encode_devnode_name */
static char *do_encode_string(const char *in) {
#include "sd-id128.h"
#include "alloc-util.h"
-#include "device-nodes.h"
#include "device-private.h"
#include "device-util.h"
#include "dirent-util.h"
}
static int xsprintf_dev_num_path_from_sd_device(sd_device *dev, char **ret) {
- char filename[DEV_NUM_PATH_MAX], *s;
const char *subsystem;
dev_t devnum;
int r;
if (r < 0)
return r;
- xsprintf_dev_num_path(filename,
- streq(subsystem, "block") ? "block" : "char",
- devnum);
-
- s = strdup(filename);
- if (!s)
- return -ENOMEM;
-
- *ret = s;
- return 0;
+ return device_path_make_major_minor(streq(subsystem, "block") ? S_IFBLK : S_IFCHR, devnum, ret);
}
int udev_node_add(sd_device *dev, bool apply,