gpt4 book ai didi

c - 如何理解 UEFI 中的 struct typedef 组合?

转载 作者:太空宇宙 更新时间:2023-11-04 07:54:15 25 4
gpt4 key购买 nike

在 UefiSpec.h 中,EFI_BOOTSERVICE 看起来像这样:

///
/// EFI Boot Services Table.
///
typedef struct {
///
/// The table header for the EFI Boot Services Table.
///
EFI_TABLE_HEADER Hdr;

//
// Task Priority Services
//
EFI_RAISE_TPL RaiseTPL;
EFI_RESTORE_TPL RestoreTPL;

//
// Memory Services
//
EFI_ALLOCATE_PAGES AllocatePages;
EFI_FREE_PAGES FreePages;
EFI_GET_MEMORY_MAP GetMemoryMap;
EFI_ALLOCATE_POOL AllocatePool;
EFI_FREE_POOL FreePool;
.
.
.
} EFI_BOOT_SERVICES;

在 EfiApi.h 中,带有 structtypedef 是这样的:

typedef
EFI_BOOTSERVICE
EFI_STATUS
(EFIAPI *EFI_SET_WATCHDOG_TIMER) (
IN UINTN Timeout,
IN UINT64 WatchdogCode,
IN UINTN DataSize,
IN CHAR16 *WatchdogData OPTIONAL
);

那么这是 EFI_SET_WATCHDOG_TIMER 的定义,是 EFIAPI 的函数指针还是 EFI_STATUS 函数指针?如何理解typedef

最佳答案

您的第一个代码引用是无关紧要的,因为它类型定义 EFI_BOOT_SERVICES(请注意第二个片段中缺少单数和下划线。)

EFI_SET_WATCHDOG_TIMER 类型定义为指向函数的指针,但从您的帖子中不清楚它返回什么。

关于c - 如何理解 UEFI 中的 struct typedef 组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51471494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com