Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
;/*
COMMENT !
USE_ASM ------- 0 use "C" code 1 use "ASM" code for i386 CPU's
;*/ #define USE_ASM 1 /* C switch !
USE_ASM = 1 ; Assembly switch */
;/*
COMMENT !
USB_FIX -------- 0 Disable USB fix 1 Enable USB fix
;*/ #define USB_FIX_ENABLED 0 /* C switch !
USB_FIX_ENABLED = 0 ; Assembly switch */
;/*
COMMENT !
WINBENCH96 -------- 0 Allocate all device bitmap sizes. 1 Allocate only device bitmaps in the WinBench 96 size range.
;*/ #define WINBENCH96 0 /* C switch !
WINBENCH96 = 0 ; Assembly switch */
;/*
COMMENT !
INLINE_ASM ---------- 0 Don't use i386 inline assembly. 1 Use i386 inline assembly.
;*/ #define INLINE_ASM 1 /* C switch !
INLINE_ASM = 1 ; Assembly switch */
;/*
COMMENT !
SOLID_CACHE ----------- 0 Don't use solid brush cache in special cases. 1 Use solid brush cache in special places.
;*/ #define SOLID_CACHE 1 /* C switch !
SOLID_CACHE = 1 ; Assembly switch */
;/*
COMMENT !
BUS_MASTER ----------- 0 Don't use bus mastering to transfer host data. 1 Use bus mastering to transfer host data.
;*/ #define BUS_MASTER 0 /* C switch !
BUS_MASTER = 0 ; Assembly switch */
;/*
COMMENT !
LOG_CALLS ----------- 0 Normal operation. 1 Log GDI calls into the driver. This will disable USE_ASM.
;*/ #define LOG_CALLS 0 /* C switch !
LOG_CALLS = 0 ; Assembly switch */
;/*
COMMENT !
HW_CLIPPING ----------- 0 Don't use hardware clipping. 1 Use hardware clipping (5465 only).
;*/ #define HW_CLIPPING 0 /* C switch !
HW_CLIPPING = 0 ; Assembly switch */
;/* ========================== LOG_WRITES =================================
COMMENT !
LOG_WRITES ----------- 0 Normal operation. 1 Log writes to the chip. This will disable USE_ASM.
;*/ #define LOG_WRITES 0 /* C switch !
LOG_WRITES = 0 ; Assembly switch */
;/* ========================== LOG_QFREE =================================
COMMENT !
LOG_QFREE ----------- 0 Normal operation. 1 Log QFREE register at selected places. ;*/ #define LOG_QFREE 0 /* C switch !
LOG_QFREE = 0 ; Assembly switch */
;/* ========================== ENABLE_LOG_SWITCH =============================
COMMENT !
ENABLE_LOG_SWITCH ------------------ 0 Continuous logging (when loggin is enabled above) 1 Turn loggin on and off with pointer. ;*/ #define ENABLE_LOG_SWITCH 0 /* C switch !
ENABLE_LOG_SWITCH = 0 ; Assembly switch */
;/* ================== ENABLE_LOG_FILE =================================
COMMENT !
This enables the log file.
;*/
// C switches
#define ENABLE_LOG_FILE (LOG_CALLS | LOG_WRITES | LOG_QFREE)
/* End of C switches !
; Assembly switches ENABLE_LOG_FILE = (LOG_CALLS OR LOG_WRITES OR LOG_QFREE) ; End of assembly switches */
;/* =========== INFINITE_OFFSCREEN_MEMORY =================================
COMMENT !
//
// This option causes DrvCreateDeviceBitmap to always succeed.
// It maps all device bitmaps to screen 0,0. Thus we have an "infinite"
// supply of offscreen memory.
//
// It is not necessary to set USE_ASM = 0 for this flag.
//
;*/ #define INFINITE_OFFSCREEN_MEM 0 /* C switch !
INFINITE_OFFSCREEN_MEM = 0 ; Assembly switch */
;/* ================== NULL driver flags ================================
COMMENT !
Once NULL driver capabilities are enabled, they are turned on and off by moving the pointer to (0,0) which toggles do_flag on and off. See DrvMovePointer().
These allow us to selectively 'short circuit' certain parts of the driver. 0 Normal operation. 1 Immediately return TRUE.
It is not necessary to set USE_ASM = 0 for the null driver flags.
;*/
// C switches
#define NULL_BITBLT 0
#define NULL_COPYBITS 0
#define NULL_LINETO 0
#define NULL_PAINT 0
#define NULL_PATH 0
#define NULL_POINTER 0
#define NULL_STRETCH 0
#define NULL_STROKE 0
#define NULL_STROKEFILL 0
#define NULL_TEXTOUT 0
#define NULL_HW 0
/* End of C switches !
; Assembly switches NULL_BITBLT = 0 NULL_COPYBITS = 0 NULL_LINETO = 0 NULL_PAINT = 0 NULL_PATH = 0 NULL_POINTER = 0 NULL_STRETCH = 0 NULL_STROKE = 0 NULL_STROKEFILL = 0 NULL_TEXTOUT = 0 NULL_HW = 0 ; End of assembly switches */
;/* ================== POINTER_SWITCH ================================
COMMENT !
This enables a global flag, or switch, that we can turn on and off by moving the HW pointer to screen(0,0)
;*/
// C switches
#define POINTER_SWITCH_ENABLED \
(NULL_BITBLT | NULL_PAINT | NULL_COPYBITS | NULL_LINETO | \ NULL_TEXTOUT | NULL_PATH | NULL_HW | NULL_STROKE | \ NULL_STROKEFILL | NULL_STRETCH | NULL_POINTER | NULL_HW |\ ENABLE_LOG_SWITCH | INFINITE_OFFSCREEN_MEM)
/* End of C switches !
; Assembly switches POINTER_SWITCH_ENABLED = \ (NULL_BITBLT OR NULL_PAINT OR NULL_COPYBITS OR NULL_LINETO OR \ NULL_TEXTOUT OR NULL_PATH OR NULL_HW OR NULL_STROKE OR \ NULL_STROKEFILL OR NULL_STRETCH OR NULL_POINTER OR NULL_HW OR\ ENABLE_LOG_SWITCH OR INFINITE_OFFSCREEN_MEM)
; End of assembly switches */
;/* ===================== DISABLE USE_ASM ====================================
COMMENT !
Some of the switches above are incompatible with the assembly language part of the driver.
;*/
// C switches
#if (LOG_CALLS || LOG_WRITES)
#define USE_ASM 0
#endif
/* End of C switches !
; Assembly switches IF (LOG_CALLS OR LOG_WRITES) USE_ASM = 0 ENDIF ; End of assembly switches */
;/* ===================== CHECK_QFREE ====================================
COMMENT !
Log the value of the QFREE register.
;*/
// C macro
#if LOG_QFREE
extern unsigned long QfreeData[32]; #define CHECK_QFREE() \
do{ \ register unsigned long temp; /* Because grQFREE is a volatile */ \ temp = LLDR_SZ(grQFREE); /* we must store it in a temp */ \ ++QfreeData[temp]; /* before using it as an index. */ \ } while(0) #else
#define CHECK_QFREE()
#endif
/* End of C macro !
; Assembly macro
IF LOG_QFREE EXTERN QfreeData: DWORD CHECK_QFREE MACRO base:=<ebp> push eax ; Save eax and edx push edx ;
xor eax, eax ; Eax = 0 mov al, BYTE PTR [base + grQFREE] ; Eax = QFREE mov edx, DWORD PTR QfreeData[eax*4] ; Get histogram entry for QFREE inc edx ; increment it, mov DWORD PTR QfreeData[eax*4], edx ; and store it.
pop edx ; Restore edx and eax pop eax ; ENDM ELSE CHECK_QFREE MACRO base:=<ebp> ENDM ENDIF
; End of assembly macro */
|