master
idl 254 lines 8.15 KB
Raw
1 /*++
2
3 Copyright (c) Microsoft Corporation. All rights reserved.
4
5 Module Name:
6
7 WSLCShared.idl
8
9 Abstract:
10
11 This file contains the enum and flag definitions shared between the WSLC
12 service API (wslc.idl) and the WSLC SDK-facing API (WSLCCompat.idl).
13 Backwards compatibility must be maintained when changes made to this file
14
15 --*/
16
17 import "wtypes.idl";
18
19 typedef enum _WSLCVirtualMachineTerminationReason
20 {
21 WSLCVirtualMachineTerminationReasonUnknown,
22 WSLCVirtualMachineTerminationReasonShutdown,
23 WSLCVirtualMachineTerminationReasonCrashed,
24 } WSLCVirtualMachineTerminationReason;
25
26 typedef enum _WSLCFD
27 {
28 WSLCFDStdin = 0,
29 WSLCFDStdout = 1,
30 WSLCFDStderr = 2,
31 WSLCFDTty = 3,
32 } WSLCFD;
33
34 typedef enum _WSLCSignal
35 {
36 WSLCSignalNone = 0,
37 WSLCSignalSIGHUP = 1,
38 WSLCSignalSIGINT = 2,
39 WSLCSignalSIGQUIT = 3,
40 WSLCSignalSIGILL = 4,
41 WSLCSignalSIGTRAP = 5,
42 WSLCSignalSIGABRT = 6,
43 WSLCSignalSIGIOT = 6, // SIGABRT and SIGIOT are equivalent.
44 WSLCSignalSIGBUS = 7,
45 WSLCSignalSIGFPE = 8,
46 WSLCSignalSIGKILL = 9,
47 WSLCSignalSIGUSR1 = 10,
48 WSLCSignalSIGSEGV = 11,
49 WSLCSignalSIGUSR2 = 12,
50 WSLCSignalSIGPIPE = 13,
51 WSLCSignalSIGALRM = 14,
52 WSLCSignalSIGTERM = 15,
53 WSLCSignalSIGTKFLT = 16,
54 WSLCSignalSIGCHLD = 17,
55 WSLCSignalSIGCONT = 18,
56 WSLCSignalSIGSTOP = 19,
57 WSLCSignalSIGTSTP = 20,
58 WSLCSignalSIGTTIN = 21,
59 WSLCSignalSIGTTOU = 22,
60 WSLCSignalSIGURG = 23,
61 WSLCSignalSIGXCPU = 24,
62 WSLCSignalSIGXFSZ = 25,
63 WSLCSignalSIGVTALRM = 26,
64 WSLCSignalSIGPROF = 27,
65 WSLCSignalSIGWINCH = 28,
66 WSLCSignalSIGIO = 29,
67 WSLCSignalSIGPOLL = 29, // SIGIO and SIGPOLL are equivalent.
68 WSLCSignalSIGPWR = 30,
69 WSLCSignalSIGSYS = 31
70 } WSLCSignal;
71
72 typedef enum _WSLCListImagesFlags
73 {
74 WSLCListImagesFlagsNone = 0,
75 WSLCListImagesFlagsAll = 1, // Show all images (default hides intermediate images)
76 WSLCListImagesFlagsDigests = 2, // Include digest information
77 WSLCListImagesFlagsContainerCounts = 4, // Populate WSLCImageInformation::Containers
78 } WSLCListImagesFlags;
79
80 cpp_quote("#define WSLCListImagesFlagsValid (WSLCListImagesFlagsAll | WSLCListImagesFlagsDigests | WSLCListImagesFlagsContainerCounts)")
81
82 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCListImagesFlags);")
83
84 typedef enum _WSLCProcessFlags
85 {
86 WSLCProcessFlagsNone = 0,
87 WSLCProcessFlagsStdin = 1,
88 WSLCProcessFlagsTty = 2
89 } WSLCProcessFlags;
90
91 cpp_quote("#define WSLCProcessFlagsValid (WSLCProcessFlagsStdin | WSLCProcessFlagsTty)")
92
93 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCProcessFlags);")
94
95 typedef enum _WSLCContainerFlags
96 {
97 WSLCContainerFlagsNone = 0,
98 WSLCContainerFlagsRm = 1, // Delete the container when it exits.
99 WSLCContainerFlagsGpu = 2, // Enable GPU access.
100 WSLCContainerFlagsInit = 4, // Run the container under an init process.
101 WSLCContainerFlagsPublishAll = 8, // Publish all exposed ports.
102 WSLCContainerFlagsStopTimeout = 16, // The StopTimeout field is set and should be honored (otherwise StopTimeout is ignored).
103 WSLCContainerFlagsHealthCheck = 32, // The Health* fields are set and should be honored (otherwise they are ignored).
104 WSLCContainerFlagsNoHealthCheck = 64, // Disable any container/image-specified health check.
105 } WSLCContainerFlags;
106
107 cpp_quote("#define WSLCContainerFlagsValid (WSLCContainerFlagsRm | WSLCContainerFlagsGpu | WSLCContainerFlagsInit | WSLCContainerFlagsPublishAll | WSLCContainerFlagsStopTimeout | WSLCContainerFlagsHealthCheck | WSLCContainerFlagsNoHealthCheck)")
108
109 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCContainerFlags);")
110
111 typedef enum _WSLCContainerStartFlags
112 {
113 WSLCContainerStartFlagsNone = 0,
114 WSLCContainerStartFlagsAttach = 1, // Attach stdio handles on start.
115 } WSLCContainerStartFlags;
116
117 cpp_quote("#define WSLCContainerStartFlagsValid (WSLCContainerStartFlagsAttach)")
118
119 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCContainerStartFlags);")
120
121 typedef enum _WSLCContainerState
122 {
123 WslcContainerStateInvalid = 0,
124 WslcContainerStateCreated = 1,
125 WslcContainerStateRunning = 2,
126 WslcContainerStateExited = 3,
127 WslcContainerStateDeleted = 4,
128 } WSLCContainerState;
129
130 typedef enum _WSLCHandleType
131 {
132 WSLCHandleTypeUnknown = 0,
133 WSLCHandleTypeFile = 1,
134 WSLCHandleTypePipe = 2,
135 WSLCHandleTypeSocket = 3
136 } WSLCHandleType;
137
138 typedef enum _WSLCProcessState
139 {
140 WslcProcessStateUnknown = 0,
141 WslcProcessStateRunning = 1,
142 WslcProcessStateExited = 2,
143 WslcProcessStateSignalled = 3
144 } WSLCProcessState;
145
146 typedef enum _WSLCNetworkingMode
147 {
148 WSLCNetworkingModeNone,
149 WSLCNetworkingModeNAT,
150 WSLCNetworkingModeConsomme
151 } WSLCNetworkingMode;
152
153 typedef enum _WSLCFeatureFlags
154 {
155 WslcFeatureFlagsNone = 0,
156 WslcFeatureFlagsDnsTunneling = 1,
157 WslcFeatureFlagsEarlyBootDmesg = 2,
158 WslcFeatureFlagsGPU = 4,
159 WslcFeatureFlagsVirtioFs = 8,
160 WslcFeatureFlagsDebug = 16,
161 WslcFeatureFlagsPortRelayWslRelay = 32, // Use the wslrelay-based localhost port relay in Consomme networking mode.
162 } WSLCFeatureFlags;
163
164 cpp_quote("#define WSLCFeatureFlagsValid (WslcFeatureFlagsDnsTunneling | WslcFeatureFlagsEarlyBootDmesg | WslcFeatureFlagsGPU | WslcFeatureFlagsVirtioFs | WslcFeatureFlagsDebug | WslcFeatureFlagsPortRelayWslRelay)")
165
166 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCFeatureFlags);")
167
168 typedef enum _WSLCSessionStorageFlags
169 {
170 WSLCSessionStorageFlagsNone = 0,
171 WSLCSessionStorageFlagsNoCreate = 1, // Open an existing storage path, but don't create a new one.
172 WSLCSessionStorageFlagsWarnCustomLocation = 2, // Warn when creating a new VHD at a session.storagePath-configured location.
173 WSLCSessionStorageFlagsValid = WSLCSessionStorageFlagsNoCreate | WSLCSessionStorageFlagsWarnCustomLocation
174 } WSLCSessionStorageFlags;
175
176 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCSessionStorageFlags);")
177
178 typedef enum _WSLCLogsFlags
179 {
180 WSLCLogsFlagsNone = 0,
181 WSLCLogsFlagsFollow = 1,
182 WSLCLogsFlagsTimestamps = 2,
183 } WSLCLogsFlags;
184
185 cpp_quote("#define WSLCLogsFlagsValid (WSLCLogsFlagsFollow | WSLCLogsFlagsTimestamps)")
186
187 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCLogsFlags);")
188
189 typedef enum _WSLCDeleteFlags
190 {
191 WSLCDeleteFlagsNone = 0,
192 WSLCDeleteFlagsForce = 1,
193 WSLCDeleteFlagsDeleteVolumes = 2,
194 // TODO: Flags to remove bridge links, etc.
195 } WSLCDeleteFlags;
196
197 cpp_quote("#define WSLCDeleteFlagsValid (WSLCDeleteFlagsForce | WSLCDeleteFlagsDeleteVolumes)")
198
199 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCDeleteFlags);")
200
201 typedef enum _WSLCDeletedImageType
202 {
203 WSLCDeletedImageTypeDeleted = 0,
204 WSLCDeletedImageTypeUntagged = 1
205 } WSLCDeletedImageType;
206
207 typedef enum _WSLCDeleteImageFlags
208 {
209 WSLCDeleteImageFlagsNone = 0,
210 WSLCDeleteImageFlagsForce = 1,
211 WSLCDeleteImageFlagsNoPrune = 2,
212 } WSLCDeleteImageFlags;
213
214 cpp_quote("#define WSLCDeleteImageFlagsValid (WSLCDeleteImageFlagsForce | WSLCDeleteImageFlagsNoPrune)")
215
216 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCDeleteImageFlags);")
217
218 typedef enum _WSLCBuildImageFlags
219 {
220 WSLCBuildImageFlagsNone = 0,
221 WSLCBuildImageFlagsVerbose = 1, // Show all build progress including internal steps.
222 WSLCBuildImageFlagsNoCache = 2, // Do not use cache when building the image.
223 WSLCBuildImageFlagsPull = 4, // Always attempt to pull a newer version of the image.
224 } WSLCBuildImageFlags;
225
226 cpp_quote("#define WSLCBuildImageFlagsValid (WSLCBuildImageFlagsVerbose | WSLCBuildImageFlagsNoCache | WSLCBuildImageFlagsPull)")
227
228 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCBuildImageFlags);")
229
230 typedef enum _WSLCListContainersFlags
231 {
232 WSLCListContainersFlagsNone = 0,
233 WSLCListContainersFlagsAll = 1,
234 } WSLCListContainersFlags;
235
236 cpp_quote("#define WSLCListContainersFlagsValid (WSLCListContainersFlagsAll)")
237
238 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCListContainersFlags);")
239
240 typedef enum _WSLCSessionState
241 {
242 WSLCSessionStateRunning = 0,
243 WSLCSessionStateTerminated = 1
244 } WSLCSessionState;
245
246 typedef enum _WSLCSessionFlags
247 {
248 WSLCSessionFlagsNone = 0,
249 WSLCSessionFlagsPersistent = 1, // Session remains active after its COM reference is released.
250 WSLCSessionFlagsOpenExisting = 2, // Open an existing session if the name is in use.
251 } WSLCSessionFlags;
252
253 cpp_quote("#define WSLCSessionFlagsValid (WSLCSessionFlagsPersistent | WSLCSessionFlagsOpenExisting)")
254 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WSLCSessionFlags);")