1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
/*
* vmette.h — C ABI for the vmette local sandbox library.
*
* Generated by cbindgen from crates/vmette/src/ffi.rs. Do not edit by hand;
* re-run `make header` (cargo build -p vmette --features regenerate-header).
*/
/* WARNING: this file is auto-generated. Edits will be lost. */
/**
* Status codes returned by C-ABI functions.
*/
;
typedef int32_t VmetteStatus;
/**
* Opaque handle to a [`Config`].
*/
typedef struct vmette_config_t vmette_config_t;
/**
* Opaque handle to a [`RunOutput`].
*/
typedef struct vmette_run_output_t vmette_run_output_t;
/**
* Construct a new config with the minimum required fields. Returns NULL
* on null arguments or invalid UTF-8.
*
* # Safety
* See the module-level safety contract.
*/
struct vmette_config_t *;
/**
* Free a config. No-op on NULL.
*
* # Safety
* See the module-level safety contract. After this call `cfg` is dangling
* and must not be reused.
*/
void ;
/**
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* Append a `KEY=value` environment variable applied in the guest before the
* exec command (overrides any OCI image env). Ignored on null/invalid-UTF-8
* args.
*
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* Set the vsock port policy.
* `port < 0` → disable the vsock device entirely.
* `port == 0` → auto-allocate per invocation (50000..60000).
* `port > 0` → use that exact port.
*
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* Note: no clamping. A value VZ rejects (e.g. 0) surfaces as
* `InvalidConfig` from `vmette_run` — same path as the Rust API.
*
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* Note: no clamping. See `vmette_config_set_vcpus` for the rationale.
*
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* Path to a snapshot file to write after the guest signals ready.
* Apple Silicon only — see VmetteStatus::SnapshotUnsupported.
*
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* Path to a previously-saved snapshot to restore. Apple Silicon only.
*
* # Safety
* See the module-level safety contract.
*/
void ;
/**
* Run a configured guest. Blocks until the guest powers off.
*
* On success returns [`VmetteStatus::Ok`] and writes a newly-allocated
* run output handle to `*out` (caller must `vmette_run_output_free`).
* On error returns the matching status and leaves `*out` untouched.
*
* Note: in the common path this function never returns — the underlying
* `vmette::run` exits the process via the VM's lifecycle delegate with
* the guest's exit code.
*
* # Safety
* See the module-level safety contract. `out` must be a valid, writable
* pointer to a `*mut vmette_run_output_t`.
*/
VmetteStatus ;
/**
* # Safety
* See the module-level safety contract.
*/
int32_t ;
/**
* # Safety
* See the module-level safety contract. After this call `out` is dangling
* and must not be reused.
*/
void ;
/**
* Returns the library's semver string (e.g. "0.1.0"). Caller must not free.
*/
const char *;
/* VMETTE_H */