UEFI Bios 定義許的protocol夾雜許多callback function的prototype。目的是固定函數的輸入輸出型態使其成為spec的一部分,然後將protocol 傳給所需要的driver使用
我也來學學UEFI的方式寫個C程式來試試
#include <cstdio> int add( int x, int y ) { return x+y; } int add2( int x ) { return x+2; } typedef int (*ADD_CALLBACK)(int, int); typedef int (*ADD2_CALLBACK)(int); // // Protocol type of Service // typedef struct { unsigned char rev; ADD_CALLBACK AddCallBack; ADD2_CALLBACK Add2CallBack; }SERVICES; int main () { SERVICES gPS = {0, add, add2}; //(&gPS)->AddCallBack=add; //(&gPS)->Add2CallBack=add2; printf("%d\n", (&gPS)->AddCallBack(1,2)); printf("%d\n", (&gPS)->Add2CallBack(3)); return 0; }
沒有留言:
張貼留言