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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
( w, z' i" V+ ]4 a在下legacy bios没做两天又EFI了
" d6 {+ L7 J; P9 B6 H我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!+ d6 n, }8 F2 M1 D2 ~

2 X% g; S; I1 Q# Ltypedef2 m% q/ {  f* }6 _7 W$ N
EFI_STATUS
% r8 I4 J) E  S9 s$ n(EFIAPI *EFI_PEI_RESET_SYSTEM) (- c- {$ p5 q( @) G
  IN EFI_PEI_SERVICES   **PeiServices4 N$ r- `5 `" u# `' U
  );" `4 f0 _, H8 {) T6 j0 x
3 d2 b; }5 q' I0 K1 s
typedef struct {$ B- a7 J$ V! k, N
  EFI_PEI_RESET_SYSTEM  ResetSystem;
$ w, q  S- p/ s) S9 n} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef3 Z1 ~$ e4 H5 H% a0 i% M
  2. EFI_STATUS  W4 ~) P1 w  T
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (
    8 c+ e& D1 b# e" i. ~* U
  4.   IN EFI_PEI_SERVICES   **PeiServices
    ( v  B. ?2 o- `# q. x5 l
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,8 q/ T$ q7 {: c0 H
是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址: |# W, U" S9 ~
1 M* x; f, V) ]8 l( G% M9 k
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
# X8 k( Y3 N. f! VEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。
' }/ X9 C1 u" y5 A8 T$ i! t+ m4 l第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。
# m5 z* _% o8 s7 X$ h! X6 X第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
2 C* y; b1 e7 Y/ c经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说4 Z  d) @6 Y# S. x! W4 W; Q
PEI_RESET_PPI myVar;
% z9 A4 V' S3 m0 `1 I就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。- j. ^- H  K/ A5 F% L
" N! g5 }5 g) F! n: f) _
解析   EFI_PEI_SERVICES **PeiServices! |: Y' y$ d; u" J6 |
可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-25 03:42 , Processed in 0.051280 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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