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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:: O2 [! V0 @4 S
在下legacy bios没做两天又EFI了
; g0 V) \( D; M4 Y2 c我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!/ o* U8 S9 Y2 d

% w4 z4 ?  B7 Stypedef
. u1 Y4 R% D9 R6 r- t6 q$ j0 F8 K2 cEFI_STATUS
& k- E' I/ B1 g/ i. x! w(EFIAPI *EFI_PEI_RESET_SYSTEM) (
6 S6 x9 U' `2 q3 @3 t  IN EFI_PEI_SERVICES   **PeiServices
/ U" H0 ]) O5 K  C: i1 z; _! ^  );
* t6 b6 O+ n% n$ r4 D, z
5 s/ Q% k4 y8 e$ Stypedef struct {
. q7 I! _& @9 L; W- x$ u' K( w6 t  EFI_PEI_RESET_SYSTEM  ResetSystem;% P2 J8 g, D  Z0 _0 V& S
} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef) Q/ d  O6 L6 e
  2. EFI_STATUS
    - ]& d9 r( t8 ^
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
    6 `# s+ I* w, W6 X" J- V
  4.   IN EFI_PEI_SERVICES   **PeiServices
    ' F  e3 [" P& i
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,: y  {- W1 `# O5 M
是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址, _* o$ F: m5 a, B$ [
. ^( N: i; X4 x, z% x3 T
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
4 L$ o' G% f/ n# ZEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。
7 z( n1 s( d7 y$ p7 L6 x. K5 V第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。2 T* ^& ~' e# i# ]4 t  X
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。+ ?7 r5 n  l" O9 J) `/ G
经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说# W9 _  F; `, g7 _8 d$ ]
PEI_RESET_PPI myVar;& u$ O$ X; `2 a
就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。
3 d" M- [4 Z# L& D0 O; L0 E0 M0 \/ z. C: M' H" L+ {
解析   EFI_PEI_SERVICES **PeiServices" F- ^* y4 S. ^1 [+ ^, }
可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-11 17:53 , Processed in 0.139853 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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