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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
3 _* X6 V% z# x7 w. H, D/ r7 `在下legacy bios没做两天又EFI了
' I* D$ P: S$ v8 }* A我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!: x8 s9 Q; v# o% j1 j8 n0 J) l: X

( G& D% S# m( U2 htypedef
% Y9 G, Y. U) r! |' h8 [EFI_STATUS
; A2 T  m: w9 V& a(EFIAPI *EFI_PEI_RESET_SYSTEM) (
3 c: m' \  l( |9 O! l  IN EFI_PEI_SERVICES   **PeiServices
' B: ^$ R( r1 @) c+ a& E' O  r  );
% z+ @* ?: v" t# e+ l: W6 n5 ^) c6 l' r8 e4 C
typedef struct {2 k( \. H/ w+ E
  EFI_PEI_RESET_SYSTEM  ResetSystem;' ^0 W( ]6 ?6 [
} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef& R2 i0 w, E- R
  2. EFI_STATUS) C6 ^" W- F3 N
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (5 S6 M) ~% e+ d$ t
  4.   IN EFI_PEI_SERVICES   **PeiServices
    $ q6 R, }* N, B/ Z: |4 ^0 ~% F1 E: R
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
& `5 o5 ^' J% t$ O3 I是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址6 p7 q* ~" h( Q% g7 \% {1 E

" R1 D) J3 g% P/ zEFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
# \* S4 D4 [' g1 {9 SEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。- l! }3 p/ F# w% F& H+ F
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。
& _7 P: e4 y$ `) b# v" t第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
" M6 \' ^* L& M1 A  w- l  L经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说3 s0 H& V& k$ t0 H! K6 \, D# [' ?
PEI_RESET_PPI myVar;9 s- F! N; j  Q
就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。( v4 ~% O: x0 r

4 D! J0 N& v; p+ u; M7 Q* W, }解析   EFI_PEI_SERVICES **PeiServices
/ l; |3 f( Y1 ?2 b0 d6 {可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-2 04:45 , Processed in 0.035571 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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