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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:% D/ q- m6 v# e3 k$ y
在下legacy bios没做两天又EFI了 ( F7 J$ O+ u, e: G1 e$ X. U
我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!5 p# k+ B! m' G5 y% C
! _* O' R! ~) F4 E5 X2 t" C! a
typedef
8 j' r- e% r* ]/ hEFI_STATUS3 [: a) N; q# S3 j$ ^
(EFIAPI *EFI_PEI_RESET_SYSTEM) (
& C# y7 M0 C( K6 T  x+ U1 f: }  IN EFI_PEI_SERVICES   **PeiServices
4 H( d. b7 R+ g  );% ], ^; M0 c+ |0 Z
: _1 l) Q: v: \7 V
typedef struct {: a% L# F7 o1 v# z& Q
  EFI_PEI_RESET_SYSTEM  ResetSystem;$ l: g* z+ y% t& R5 v0 E+ P
} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    , L; [8 s3 c* X; V
  2. EFI_STATUS
    - G# A3 K/ ]/ r: o7 }: I
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
    4 d9 L8 e$ o' ^$ a' n
  4.   IN EFI_PEI_SERVICES   **PeiServices
    ; D6 b9 M/ H+ J3 ?8 @) E1 p
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
8 v9 R. y9 N5 P- v是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址8 m  t0 y7 P2 R* A3 i
5 s: m, ?+ C5 f' q  q% Y
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:* c9 W" D, _( l/ y3 V; A1 Z2 n
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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。0 p$ h2 W& t; p) b3 i2 Z
第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。% N. k4 O4 b$ H( F, C
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。! r. L! C9 U# |5 k  R
经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说  ]: S. `, D! A: F" @
PEI_RESET_PPI myVar;
: U( t# b. G, E' D% I6 f' P就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。1 a7 N; Z* V1 m5 ~+ H: t7 h3 x: Q
5 u8 f6 A, w% w" o9 u" C) h; y
解析   EFI_PEI_SERVICES **PeiServices
9 K! `/ S3 F) @0 }" Z( N可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-15 06:47 , Processed in 0.233147 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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