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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:* V+ w. y1 h9 C  t5 S: z# L7 ^1 i8 v
在下legacy bios没做两天又EFI了   p) M$ p  g8 g3 q
我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!
4 _, z& @( y2 a2 m  G, A. o: d+ ?; K& g5 Y; Q+ B, A" f
typedef: X& t$ [1 v8 q5 o: ^
EFI_STATUS8 w% x; W- M% o5 Q5 ^- a
(EFIAPI *EFI_PEI_RESET_SYSTEM) (
" S! O1 F  d2 w( N0 F1 z, r& W  IN EFI_PEI_SERVICES   **PeiServices
+ @( R% P; K/ i  );! w- [0 Y: T: t9 T: j1 h/ W
& X+ I1 ?2 u1 X& L' I9 F& N
typedef struct {
5 S% q: A: U. g% M, Q( z6 D  EFI_PEI_RESET_SYSTEM  ResetSystem;
, o' D0 e# A' F/ T: d% n} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    , z/ ^0 t8 [; y: E! m. W
  2. EFI_STATUS5 I3 {7 z' A, k& c7 K  k
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (6 b- j# L  W& {: q5 ^. _, I% T  f) }  Y
  4.   IN EFI_PEI_SERVICES   **PeiServices
    # _4 M" M+ P" }. l
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
' M& ~( e8 \. a8 Z; n& G: w是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址9 V+ ~; L( h1 F/ O1 l) J

% j$ `; U& S$ n7 _5 A  aEFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
) x5 i8 u- D% J/ q5 I  J7 ~  V5 x# eEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。/ r& H% y! w4 Y) c% v
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。
5 |3 y, t' T( h7 }3 `' [. ]第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。, x9 |' @5 W- O$ L6 [
经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说
$ [. R8 O# x  V) C& s& ]2 \" h! nPEI_RESET_PPI myVar;  I& d" v5 p* E0 f' i2 Q
就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。3 {+ l5 [' X- I
3 b+ l9 F! w2 s8 G
解析   EFI_PEI_SERVICES **PeiServices4 j2 P( G, n# C. _( Z9 M7 _; c+ A  Q
可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-16 07:36 , Processed in 0.088273 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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