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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
" t! v& k! _/ n, ]: t4 n" I: f在下legacy bios没做两天又EFI了
) ?& g, R5 i0 l$ S* U3 S我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!2 P; R8 h3 \8 k: A* ]

7 U2 r9 W( Z1 l7 D' Utypedef0 J" m% J! k" i7 o. O) U& q
EFI_STATUS
  V) G! k2 T8 ^" O(EFIAPI *EFI_PEI_RESET_SYSTEM) (" T& @5 j# J' Q) k! i
  IN EFI_PEI_SERVICES   **PeiServices
% B4 M% g$ S: k- D5 i- D5 g  );
% H+ e9 \# j4 c/ h5 F) a
% g# M3 Y& n, ~typedef struct {  Q# @/ z1 o* A3 F
  EFI_PEI_RESET_SYSTEM  ResetSystem;
" R; Q$ u* A* j, A} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef: A; s* W# }+ x. o0 X* s! D
  2. EFI_STATUS& [2 P4 k6 D% J! J0 @% K
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (  x" V+ A2 k) j& S  I- m
  4.   IN EFI_PEI_SERVICES   **PeiServices
    - d$ S2 k; _6 w( ~/ {9 I* ^
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,3 m0 {' p0 g( M1 M
是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址
8 C% E* |  m$ y) N- ]2 E9 z. N& [) C* j8 d. r- G9 f
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:- r0 V7 X$ _( \& J: m
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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。& z/ D" f, b' ^, U
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。
, k' L4 V; \9 f- }3 i, p& D. L第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
0 @" k) m5 e" l) ^' V+ G. A4 C经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说  l1 c1 ~% F9 P0 H
PEI_RESET_PPI myVar;6 U6 s$ {2 _4 q( x) V0 `
就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。% S  u7 f- D! q/ W: t' i

7 t6 \. p' g5 M/ c  t解析   EFI_PEI_SERVICES **PeiServices. i/ i* E' v& C. F( M- j
可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 14:02 , Processed in 0.445431 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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