@@ -188,11 +188,28 @@ pub struct BootServices {
188
188
out_proto : * mut * mut c_void ,
189
189
) -> Status ,
190
190
191
- // These two function pointers require the `c_variadic` feature, which is
192
- // not yet available in stable Rust:
193
- // https://github.com/rust-lang/rust/issues/44930
194
- pub install_multiple_protocol_interfaces : usize ,
195
- pub uninstall_multiple_protocol_interfaces : usize ,
191
+ /// Warning: this function pointer is declared as `extern "C"` rather than
192
+ /// `extern "efiapi". That means it will work correctly when called from a
193
+ /// UEFI target (`*-unknown-uefi`), but will not work when called from a
194
+ /// target with a different calling convention such as
195
+ /// `x86_64-unknown-linux-gnu`.
196
+ ///
197
+ /// Support for C-variadics with `efiapi` requires the unstable
198
+ /// [`extended_varargs_abi_support`](https://github.com/rust-lang/rust/issues/100189)
199
+ /// feature.
200
+ pub install_multiple_protocol_interfaces :
201
+ unsafe extern "C" fn ( handle : * mut Handle , ...) -> Status ,
202
+
203
+ /// Warning: this function pointer is declared as `extern "C"` rather than
204
+ /// `extern "efiapi". That means it will work correctly when called from a
205
+ /// UEFI target (`*-unknown-uefi`), but will not work when called from a
206
+ /// target with a different calling convention such as
207
+ /// `x86_64-unknown-linux-gnu`.
208
+ ///
209
+ /// Support for C-variadics with `efiapi` requires the unstable
210
+ /// [`extended_varargs_abi_support`](https://github.com/rust-lang/rust/issues/100189)
211
+ /// feature.
212
+ pub uninstall_multiple_protocol_interfaces : unsafe extern "C" fn ( handle : Handle , ...) -> Status ,
196
213
197
214
// CRC services
198
215
pub calculate_crc32 :
0 commit comments