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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
$ q$ i7 `& a! u: y5 W( a0 p在下legacy bios没做两天又EFI了 ' m) Q  ]+ X, x# r; L; V
我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!$ v8 J6 @; g7 M, U6 q5 M! ~! }- j

% t; ]  F5 y2 j) htypedef
- I' U( z6 K# e% {+ V3 h* hEFI_STATUS
: P7 A9 N: n) w; u, q* w0 e(EFIAPI *EFI_PEI_RESET_SYSTEM) (
) D+ S& g! \: W6 o  IN EFI_PEI_SERVICES   **PeiServices
; v, G) V4 \. Z. [$ s& b9 z  );
- y! T6 w8 ~9 k% |1 s7 i! u  U+ ?4 P  N* F7 y4 u: W
typedef struct {; z5 i0 v# L- d1 K2 f
  EFI_PEI_RESET_SYSTEM  ResetSystem;
& j8 T) I4 {) z} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef* x; p4 L- \( c; H/ ~' O" d5 Q
  2. EFI_STATUS  [4 U0 ]# ^& A7 O3 h; P- j
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
    2 }) w  B. j7 T) Y% P. {
  4.   IN EFI_PEI_SERVICES   **PeiServices
    ' A: d- Z/ l" U; L; ~  j) i$ T) r
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
8 K* W' v3 [7 g, m6 B0 E8 H是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址
$ f! \- M, Y5 P. m* I6 W: p, q: U3 F
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
; b# T& f* U/ NEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。; m- I5 q: i7 m* u
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。$ _5 Q% @& l! C
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
( s+ K1 Q- s4 E" J) ]& c7 t2 {经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说
5 B, Q; m7 _/ r& NPEI_RESET_PPI myVar;
# m9 y6 w% C) g$ f就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。
) m& T/ K* d* E% j7 H
7 }/ o2 q0 l$ |. t$ A5 T6 k$ D解析   EFI_PEI_SERVICES **PeiServices
: U( H- q4 D$ G4 C0 K  D* D可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-12 08:08 , Processed in 0.059771 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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