]>
Commit | Line | Data |
---|---|---|
f5151fb4 LP |
1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
2 | ||
3 | #include "varlink-io.systemd.sysext.h" | |
4 | ||
5 | static VARLINK_DEFINE_ENUM_TYPE( | |
6 | ImageClass, | |
7 | VARLINK_DEFINE_ENUM_VALUE(sysext), | |
8 | VARLINK_DEFINE_ENUM_VALUE(confext)); | |
9 | ||
10 | static VARLINK_DEFINE_ENUM_TYPE( | |
11 | ImageType, | |
12 | VARLINK_DEFINE_ENUM_VALUE(directory), | |
13 | VARLINK_DEFINE_ENUM_VALUE(subvolume), | |
14 | VARLINK_DEFINE_ENUM_VALUE(raw), | |
15 | VARLINK_DEFINE_ENUM_VALUE(block)); | |
16 | ||
17 | static VARLINK_DEFINE_METHOD( | |
18 | Merge, | |
19 | VARLINK_DEFINE_INPUT_BY_TYPE(class, ImageClass, VARLINK_NULLABLE), | |
20 | VARLINK_DEFINE_INPUT(force, VARLINK_BOOL, VARLINK_NULLABLE), | |
21 | VARLINK_DEFINE_INPUT(noReload, VARLINK_BOOL, VARLINK_NULLABLE), | |
22 | VARLINK_DEFINE_INPUT(noexec, VARLINK_BOOL, VARLINK_NULLABLE)); | |
23 | ||
24 | static VARLINK_DEFINE_METHOD( | |
25 | Unmerge, | |
26 | VARLINK_DEFINE_INPUT_BY_TYPE(class, ImageClass, VARLINK_NULLABLE), | |
27 | VARLINK_DEFINE_INPUT(noReload, VARLINK_BOOL, VARLINK_NULLABLE)); | |
28 | ||
29 | static VARLINK_DEFINE_METHOD( | |
30 | Refresh, | |
31 | VARLINK_DEFINE_INPUT_BY_TYPE(class, ImageClass, VARLINK_NULLABLE), | |
32 | VARLINK_DEFINE_INPUT(force, VARLINK_BOOL, VARLINK_NULLABLE), | |
33 | VARLINK_DEFINE_INPUT(noReload, VARLINK_BOOL, VARLINK_NULLABLE), | |
34 | VARLINK_DEFINE_INPUT(noexec, VARLINK_BOOL, VARLINK_NULLABLE)); | |
35 | ||
36 | static VARLINK_DEFINE_METHOD( | |
37 | List, | |
38 | VARLINK_DEFINE_INPUT_BY_TYPE(class, ImageClass, VARLINK_NULLABLE), | |
39 | VARLINK_DEFINE_OUTPUT_BY_TYPE(Class, ImageClass, 0), | |
40 | VARLINK_DEFINE_OUTPUT_BY_TYPE(Type, ImageType, 0), | |
41 | VARLINK_DEFINE_OUTPUT(Name, VARLINK_STRING, 0), | |
42 | VARLINK_DEFINE_OUTPUT(Path, VARLINK_STRING, VARLINK_NULLABLE), | |
43 | VARLINK_DEFINE_OUTPUT(ReadOnly, VARLINK_BOOL, 0), | |
44 | VARLINK_DEFINE_OUTPUT(CreationTimestamp, VARLINK_INT, VARLINK_NULLABLE), | |
45 | VARLINK_DEFINE_OUTPUT(ModificationTimestamp, VARLINK_INT, VARLINK_NULLABLE), | |
46 | VARLINK_DEFINE_OUTPUT(Usage, VARLINK_INT, VARLINK_NULLABLE), | |
47 | VARLINK_DEFINE_OUTPUT(UsageExclusive, VARLINK_INT, VARLINK_NULLABLE), | |
48 | VARLINK_DEFINE_OUTPUT(Limit, VARLINK_INT, VARLINK_NULLABLE), | |
49 | VARLINK_DEFINE_OUTPUT(LimitExclusive, VARLINK_INT, VARLINK_NULLABLE)); | |
50 | ||
51 | static VARLINK_DEFINE_ERROR(NoImagesFound); | |
52 | ||
53 | static VARLINK_DEFINE_ERROR( | |
54 | AlreadyMerged, | |
55 | VARLINK_DEFINE_FIELD(hierarchy, VARLINK_STRING, 0)); | |
56 | ||
57 | VARLINK_DEFINE_INTERFACE( | |
58 | io_systemd_sysext, | |
59 | "io.systemd.sysext", | |
60 | &vl_type_ImageClass, | |
61 | &vl_type_ImageType, | |
62 | &vl_method_Merge, | |
63 | &vl_method_Unmerge, | |
64 | &vl_method_Refresh, | |
65 | &vl_method_List, | |
66 | &vl_error_NoImagesFound, | |
67 | &vl_error_AlreadyMerged); |