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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
; k9 i9 ~2 ]( B% T1 `( t4 T在下legacy bios没做两天又EFI了
9 |7 B4 E. t9 w3 g5 P( R我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!8 k( N4 ~6 `; Y7 K. J& u. |
; ^( O1 ]- v: o6 t4 B: A
typedef/ L6 s8 P4 Y3 H" F2 i0 T
EFI_STATUS
/ d- c) [5 `0 r! v+ Y6 w0 N(EFIAPI *EFI_PEI_RESET_SYSTEM) (
; K  p% L8 w/ x9 {" |2 g  IN EFI_PEI_SERVICES   **PeiServices
0 i& B- X+ [# T$ c: z5 k6 t  );
& r3 j8 Z. O. r: M% u; E9 H! z% B' c% \1 _) j
typedef struct {, a: Z0 S$ y# f, N& M+ R& X
  EFI_PEI_RESET_SYSTEM  ResetSystem;7 v& v, W, L! t! E# D, o
} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    1 W; h& D" v1 N+ R% w8 B
  2. EFI_STATUS; @1 I. j! `8 G
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
    ; ?$ z  U6 F: W  [% R& q2 N
  4.   IN EFI_PEI_SERVICES   **PeiServices
    - T- G9 i+ k. n$ a7 Q
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,  u; M5 z) y2 z6 r' c# q# C/ m6 U( h
是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址
0 S& T. ?/ c+ u2 X' f. V5 A0 ?7 O; p
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:+ p+ J: w, f: ]  c
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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。
+ I) W" J3 O* b" E0 K( [第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。& f4 f( N- `& s! s! Y
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
; f' S2 f) Y1 G7 l' z* f3 o; P经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说
! B8 |/ S* x; F1 G+ J+ `PEI_RESET_PPI myVar;/ F# N7 Y* \8 E) }0 ^
就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。
8 O8 i0 j5 R5 L5 q2 D& ~- u/ p3 v) @. c/ e/ G5 g" I
解析   EFI_PEI_SERVICES **PeiServices
# X6 [* n: f' `  I5 i3 m% B, G( F可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-5 00:26 , Processed in 0.029090 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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