2007年4月27日

[XXX661]為Driver加入global變數

當driver間想使用共同變數時,可以於drvglob.h(...\PUBLIC\COMMON\OAK\CSP\ARM\CXXX..Y\AT4X0A\SRC\INC)中加入變數:
##CONTINUE##
typedef struct _MISC_GLOBALS
{
UCHAR offButton; // Indicate to keyboard driver when OFF button pressed
UCHAR bSysGoingSleep;
...........
DWORD iPCMStatus; //0:PCM Mode 1:Normal Mode
DWORD iRotate;
} MISC_GLOBALS, *PMISC_GLOBALS;


一般只要在MISC_GLOBALS內加入即可,在這宣告的變數皆會屬於DRIVER_GLOBALS 這個Structure,由於在drvlib.h中已經宣告了一個DRIVER_GLOBALS的變數:

volatile DRIVER_GLOBALS *m_pDriverGlobals;
.....

#define v_pDriverGlobals (g_cspRegs.m_pDriverGlobals)


因此,當我們加入自己的變數之後,使用時僅需在driver中include drvlib.h這個檔,就可以開始使用了:
例如:
v_pDriverGlobals->misc.iEchoStatus = 3;


PS:感謝Jimmy學長的提示!

1 則留言:

Jeff 提到...

請問一下,我找不到你說的drvglob.h
my msn is registry@giga.net.tw