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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:5 [3 h, `! `+ _2 ?8 n
在下legacy bios没做两天又EFI了
7 `5 g  P5 |2 Z0 I! u6 p7 h) H' [" }我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!2 j7 p) T  z9 u: @( F( a7 [: H
% L0 U$ f; H& ~+ ]: L
typedef) H( t0 q5 `' T# \
EFI_STATUS
6 l5 U5 a, i" G/ t(EFIAPI *EFI_PEI_RESET_SYSTEM) (
7 S' ^) J4 j. |0 O* L# `  IN EFI_PEI_SERVICES   **PeiServices
5 g) B( j7 A% Q% p  );& z5 @% Q8 m' }, i% J4 b( B8 c
& g4 N& E8 U  p( G  |
typedef struct {5 a7 t+ s9 s/ |( R
  EFI_PEI_RESET_SYSTEM  ResetSystem;- V3 i0 o6 j, }' ~% @9 z
} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef# t$ g# V6 c8 [/ U) D
  2. EFI_STATUS) S) K9 i" ~' W1 G, r7 k
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (1 v5 }2 ~6 A* P" l, s
  4.   IN EFI_PEI_SERVICES   **PeiServices& u- q( y" x' {# D) q+ d* x
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
% _! K7 O* ^. O4 Z) Z. A7 q是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址' P' R3 V, @& j3 q3 \( b: M
) s+ H: _; |8 Z& F! b8 T6 H/ i
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
0 k' J. V& E5 a' D- FEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。
3 ~+ n" ~% y& ?3 E) Q第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。7 S: w& `6 D$ j- I- G& M  s% g* _2 V  B
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。# k" ^4 |6 q) @+ M8 H
经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说
5 c5 t$ V2 i9 L8 `0 V- YPEI_RESET_PPI myVar;
! `: h/ ^$ c2 Y% S  e就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。$ f: H  g7 z- O9 |9 Q* Q8 Q& d& ~0 s
* L0 o8 k0 S$ Z+ W* ^
解析   EFI_PEI_SERVICES **PeiServices
& h! G1 K: |* d( C可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-20 03:48 , Processed in 0.040422 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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