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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:1 L, t8 @+ {3 O- Q+ X* N  h1 z6 B
在下legacy bios没做两天又EFI了
3 ]3 q; Z  J, z6 Y1 b我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!
3 b  d* d2 w9 E9 s# z/ K6 g
+ {: t% _0 F1 g9 etypedef% S8 s5 E( h' e8 `6 e2 T( C
EFI_STATUS
( m1 ?1 G$ y, @* ~* Q4 \& O4 q(EFIAPI *EFI_PEI_RESET_SYSTEM) (
% i8 |# t" p7 t# o3 |# S% y  IN EFI_PEI_SERVICES   **PeiServices  K, p7 M  p' u) Z/ J! O; C
  );5 m" Z" }) k; H# t% ?" J  K* ^+ ^% g# R

5 l  {. A. b+ T* n' p0 ^typedef struct {- @/ ^* h4 c# ~- T/ J
  EFI_PEI_RESET_SYSTEM  ResetSystem;
0 q5 ?2 K, U0 S' G: c} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    - O6 O) N* ^2 P: `
  2. EFI_STATUS
    6 H8 g# P6 ?2 a$ P( @
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
    6 u' }& t1 O  `' q! W9 w7 n9 j' k
  4.   IN EFI_PEI_SERVICES   **PeiServices5 G' x$ ~/ C0 I; O
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
& U/ A0 q) [' [8 V8 o& ^  _是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址) V) W# e/ o+ h% P
& v- h: {  n/ E0 f3 D4 E/ k
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
; C( _. f$ u/ k# T0 x. W! EEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。
" @8 v6 |( v/ o第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。8 j+ d8 s; s5 `3 F- h
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
. e) I- O$ Y5 u. N5 @' f6 u经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说
$ f& ^7 T8 |; K( n, N* }& [1 vPEI_RESET_PPI myVar;
+ U" C! q6 D- u就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。
5 ?3 u* c$ O, O7 ?. s9 B5 p6 {; Z" P/ a% [5 H% |& O  G( @/ W' _
解析   EFI_PEI_SERVICES **PeiServices
8 h8 ?6 u, c0 ]  l2 W# k0 [$ f7 i0 G可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 19:42 , Processed in 0.035732 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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