Skip to content

[un]install_multiple_protocol_interfaces() requires but is currently incompatible with feature c_variadic #302

@timrobertsdev

Description

@timrobertsdev

Tracking issue

While implementing the missing protocol handler functions in BootServices, I found that extern "efiapi" is incompatible with Rust's current (unstable) implementation of c variadics. Rustc indicates that C variadics must be extern "C" or extern "cdecl", thus install_multiple_protocol_interfaces() and uninstall_multiple_protocol_interfaces() cannot be implemented at this time.

I'll bring this up on the C variadic tracking issue in the next couple days if it hasn't been already.

Rust tracking issue: rust-lang/rust#44930

EDIT: technically I guess this could be possible with some clever and wildly unsafe asm but I'd much rather wait for Rust to support it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions