bloggerads

2014年3月5日 星期三

UEFI C coding stytle

最近接觸UEFI的code, 她是C語言架構所組成並使用VC++或DDK來compiler,coding上跟C幾乎是一樣。但是Intel工程把C的指標發揮到淋漓盡致, coding style很漂亮,所以我寫這篇文章: UEFI C Coding style,用來練習這種coding方式

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;
}

沒有留言:

張貼留言