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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
: d, j) k' C) n' o在下legacy bios没做两天又EFI了
. z* N" z: u3 C1 v2 _: e8 L我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!
% z8 R- O- C9 V7 o0 V% i* E. U
6 M$ V  a" a6 |  L5 K/ L  ntypedef: \" P8 n0 w& `0 a9 w1 w$ v
EFI_STATUS3 Y$ B5 Z4 N. ?; N/ v5 z" O
(EFIAPI *EFI_PEI_RESET_SYSTEM) (% a  l! z  c! T- c4 N; Q2 d$ x# Z
  IN EFI_PEI_SERVICES   **PeiServices
8 U; o5 [! e% d; `. Q& ?  );
* ^* E! D9 M( f* N/ p
5 w# U9 z: t: H- u  }+ S' Stypedef struct {
* f& d% |) l- |9 K/ A% P' N  EFI_PEI_RESET_SYSTEM  ResetSystem;
! H6 }0 \' B) k9 }6 z2 ~0 e/ u5 O} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    0 W; [8 H: [" Z0 B* E
  2. EFI_STATUS
    6 m2 s/ m) J- s& U% P  P
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (0 N5 r7 m" P; R# C
  4.   IN EFI_PEI_SERVICES   **PeiServices
    9 W* t' c, ^/ R5 r2 _
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,  j8 }' i0 o6 _: s
是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址
7 v3 k% A0 \, l
0 R2 C6 }, S2 e- G5 x5 Z6 C5 AEFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
$ ?5 U- b% |5 l7 Y3 aEFI_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& f# j  x$ s* E3 c. t" ~( x
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。
7 D2 H- U5 C2 [; t& x$ R第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
- r2 e& y. u/ Z' x4 T$ U经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说! K$ T6 |8 V7 X8 Y$ P5 b" ^& `
PEI_RESET_PPI myVar;  K9 t4 c8 n. _6 \/ o2 c7 j
就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。+ i6 e- v( Z& W% S
: V! S2 p1 h. H' w& V, l9 t/ h
解析   EFI_PEI_SERVICES **PeiServices
9 R# Z9 c! Z; F可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-1 13:45 , Processed in 0.095762 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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