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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
* j  `9 R" F6 o0 w, j0 Y在下legacy bios没做两天又EFI了
8 f1 r9 h9 R$ Y- n4 D$ \我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!
) W5 i! F7 `" X& {: G+ K9 i8 X% x* n1 @: Y
typedef
; m2 Y& i: k/ E) O: Y2 K& bEFI_STATUS# e( ?) M6 O9 i0 [: n
(EFIAPI *EFI_PEI_RESET_SYSTEM) ($ E: M6 d- @1 a
  IN EFI_PEI_SERVICES   **PeiServices' V8 ~# [" r& [3 b$ k2 ^
  );/ n. |$ t: T) O; |( @- c4 R2 a

5 t. m2 j4 O6 @  A4 o6 ^typedef struct {
# T9 N) u7 [2 g, V' \5 d  EFI_PEI_RESET_SYSTEM  ResetSystem;
1 M0 i: ~: s9 c# j} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    3 k5 W8 r; a2 ^
  2. EFI_STATUS
    9 O8 W' c0 X' j4 v( C5 j7 D  H
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (6 h5 S$ ?# w$ G  `+ R- A3 U
  4.   IN EFI_PEI_SERVICES   **PeiServices3 n, }+ j0 `8 f* N! i" Y7 v
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
( n- _1 d! Q5 o6 l是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址3 `+ o6 j0 [% N

6 p# U5 V/ ]3 g. I# Y2 X/ k+ kEFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:' e1 M0 Y* u, T* m5 M: p! T" n; x
EFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。6 I+ U# E) z; a7 U
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。
# m$ ~4 ]. V, ^3 {0 W; ^2 l% h第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。' a% Z8 C& q0 i, n& ~7 X5 O* o
经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说
9 }7 C5 O' e: n# w. gPEI_RESET_PPI myVar;7 u/ h  G, U9 \6 O- C
就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。
; w9 L# b8 g4 a0 X. B2 i8 G0 K+ i: w
, W1 }* Q8 r( U5 z* U$ G解析   EFI_PEI_SERVICES **PeiServices+ h0 h% n: x0 S4 u: \7 v+ Z
可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 16:19 , Processed in 0.570895 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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