]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/udev/udev-builtin.h
libudev: hide definition of struct udev_list from other libudev components
[thirdparty/systemd.git] / src / udev / udev-builtin.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 #pragma once
3
4 #include <stdbool.h>
5
6 #include "sd-device.h"
7
8 typedef enum {
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
26 _UDEV_BUILTIN_MAX,
27 _UDEV_BUILTIN_INVALID = -1,
28 } UdevBuiltinCommand;
29
30 typedef struct UdevBuiltin {
31 const char *name;
32 int (*cmd)(sd_device *dev, int argc, char *argv[], bool test);
33 const char *help;
34 int (*init)(void);
35 void (*exit)(void);
36 bool (*validate)(void);
37 bool run_once;
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))
42
43 #if HAVE_BLKID
44 extern const UdevBuiltin udev_builtin_blkid;
45 #endif
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;
50 #if HAVE_KMOD
51 extern const UdevBuiltin udev_builtin_kmod;
52 #endif
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;
57 #if HAVE_ACL
58 extern const UdevBuiltin udev_builtin_uaccess;
59 #endif
60
61 void udev_builtin_init(void);
62 void udev_builtin_exit(void);
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);
67 void udev_builtin_list(void);
68 bool udev_builtin_validate(void);
69 int udev_builtin_add_property(sd_device *dev, bool test, const char *key, const char *val);
70 int udev_builtin_hwdb_lookup(sd_device *dev, const char *prefix, const char *modalias,
71 const char *filter, bool test);