]>
Commit | Line | Data |
---|---|---|
07a26e42 YW |
1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
2 | #pragma once | |
3 | ||
4 | #include <stdbool.h> | |
5 | ||
3fc2e9a2 YW |
6 | #include "sd-device.h" |
7 | ||
25de7aa7 | 8 | typedef enum { |
07a26e42 YW |
9 | #if HAVE_BLKID |
10 | UDEV_BUILTIN_BLKID, | |
11 | #endif | |
12 | UDEV_BUILTIN_BTRFS, | |
13 | UDEV_BUILTIN_HWDB, | |
14 | UDEV_BUILTIN_INPUT_ID, | |
15 | UDEV_BUILTIN_KEYBOARD, | |
16 | #if HAVE_KMOD | |
17 | UDEV_BUILTIN_KMOD, | |
18 | #endif | |
19 | UDEV_BUILTIN_NET_ID, | |
20 | UDEV_BUILTIN_NET_LINK, | |
21 | UDEV_BUILTIN_PATH_ID, | |
22 | UDEV_BUILTIN_USB_ID, | |
23 | #if HAVE_ACL | |
24 | UDEV_BUILTIN_UACCESS, | |
25 | #endif | |
c45b369d YW |
26 | _UDEV_BUILTIN_MAX, |
27 | _UDEV_BUILTIN_INVALID = -1, | |
25de7aa7 | 28 | } UdevBuiltinCommand; |
07a26e42 | 29 | |
25de7aa7 | 30 | typedef struct UdevBuiltin { |
07a26e42 | 31 | const char *name; |
3fc2e9a2 | 32 | int (*cmd)(sd_device *dev, int argc, char *argv[], bool test); |
07a26e42 YW |
33 | const char *help; |
34 | int (*init)(void); | |
35 | void (*exit)(void); | |
36 | bool (*validate)(void); | |
37 | bool run_once; | |
25de7aa7 YW |
38 | } UdevBuiltin; |
39 | ||
40 | #define PTR_TO_UDEV_BUILTIN_CMD(p) ((UdevBuiltinCommand) ((intptr_t) (p)-1)) | |
41 | #define UDEV_BUILTIN_CMD_TO_PTR(u) ((void *) ((intptr_t) (u)+1)) | |
07a26e42 YW |
42 | |
43 | #if HAVE_BLKID | |
25de7aa7 | 44 | extern const UdevBuiltin udev_builtin_blkid; |
07a26e42 | 45 | #endif |
25de7aa7 YW |
46 | extern const UdevBuiltin udev_builtin_btrfs; |
47 | extern const UdevBuiltin udev_builtin_hwdb; | |
48 | extern const UdevBuiltin udev_builtin_input_id; | |
49 | extern const UdevBuiltin udev_builtin_keyboard; | |
07a26e42 | 50 | #if HAVE_KMOD |
25de7aa7 | 51 | extern const UdevBuiltin udev_builtin_kmod; |
07a26e42 | 52 | #endif |
25de7aa7 YW |
53 | extern const UdevBuiltin udev_builtin_net_id; |
54 | extern const UdevBuiltin udev_builtin_net_setup_link; | |
55 | extern const UdevBuiltin udev_builtin_path_id; | |
56 | extern const UdevBuiltin udev_builtin_usb_id; | |
07a26e42 | 57 | #if HAVE_ACL |
25de7aa7 | 58 | extern const UdevBuiltin udev_builtin_uaccess; |
07a26e42 YW |
59 | #endif |
60 | ||
61 | void udev_builtin_init(void); | |
62 | void udev_builtin_exit(void); | |
25de7aa7 YW |
63 | UdevBuiltinCommand udev_builtin_lookup(const char *command); |
64 | const char *udev_builtin_name(UdevBuiltinCommand cmd); | |
65 | bool udev_builtin_run_once(UdevBuiltinCommand cmd); | |
66 | int udev_builtin_run(sd_device *dev, UdevBuiltinCommand cmd, const char *command, bool test); | |
07a26e42 YW |
67 | void udev_builtin_list(void); |
68 | bool udev_builtin_validate(void); | |
0c9c0634 | 69 | int udev_builtin_add_property(sd_device *dev, bool test, const char *key, const char *val); |
bfc38d8f | 70 | int udev_builtin_hwdb_lookup(sd_device *dev, const char *prefix, const char *modalias, |
07a26e42 | 71 | const char *filter, bool test); |