1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
6 #include "device-private.h"
9 #define UDEV_NAME_SIZE 512
10 #define UDEV_PATH_SIZE 1024
11 #define UDEV_LINE_SIZE 16384
13 typedef enum ResolveNameTiming
{
17 _RESOLVE_NAME_TIMING_MAX
,
18 _RESOLVE_NAME_TIMING_INVALID
= -EINVAL
,
21 ResolveNameTiming
resolve_name_timing_from_string(const char *s
) _pure_
;
22 const char *resolve_name_timing_to_string(ResolveNameTiming i
) _const_
;
24 int udev_parse_config_full(
25 unsigned *ret_children_max
,
26 usec_t
*ret_exec_delay_usec
,
27 usec_t
*ret_event_timeout_usec
,
28 ResolveNameTiming
*ret_resolve_name_timing
,
29 int *ret_timeout_signal
);
31 static inline int udev_parse_config(void) {
32 return udev_parse_config_full(NULL
, NULL
, NULL
, NULL
, NULL
);
35 int device_wait_for_initialization(sd_device
*device
, const char *subsystem
, usec_t deadline
, sd_device
**ret
);
36 int device_wait_for_devlink(const char *path
, const char *subsystem
, usec_t deadline
, sd_device
**ret
);
37 int device_is_renaming(sd_device
*dev
);
38 bool device_for_action(sd_device
*dev
, DeviceAction action
);
40 void log_device_uevent(sd_device
*device
, const char *str
);
42 int udev_rule_parse_value(char *str
, char **ret_value
, char **ret_endpos
);
43 size_t udev_replace_whitespace(const char *str
, char *to
, size_t len
);
44 size_t udev_replace_chars(char *str
, const char *allow
);
45 int udev_resolve_subsys_kernel(const char *string
, char *result
, size_t maxsize
, bool read_value
);
47 int udev_queue_is_empty(void);
48 int udev_queue_init(void);