|
|
1.1 ! root 1: /****************************************************************************** ! 2: * Copyright (c) 2004, 2008 IBM Corporation ! 3: * All rights reserved. ! 4: * This program and the accompanying materials ! 5: * are made available under the terms of the BSD License ! 6: * which accompanies this distribution, and is available at ! 7: * http://www.opensource.org/licenses/bsd-license.php ! 8: * ! 9: * Contributors: ! 10: * IBM Corporation - initial implementation ! 11: *****************************************************************************/ ! 12: #ifndef _BIOSEMU_DEBUG_H_ ! 13: #define _BIOSEMU_DEBUG_H_ ! 14: ! 15: #include <stdio.h> ! 16: #include <stdint.h> ! 17: ! 18: extern uint32_t debug_flags; ! 19: // from x86emu...needed for debugging ! 20: extern void x86emu_dump_xregs(); ! 21: ! 22: #define DEBUG_IO 0x1 ! 23: #define DEBUG_MEM 0x2 ! 24: // set this to print messages for certain virtual memory accesses (Interrupt Vectors, ...) ! 25: #define DEBUG_CHECK_VMEM_ACCESS 0x4 ! 26: #define DEBUG_INTR 0x8 ! 27: #define DEBUG_PRINT_INT10 0x10 // set to have the INT10 routine print characters ! 28: #define DEBUG_VBE 0x20 ! 29: #define DEBUG_PMM 0x40 ! 30: #define DEBUG_DISK 0x80 ! 31: #define DEBUG_PNP 0x100 ! 32: ! 33: #define DEBUG_TRACE_X86EMU 0x1000 ! 34: // set to enable tracing of JMPs in x86emu ! 35: #define DEBUG_JMP 0x2000 ! 36: ! 37: //#define DEBUG ! 38: #ifdef DEBUG ! 39: ! 40: #define CHECK_DBG(_flag) if (debug_flags & _flag) ! 41: ! 42: #define DEBUG_PRINTF(_x...) printf(_x); ! 43: // prints the CS:IP before the printout, NOTE: actually its CS:IP of the _next_ instruction ! 44: // to be executed, since the x86emu advances CS:IP _before_ actually executing an instruction ! 45: #define DEBUG_PRINTF_CS_IP(_x...) DEBUG_PRINTF("%x:%x ", M.x86.R_CS, M.x86.R_IP); DEBUG_PRINTF(_x); ! 46: ! 47: #define DEBUG_PRINTF_IO(_x...) CHECK_DBG(DEBUG_IO) { DEBUG_PRINTF_CS_IP(_x) } ! 48: #define DEBUG_PRINTF_MEM(_x...) CHECK_DBG(DEBUG_MEM) { DEBUG_PRINTF_CS_IP(_x) } ! 49: #define DEBUG_PRINTF_INTR(_x...) CHECK_DBG(DEBUG_INTR) { DEBUG_PRINTF_CS_IP(_x) } ! 50: #define DEBUG_PRINTF_VBE(_x...) CHECK_DBG(DEBUG_VBE) { DEBUG_PRINTF_CS_IP(_x) } ! 51: #define DEBUG_PRINTF_PMM(_x...) CHECK_DBG(DEBUG_PMM) { DEBUG_PRINTF_CS_IP(_x) } ! 52: #define DEBUG_PRINTF_DISK(_x...) CHECK_DBG(DEBUG_DISK) { DEBUG_PRINTF_CS_IP(_x) } ! 53: #define DEBUG_PRINTF_PNP(_x...) CHECK_DBG(DEBUG_PNP) { DEBUG_PRINTF_CS_IP(_x) } ! 54: ! 55: #else ! 56: ! 57: #define CHECK_DBG(_flag) if (0) ! 58: ! 59: #define DEBUG_PRINTF(_x...) ! 60: #define DEBUG_PRINTF_CS_IP(_x...) ! 61: ! 62: #define DEBUG_PRINTF_IO(_x...) ! 63: #define DEBUG_PRINTF_MEM(_x...) ! 64: #define DEBUG_PRINTF_INTR(_x...) ! 65: #define DEBUG_PRINTF_VBE(_x...) ! 66: #define DEBUG_PRINTF_PMM(_x...) ! 67: #define DEBUG_PRINTF_DISK(_x...) ! 68: #define DEBUG_PRINTF_PNP(_x...) ! 69: ! 70: #endif //DEBUG ! 71: ! 72: void dump(uint8_t * addr, uint32_t len); ! 73: ! 74: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.