C 如何理解UEFI中的结构类型定义组合?
在UefiSpec.h中,C 如何理解UEFI中的结构类型定义组合?,c,uefi,C,Uefi,在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
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;
typedef
EFI_BOOTSERVICE
EFI_STATUS
(EFIAPI *EFI_SET_WATCHDOG_TIMER) (
IN UINTN Timeout,
IN UINT64 WatchdogCode,
IN UINTN DataSize,
IN CHAR16 *WatchdogData OPTIONAL
);
在EfiApi.h中,带有struct
的typedef
如下所示:
///
/// 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;
typedef
EFI_BOOTSERVICE
EFI_STATUS
(EFIAPI *EFI_SET_WATCHDOG_TIMER) (
IN UINTN Timeout,
IN UINT64 WatchdogCode,
IN UINTN DataSize,
IN CHAR16 *WatchdogData OPTIONAL
);
那么这是对EFIAPI函数指针或EFI状态的定义吗?
如何理解
typedef
?您的第一个代码引用是不相关的,因为它是typedefsEFI_BOOT_服务
(注意第二个代码段中缺少单数和下划线。)
EFI\u SET\u WATCHDOG\u TIMER
被键入指向函数的指针,但从您的帖子中不清楚它返回的是什么。您的第一个代码引用是不相关的,因为它键入defsEFI\u BOOT\u SERVICES
(请注意第二个代码段中缺少单数和下划线。)
EFI\u SET\u WATCHDOG\u TIMER
被键入指向函数的指针,但从您的帖子中不清楚它返回什么。除了单数,第二个代码段中还缺少一个下划线。除了单数,第二个代码段中也缺少一个下划线。