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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:, ?# n3 i' H. {2 Q2 m
在下legacy bios没做两天又EFI了 ! p) o2 g) w* U9 d1 s/ X! P
我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!
2 {3 Z# s$ u, }, L+ A- n+ ^6 `3 Y; A
typedef. [: ^; d+ d; t
EFI_STATUS, R; i& L; d: u, n. d' O3 i$ W
(EFIAPI *EFI_PEI_RESET_SYSTEM) (
9 W( l$ u1 Q; [3 L: w# j- b- \  IN EFI_PEI_SERVICES   **PeiServices0 u' G7 S  {4 E
  );& A' q* r! O3 w; q

& K( }* r; [7 v& D# A6 A" atypedef struct {6 `8 K4 \$ C4 g* e' m
  EFI_PEI_RESET_SYSTEM  ResetSystem;
' P' w3 T: x; ~- X* |} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    2 w# `& A/ h0 a' R( E0 \; k
  2. EFI_STATUS: f. Y; u2 O3 R  I
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (6 n  _$ a. Z: t, T( Y3 j2 q
  4.   IN EFI_PEI_SERVICES   **PeiServices$ _2 q, U; @) t2 G/ P% R
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
* J; f- B  K7 v, h6 [是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址+ B2 @6 g* I  K/ t1 A

0 `/ |! G- n5 q: gEFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:3 c" W" F- `% _& G7 l* S- Q. N8 m  z
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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。9 b9 C8 t; M+ {2 ]9 Y. R% ]: `
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。9 X" D. K& T  L; c
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
1 q( ^. ?) c8 W1 S  T经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说4 X6 p" A- d* Y' m4 d7 q* E, M
PEI_RESET_PPI myVar;
0 ]) g5 M( k; I* ]2 W就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。* D; J  H$ u2 ?) U4 B

5 a4 ]8 p6 z* ^% ^2 ?/ e, k3 j解析   EFI_PEI_SERVICES **PeiServices
) ^$ y  y' |' ?$ m) O可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 19:23 , Processed in 0.068699 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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