1/////////////////////////////////////////////////////////////////////////
2// $Id$
3/////////////////////////////////////////////////////////////////////////
4//
5//  Copyright (C) 2006 Volker Ruppert
6//
7//  This library is free software; you can redistribute it and/or
8//  modify it under the terms of the GNU Lesser General Public
9//  License as published by the Free Software Foundation; either
10//  version 2 of the License, or (at your option) any later version.
11//
12//  This library is distributed in the hope that it will be useful,
13//  but WITHOUT ANY WARRANTY; without even the implied warranty of
14//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15//  Lesser General Public License for more details.
16//
17//  You should have received a copy of the GNU Lesser General Public
18//  License along with this library; if not, write to the Free Software
19//  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
20
21/* define it to include QEMU specific code */
22#define BX_QEMU
23
24#ifndef LEGACY
25#  define BX_ROMBIOS32     1
26#else
27#  define BX_ROMBIOS32     0
28#endif
29#define DEBUG_ROMBIOS    0
30
31#define PANIC_PORT  0x400
32#define PANIC_PORT2 0x401
33#define INFO_PORT   0x402
34#define DEBUG_PORT  0x403
35
36#define BIOS_PRINTF_HALT     1
37#define BIOS_PRINTF_SCREEN   2
38#define BIOS_PRINTF_INFO     4
39#define BIOS_PRINTF_DEBUG    8
40#define BIOS_PRINTF_ALL      (BIOS_PRINTF_SCREEN | BIOS_PRINTF_INFO)
41#define BIOS_PRINTF_DEBHALT  (BIOS_PRINTF_SCREEN | BIOS_PRINTF_INFO | BIOS_PRINTF_HALT)
42
43#define printf(format, p...)  bios_printf(BIOS_PRINTF_SCREEN, format, ##p)
44
45// Defines the output macros.
46// BX_DEBUG goes to INFO port until we can easily choose debug info on a
47// per-device basis. Debug info are sent only in debug mode
48#if DEBUG_ROMBIOS
49#  define BX_DEBUG(format, p...)  bios_printf(BIOS_PRINTF_INFO, format, ##p)
50#else
51#  define BX_DEBUG(format, p...)
52#endif
53#define BX_INFO(format, p...)   bios_printf(BIOS_PRINTF_INFO, format, ##p)
54#define BX_PANIC(format, p...)  bios_printf(BIOS_PRINTF_DEBHALT, format, ##p)
55
56#define ACPI_DATA_SIZE    0x00010000L
57#define PM_IO_BASE        0xb000
58#define SMB_IO_BASE       0xb100
59#define SMP_MSR_ADDR      0x0510
60
61  // Define the application NAME
62#if defined(BX_QEMU)
63#  define BX_APPNAME "QEMU"
64#elif defined(PLEX86)
65#  define BX_APPNAME "Plex86"
66#else
67#  define BX_APPNAME "Bochs"
68#endif
69