在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中,typedef
和struct
像这样:
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
?
答案 0 :(得分:2)
您的第一个代码引号与typedefs EFI_BOOT_SERVICES
无关(请注意第二个代码段中缺少单数和下划线。)
EFI_SET_WATCHDOG_TIMER
的类型定义为指向函数的指针,但是从您的帖子中不清楚它返回什么。