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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
: d3 h% R" V! |; g0 |  n在下legacy bios没做两天又EFI了
4 }  T# N& u5 p. V! x& u我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!
6 c4 ?3 `  J5 `& u* w$ q0 U7 E- l) T' n
typedef
3 P. o, y$ r3 B5 f3 E0 W; a% wEFI_STATUS& g, O) z9 B( B9 s/ b
(EFIAPI *EFI_PEI_RESET_SYSTEM) (
9 y0 |+ _8 D# P- k$ i) N+ h  IN EFI_PEI_SERVICES   **PeiServices7 R4 s( l8 S" c4 Y1 d2 \# z; E3 {
  );) F; i9 Q. y: B$ m9 p1 w1 F$ _

* u/ q. h  e6 `2 Q1 @typedef struct {0 b* c' u7 G: L
  EFI_PEI_RESET_SYSTEM  ResetSystem;+ L- z; W8 Y  P( I0 C
} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef9 `9 T3 l8 B! d
  2. EFI_STATUS/ v8 z3 c+ \% T/ t5 q2 m* n, T
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
    5 `! ?% \' }( x
  4.   IN EFI_PEI_SERVICES   **PeiServices# j, _* w8 `' @& z; Z
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
- C7 B: U5 Z; ~8 `是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址; _, \" w4 i6 i
& A5 t' b- O# N. u9 r
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
. m; S( V/ M3 K8 |EFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。2 y6 U/ j3 X2 P  g4 a4 k3 u/ B0 H( z
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。9 Z0 }/ n. w$ K8 j2 I1 X) F
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。* r6 u5 b4 D0 p/ V: v4 n
经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说0 F8 @  G9 F4 u8 s9 a
PEI_RESET_PPI myVar;# S; O7 ^6 w( l9 E; {  z( k3 f
就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。
" z  z/ N: v0 `1 T1 W; s
) O$ i, ~" c( _. Y2 X/ S$ w: Q& Y1 b解析   EFI_PEI_SERVICES **PeiServices
, n% i7 ?2 y6 n  _$ ?* a; Q可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-4 14:34 , Processed in 0.148286 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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