C 如何理解UEFI中的结构类型定义组合?

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

在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;
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

您的第一个代码引用是不相关的,因为它是typedefs
EFI_BOOT_服务
(注意第二个代码段中缺少单数和下划线。)


EFI\u SET\u WATCHDOG\u TIMER
被键入指向函数的指针,但从您的帖子中不清楚它返回的是什么。

您的第一个代码引用是不相关的,因为它键入defs
EFI\u BOOT\u SERVICES
(请注意第二个代码段中缺少单数和下划线。)


EFI\u SET\u WATCHDOG\u TIMER
被键入指向函数的指针,但从您的帖子中不清楚它返回什么。

除了单数,第二个代码段中还缺少一个下划线。除了单数,第二个代码段中也缺少一个下划线。