Closed
Description
Tracking issue for the efiapi
calling convention, added in PR #65809. The feature gate name is abi_efiapi
.
The efiapi
calling convention can be used for defining a function with an ABI compatible with the UEFI Interfaces as defined in the UEFI Specification. On the currently supported platform, this means selecting between the win64
ABI or the C
ABI depending on the target architecture.
Usage
extern "efiapi" fn func() {…}
Known Issues
- The ABI is currently accessible on platforms architectures not supported by UEFI (x86, x86_64, itanium, arm, arm64 and risc-v). There is currently no way to whitelist ABI for certain architectures, see AAPCS ABI is accepted for x86 target #57182 for a similar issue.
- EFIAPI should delegate to
aapcs
on ARM, andaapcs64
en ARM64, instead of delegating toC
.
Metadata
Metadata
Assignees
Labels
Area: Concerning the application binary interface (ABI)Area: Foreign function interface (FFI)Blocker: Implemented in the nightly compiler and unstable.Category: An issue tracking the progress of sth. like the implementation of an RFCUEFIStatus: This is ready to stabilize; it may need a stabilization report and a PRRelevant to the language team, which will review and decide on the PR/issue.This issue / PR is in PFCP or FCP with a disposition to merge it.The final comment period is finished for this PR / Issue.