找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 15714|回复: 4

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:  v8 V& Q6 r7 h) ?7 n
在下legacy bios没做两天又EFI了 , X) K9 f4 b+ M
我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!( z* _/ n, e' b
: {5 L* O" w- e3 J! g
typedef
' D! n# a& q* [9 GEFI_STATUS6 _8 D" l- n- `* L( n6 N
(EFIAPI *EFI_PEI_RESET_SYSTEM) (
" C* {7 _& p- }2 T" D  IN EFI_PEI_SERVICES   **PeiServices7 a  A' U  L6 ?& A6 |0 `5 A
  );' T% P* M, W# f- A6 y
, o; q; r) \  |* W, Z
typedef struct {; f# P( Q0 v9 t" @- h1 d
  EFI_PEI_RESET_SYSTEM  ResetSystem;& O) x3 ~, V  h$ Q6 A
} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    - J% J" _2 P6 \4 ?' d- r; A
  2. EFI_STATUS
      F( N5 w' H% Y' L& ~# ?6 h; H
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
      l9 @" |3 {5 ]+ R& v
  4.   IN EFI_PEI_SERVICES   **PeiServices
    3 m* D( S5 S$ _  n" _- C$ B& a
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
; `# p$ t% B+ E是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址& n" W" J3 C$ s* l) ^2 z

+ U  Z# C' j  M7 @% v" ^EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
$ k& y( s+ m' _: U6 b% S% lEFI_STATUS EFIAPI PeiResetSystem (IN  EFI_PEI_SERVICES   **PeiServices );
回复

使用道具 举报

 楼主| 发表于 2008-11-12 14:04:00 | 显示全部楼层
感谢xtdumpling指点,学习了!
回复

使用道具 举报

发表于 2009-8-6 09:45:21 | 显示全部楼层

请问,EFI_STATUS这个有没有具体意思呢?

请问,EFI_STATUS这个有没有具体意思呢?谢谢哈,初学者~~
回复

使用道具 举报

发表于 2009-8-14 20:47:07 | 显示全部楼层
EFI_STATUS就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。
! t; q# s: {! {5 L% G2 [第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。. B9 ~, T1 \& x5 w
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。: q8 W. G" w$ q2 @
经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说$ ]/ H' o1 f% y# t1 J/ S) n
PEI_RESET_PPI myVar;* w6 m. u! u% `7 L: T
就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。0 \6 }" Z$ Y0 F; \2 |- g: v1 W
& u- R/ B, {/ H- X
解析   EFI_PEI_SERVICES **PeiServices  k) ]# g% Q' z6 n2 Q
可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2025-6-16 12:46 , Processed in 0.073052 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表