1 /* SPDX-License-Identifier: GPL-2.0-or-later */
7 #include "sd-netlink.h"
10 #include "udev-event.h"
12 typedef enum UdevBuiltinCommand
{
18 UDEV_BUILTIN_INPUT_ID
,
19 UDEV_BUILTIN_KEYBOARD
,
23 UDEV_BUILTIN_NET_DRIVER
,
25 UDEV_BUILTIN_NET_LINK
,
32 _UDEV_BUILTIN_INVALID
= -EINVAL
,
35 typedef struct UdevBuiltin
{
37 int (*cmd
)(UdevEvent
*event
, int argc
, char *argv
[], bool test
);
41 bool (*should_reload
)(void);
45 #define UDEV_BUILTIN_CMD_TO_PTR(u) \
47 UdevBuiltinCommand _u = (u); \
48 _u < 0 ? NULL : (void*)(intptr_t) (_u + 1); \
51 #define PTR_TO_UDEV_BUILTIN_CMD(p) \
54 _p && (intptr_t)(_p) <= _UDEV_BUILTIN_MAX ? \
55 (UdevBuiltinCommand)((intptr_t)_p - 1) : _UDEV_BUILTIN_INVALID; \
59 extern const UdevBuiltin udev_builtin_blkid
;
61 extern const UdevBuiltin udev_builtin_btrfs
;
62 extern const UdevBuiltin udev_builtin_hwdb
;
63 extern const UdevBuiltin udev_builtin_input_id
;
64 extern const UdevBuiltin udev_builtin_keyboard
;
66 extern const UdevBuiltin udev_builtin_kmod
;
68 extern const UdevBuiltin udev_builtin_net_driver
;
69 extern const UdevBuiltin udev_builtin_net_id
;
70 extern const UdevBuiltin udev_builtin_net_setup_link
;
71 extern const UdevBuiltin udev_builtin_path_id
;
72 extern const UdevBuiltin udev_builtin_usb_id
;
74 extern const UdevBuiltin udev_builtin_uaccess
;
77 void udev_builtin_init(void);
78 void udev_builtin_exit(void);
79 UdevBuiltinCommand
udev_builtin_lookup(const char *command
);
80 const char *udev_builtin_name(UdevBuiltinCommand cmd
);
81 bool udev_builtin_run_once(UdevBuiltinCommand cmd
);
82 int udev_builtin_run(UdevEvent
*event
, UdevBuiltinCommand cmd
, const char *command
, bool test
);
83 void udev_builtin_list(void);
84 bool udev_builtin_should_reload(void);
85 int udev_builtin_add_property(sd_device
*dev
, bool test
, const char *key
, const char *val
);
86 int udev_builtin_add_propertyf(sd_device
*dev
, bool test
, const char *key
, const char *valf
, ...) _printf_(4, 5);
87 int udev_builtin_import_property(sd_device
*dev
, sd_device
*src
, bool test
, const char *key
);
88 int udev_builtin_hwdb_lookup(sd_device
*dev
, const char *prefix
, const char *modalias
,
89 const char *filter
, bool test
);