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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:% c3 j  Y. ?% J+ _" t3 m8 R/ E
在下legacy bios没做两天又EFI了
/ l+ h% U0 L% _! Q- t3 e$ j我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!
# s$ y+ m( c; w3 W# X' Z' f% m! Z- t1 Q  G) L$ b
typedef, g1 x: p9 k/ |/ ~
EFI_STATUS8 V$ u0 G3 G' e0 W9 i* s
(EFIAPI *EFI_PEI_RESET_SYSTEM) (- c! w/ o+ S$ ]' Y; b6 N
  IN EFI_PEI_SERVICES   **PeiServices5 ?- h! Y% @/ @1 K
  );, c) J! T. P6 L
! o' i' n$ w0 A
typedef struct {
5 z. N5 \* E' v' Q0 {# {  EFI_PEI_RESET_SYSTEM  ResetSystem;, B4 A1 ~# v, {! y* p
} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    ; u# K6 j1 l/ M5 h6 x" }' }9 [
  2. EFI_STATUS
    ; p# R. V) \" W+ J, u
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
    & }8 }# B$ Z9 I. Q" \
  4.   IN EFI_PEI_SERVICES   **PeiServices
    0 U5 r; U' s" i- {( z& G  b0 [- x
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
  C& l+ ]0 H/ g- F, l+ B是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址) z4 U. E6 n% }; c6 l

( c9 w+ ^% i3 c2 C$ W- Y& iEFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:+ S9 U; [3 e3 I
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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。
; s' {* s* y/ `第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。
7 d# U5 L& f0 _! z! S8 f6 ]0 j0 ^5 I第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。$ X; f) B$ L& \( S5 y2 P; Z, e/ f
经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说
! x2 F/ H. W! Z: @& c( \5 I: L6 ePEI_RESET_PPI myVar;
; N. T; x9 W& R$ R( I. @就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。: Y; m7 K3 W9 e6 E3 Y

5 j' v4 `$ p$ d9 u* e: Z3 }. v1 _解析   EFI_PEI_SERVICES **PeiServices
; R% f$ H( a  W7 R  `* R0 o可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-1 20:32 , Processed in 0.701860 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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