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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
7 }% M% m& j4 Z在下legacy bios没做两天又EFI了 $ v9 t$ u9 }! B8 t  V" X" Q" r
我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!5 M! H* m5 q3 @/ l6 j( b
" v# ^" |4 ~6 d/ X$ c' w. L, z# a
typedef
/ |% V) T1 T) a9 \EFI_STATUS* F8 }$ J! Z" o) R7 x
(EFIAPI *EFI_PEI_RESET_SYSTEM) (0 s6 ]( r8 q! \0 j# p. `2 l; o6 t/ W
  IN EFI_PEI_SERVICES   **PeiServices
: k' d2 d# ^3 |% h  );
, \6 z, M* |9 ]. o! h
# Y* V9 r% [$ t: t8 S: H7 e7 Btypedef struct {3 b9 b+ x9 f  K. U
  EFI_PEI_RESET_SYSTEM  ResetSystem;
& u/ V; ~3 ~9 Q. k  y" [  L} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef# Z, b7 K' G, X- D
  2. EFI_STATUS
    / F. X. m; q4 N1 K8 d
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
    " h; y, v  ^# T6 N8 |$ c$ H
  4.   IN EFI_PEI_SERVICES   **PeiServices
    : V* u2 `- i) o7 v' W  ?( w) B
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
9 }; Z: g+ W& M是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址
2 g9 h) T3 _4 m  H: V% c( W
# J7 N5 C. o8 a+ e" E  [( T9 zEFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
  E; P: E8 X. U6 a0 \9 M  n% S0 S# tEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。; d5 K6 \/ `' s
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。! l9 q" k! f* ]
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。) N$ s; B; V, G# \1 U4 v( P8 f
经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说9 O7 U' e0 v4 r( s, k
PEI_RESET_PPI myVar;
* Q' l( i9 F5 t* v" A, d% O就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。# q; j) E; E$ x6 u: n0 ^1 |: z2 |
; O% g: W' k1 ?; \4 o
解析   EFI_PEI_SERVICES **PeiServices* C1 M! v1 g( ?& R3 n, Q' W" F
可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-22 10:59 , Processed in 0.028900 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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