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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
" i: \% B. y8 {8 f* q0 z在下legacy bios没做两天又EFI了 3 A; m8 {: W# r8 \/ I' v5 z
我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!" U9 L- \$ K% w- f
* A' _% T1 J: `# G& i
typedef
" v; Q3 U2 j; T. ^EFI_STATUS! G3 U  l! C. ]( m4 v9 S
(EFIAPI *EFI_PEI_RESET_SYSTEM) (
  G; t% n  t3 p( y. e. S6 e9 l  IN EFI_PEI_SERVICES   **PeiServices$ e' _" ?, a6 {2 m" e* n
  );+ m: }$ v, s* j8 R, T- f

. G# \9 r: H4 {+ {+ Ftypedef struct {8 Z4 s% V; |3 r9 [1 g
  EFI_PEI_RESET_SYSTEM  ResetSystem;
$ P1 ~3 s: z% @1 C; G$ w1 ]} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef+ E) Z* h) X5 K5 h" b
  2. EFI_STATUS
    $ S5 i$ G7 {# v& ?) h
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (# _4 \. m  e) e. ~! Q* m
  4.   IN EFI_PEI_SERVICES   **PeiServices
    . J% z* o. t- R, l2 e
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
2 w6 \7 l! r. }是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址
7 s6 y6 G0 U$ S6 ~
7 a# E. n! J4 WEFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
8 T, ]$ [! H6 L% Q1 j3 A9 a0 oEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。
! X0 p8 ~: D' I第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。
/ C- T- U& Q5 L- f! p# V7 z3 Z第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
8 f7 Z; W- c# h7 n7 A经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说
' h4 z( N2 |7 h2 xPEI_RESET_PPI myVar;
3 A- i" r, R/ O1 \' l就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。9 Z( W+ c$ u5 Q& j$ c8 E
. Q6 M8 G: u6 j3 Y& p
解析   EFI_PEI_SERVICES **PeiServices
, }6 l( H* k8 V& x$ h2 {4 }0 A' T可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-21 13:12 , Processed in 0.420616 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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