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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:0 h. @- p# U, C
在下legacy bios没做两天又EFI了
7 w7 J& I; @! a8 B# D. X5 ?我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!1 |5 v$ h6 k+ @# U2 z- _
6 o: A; S' m3 s2 w/ p
typedef: {, D8 E' C5 s/ l. Z: i  `( s
EFI_STATUS4 G& t- R& u# w+ @
(EFIAPI *EFI_PEI_RESET_SYSTEM) (
. W9 E5 n0 o# @. F* I4 s  IN EFI_PEI_SERVICES   **PeiServices
/ v1 O; `" o! q# ]1 U& g) O  );
) h  m' k& Z4 h
; \0 f2 q) I: Stypedef struct {
6 p  F8 O) \6 B5 b  EFI_PEI_RESET_SYSTEM  ResetSystem;" q0 ~: q* g% A1 d$ O2 E* r# d
} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef+ B2 q9 s/ U9 X: K( @! W' b5 c
  2. EFI_STATUS
    , L# R9 F( ~- O! @- Z" m* a( u
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (" D3 ~! Q% K9 M% z, [; w+ S
  4.   IN EFI_PEI_SERVICES   **PeiServices+ M* v. D/ D* U  Q. z2 x5 H  i) }; e3 K
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,+ M5 V, I1 s. L  h& X( Y7 Q& b
是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址
, N! T( P+ D7 H2 Y& C8 a7 V# V. {- p5 f* s& l7 n% }0 _
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
# x8 `' K# n' _! k+ T( V' REFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。0 ?8 h- {' Y6 p3 T8 V3 y
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。
0 T4 e/ X2 Y, L% W第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
9 W* @1 l$ `. V经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说, J7 U; \% b6 i- \$ O5 t/ h" x
PEI_RESET_PPI myVar;
* n( k6 i' k) h1 P2 ?# x就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。" e' s; h& U/ J3 F8 x# ~8 t; e1 Z( o
  ^4 p, Y- n" F; y! y3 C9 Z
解析   EFI_PEI_SERVICES **PeiServices
6 }0 \' a* t, r& i! T9 B% @+ E可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 16:55 , Processed in 0.058617 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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