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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:( a  [+ m0 I/ m* W8 c! j
在下legacy bios没做两天又EFI了 : C* c. O9 n  j9 z! d, Z& g. B
我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!( M. I) w3 a* x1 Q: ~, q$ D3 t

9 e: _5 m6 k8 j; V/ Itypedef; R7 M/ h+ ~$ k& k* S
EFI_STATUS
4 A& S+ T5 h+ K9 ]- x# Z(EFIAPI *EFI_PEI_RESET_SYSTEM) (" C; e' d% w, _1 Y5 B" A1 ~
  IN EFI_PEI_SERVICES   **PeiServices3 v' n8 S  Y! Q  S: A* J9 l# ]
  );3 t1 R6 ?8 J  Z; q

+ F) o+ Q( j- K) K7 R+ k# mtypedef struct {
7 j, N1 L3 T, |* p3 X: g  EFI_PEI_RESET_SYSTEM  ResetSystem;8 B8 t9 k( T+ i
} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    ) A  t) Q, m; K' L  C
  2. EFI_STATUS
    $ G, v: V% H* x/ _2 w  Z& \, ~
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
    2 N6 D( ]1 |; S, `! X* g
  4.   IN EFI_PEI_SERVICES   **PeiServices
    ! U- l/ a" b) n# x0 X+ @
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,) V; X9 ^# U! p  g8 c, k9 b8 y
是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址# P9 T: [7 j9 T+ I) X
( d/ m( M/ F/ `, N
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
8 p1 r( e4 w9 [0 g! tEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。: M# m% i$ Z& A5 ]: u1 ~7 G
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。8 x# l7 t+ M: E$ J+ T+ A
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
0 E# u' j8 T2 _& d. R$ A$ X4 z经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说
  ?2 [0 S, g/ G' m- [- f+ F# E* DPEI_RESET_PPI myVar;
$ f, g) S* j- B4 N' A/ U$ Q; }就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。& u3 B% C# _$ k# Q. U/ R/ I8 m

/ W! y9 k6 S* K2 b4 {* x解析   EFI_PEI_SERVICES **PeiServices- S6 {) Z: E+ K% V; W
可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-14 21:47 , Processed in 0.045605 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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