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

求助关于EFI

[复制链接]
发表于 2008-11-12 11:07:15 | 显示全部楼层 |阅读模式
各位大大好:
  A0 |+ c+ w# L: N在下legacy bios没做两天又EFI了 4 _/ {! l3 D, v1 m' q: K3 Z
我想问一下下面的代码是什么意思,能从c语法分析一下吗??谢谢了!+ T$ u1 M6 J1 s3 z+ O) b; \: E
) u5 e7 N( v' K1 I
typedef
6 V, Q. j/ F2 O4 G- H" S9 c6 r7 W) gEFI_STATUS
& m  }8 x8 Z" n% U(EFIAPI *EFI_PEI_RESET_SYSTEM) (
7 @. ~! a( \2 x" M( R3 r3 U# `* M  IN EFI_PEI_SERVICES   **PeiServices! K; c1 B& c$ V7 J4 P7 _1 U5 d
  );- J7 o5 \% i; _5 b4 n2 ^6 I
/ K; C2 Y" P5 I' h: t
typedef struct {& P0 m' V4 _. \; A& e4 ]9 M/ P
  EFI_PEI_RESET_SYSTEM  ResetSystem;
% c- i* h1 L% u- e0 q} PEI_RESET_PPI;
发表于 2008-11-12 13:18:14 | 显示全部楼层
  1. typedef
    2 Y, G+ D# z  ]8 I5 o
  2. EFI_STATUS& {! t. U% {! z2 U/ N1 x4 R
  3. (EFIAPI *EFI_PEI_RESET_SYSTEM) (# H) r6 o- S6 I
  4.   IN EFI_PEI_SERVICES   **PeiServices
    ! G; R$ G! {, z5 y, X/ p
  5.   );
复制代码
定义EFI_PEI_RESET_SYSTEM,
$ ]) ?  v, L3 L( ^1 e是一个 指向返回值是EFI_STATUS,有一个参数IN EFI_PEI_SERVICES   **,使用EFIAPI调用方式的函数指针,也就是一个函数的地址( z' I& k$ v- R& w9 Q6 _
: U! O" `# |, M  w7 }
EFI_PEI_RESET_SYSTEM          PeiResetSystem;定义函数PeiResetSystem,相当于:
6 p. {) o8 g( Z! R0 f) j7 Z' n2 JEFI_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就是返回值类型啦,具体你可以到头文件里找。动动手勤思考。
! }* ]) G. D. V; z/ \+ c- h- B& ^第一个typedef是定义的一个函数指针类型,类型名是EFI_PEI_RESET_SYSTEM,EFIAPI是一个简单的宏替换,原型是啥你最好自己去查,其实也很简单,就一个词。  i$ u5 K! `5 _' T& X3 M) j
第二个typedef是定义了一个名为PEI_RESET_PPI的结构类型,它的唯一成员是一个(上一步定义的)函数指针。
" ^: w) s- L- {" W经过这两次定义,以后如果你将一个变量声明为PEI_RESET_PPI类型,比方说2 e1 n8 g& E$ {; T1 M! D
PEI_RESET_PPI myVar;( D, R6 m( d0 Z+ i
就意味着,myVar是一个结构型变量,它含有一个成员,这个成员是一个指向函数的指针,该函数接收一个指针数组作为其输入(其中数组中的每一项都指向一个类型为EFI_PEI_SERVICES的实例,请参考char **s作为输入),输出类型为EFI_STATUS。+ k& m  N9 W2 j+ ^: {8 |  X& K0 h

1 h9 E4 u/ a* V( A, |解析   EFI_PEI_SERVICES **PeiServices6 i" H: E1 ^$ p! C
可看作 EFI_PEI_SERVICES (*PeiServices)[ ]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 17:45 , Processed in 0.080665 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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