diff --git a/bochs/.conf.everything b/bochs/.conf.everything index 9656244a4..5647a0a1d 100644 --- a/bochs/.conf.everything +++ b/bochs/.conf.everything @@ -26,7 +26,7 @@ --enable-x86-debugger \ --enable-cdrom \ --enable-sb16 \ - --enable-instrumentation \ + --enable-instrumentation=instrument/example1 \ --enable-iodebug \ --enable-show-ips \ --enable-clgd54xx \ diff --git a/bochs/bochs.h b/bochs/bochs.h index 9ac6806f2..dbdd25399 100644 --- a/bochs/bochs.h +++ b/bochs/bochs.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: bochs.h,v 1.188 2006-03-06 19:23:13 sshwarts Exp $ +// $Id: bochs.h,v 1.189 2006-03-06 22:02:48 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -359,14 +359,6 @@ BOCHSAPI extern logfunc_t *genlog; # include "disasm/disasm.h" #endif -#if BX_PROVIDE_CPU_MEMORY==1 -# include "cpu/cpu.h" -#endif - -#if BX_EXTERNAL_DEBUGGER -# include "cpu/extdb.h" -#endif - #if BX_GDBSTUB // defines for GDB stub void bx_gdbstub_init(int argc, char* argv[]); diff --git a/bochs/bx_debug/dbg_main.cc b/bochs/bx_debug/dbg_main.cc index 9f9145ba3..496f051e4 100644 --- a/bochs/bx_debug/dbg_main.cc +++ b/bochs/bx_debug/dbg_main.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: dbg_main.cc,v 1.61 2006-03-06 18:50:54 vruppert Exp $ +// $Id: dbg_main.cc,v 1.62 2006-03-06 22:02:50 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -30,6 +30,7 @@ extern "C" { } #include "bochs.h" +#include "cpu/cpu.h" #include "iodev/iodev.h" #if BX_DEBUGGER @@ -3494,17 +3495,17 @@ Bit32u bx_dbg_get_laddr(Bit16u sel, Bit32u ofs) void bx_dbg_step_over_command () { - bx_address Laddr = BX_CPU(which_cpu)->guard_found.laddr; + bx_address Laddr = BX_CPU(dbg_cpu)->guard_found.laddr; if (! bx_dbg_read_linear(dbg_cpu, Laddr, 16, bx_disasm_ibuf)) { return; } - x86_insn insn = bx_disassemble.decode(BX_CPU(which_cpu)->guard_found.is_32bit_code, - BX_CPU(which_cpu)->guard_found.is_64bit_code, - BX_CPU(which_cpu)->get_segment_base(BX_SEG_REG_CS), - BX_CPU(which_cpu)->guard_found.eip, bx_disasm_ibuf, bx_disasm_tbuf); + x86_insn insn = bx_disassemble.decode(BX_CPU(dbg_cpu)->guard_found.is_32bit_code, + BX_CPU(dbg_cpu)->guard_found.is_64bit_code, + BX_CPU(dbg_cpu)->get_segment_base(BX_SEG_REG_CS), + BX_CPU(dbg_cpu)->guard_found.eip, bx_disasm_ibuf, bx_disasm_tbuf); unsigned b1 = insn.b1; diff --git a/bochs/bx_debug/linux.cc b/bochs/bx_debug/linux.cc index a845fe2c8..f405830d7 100644 --- a/bochs/bx_debug/linux.cc +++ b/bochs/bx_debug/linux.cc @@ -1,9 +1,11 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: linux.cc,v 1.4 2006-02-14 19:00:07 sshwarts Exp $ +// $Id: linux.cc,v 1.5 2006-03-06 22:02:50 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // #include + #include "bochs.h" +#include "cpu/cpu.h" #if BX_DEBUGGER diff --git a/bochs/bx_debug/symbols.cc b/bochs/bx_debug/symbols.cc index 7e3b9daf5..6ed52100c 100755 --- a/bochs/bx_debug/symbols.cc +++ b/bochs/bx_debug/symbols.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: symbols.cc,v 1.3 2006-02-01 18:12:08 sshwarts Exp $ +// $Id: symbols.cc,v 1.4 2006-03-06 22:02:50 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -26,6 +26,7 @@ ///////////////////////////////////////////////////////////////////////// #include "bochs.h" +#include "cpu/cpu.h" #if !((BX_HAVE_HASH_MAP || BX_HAVE_HASH_MAP_H) && (BX_HAVE_SET || BX_HAVE_SET_H)) diff --git a/bochs/config.cc b/bochs/config.cc index 854e17b56..a76ac38d9 100755 --- a/bochs/config.cc +++ b/bochs/config.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: config.cc,v 1.94 2006-03-05 10:24:27 vruppert Exp $ +// $Id: config.cc,v 1.95 2006-03-06 22:02:48 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -2475,10 +2475,10 @@ static Bit32s parse_line_formatted(char *context, int num_params, char *params[] int num = atoi(¶ms[0][11]); char tmppath[80], tmpaddr[80]; if ((num < 1) || (num > BX_N_OPTRAM_IMAGES)) { - PARSE_ERR(("%s: ramimage%d: not supported", context, num)); + PARSE_ERR(("%s: optramimage%d: not supported", context, num)); } if (num_params != 3) { - PARSE_ERR(("%s: ramimage%d directive: wrong # args.", context, num)); + PARSE_ERR(("%s: optramimage%d directive: wrong # args.", context, num)); } sprintf(tmppath, "memory.optram.%d.path", num); sprintf(tmpaddr, "memory.optram.%d.addr", num); @@ -2491,7 +2491,7 @@ static Bit32s parse_line_formatted(char *context, int num_params, char *params[] else SIM->get_param_num(tmpaddr)->set(strtoul (¶ms[i][8], NULL, 10)); } else { - PARSE_ERR(("%s: optram%d directive malformed.", context, num)); + PARSE_ERR(("%s: optramimage%d directive malformed.", context, num)); } } } else if (!strcmp(params[0], "vga_update_interval")) { @@ -2989,7 +2989,6 @@ static Bit32s parse_line_formatted(char *context, int num_params, char *params[] PARSE_ERR(("%s: keyboard_type directive: wrong arg '%s'.", context,params[1])); } } - else if (!strcmp(params[0], "keyboard_mapping") ||!strcmp(params[0], "keyboardmapping")) { for (i=1; iwhich_cpu()) + : bx_generic_apic_c(BX_LAPIC_BASE_ADDR), cpu(mycpu), cpu_id(cpu->which_cpu()) { reset(); @@ -232,7 +235,7 @@ void bx_local_apic_c::init() (cpu && cpu->name) ? cpu->name : "?")); // default address for a local APIC, can be moved - base_addr = APIC_BASE_ADDR; + base_addr = BX_LAPIC_BASE_ADDR; bypass_irr_isr = 0; error_status = shadow_error_status = 0; log_dest = 0; @@ -499,7 +502,7 @@ void bx_local_apic_c::read_aligned(bx_phy_address addr, Bit32u *data, unsigned l case 0x20: // local APIC id *data = (id) << 24; break; case 0x30: // local APIC version - *data = APIC_VERSION_ID; break; + *data = BX_LAPIC_VERSION_ID; break; case 0x80: // task priority *data = task_priority & 0xff; break; case 0x90: // arbitration priority diff --git a/bochs/cpu/apic.h b/bochs/cpu/apic.h index b1b9ea9d6..9fcd48ffe 100644 --- a/bochs/cpu/apic.h +++ b/bochs/cpu/apic.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: apic.h,v 1.28 2006-03-02 20:09:21 sshwarts Exp $ +// $Id: apic.h,v 1.29 2006-03-06 22:02:51 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -29,28 +29,19 @@ #ifndef BX_CPU_APIC_H # define BX_CPU_APIC_H 1 -#define APIC_BASE_ADDR 0xfee00000 // default APIC address - #if BX_CPU_LEVEL == 6 && BX_SUPPORT_SSE >= 2 #define BX_IMPLEMENT_XAPIC 1 #endif -#ifdef BX_IMPLEMENT_XAPIC -# define APIC_VERSION_ID 0x00050014 // P4 has 6 LVT entries -#else -# define APIC_VERSION_ID 0x00040010 // P6 has 4 LVT entries -#endif - #if BX_SUPPORT_APIC -#define BX_CPU_APIC(i) (&(BX_CPU(i)->local_apic)) - typedef enum { APIC_TYPE_IOAPIC, APIC_TYPE_LOCAL_APIC } bx_apic_type_t; -#define BX_NUM_LOCAL_APICS BX_SMP_PROCESSORS +#define APIC_LEVEL_TRIGGERED 1 +#define APIC_EDGE_TRIGGERED 0 class BOCHSAPI bx_generic_apic_c : public logfunctions { protected: @@ -58,7 +49,7 @@ protected: Bit8u id; #define APIC_UNKNOWN_ID 0xff public: - bx_generic_apic_c(); + bx_generic_apic_c(bx_phy_address base); virtual ~bx_generic_apic_c() { } // init is called during RESET and when an INIT message is delivered virtual void init() { } @@ -74,13 +65,24 @@ public: virtual bx_apic_type_t get_type () = 0; }; +#ifdef BX_INCLUDE_LOCAL_APIC + +#define BX_CPU_APIC(i) (&(BX_CPU(i)->local_apic)) + +#ifdef BX_IMPLEMENT_XAPIC +# define BX_LAPIC_VERSION_ID 0x00050014 // P4 has 6 LVT entries +#else +# define BX_LAPIC_VERSION_ID 0x00040010 // P6 has 4 LVT entries +#endif + +#define BX_LAPIC_BASE_ADDR 0xfee00000 // default Local APIC address + +#define BX_NUM_LOCAL_APICS BX_SMP_PROCESSORS + #define BX_APIC_FIRST_VECTOR 0x10 #define BX_APIC_LAST_VECTOR 0xfe #define BX_LOCAL_APIC_MAX_INTS 256 -#define APIC_LEVEL_TRIGGERED 1 -#define APIC_EDGE_TRIGGERED 0 - class BOCHSAPI bx_local_apic_c : public bx_generic_apic_c { Bit32u spurious_vector; @@ -190,6 +192,8 @@ public: void set_initial_timer_count(Bit32u value); }; +#endif /* BX_INCLUDE_LOCAL_APIC */ + // For P6 and Pentium family processors the local APIC ID feild is 4 bits. #ifdef BX_IMPLEMENT_XAPIC #define APIC_MAX_ID 0xff diff --git a/bochs/cpu/arith16.cc b/bochs/cpu/arith16.cc index e28def38c..f7c4b3cf3 100644 --- a/bochs/cpu/arith16.cc +++ b/bochs/cpu/arith16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: arith16.cc,v 1.41 2005-07-21 01:59:03 sshwarts Exp $ +// $Id: arith16.cc,v 1.42 2006-03-06 22:02:51 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/arith32.cc b/bochs/cpu/arith32.cc index 9fa5a5d86..0801e0fce 100644 --- a/bochs/cpu/arith32.cc +++ b/bochs/cpu/arith32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: arith32.cc,v 1.46 2005-07-21 01:59:03 sshwarts Exp $ +// $Id: arith32.cc,v 1.47 2006-03-06 22:02:51 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/arith64.cc b/bochs/cpu/arith64.cc index de9473638..976de9a40 100644 --- a/bochs/cpu/arith64.cc +++ b/bochs/cpu/arith64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: arith64.cc,v 1.27 2005-07-21 01:59:03 sshwarts Exp $ +// $Id: arith64.cc,v 1.28 2006-03-06 22:02:51 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/arith8.cc b/bochs/cpu/arith8.cc index cb56dac06..26d198fe4 100644 --- a/bochs/cpu/arith8.cc +++ b/bochs/cpu/arith8.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: arith8.cc,v 1.37 2005-07-21 01:59:03 sshwarts Exp $ +// $Id: arith8.cc,v 1.38 2006-03-06 22:02:51 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/bcd.cc b/bochs/cpu/bcd.cc index bb2f479b1..3c8fbd485 100644 --- a/bochs/cpu/bcd.cc +++ b/bochs/cpu/bcd.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: bcd.cc,v 1.16 2005-10-01 07:47:00 sshwarts Exp $ +// $Id: bcd.cc,v 1.17 2006-03-06 22:02:51 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/bit.cc b/bochs/cpu/bit.cc index 92f8bdd43..b9862487f 100644 --- a/bochs/cpu/bit.cc +++ b/bochs/cpu/bit.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: bit.cc,v 1.25 2005-09-29 17:32:32 sshwarts Exp $ +// $Id: bit.cc,v 1.26 2006-03-06 22:02:51 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/call_far.cc b/bochs/cpu/call_far.cc index c24a10624..ff5c7e6d1 100755 --- a/bochs/cpu/call_far.cc +++ b/bochs/cpu/call_far.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////// -// $Id: call_far.cc,v 1.8 2006-02-28 20:29:03 sshwarts Exp $ +// $Id: call_far.cc,v 1.9 2006-03-06 22:02:51 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64==0 diff --git a/bochs/cpu/cpu.cc b/bochs/cpu/cpu.cc index a2e9aed93..6c686fb89 100644 --- a/bochs/cpu/cpu.cc +++ b/bochs/cpu/cpu.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: cpu.cc,v 1.136 2006-03-04 09:24:31 sshwarts Exp $ +// $Id: cpu.cc,v 1.137 2006-03-06 22:02:51 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -25,12 +25,17 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" -#include "iodev/iodev.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR +#include "iodev/iodev.h" + +#if BX_EXTERNAL_DEBUGGER +#include "extdb.h" +#endif + #if BX_PROVIDE_CPU_MEMORY==1 #if BX_ADDRESS_SPACES==1 diff --git a/bochs/cpu/cpu.h b/bochs/cpu/cpu.h index f97aa5841..e1556bb20 100644 --- a/bochs/cpu/cpu.h +++ b/bochs/cpu/cpu.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: cpu.h,v 1.266 2006-03-01 22:32:23 sshwarts Exp $ +// $Id: cpu.h,v 1.267 2006-03-06 22:02:51 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -349,6 +349,7 @@ const char* cpu_mode_string(unsigned cpu_mode); #endif class BX_CPU_C; +class BX_MEM_C; #if BX_USE_CPU_SMF == 0 // normal member functions. This can ONLY be used within BX_CPU_C classes. @@ -993,7 +994,10 @@ typedef struct { #endif // #if BX_SUPPORT_X86_64 -#include "cpu/apic.h" +#if BX_SUPPORT_APIC +#define BX_INCLUDE_LOCAL_APIC 1 +#include "apic.h" +#endif class BX_MEM_C; diff --git a/bochs/cpu/cpuid.cc b/bochs/cpu/cpuid.cc index 6553c05d5..f17fa80ac 100755 --- a/bochs/cpu/cpuid.cc +++ b/bochs/cpu/cpuid.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: cpuid.cc,v 1.33 2006-02-20 19:28:57 sshwarts Exp $ +// $Id: cpuid.cc,v 1.34 2006-03-06 22:02:52 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -29,6 +29,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/ctrl_xfer16.cc b/bochs/cpu/ctrl_xfer16.cc index 3b86996c5..3c2fc9654 100644 --- a/bochs/cpu/ctrl_xfer16.cc +++ b/bochs/cpu/ctrl_xfer16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: ctrl_xfer16.cc,v 1.32 2006-02-12 20:21:36 sshwarts Exp $ +// $Id: ctrl_xfer16.cc,v 1.33 2006-03-06 22:02:52 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/ctrl_xfer32.cc b/bochs/cpu/ctrl_xfer32.cc index 2652a9116..de902022f 100644 --- a/bochs/cpu/ctrl_xfer32.cc +++ b/bochs/cpu/ctrl_xfer32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: ctrl_xfer32.cc,v 1.45 2006-02-12 20:21:36 sshwarts Exp $ +// $Id: ctrl_xfer32.cc,v 1.46 2006-03-06 22:02:52 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/ctrl_xfer64.cc b/bochs/cpu/ctrl_xfer64.cc index fc8da1185..2b98a6fbc 100644 --- a/bochs/cpu/ctrl_xfer64.cc +++ b/bochs/cpu/ctrl_xfer64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: ctrl_xfer64.cc,v 1.41 2006-02-12 20:21:36 sshwarts Exp $ +// $Id: ctrl_xfer64.cc,v 1.42 2006-03-06 22:02:52 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -25,9 +25,9 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/ctrl_xfer8.cc b/bochs/cpu/ctrl_xfer8.cc index f5f356831..c4339b49f 100644 --- a/bochs/cpu/ctrl_xfer8.cc +++ b/bochs/cpu/ctrl_xfer8.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: ctrl_xfer8.cc,v 1.19 2005-05-20 20:06:50 sshwarts Exp $ +// $Id: ctrl_xfer8.cc,v 1.20 2006-03-06 22:02:52 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/ctrl_xfer_pro.cc b/bochs/cpu/ctrl_xfer_pro.cc index 02b092ab3..5d6896ac1 100644 --- a/bochs/cpu/ctrl_xfer_pro.cc +++ b/bochs/cpu/ctrl_xfer_pro.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////// -// $Id: ctrl_xfer_pro.cc,v 1.51 2006-02-28 17:47:33 sshwarts Exp $ +// $Id: ctrl_xfer_pro.cc,v 1.52 2006-03-06 22:02:52 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -25,9 +25,9 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64==0 diff --git a/bochs/cpu/data_xfer16.cc b/bochs/cpu/data_xfer16.cc index 9d0c2be24..f794f44f9 100644 --- a/bochs/cpu/data_xfer16.cc +++ b/bochs/cpu/data_xfer16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: data_xfer16.cc,v 1.36 2006-03-04 16:58:10 sshwarts Exp $ +// $Id: data_xfer16.cc,v 1.37 2006-03-06 22:02:52 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/data_xfer32.cc b/bochs/cpu/data_xfer32.cc index d66700e59..f940b1780 100644 --- a/bochs/cpu/data_xfer32.cc +++ b/bochs/cpu/data_xfer32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: data_xfer32.cc,v 1.35 2005-06-21 17:01:18 sshwarts Exp $ +// $Id: data_xfer32.cc,v 1.36 2006-03-06 22:02:52 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/data_xfer64.cc b/bochs/cpu/data_xfer64.cc index cc35d90d2..9abaa4a06 100644 --- a/bochs/cpu/data_xfer64.cc +++ b/bochs/cpu/data_xfer64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: data_xfer64.cc,v 1.22 2005-06-21 17:01:18 sshwarts Exp $ +// $Id: data_xfer64.cc,v 1.23 2006-03-06 22:02:53 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/data_xfer8.cc b/bochs/cpu/data_xfer8.cc index cebbf134a..c6118e4d3 100644 --- a/bochs/cpu/data_xfer8.cc +++ b/bochs/cpu/data_xfer8.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: data_xfer8.cc,v 1.22 2005-07-21 01:59:05 sshwarts Exp $ +// $Id: data_xfer8.cc,v 1.23 2006-03-06 22:02:53 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/debugstuff.cc b/bochs/cpu/debugstuff.cc index fca23a21e..b7c25e827 100644 --- a/bochs/cpu/debugstuff.cc +++ b/bochs/cpu/debugstuff.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: debugstuff.cc,v 1.59 2006-02-28 17:47:33 sshwarts Exp $ +// $Id: debugstuff.cc,v 1.60 2006-03-06 22:02:53 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,8 +27,10 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR + #if BX_DISASM void BX_CPU_C::debug_disasm_instruction(bx_address offset) { diff --git a/bochs/cpu/exception.cc b/bochs/cpu/exception.cc index 8bb09f5ab..b83d66558 100644 --- a/bochs/cpu/exception.cc +++ b/bochs/cpu/exception.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: exception.cc,v 1.75 2006-02-28 20:29:03 sshwarts Exp $ +// $Id: exception.cc,v 1.76 2006-03-06 22:02:53 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -25,12 +25,13 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" -#include "iodev/iodev.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR +#include "iodev/iodev.h" + #if BX_SUPPORT_X86_64==0 // Make life easier merging cpu64 & cpu code. #define RIP EIP diff --git a/bochs/cpu/extdb.cc b/bochs/cpu/extdb.cc index 1ec3aa641..60e315097 100644 --- a/bochs/cpu/extdb.cc +++ b/bochs/cpu/extdb.cc @@ -6,6 +6,7 @@ #endif #include "iodev/iodev.h" +#include "cpu.h" #include "extdb.h" TRegs regs; diff --git a/bochs/cpu/fetchdecode.cc b/bochs/cpu/fetchdecode.cc index f7e07342b..a89b210fa 100644 --- a/bochs/cpu/fetchdecode.cc +++ b/bochs/cpu/fetchdecode.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fetchdecode.cc,v 1.87 2005-11-11 21:09:02 sshwarts Exp $ +// $Id: fetchdecode.cc,v 1.88 2006-03-06 22:02:53 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/fetchdecode64.cc b/bochs/cpu/fetchdecode64.cc index b266f2f2f..7da722e45 100644 --- a/bochs/cpu/fetchdecode64.cc +++ b/bochs/cpu/fetchdecode64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fetchdecode64.cc,v 1.87 2006-01-17 19:50:42 sshwarts Exp $ +// $Id: fetchdecode64.cc,v 1.88 2006-03-06 22:02:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,8 +27,10 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR + #if BX_SUPPORT_X86_64 /////////////////////////// diff --git a/bochs/cpu/flag_ctrl.cc b/bochs/cpu/flag_ctrl.cc index 0e2b8e17f..e2653827c 100644 --- a/bochs/cpu/flag_ctrl.cc +++ b/bochs/cpu/flag_ctrl.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: flag_ctrl.cc,v 1.24 2005-10-17 13:06:09 sshwarts Exp $ +// $Id: flag_ctrl.cc,v 1.25 2006-03-06 22:02:59 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/flag_ctrl_pro.cc b/bochs/cpu/flag_ctrl_pro.cc index 815b71747..c6a5bd32c 100644 --- a/bochs/cpu/flag_ctrl_pro.cc +++ b/bochs/cpu/flag_ctrl_pro.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: flag_ctrl_pro.cc,v 1.22 2005-11-21 21:10:59 sshwarts Exp $ +// $Id: flag_ctrl_pro.cc,v 1.23 2006-03-06 22:02:59 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/fpu_emu.cc b/bochs/cpu/fpu_emu.cc index b87b1ac7d..47e005449 100644 --- a/bochs/cpu/fpu_emu.cc +++ b/bochs/cpu/fpu_emu.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fpu_emu.cc,v 1.2 2005-03-19 20:44:00 sshwarts Exp $ +// $Id: fpu_emu.cc,v 1.3 2006-03-06 22:02:59 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // Copyright (C) 2004 MandrakeSoft S.A. // @@ -27,6 +27,7 @@ #define LOG_THIS BX_CPU_THIS_PTR #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR /* 9B */ diff --git a/bochs/cpu/init.cc b/bochs/cpu/init.cc index ebc6aeb25..f0cb72973 100644 --- a/bochs/cpu/init.cc +++ b/bochs/cpu/init.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: init.cc,v 1.87 2006-03-04 16:58:10 sshwarts Exp $ +// $Id: init.cc,v 1.88 2006-03-06 22:02:59 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,8 +27,10 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR + BX_CPU_C::BX_CPU_C(unsigned id): bx_cpuid(id) #if BX_SUPPORT_APIC ,local_apic (this) @@ -680,7 +682,7 @@ void BX_CPU_C::reset(unsigned source) /* initialise MSR registers to defaults */ #if BX_CPU_LEVEL >= 5 /* APIC Address, APIC enabled and BSP is default, we'll fill in the rest later */ - BX_CPU_THIS_PTR msr.apicbase = APIC_BASE_ADDR; + BX_CPU_THIS_PTR msr.apicbase = BX_LAPIC_BASE_ADDR; #if BX_SUPPORT_APIC BX_CPU_THIS_PTR local_apic.init (); BX_CPU_THIS_PTR msr.apicbase |= 0x900; diff --git a/bochs/cpu/io.cc b/bochs/cpu/io.cc index 3b7608c21..15f8881a1 100644 --- a/bochs/cpu/io.cc +++ b/bochs/cpu/io.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: io.cc,v 1.28 2005-08-01 21:40:17 sshwarts Exp $ +// $Id: io.cc,v 1.29 2006-03-06 22:02:59 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,9 +27,11 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" -#include "iodev/iodev.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR +#include "iodev/iodev.h" + #if BX_SUPPORT_X86_64==0 // Make life easier for merging cpu64 and cpu32 code. diff --git a/bochs/cpu/io_pro.cc b/bochs/cpu/io_pro.cc index a9751e2f2..cad7108aa 100644 --- a/bochs/cpu/io_pro.cc +++ b/bochs/cpu/io_pro.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: io_pro.cc,v 1.17 2005-06-22 18:13:45 sshwarts Exp $ +// $Id: io_pro.cc,v 1.18 2006-03-06 22:02:59 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,9 +27,10 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" -#include "iodev/iodev.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR +#include "iodev/iodev.h" Bit16u BX_CPP_AttrRegparmN(1) BX_CPU_C::inp16(Bit16u addr) diff --git a/bochs/cpu/iret.cc b/bochs/cpu/iret.cc index dafd8b395..72d6f3d4c 100755 --- a/bochs/cpu/iret.cc +++ b/bochs/cpu/iret.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////// -// $Id: iret.cc,v 1.10 2005-12-12 22:01:22 sshwarts Exp $ +// $Id: iret.cc,v 1.11 2006-03-06 22:03:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64==0 diff --git a/bochs/cpu/jmp_far.cc b/bochs/cpu/jmp_far.cc index 1c1afd0d6..8dcf69f3b 100755 --- a/bochs/cpu/jmp_far.cc +++ b/bochs/cpu/jmp_far.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////// -// $Id: jmp_far.cc,v 1.3 2005-08-02 18:44:20 sshwarts Exp $ +// $Id: jmp_far.cc,v 1.4 2006-03-06 22:03:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64==0 @@ -35,6 +36,7 @@ #define RIP EIP #endif + void BX_CPP_AttrRegparmN(3) BX_CPU_C::jump_protected(bxInstruction_c *i, Bit16u cs_raw, bx_address disp) { diff --git a/bochs/cpu/lazy_flags.cc b/bochs/cpu/lazy_flags.cc index 7e9d64f7f..319399f46 100644 --- a/bochs/cpu/lazy_flags.cc +++ b/bochs/cpu/lazy_flags.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: lazy_flags.cc,v 1.30 2006-01-25 22:20:00 sshwarts Exp $ +// $Id: lazy_flags.cc,v 1.31 2006-03-06 22:03:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,8 +28,10 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR + // This array defines a look-up table for the even parity-ness // of an 8bit quantity, for optimal assignment of the parity bit // in the EFLAGS register diff --git a/bochs/cpu/logical16.cc b/bochs/cpu/logical16.cc index 4431733ed..24f741c67 100644 --- a/bochs/cpu/logical16.cc +++ b/bochs/cpu/logical16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: logical16.cc,v 1.23 2005-05-20 20:06:50 sshwarts Exp $ +// $Id: logical16.cc,v 1.24 2006-03-06 22:03:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/logical32.cc b/bochs/cpu/logical32.cc index bdc7126ec..ae5fcb0f8 100644 --- a/bochs/cpu/logical32.cc +++ b/bochs/cpu/logical32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: logical32.cc,v 1.24 2005-05-20 20:06:50 sshwarts Exp $ +// $Id: logical32.cc,v 1.25 2006-03-06 22:03:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/logical64.cc b/bochs/cpu/logical64.cc index a5662d7e9..e579efda4 100644 --- a/bochs/cpu/logical64.cc +++ b/bochs/cpu/logical64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: logical64.cc,v 1.14 2005-06-21 17:01:21 sshwarts Exp $ +// $Id: logical64.cc,v 1.15 2006-03-06 22:03:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64 diff --git a/bochs/cpu/logical8.cc b/bochs/cpu/logical8.cc index 3fc9b3cd6..c93499610 100644 --- a/bochs/cpu/logical8.cc +++ b/bochs/cpu/logical8.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: logical8.cc,v 1.26 2005-05-20 20:06:50 sshwarts Exp $ +// $Id: logical8.cc,v 1.27 2006-03-06 22:03:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/mmx.cc b/bochs/cpu/mmx.cc index ba2e4d91d..7e08e0b49 100644 --- a/bochs/cpu/mmx.cc +++ b/bochs/cpu/mmx.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: mmx.cc,v 1.51 2006-02-22 20:58:16 sshwarts Exp $ +// $Id: mmx.cc,v 1.52 2006-03-06 22:03:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2002 Stanislav Shwartsman @@ -24,6 +24,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/mult16.cc b/bochs/cpu/mult16.cc index ad653ade7..d6ce8b64e 100644 --- a/bochs/cpu/mult16.cc +++ b/bochs/cpu/mult16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: mult16.cc,v 1.20 2005-09-29 17:32:32 sshwarts Exp $ +// $Id: mult16.cc,v 1.21 2006-03-06 22:03:01 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/mult32.cc b/bochs/cpu/mult32.cc index 11ff1aa4b..3c5fe86a0 100644 --- a/bochs/cpu/mult32.cc +++ b/bochs/cpu/mult32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: mult32.cc,v 1.19 2005-05-20 20:06:50 sshwarts Exp $ +// $Id: mult32.cc,v 1.20 2006-03-06 22:03:01 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/mult64.cc b/bochs/cpu/mult64.cc index 03386174e..8d8768bd9 100644 --- a/bochs/cpu/mult64.cc +++ b/bochs/cpu/mult64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: mult64.cc,v 1.16 2005-05-13 14:15:35 sshwarts Exp $ +// $Id: mult64.cc,v 1.17 2006-03-06 22:03:01 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64 diff --git a/bochs/cpu/mult8.cc b/bochs/cpu/mult8.cc index 2ea8939af..d5b0b36f2 100644 --- a/bochs/cpu/mult8.cc +++ b/bochs/cpu/mult8.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: mult8.cc,v 1.20 2005-09-29 17:32:32 sshwarts Exp $ +// $Id: mult8.cc,v 1.21 2006-03-06 22:03:01 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/paging.cc b/bochs/cpu/paging.cc index 19a1f8c9f..3be3fbf3a 100644 --- a/bochs/cpu/paging.cc +++ b/bochs/cpu/paging.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: paging.cc,v 1.66 2006-03-02 23:16:12 sshwarts Exp $ +// $Id: paging.cc,v 1.67 2006-03-06 22:03:01 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -33,9 +33,9 @@ // P6 for non-PAE anyways... - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if 0 diff --git a/bochs/cpu/proc_ctrl.cc b/bochs/cpu/proc_ctrl.cc index e017dc21a..9065dbf96 100644 --- a/bochs/cpu/proc_ctrl.cc +++ b/bochs/cpu/proc_ctrl.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: proc_ctrl.cc,v 1.138 2006-03-04 09:22:55 sshwarts Exp $ +// $Id: proc_ctrl.cc,v 1.139 2006-03-06 22:03:01 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/protect_ctrl.cc b/bochs/cpu/protect_ctrl.cc index 2d28a7e53..6d22e396c 100644 --- a/bochs/cpu/protect_ctrl.cc +++ b/bochs/cpu/protect_ctrl.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: protect_ctrl.cc,v 1.44 2005-10-15 21:01:36 sshwarts Exp $ +// $Id: protect_ctrl.cc,v 1.45 2006-03-06 22:03:01 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -25,9 +25,9 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_CPU_LEVEL >= 2 diff --git a/bochs/cpu/resolve16.cc b/bochs/cpu/resolve16.cc index 64d6f87e6..e441c6d3c 100644 --- a/bochs/cpu/resolve16.cc +++ b/bochs/cpu/resolve16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: resolve16.cc,v 1.9 2003-03-17 00:41:00 cbothamy Exp $ +// $Id: resolve16.cc,v 1.10 2006-03-06 22:03:01 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -25,16 +25,11 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR - - - void BX_CPP_AttrRegparmN(1) BX_CPU_C::Resolve16Mod0Rm0(bxInstruction_c *i) { diff --git a/bochs/cpu/resolve32.cc b/bochs/cpu/resolve32.cc index 882554d6e..e6bbb6a9c 100644 --- a/bochs/cpu/resolve32.cc +++ b/bochs/cpu/resolve32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: resolve32.cc,v 1.10 2004-11-02 16:10:02 sshwarts Exp $ +// $Id: resolve32.cc,v 1.11 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/resolve64.cc b/bochs/cpu/resolve64.cc index 19a8c5d4b..ce5f4efb9 100644 --- a/bochs/cpu/resolve64.cc +++ b/bochs/cpu/resolve64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: resolve64.cc,v 1.7 2003-12-29 21:47:36 sshwarts Exp $ +// $Id: resolve64.cc,v 1.8 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -25,17 +25,14 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64 - void BX_CPP_AttrRegparmN(1) BX_CPU_C::Resolve64Mod0Rm0(bxInstruction_c *i) { diff --git a/bochs/cpu/ret_far.cc b/bochs/cpu/ret_far.cc index 3d5523808..399b96a93 100755 --- a/bochs/cpu/ret_far.cc +++ b/bochs/cpu/ret_far.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////// -// $Id: ret_far.cc,v 1.4 2005-08-03 21:01:02 sshwarts Exp $ +// $Id: ret_far.cc,v 1.5 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64==0 diff --git a/bochs/cpu/segment_ctrl.cc b/bochs/cpu/segment_ctrl.cc index 602358012..65341bf1f 100644 --- a/bochs/cpu/segment_ctrl.cc +++ b/bochs/cpu/segment_ctrl.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: segment_ctrl.cc,v 1.13 2006-02-11 09:08:02 sshwarts Exp $ +// $Id: segment_ctrl.cc,v 1.14 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,9 +27,9 @@ ///////////////////////////////////////////////////////////////////////// - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/segment_ctrl_pro.cc b/bochs/cpu/segment_ctrl_pro.cc index 198e091f4..b19bcca9a 100644 --- a/bochs/cpu/segment_ctrl_pro.cc +++ b/bochs/cpu/segment_ctrl_pro.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: segment_ctrl_pro.cc,v 1.53 2006-02-28 17:47:33 sshwarts Exp $ +// $Id: segment_ctrl_pro.cc,v 1.54 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/shift16.cc b/bochs/cpu/shift16.cc index 3eacf663f..244e3b9c2 100644 --- a/bochs/cpu/shift16.cc +++ b/bochs/cpu/shift16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: shift16.cc,v 1.30 2006-01-22 18:18:19 sshwarts Exp $ +// $Id: shift16.cc,v 1.31 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/shift32.cc b/bochs/cpu/shift32.cc index 614ebb2b1..9e7047e05 100644 --- a/bochs/cpu/shift32.cc +++ b/bochs/cpu/shift32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: shift32.cc,v 1.29 2005-10-13 20:21:35 sshwarts Exp $ +// $Id: shift32.cc,v 1.30 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/shift64.cc b/bochs/cpu/shift64.cc index 4a73102c9..f65a3721a 100644 --- a/bochs/cpu/shift64.cc +++ b/bochs/cpu/shift64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: shift64.cc,v 1.18 2005-10-13 20:21:35 sshwarts Exp $ +// $Id: shift64.cc,v 1.19 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/shift8.cc b/bochs/cpu/shift8.cc index 7f46800fa..b03b16bc9 100644 --- a/bochs/cpu/shift8.cc +++ b/bochs/cpu/shift8.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: shift8.cc,v 1.22 2005-10-13 19:28:10 sshwarts Exp $ +// $Id: shift8.cc,v 1.23 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/smm.cc b/bochs/cpu/smm.cc index d12384ecf..b11101f17 100755 --- a/bochs/cpu/smm.cc +++ b/bochs/cpu/smm.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: smm.cc,v 1.2 2006-02-28 19:50:08 sshwarts Exp $ +// $Id: smm.cc,v 1.3 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2006 Stanislav Shwartsman @@ -23,6 +23,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_CPU_LEVEL >= 3 diff --git a/bochs/cpu/soft_int.cc b/bochs/cpu/soft_int.cc index 467ac73fe..c1daec3f5 100644 --- a/bochs/cpu/soft_int.cc +++ b/bochs/cpu/soft_int.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: soft_int.cc,v 1.27 2006-02-12 20:21:36 sshwarts Exp $ +// $Id: soft_int.cc,v 1.28 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR void BX_CPU_C::BOUND_GwMa(bxInstruction_c *i) diff --git a/bochs/cpu/sse.cc b/bochs/cpu/sse.cc index 7ea761f11..e4de3bd1a 100644 --- a/bochs/cpu/sse.cc +++ b/bochs/cpu/sse.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: sse.cc,v 1.37 2006-02-22 20:58:16 sshwarts Exp $ +// $Id: sse.cc,v 1.38 2006-03-06 22:03:02 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -22,6 +22,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR /* ********************************************** */ diff --git a/bochs/cpu/sse_move.cc b/bochs/cpu/sse_move.cc index bea0aa5f9..3ed518ddf 100644 --- a/bochs/cpu/sse_move.cc +++ b/bochs/cpu/sse_move.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: sse_move.cc,v 1.48 2006-02-20 19:28:57 sshwarts Exp $ +// $Id: sse_move.cc,v 1.49 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -21,9 +21,9 @@ // - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/sse_pfp.cc b/bochs/cpu/sse_pfp.cc index e14e5df90..7104383e9 100644 --- a/bochs/cpu/sse_pfp.cc +++ b/bochs/cpu/sse_pfp.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: sse_pfp.cc,v 1.25 2006-02-22 20:20:21 sshwarts Exp $ +// $Id: sse_pfp.cc,v 1.26 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -22,6 +22,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_SSE diff --git a/bochs/cpu/sse_rcp.cc b/bochs/cpu/sse_rcp.cc index 98ebfdab5..e0bbd48a0 100755 --- a/bochs/cpu/sse_rcp.cc +++ b/bochs/cpu/sse_rcp.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: sse_rcp.cc,v 1.9 2005-05-12 18:07:45 sshwarts Exp $ +// $Id: sse_rcp.cc,v 1.10 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -22,6 +22,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_SSE diff --git a/bochs/cpu/stack16.cc b/bochs/cpu/stack16.cc index dc69a9ef4..d6ef41875 100644 --- a/bochs/cpu/stack16.cc +++ b/bochs/cpu/stack16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: stack16.cc,v 1.19 2005-07-31 17:57:27 sshwarts Exp $ +// $Id: stack16.cc,v 1.20 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,12 +27,13 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR void BX_CPU_C::PUSH_RX(bxInstruction_c *i) { - push_16( BX_CPU_THIS_PTR gen_reg[i->opcodeReg()].word.rx ); + push_16(BX_CPU_THIS_PTR gen_reg[i->opcodeReg()].word.rx); } void BX_CPU_C::PUSH16_CS(bxInstruction_c *i) diff --git a/bochs/cpu/stack32.cc b/bochs/cpu/stack32.cc index 816836476..213791681 100644 --- a/bochs/cpu/stack32.cc +++ b/bochs/cpu/stack32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: stack32.cc,v 1.30 2005-08-10 18:40:38 sshwarts Exp $ +// $Id: stack32.cc,v 1.31 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64==0 @@ -34,7 +35,6 @@ #define RBP EBP #endif - void BX_CPU_C::POP_Ed(bxInstruction_c *i) { Bit32u val32; diff --git a/bochs/cpu/stack64.cc b/bochs/cpu/stack64.cc index 36603587f..c567515d7 100644 --- a/bochs/cpu/stack64.cc +++ b/bochs/cpu/stack64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: stack64.cc,v 1.21 2005-05-20 20:06:50 sshwarts Exp $ +// $Id: stack64.cc,v 1.22 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64 diff --git a/bochs/cpu/stack_pro.cc b/bochs/cpu/stack_pro.cc index f4e406558..720c649a5 100644 --- a/bochs/cpu/stack_pro.cc +++ b/bochs/cpu/stack_pro.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: stack_pro.cc,v 1.26 2005-10-17 13:06:09 sshwarts Exp $ +// $Id: stack_pro.cc,v 1.27 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/string.cc b/bochs/cpu/string.cc index 48c52bc0e..539423ee7 100644 --- a/bochs/cpu/string.cc +++ b/bochs/cpu/string.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: string.cc,v 1.31 2005-08-01 21:40:17 sshwarts Exp $ +// $Id: string.cc,v 1.32 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/tasking.cc b/bochs/cpu/tasking.cc index 68178ebf7..6aee4cfbd 100644 --- a/bochs/cpu/tasking.cc +++ b/bochs/cpu/tasking.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: tasking.cc,v 1.30 2006-02-28 17:47:33 sshwarts Exp $ +// $Id: tasking.cc,v 1.31 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/cpu/vm8086.cc b/bochs/cpu/vm8086.cc index 25033a0c4..55bf6ec35 100644 --- a/bochs/cpu/vm8086.cc +++ b/bochs/cpu/vm8086.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: vm8086.cc,v 1.24 2006-02-28 17:47:33 sshwarts Exp $ +// $Id: vm8086.cc,v 1.25 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -25,9 +25,9 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #if BX_SUPPORT_X86_64==0 diff --git a/bochs/fpu/ferr.cc b/bochs/fpu/ferr.cc index cab6773c7..7c46a5252 100755 --- a/bochs/fpu/ferr.cc +++ b/bochs/fpu/ferr.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: ferr.cc,v 1.6 2005-05-12 18:07:45 sshwarts Exp $ +// $Id: ferr.cc,v 1.7 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -23,9 +23,9 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu/cpu.h" #define LOG_THIS BX_CPU_THIS_PTR - #if BX_SUPPORT_FPU #include "softfloat-specialize.h" diff --git a/bochs/fpu/fpu.cc b/bochs/fpu/fpu.cc index 8f3c13f12..6abb93845 100644 --- a/bochs/fpu/fpu.cc +++ b/bochs/fpu/fpu.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fpu.cc,v 1.19 2006-01-29 17:37:23 sshwarts Exp $ +// $Id: fpu.cc,v 1.20 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -24,9 +24,10 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" -#include "iodev/iodev.h" +#include "cpu/cpu.h" #define LOG_THIS BX_CPU_THIS_PTR +#include "iodev/iodev.h" #define UPDATE_LAST_OPCODE 1 #define CHECK_PENDING_EXCEPTIONS 1 diff --git a/bochs/fpu/fpu_arith.cc b/bochs/fpu/fpu_arith.cc index 8d4af5cbf..31092be7c 100755 --- a/bochs/fpu/fpu_arith.cc +++ b/bochs/fpu/fpu_arith.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fpu_arith.cc,v 1.7 2005-05-12 18:07:45 sshwarts Exp $ +// $Id: fpu_arith.cc,v 1.8 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -24,6 +24,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu/cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/fpu/fpu_compare.cc b/bochs/fpu/fpu_compare.cc index b2d4ca5f7..3c13033c3 100755 --- a/bochs/fpu/fpu_compare.cc +++ b/bochs/fpu/fpu_compare.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fpu_compare.cc,v 1.7 2005-05-12 18:07:46 sshwarts Exp $ +// $Id: fpu_compare.cc,v 1.8 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -21,9 +21,9 @@ // ///////////////////////////////////////////////////////////////////////// - #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu/cpu.h" #define LOG_THIS BX_CPU_THIS_PTR extern float_status_t FPU_pre_exception_handling(Bit16u control_word); diff --git a/bochs/fpu/fpu_const.cc b/bochs/fpu/fpu_const.cc index a2faaf104..e4c67f5c2 100755 --- a/bochs/fpu/fpu_const.cc +++ b/bochs/fpu/fpu_const.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fpu_const.cc,v 1.6 2005-05-12 18:07:46 sshwarts Exp $ +// $Id: fpu_const.cc,v 1.7 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -24,6 +24,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu/cpu.h" #define LOG_THIS BX_CPU_THIS_PTR diff --git a/bochs/fpu/fpu_load_store.cc b/bochs/fpu/fpu_load_store.cc index 7b3381ffe..a78e39389 100755 --- a/bochs/fpu/fpu_load_store.cc +++ b/bochs/fpu/fpu_load_store.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fpu_load_store.cc,v 1.9 2006-02-20 19:28:57 sshwarts Exp $ +// $Id: fpu_load_store.cc,v 1.10 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -23,6 +23,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu/cpu.h" #define LOG_THIS BX_CPU_THIS_PTR extern float_status_t FPU_pre_exception_handling(Bit16u control_word); diff --git a/bochs/fpu/fpu_misc.cc b/bochs/fpu/fpu_misc.cc index 44209347a..38fd97fc3 100755 --- a/bochs/fpu/fpu_misc.cc +++ b/bochs/fpu/fpu_misc.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fpu_misc.cc,v 1.8 2005-05-12 18:07:46 sshwarts Exp $ +// $Id: fpu_misc.cc,v 1.9 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -24,6 +24,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu/cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #include "softfloatx80.h" diff --git a/bochs/fpu/fpu_trans.cc b/bochs/fpu/fpu_trans.cc index 858727033..339514ff0 100755 --- a/bochs/fpu/fpu_trans.cc +++ b/bochs/fpu/fpu_trans.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fpu_trans.cc,v 1.9 2005-05-12 18:07:46 sshwarts Exp $ +// $Id: fpu_trans.cc,v 1.10 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -24,6 +24,7 @@ #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" +#include "cpu/cpu.h" #define LOG_THIS BX_CPU_THIS_PTR #include "softfloatx80.h" diff --git a/bochs/fpu/softfloat-specialize.h b/bochs/fpu/softfloat-specialize.h index 4825875ba..87de363b4 100755 --- a/bochs/fpu/softfloat-specialize.h +++ b/bochs/fpu/softfloat-specialize.h @@ -30,6 +30,8 @@ these four paragraphs for those parts of this code that are retained. #ifndef _SOFTFLOAT_SPECIALIZE_H_ #define _SOFTFLOAT_SPECIALIZE_H_ +#include "softfloat.h" + /*============================================================================ * Adapted for Bochs (x86 achitecture simulator) by * Stanislav Shwartsman (stl at fidonet.org.il) diff --git a/bochs/gui/siminterface.cc b/bochs/gui/siminterface.cc index c0790db22..a99d45dbf 100644 --- a/bochs/gui/siminterface.cc +++ b/bochs/gui/siminterface.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: siminterface.cc,v 1.126 2006-03-06 18:50:55 vruppert Exp $ +// $Id: siminterface.cc,v 1.127 2006-03-06 22:03:04 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // See siminterface.h for description of the siminterface concept. @@ -7,6 +7,7 @@ // the configuration user interface, and allows them to talk to each other. #include "bochs.h" +#include "cpu/cpu.h" #include "iodev.h" bx_simulator_interface_c *SIM = NULL; @@ -140,8 +141,7 @@ public: virtual bool test_for_text_console (); }; -bx_param_c * -bx_real_sim_c::get_param(bx_id id) +bx_param_c *bx_real_sim_c::get_param(bx_id id) { BX_ASSERT(id >= BXP_NULL && id < BXP_THIS_IS_THE_LAST); int index = (int)id - BXP_NULL; @@ -152,8 +152,7 @@ bx_real_sim_c::get_param(bx_id id) } // recursive function to find parameters from the path -static -bx_param_c *find_param(const char *full_pname, const char *rest_of_pname, bx_param_c *base) +static bx_param_c *find_param(const char *full_pname, const char *rest_of_pname, bx_param_c *base) { const char *from = rest_of_pname; char component[BX_PATHNAME_LEN]; @@ -167,7 +166,7 @@ bx_param_c *find_param(const char *full_pname, const char *rest_of_pname, bx_par } *to = 0; if (!component[0]) { - BX_PANIC (("find_param: found empty component in parameter name %s", full_pname)); + BX_PANIC (("find_param: found empty component in parameter name '%s'", full_pname)); // or does that mean that we're done? } if (base->get_type() != BXT_LIST) { @@ -304,15 +303,14 @@ bx_real_sim_c::bx_real_sim_c() // which can be used to look them up by number (get_param). bx_real_sim_c::~bx_real_sim_c () { - if ( param_registry != NULL ) + if (param_registry != NULL) { delete [] param_registry; param_registry = NULL; } } -int -bx_real_sim_c::register_param (bx_id id, bx_param_c *it) +int bx_real_sim_c::register_param (bx_id id, bx_param_c *it) { if ((id == BXP_NULL) || (id >= BXP_NEW_PARAM_ID)) return 0; BX_ASSERT (id >= BXP_NULL && id < BXP_THIS_IS_THE_LAST); @@ -324,34 +322,29 @@ bx_real_sim_c::register_param (bx_id id, bx_param_c *it) return 0; } -void -bx_real_sim_c::reset_all_param () +void bx_real_sim_c::reset_all_param () { bx_reset_options (); } -int -bx_real_sim_c::get_n_log_modules () +int bx_real_sim_c::get_n_log_modules () { return io->get_n_logfns (); } -char * -bx_real_sim_c::get_prefix (int mod) +char *bx_real_sim_c::get_prefix (int mod) { logfunc_t *logfn = io->get_logfn (mod); return logfn->getprefix (); } -int -bx_real_sim_c::get_log_action (int mod, int level) +int bx_real_sim_c::get_log_action (int mod, int level) { logfunc_t *logfn = io->get_logfn (mod); return logfn->getonoff (level); } -void -bx_real_sim_c::set_log_action (int mod, int level, int action) +void bx_real_sim_c::set_log_action (int mod, int level, int action) { // normal if (mod >= 0) { @@ -365,26 +358,22 @@ bx_real_sim_c::set_log_action (int mod, int level, int action) set_log_action (mod, level, action); } -char * -bx_real_sim_c::get_action_name (int action) +char *bx_real_sim_c::get_action_name(int action) { - return io->getaction (action); + return io->getaction(action); } -const char * -bx_real_sim_c::get_log_level_name (int level) +const char *bx_real_sim_c::get_log_level_name(int level) { return io->getlevel (level); } -int -bx_real_sim_c::get_max_log_level () +int bx_real_sim_c::get_max_log_level() { return N_LOGLEV; } -void -bx_real_sim_c::quit_sim (int code) { +void bx_real_sim_c::quit_sim (int code) { BX_INFO (("quit_sim called with exit code %d", code)); exit_code = code; // use longjmp to quit cleanly, no matter where in the stack we are. @@ -407,8 +396,7 @@ bx_real_sim_c::quit_sim (int code) { } } -int -bx_real_sim_c::get_default_rc (char *path, int len) +int bx_real_sim_c::get_default_rc (char *path, int len) { char *rc = bx_find_bochsrc (); if (rc == NULL) return -1; @@ -417,8 +405,7 @@ bx_real_sim_c::get_default_rc (char *path, int len) return 0; } -int -bx_real_sim_c::read_rc(char *rc) +int bx_real_sim_c::read_rc(char *rc) { return bx_read_configuration (rc); } @@ -427,56 +414,48 @@ bx_real_sim_c::read_rc(char *rc) // 0: written ok // -1: failed // -2: already exists, and overwrite was off -int -bx_real_sim_c::write_rc(char *rc, int overwrite) +int bx_real_sim_c::write_rc(char *rc, int overwrite) { return bx_write_configuration (rc, overwrite); } -int -bx_real_sim_c::get_log_file(char *path, int len) +int bx_real_sim_c::get_log_file(char *path, int len) { strncpy(path, SIM->get_param_string(BXPN_LOG_FILENAME)->getptr(), len); return 0; } -int -bx_real_sim_c::set_log_file(char *path) +int bx_real_sim_c::set_log_file(char *path) { SIM->get_param_string(BXPN_LOG_FILENAME)->set(path); return 0; } -int -bx_real_sim_c::get_log_prefix(char *prefix, int len) +int bx_real_sim_c::get_log_prefix(char *prefix, int len) { strncpy(prefix, SIM->get_param_string(BXPN_LOG_PREFIX)->getptr(), len); return 0; } -int -bx_real_sim_c::set_log_prefix(char *prefix) +int bx_real_sim_c::set_log_prefix(char *prefix) { SIM->get_param_string(BXPN_LOG_PREFIX)->set(prefix); return 0; } -int -bx_real_sim_c::get_debugger_log_file(char *path, int len) +int bx_real_sim_c::get_debugger_log_file(char *path, int len) { strncpy(path, SIM->get_param_string(BXPN_DEBUGGER_LOG_FILENAME)->getptr(), len); return 0; } -int -bx_real_sim_c::set_debugger_log_file(char *path) +int bx_real_sim_c::set_debugger_log_file(char *path) { SIM->get_param_string(BXPN_DEBUGGER_LOG_FILENAME)->set(path); return 0; } -int -bx_real_sim_c::get_cdrom_options(int level, bx_list_c **out, int *where) +int bx_real_sim_c::get_cdrom_options(int level, bx_list_c **out, int *where) { char pname[80]; bx_list_c *devlist; @@ -530,8 +509,7 @@ char *clock_sync_names[] = { "none", "realtime", "slowdown", "both", NULL }; int clock_sync_n_names=4; -void -bx_real_sim_c::set_notify_callback (bxevent_handler func, void *arg) +void bx_real_sim_c::set_notify_callback (bxevent_handler func, void *arg) { bxevent_callback = func; bxevent_callback_data = arg; @@ -545,8 +523,7 @@ void bx_real_sim_c::get_notify_callback ( *arg = bxevent_callback_data; } -BxEvent * -bx_real_sim_c::sim_to_ci_event (BxEvent *event) +BxEvent *bx_real_sim_c::sim_to_ci_event (BxEvent *event) { if (bxevent_callback == NULL) { BX_ERROR (("notify called, but no bxevent_callback function is registered")); @@ -557,8 +534,7 @@ bx_real_sim_c::sim_to_ci_event (BxEvent *event) } // returns 0 for continue, 1 for alwayscontinue, 2 for die. -int -bx_real_sim_c::log_msg (const char *prefix, int level, const char *msg) +int bx_real_sim_c::log_msg (const char *prefix, int level, const char *msg) { BxEvent be; be.type = BX_SYNC_EVT_LOG_ASK; @@ -576,8 +552,7 @@ bx_real_sim_c::log_msg (const char *prefix, int level, const char *msg) // for a registered parameter. Create a synchronous ASK_PARAM event, // send it to the CI, and wait for the response. The CI will call the // set() method on the parameter if the user changes the value. -int -bx_real_sim_c::ask_param(bx_param_c *param) +int bx_real_sim_c::ask_param(bx_param_c *param) { BX_ASSERT(param != NULL); // create appropriate event @@ -588,8 +563,7 @@ bx_real_sim_c::ask_param(bx_param_c *param) return event.retcode; } -int -bx_real_sim_c::ask_param(const char *pname) +int bx_real_sim_c::ask_param(const char *pname) { bx_param_c *paramptr = SIM->get_param(pname); BX_ASSERT(paramptr != NULL); @@ -601,8 +575,7 @@ bx_real_sim_c::ask_param(const char *pname) return event.retcode; } -int -bx_real_sim_c::ask_filename(char *filename, int maxlen, char *prompt, char *the_default, int flags) +int bx_real_sim_c::ask_filename(char *filename, int maxlen, char *prompt, char *the_default, int flags) { // implement using ASK_PARAM on a newly created param. I can't use // ask_param because I don't intend to register this param. @@ -618,8 +591,7 @@ bx_real_sim_c::ask_filename(char *filename, int maxlen, char *prompt, char *the_ return event.retcode; } -void -bx_real_sim_c::periodic () +void bx_real_sim_c::periodic () { // give the GUI a chance to do periodic things on the bochs thread. in // particular, notice if the thread has been asked to die. @@ -655,8 +627,7 @@ bx_real_sim_c::periodic () // write, e.g. disk full. // // wxWidgets: This may be called from the gui thread. -int -bx_real_sim_c::create_disk_image ( +int bx_real_sim_c::create_disk_image ( const char *filename, int sectors, bx_bool overwrite) @@ -707,7 +678,8 @@ bx_real_sim_c::create_disk_image ( return 0; } -void bx_real_sim_c::refresh_ci () { +void bx_real_sim_c::refresh_ci () +{ if (SIM->is_wx_selected ()) { // presently, only wxWidgets interface uses these events // It's an async event, so allocate a pointer and send it. @@ -742,12 +714,14 @@ bx_real_sim_c::get_first_atadevice(Bit32u search_type) { #if BX_DEBUGGER // this can be safely called from either thread. -void bx_real_sim_c::debug_break () { +void bx_real_sim_c::debug_break () +{ bx_debug_break (); } // this should only be called from the sim_thread. -void bx_real_sim_c::debug_interpret_cmd (char *cmd) { +void bx_real_sim_c::debug_interpret_cmd (char *cmd) +{ if (!is_sim_thread ()) { fprintf (stderr, "ERROR: debug_interpret_cmd called but not from sim_thread\n"); return; @@ -755,7 +729,7 @@ void bx_real_sim_c::debug_interpret_cmd (char *cmd) { bx_dbg_interpret_line (cmd); } -char *bx_real_sim_c::debug_get_next_command () +char *bx_real_sim_c::debug_get_next_command() { fprintf (stderr, "begin debug_get_next_command\n"); BxEvent event; @@ -768,7 +742,7 @@ char *bx_real_sim_c::debug_get_next_command () return NULL; } -void bx_real_sim_c::debug_puts (const char *text) +void bx_real_sim_c::debug_puts(const char *text) { if (SIM->is_wx_selected ()) { // send message to the wxWidgets debugger @@ -785,8 +759,7 @@ void bx_real_sim_c::debug_puts (const char *text) } #endif -void -bx_real_sim_c::register_configuration_interface ( +void bx_real_sim_c::register_configuration_interface ( const char* name, config_interface_callback_t callback, void *userdata) @@ -796,8 +769,7 @@ bx_real_sim_c::register_configuration_interface ( registered_ci_name = name; } -int -bx_real_sim_c::configuration_interface(const char *ignore, ci_command_t command) +int bx_real_sim_c::configuration_interface(const char *ignore, ci_command_t command) { bx_param_enum_c *ci_param = SIM->get_param_enum(BXPN_SEL_CONFIG_INTERFACE); char *name = ci_param->get_selected(); @@ -820,8 +792,7 @@ bx_real_sim_c::configuration_interface(const char *ignore, ci_command_t command) return retval; } -int -bx_real_sim_c::begin_simulation (int argc, char *argv[]) +int bx_real_sim_c::begin_simulation (int argc, char *argv[]) { return bx_begin_simulation (argc, argv); } @@ -836,8 +807,7 @@ bool bx_real_sim_c::is_sim_thread () // started from the "Start Menu" or by double clicking on it on a Mac, // there may be nothing attached to stdin/stdout/stderr. This function // tests if stdin/stdout/stderr are usable and returns false if not. -bool -bx_real_sim_c::test_for_text_console () +bool bx_real_sim_c::test_for_text_console () { #if BX_WITH_CARBON // In a Carbon application, you have a text console if you run the app from @@ -859,8 +829,7 @@ bx_object_c::bx_object_c (bx_id id) this->type = BXT_OBJECT; } -void -bx_object_c::set_type (bx_objtype type) +void bx_object_c::set_type (bx_objtype type) { this->type = type; } @@ -977,22 +946,19 @@ Bit32u bx_param_num_c::set_default_base (Bit32u val) { return old; } -void -bx_param_num_c::reset () +void bx_param_num_c::reset () { this->val.number = initial_val; } -void -bx_param_num_c::set_handler (param_event_handler handler) +void bx_param_num_c::set_handler (param_event_handler handler) { this->handler = handler; // now that there's a handler, call set once to run the handler immediately //set (get ()); } -void -bx_param_num_c::set_enable_handler (param_enable_handler handler) +void bx_param_num_c::set_enable_handler (param_enable_handler handler) { this->enable_handler = handler; } @@ -1002,8 +968,7 @@ void bx_param_num_c::set_dependent_list(bx_list_c *l) { update_dependents(); } -Bit64s -bx_param_num_c::get64 () +Bit64s bx_param_num_c::get64() { if (handler) { // the handler can decide what value to return and/or do some side effect @@ -1014,8 +979,7 @@ bx_param_num_c::get64 () } } -void -bx_param_num_c::set (Bit64s newval) +void bx_param_num_c::set(Bit64s newval) { if (handler) { // the handler can override the new value and/or perform some side effect @@ -1052,8 +1016,7 @@ void bx_param_num_c::update_dependents() } } -void -bx_param_num_c::set_enabled (int en) +void bx_param_num_c::set_enabled (int en) { // The enable handler may wish to allow/disallow the action if (enable_handler) { @@ -1183,8 +1146,8 @@ bx_shadow_num_c::bx_shadow_num_c (bx_id id, val.p8bit = (Bit8s*) ptr_to_real_val; } -Bit64s -bx_shadow_num_c::get64 () { +Bit64s bx_shadow_num_c::get64() +{ Bit64u current = 0; switch (varsize) { case 8: current = *(val.p8bit); break; @@ -1203,8 +1166,7 @@ bx_shadow_num_c::get64 () { } } -void -bx_shadow_num_c::set (Bit64s newval) +void bx_shadow_num_c::set(Bit64s newval) { Bit64u tmp = 0; if ((newval < min || newval > max) && (Bit64u)max != BX_MAX_BIT64U) @@ -1239,8 +1201,7 @@ bx_shadow_num_c::set (Bit64s newval) } } -void -bx_shadow_num_c::reset () +void bx_shadow_num_c::reset() { BX_PANIC (("reset not supported on bx_shadow_num_c yet")); } @@ -1277,8 +1238,7 @@ bx_shadow_bool_c::bx_shadow_bool_c (bx_id id, this->bitnum = bitnum; } -Bit64s -bx_shadow_bool_c::get64 () { +Bit64s bx_shadow_bool_c::get64 () { if (handler) { // the handler can decide what value to return and/or do some side effect Bit64s ret = (*handler)(this, 0, (Bit64s) *(val.pbool)); @@ -1289,8 +1249,7 @@ bx_shadow_bool_c::get64 () { } } -void -bx_shadow_bool_c::set (Bit64s newval) +void bx_shadow_bool_c::set (Bit64s newval) { // only change the bitnum bit Bit64s tmp = (newval&1) << bitnum; @@ -1323,8 +1282,7 @@ bx_param_enum_c::bx_param_enum_c(bx_param_c *parent, set(initial_val); } -int -bx_param_enum_c::find_by_name(const char *string) +int bx_param_enum_c::find_by_name(const char *string) { char **p; for (p=&choices[0]; *p; p++) { @@ -1334,8 +1292,7 @@ bx_param_enum_c::find_by_name(const char *string) return -1; } -bool -bx_param_enum_c::set_by_name(const char *string) +bool bx_param_enum_c::set_by_name(const char *string) { int n = find_by_name(string); if (n<0) return false; @@ -1403,37 +1360,32 @@ bx_param_string_c::~bx_param_string_c() } } -void -bx_param_string_c::reset() { +void bx_param_string_c::reset() { strncpy(this->val, this->initial_val, maxsize); } -void -bx_param_string_c::set_handler(param_string_event_handler handler) +void bx_param_string_c::set_handler(param_string_event_handler handler) { this->handler = handler; // now that there's a handler, call set once to run the handler immediately //set (getptr ()); } -void -bx_param_string_c::set_enable_handler(param_enable_handler handler) +void bx_param_string_c::set_enable_handler(param_enable_handler handler) { this->enable_handler = handler; } -void -bx_param_string_c::set_enabled(int en) +void bx_param_string_c::set_enabled(int en) { // The enable handler may wish to allow/disallow the action if (enable_handler) { en = (*enable_handler)(this, en); - } + } bx_param_c::set_enabled(en); } -Bit32s -bx_param_string_c::get(char *buf, int len) +Bit32s bx_param_string_c::get(char *buf, int len) { if (options->get() & RAW_BYTES) memcpy(buf, val, len); @@ -1447,8 +1399,7 @@ bx_param_string_c::get(char *buf, int len) return 0; } -void -bx_param_string_c::set(char *buf) +void bx_param_string_c::set(char *buf) { if (options->get() & RAW_BYTES) memcpy(val, buf, maxsize); @@ -1460,8 +1411,7 @@ bx_param_string_c::set(char *buf) } } -bx_bool -bx_param_string_c::equals(const char *buf) +bx_bool bx_param_string_c::equals(const char *buf) { if (options->get() & RAW_BYTES) return (memcmp(val, buf, maxsize) == 0); diff --git a/bochs/instrument/example0/instrument.cc b/bochs/instrument/example0/instrument.cc index bf42791fe..18c54f863 100644 --- a/bochs/instrument/example0/instrument.cc +++ b/bochs/instrument/example0/instrument.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: instrument.cc,v 1.16 2006-01-17 18:17:01 sshwarts Exp $ +// $Id: instrument.cc,v 1.17 2006-03-06 22:03:15 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -28,6 +28,7 @@ #include #include "bochs.h" +#include "cpu/cpu.h" // maximum size of an instruction #define MAX_OPCODE_SIZE 16 diff --git a/bochs/instrument/example1/instrument.cc b/bochs/instrument/example1/instrument.cc index 1d0fb2cc8..3d62822bc 100644 --- a/bochs/instrument/example1/instrument.cc +++ b/bochs/instrument/example1/instrument.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: instrument.cc,v 1.12 2006-01-17 18:17:01 sshwarts Exp $ +// $Id: instrument.cc,v 1.13 2006-03-06 22:03:16 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -27,6 +27,7 @@ #include #include "bochs.h" +#include "cpu/cpu.h" bxInstrumentation *icpu = NULL; diff --git a/bochs/iodev/devices.cc b/bochs/iodev/devices.cc index 5420a1cef..521ab624c 100644 --- a/bochs/iodev/devices.cc +++ b/bochs/iodev/devices.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: devices.cc,v 1.93 2006-03-03 20:29:50 vruppert Exp $ +// $Id: devices.cc,v 1.94 2006-03-06 22:03:16 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -27,11 +27,12 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#include "bochs.h" +#include "cpu/cpu.h" #include "iodev.h" #define LOG_THIS bx_devices. - /* main memory size (in Kbytes) * subtract 1k for extended BIOS area * report only base memory, not extended mem @@ -42,10 +43,8 @@ bx_devices_c bx_devices; - - // constructor for bx_devices_c -bx_devices_c::bx_devices_c(void) +bx_devices_c::bx_devices_c() { put("DEV"); settype(DEVLOG); @@ -98,20 +97,19 @@ bx_devices_c::bx_devices_c(void) } -bx_devices_c::~bx_devices_c(void) +bx_devices_c::~bx_devices_c() { // nothing needed for now BX_DEBUG(("Exit.")); timer_handle = BX_NULL_TIMER_HANDLE; } - void bx_devices_c::init(BX_MEM_C *newmem) { unsigned i; - BX_DEBUG(("Init $Id: devices.cc,v 1.93 2006-03-03 20:29:50 vruppert Exp $")); + BX_DEBUG(("Init $Id: devices.cc,v 1.94 2006-03-06 22:03:16 sshwarts Exp $")); mem = newmem; /* set no-default handlers, will be overwritten by the real default handler */ @@ -349,18 +347,14 @@ bx_devices_c::reset(unsigned type) } - Bit32u -bx_devices_c::read_handler(void *this_ptr, Bit32u address, unsigned io_len) +Bit32u bx_devices_c::read_handler(void *this_ptr, Bit32u address, unsigned io_len) { #if !BX_USE_DEV_SMF bx_devices_c *class_ptr = (bx_devices_c *) this_ptr; - - return( class_ptr->port92_read(address, io_len) ); + return class_ptr->port92_read(address, io_len); } - - Bit32u -bx_devices_c::port92_read(Bit32u address, unsigned io_len) +Bit32u bx_devices_c::port92_read(Bit32u address, unsigned io_len) { #else UNUSED(this_ptr); @@ -371,18 +365,14 @@ bx_devices_c::port92_read(Bit32u address, unsigned io_len) return(BX_GET_ENABLE_A20() << 1); } - - void -bx_devices_c::write_handler(void *this_ptr, Bit32u address, Bit32u value, unsigned io_len) +void bx_devices_c::write_handler(void *this_ptr, Bit32u address, Bit32u value, unsigned io_len) { #if !BX_USE_DEV_SMF bx_devices_c *class_ptr = (bx_devices_c *) this_ptr; - class_ptr->port92_write(address, value, io_len); } - void -bx_devices_c::port92_write(Bit32u address, Bit32u value, unsigned io_len) +void bx_devices_c::port92_write(Bit32u address, Bit32u value, unsigned io_len) { #else UNUSED(this_ptr); @@ -401,8 +391,7 @@ bx_devices_c::port92_write(Bit32u address, Bit32u value, unsigned io_len) // This defines a no-default read handler, // so Bochs does not segfault if unmapped is not loaded - Bit32u -bx_devices_c::default_read_handler(void *this_ptr, Bit32u address, unsigned io_len) +Bit32u bx_devices_c::default_read_handler(void *this_ptr, Bit32u address, unsigned io_len) { UNUSED(this_ptr); BX_PANIC(("No default io-read handler found for 0x%04x/%d. Unmapped io-device not loaded ?", address, io_len)); @@ -411,30 +400,26 @@ bx_devices_c::default_read_handler(void *this_ptr, Bit32u address, unsigned io_l // This defines a no-default write handler, // so Bochs does not segfault if unmapped is not loaded - void -bx_devices_c::default_write_handler(void *this_ptr, Bit32u address, Bit32u value, unsigned io_len) +void bx_devices_c::default_write_handler(void *this_ptr, Bit32u address, Bit32u value, unsigned io_len) { UNUSED(this_ptr); BX_PANIC(("No default io-write handler found for 0x%04x/%d. Unmapped io-device not loaded ?", address, io_len)); } - void -bx_devices_c::timer_handler(void *this_ptr) +void bx_devices_c::timer_handler(void *this_ptr) { bx_devices_c *class_ptr = (bx_devices_c *) this_ptr; - class_ptr->timer(); } - void -bx_devices_c::timer() +void bx_devices_c::timer() { #if (BX_USE_NEW_PIT==0) if ( pit->periodic( BX_IODEV_HANDLER_PERIOD ) ) { // This is a hack to make the IRQ0 work DEV_pic_lower_irq(0); DEV_pic_raise_irq(0); - } + } #endif @@ -454,31 +439,29 @@ bx_devices_c::timer() } - bx_bool -bx_devices_c::register_irq(unsigned irq, const char *name) +bx_bool bx_devices_c::register_irq(unsigned irq, const char *name) { if (irq >= BX_MAX_IRQS) { BX_PANIC(("IO device %s registered with IRQ=%d above %u", name, irq, (unsigned) BX_MAX_IRQS-1)); return false; - } + } if (irq_handler_name[irq]) { BX_PANIC(("IRQ %u conflict, %s with %s", irq, irq_handler_name[irq], name)); return false; - } + } irq_handler_name[irq] = name; return true; } - bx_bool -bx_devices_c::unregister_irq(unsigned irq, const char *name) +bx_bool bx_devices_c::unregister_irq(unsigned irq, const char *name) { if (irq >= BX_MAX_IRQS) { BX_PANIC(("IO device %s tried to unregister IRQ %d above %u", name, irq, (unsigned) BX_MAX_IRQS-1)); return false; - } + } if (!irq_handler_name[irq]) { BX_INFO(("IO device %s tried to unregister IRQ %d, not registered", @@ -490,13 +473,12 @@ bx_devices_c::unregister_irq(unsigned irq, const char *name) BX_INFO(("IRQ %u not registered to %s but to %s", irq, name, irq_handler_name[irq])); return false; - } + } irq_handler_name[irq] = NULL; return true; } - bx_bool -bx_devices_c::register_io_read_handler(void *this_ptr, bx_read_handler_t f, +bx_bool bx_devices_c::register_io_read_handler(void *this_ptr, bx_read_handler_t f, Bit32u addr, const char *name, Bit8u mask) { addr &= 0x0000ffff; @@ -547,10 +529,7 @@ bx_devices_c::register_io_read_handler(void *this_ptr, bx_read_handler_t f, return true; // address mapped successfully } - - - bx_bool -bx_devices_c::register_io_write_handler(void *this_ptr, bx_write_handler_t f, +bx_bool bx_devices_c::register_io_write_handler(void *this_ptr, bx_write_handler_t f, Bit32u addr, const char *name, Bit8u mask) { addr &= 0x0000ffff; @@ -601,9 +580,7 @@ bx_devices_c::register_io_write_handler(void *this_ptr, bx_write_handler_t f, return true; // address mapped successfully } - - bx_bool -bx_devices_c::register_io_read_handler_range(void *this_ptr, bx_read_handler_t f, +bx_bool bx_devices_c::register_io_read_handler_range(void *this_ptr, bx_read_handler_t f, Bit32u begin_addr, Bit32u end_addr, const char *name, Bit8u mask) { @@ -666,9 +643,7 @@ bx_devices_c::register_io_read_handler_range(void *this_ptr, bx_read_handler_t f return true; // address mapped successfully } - - bx_bool -bx_devices_c::register_io_write_handler_range(void *this_ptr, bx_write_handler_t f, +bx_bool bx_devices_c::register_io_write_handler_range(void *this_ptr, bx_write_handler_t f, Bit32u begin_addr, Bit32u end_addr, const char *name, Bit8u mask) { @@ -733,8 +708,7 @@ bx_devices_c::register_io_write_handler_range(void *this_ptr, bx_write_handler_t // Registration of default handlers (mainly be the unmapped device) - bx_bool -bx_devices_c::register_default_io_read_handler(void *this_ptr, bx_read_handler_t f, +bx_bool bx_devices_c::register_default_io_read_handler(void *this_ptr, bx_read_handler_t f, const char *name, Bit8u mask) { io_read_handlers.funct = (void *)f; @@ -744,10 +718,7 @@ bx_devices_c::register_default_io_read_handler(void *this_ptr, bx_read_handler_t return true; } - - - bx_bool -bx_devices_c::register_default_io_write_handler(void *this_ptr, bx_write_handler_t f, +bx_bool bx_devices_c::register_default_io_write_handler(void *this_ptr, bx_write_handler_t f, const char *name, Bit8u mask) { io_write_handlers.funct = (void *)f; @@ -757,9 +728,7 @@ bx_devices_c::register_default_io_write_handler(void *this_ptr, bx_write_handler return true; } - - bx_bool -bx_devices_c::unregister_io_read_handler(void *this_ptr, bx_read_handler_t f, +bx_bool bx_devices_c::unregister_io_read_handler(void *this_ptr, bx_read_handler_t f, Bit32u addr, Bit8u mask) { addr &= 0x0000ffff; @@ -804,9 +773,7 @@ bx_devices_c::unregister_io_read_handler(void *this_ptr, bx_read_handler_t f, return true; } - - bx_bool -bx_devices_c::unregister_io_write_handler(void *this_ptr, bx_write_handler_t f, +bx_bool bx_devices_c::unregister_io_write_handler(void *this_ptr, bx_write_handler_t f, Bit32u addr, Bit8u mask) { addr &= 0x0000ffff; @@ -839,9 +806,7 @@ bx_devices_c::unregister_io_write_handler(void *this_ptr, bx_write_handler_t f, return true; } - - bx_bool -bx_devices_c::unregister_io_read_handler_range(void *this_ptr, bx_read_handler_t f, +bx_bool bx_devices_c::unregister_io_read_handler_range(void *this_ptr, bx_read_handler_t f, Bit32u begin, Bit32u end, Bit8u mask) { begin &= 0x0000ffff; @@ -859,9 +824,7 @@ bx_devices_c::unregister_io_read_handler_range(void *this_ptr, bx_read_handler_t return ret; } - - bx_bool -bx_devices_c::unregister_io_write_handler_range(void *this_ptr, bx_write_handler_t f, +bx_bool bx_devices_c::unregister_io_write_handler_range(void *this_ptr, bx_write_handler_t f, Bit32u begin, Bit32u end, Bit8u mask) { begin &= 0x0000ffff; diff --git a/bochs/iodev/ioapic.cc b/bochs/iodev/ioapic.cc index 1cf938d2a..1a474791f 100644 --- a/bochs/iodev/ioapic.cc +++ b/bochs/iodev/ioapic.cc @@ -1,10 +1,33 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: ioapic.cc,v 1.27 2006-02-27 19:04:00 sshwarts Exp $ +// $Id: ioapic.cc,v 1.28 2006-03-06 22:03:16 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // -#include +// Copyright (C) 2002 MandrakeSoft S.A. +// +// MandrakeSoft S.A. +// 43, rue d'Aboukir +// 75002 Paris - France +// http://www.linux-mandrake.com/ +// http://www.mandrakesoft.com/ +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#include "bochs.h" +#include "cpu/apic.h" #include "iodev.h" + #if BX_SUPPORT_APIC class bx_ioapic_c bx_ioapic; @@ -39,8 +62,10 @@ void bx_io_redirect_entry_t::sprintf_self(char *buf) (unsigned) vector()); } +#define BX_IOAPIC_BASE_ADDR (0xfec00000) + bx_ioapic_c::bx_ioapic_c() - : bx_generic_apic_c() + : bx_generic_apic_c(BX_IOAPIC_BASE_ADDR) { put("IOAP"); settype(IOAPICLOG); @@ -54,7 +79,7 @@ void bx_ioapic_c::init(void) { bx_generic_apic_c::init(); BX_INFO(("initializing I/O APIC")); - base_addr = 0xfec00000; + base_addr = BX_IOAPIC_BASE_ADDR; set_id(BX_IOAPIC_DEFAULT_ID); ioregsel = 0; DEV_register_memory_handlers(&bx_ioapic, diff --git a/bochs/iodev/ioapic.h b/bochs/iodev/ioapic.h index fae3ca895..a424e90a6 100644 --- a/bochs/iodev/ioapic.h +++ b/bochs/iodev/ioapic.h @@ -1,6 +1,33 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: ioapic.h,v 1.18 2006-03-01 22:32:24 sshwarts Exp $ +// $Id: ioapic.h,v 1.19 2006-03-06 22:03:16 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2002 MandrakeSoft S.A. +// +// MandrakeSoft S.A. +// 43, rue d'Aboukir +// 75002 Paris - France +// http://www.linux-mandrake.com/ +// http://www.mandrakesoft.com/ +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +#ifndef BX_DEVICES_IOAPIC_H +#define BX_DEVICES_IOAPIC_H + +#include "cpu/apic.h" extern class bx_ioapic_c bx_ioapic; @@ -67,3 +94,5 @@ public: void service_ioapic(void); virtual bx_apic_type_t get_type() { return APIC_TYPE_IOAPIC; } }; + +#endif diff --git a/bochs/iodev/iodebug.cc b/bochs/iodev/iodebug.cc index a8440feeb..e14bacaed 100644 --- a/bochs/iodev/iodebug.cc +++ b/bochs/iodev/iodebug.cc @@ -1,7 +1,9 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: iodebug.cc,v 1.20 2006-03-03 12:55:37 sshwarts Exp $ +// $Id: iodebug.cc,v 1.21 2006-03-06 22:03:16 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// +#include "bochs.h" +#include "cpu/cpu.h" #include "iodev.h" #if BX_SUPPORT_IODEBUG @@ -17,7 +19,6 @@ bx_iodebug_c bx_iodebug; Bit32u monitored_mem_areas_end[BX_IODEBUG_MAX_AREAS]; } bx_iodebug_s; -// Constructor bx_iodebug_c::bx_iodebug_c() { put("IODEBUG"); @@ -41,7 +42,7 @@ void bx_iodebug_c::init(void) Bit32u bx_iodebug_c::read_handler(void *this_ptr, Bit32u addr, unsigned io_len) { - bx_iodebug_c bx_iodebug_ptr = (bx_iodebug_c *) this_ptr; + bx_iodebug_c *bx_iodebug_ptr = (bx_iodebug_c *) this_ptr; return bx_iodebug_ptr->read(addr, io_len); } @@ -53,7 +54,7 @@ Bit32u bx_iodebug_c::read(Bit32u addr, unsigned io_len) void bx_iodebug_c::write_handler(void *this_ptr, Bit32u addr, Bit32u dvalue, unsigned io_len) { - bx_iodebug_c bx_iodebug_ptr = (bx_iodebug_c *) this_ptr; + bx_iodebug_c *bx_iodebug_ptr = (bx_iodebug_c *) this_ptr; bx_iodebug_ptr->write(addr, dvalue, io_len); } @@ -75,7 +76,7 @@ void bx_iodebug_c::write(Bit32u addr, Bit32u dvalue, unsigned io_len) if(dvalue == 0x8A00) { bx_iodebug_s.enabled = 1; -// fprintf(stderr, "IODEBUG enabled\n"); +// fprintf(stderr, "IODEBUG enabled\n"); bx_iodebug_s.registers[0] = 0; bx_iodebug_s.registers[1] = 0; } @@ -86,12 +87,12 @@ void bx_iodebug_c::write(Bit32u addr, Bit32u dvalue, unsigned io_len) { case 0x8A01: bx_iodebug_s.register_select = 0; -// fprintf(stderr, "IODEBUG register 0 selected\n"); +// fprintf(stderr, "IODEBUG register 0 selected\n"); break; case 0x8A02: bx_iodebug_s.register_select = 1; -// fprintf(stderr, "IODEBUG register 1 selected\n"); +// fprintf(stderr, "IODEBUG register 1 selected\n"); break; case 0x8A80: @@ -149,14 +150,22 @@ void bx_iodebug_c::mem_write(BX_CPU_C *cpu, Bit32u addr, unsigned len, void *dat if(area) { area--; + #if BX_DEBUGGER - fprintf(stdout, "%s @ eip: " FMT_ADDRX " wrote at monitored memory location %8X\n", cpu->name, cpu->get_ip(), addr); + if (cpu != NULL) + fprintf(stdout, "IODEBUG %s @ eip: " FMT_ADDRX " write at monitored memory location %8X\n", cpu->name, cpu->get_ip(), addr); + else + fprintf(stdout, "IODEBUG write at monitored memory location %8X\n", addr); bx_guard.interrupt_requested=1; #else - fprintf(stderr, - "IODEBUG write to monitored memory area: %2i\tby EIP:\t\t" FMT_ADDRX "\n\trange start: \t\t%08X\trange end:\t%08X\n\taddress accessed:\t%08X\tdata written:\t", - area, - cpu->get_ip(), + fprintf(stderr, "IODEBUG write to monitored memory area: %2i\t", area); + + if (cpu != NULL) + fprintf(stderr, "by EIP:\t\t" FMT_ADDRX "\n\t", cpu->get_ip()); + else + fprintf(stderr, "(device origin)\t", cpu->get_ip()); + + fprintf(stderr, "range start: \t\t%08X\trange end:\t%08X\n\taddress accessed:\t%08X\tdata written:\t", bx_iodebug_s.monitored_mem_areas_start[area], bx_iodebug_s.monitored_mem_areas_end[area], (unsigned) addr); @@ -201,14 +210,22 @@ void bx_iodebug_c::mem_read(BX_CPU_C *cpu, Bit32u addr, unsigned len, void *data if(area) { area--; + #if BX_DEBUGGER - fprintf(stdout, "%s @ eip: " FMT_ADDRX " wrote at monitored memory location %8X\n", cpu->name, cpu->get_ip(), addr); + if (cpu != NULL) + fprintf(stdout, "IODEBUG %s @ eip: " FMT_ADDRX " read at monitored memory location %8X\n", cpu->name, cpu->get_ip(), addr); + else + fprintf(stdout, "IODEBUG read at monitored memory location %8X\n", addr); bx_guard.interrupt_requested=1; #else - fprintf(stderr, - "IODEBUG read to monitored memory area: %2i\tby EIP:\t\t" FMT_ADDRX "\n\trange start: \t\t%08X\trange end:\t%08X\n\taddress accessed:\t%08X\tdata written:\t", - area, - cpu->get_ip(), + fprintf(stderr, "IODEBUG read at monitored memory area: %2i\t", area); + + if (cpu != NULL) + fprintf(stderr, "by EIP:\t\t" FMT_ADDRX "\n\t", cpu->get_ip()); + else + fprintf(stderr, "(device origin)\t", cpu->get_ip()); + + fprintf(stderr, "range start: \t\t%08X\trange end:\t%08X\n\taddress accessed:\t%08X\tdata written:\t", bx_iodebug_s.monitored_mem_areas_start[area], bx_iodebug_s.monitored_mem_areas_end[area], (unsigned) addr); diff --git a/bochs/load32bitOShack.cc b/bochs/load32bitOShack.cc index e67744997..b860d3e56 100644 --- a/bochs/load32bitOShack.cc +++ b/bochs/load32bitOShack.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: load32bitOShack.cc,v 1.19 2006-02-23 22:48:56 vruppert Exp $ +// $Id: load32bitOShack.cc,v 1.20 2006-03-06 22:02:48 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -25,61 +25,54 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - #include "bochs.h" +#include "cpu/cpu.h" #include "iodev/iodev.h" #define LOG_THIS genlog-> - static void bx_load_linux_hack(void); static void bx_load_null_kernel_hack(void); static Bit32u bx_load_kernel_image(char *path, Bit32u paddr); - void -bx_load32bitOSimagehack(void) +void bx_load32bitOSimagehack(void) { if (SIM->get_param_string(BXPN_LOAD32BITOS_IOLOG) && - (SIM->get_param_string(BXPN_LOAD32BITOS_IOLOG)->getptr()[0] != '\0') - ) { + (SIM->get_param_string(BXPN_LOAD32BITOS_IOLOG)->getptr()[0] != '\0')) + { - // Replay IO from log to initialize IO devices to - // a reasonable state needed for the OS. This is done - // in lieu of running the 16-bit BIOS to init things, - // since we want to test straight 32bit stuff for - // freemware. + // Replay IO from log to initialize IO devices to + // a reasonable state needed for the OS. This is done + // in lieu of running the 16-bit BIOS to init things, + // since we want to test straight 32bit stuff for + // freemware. - FILE *fp; - - fp = fopen(SIM->get_param_string(BXPN_LOAD32BITOS_IOLOG)->getptr(), "r"); - - if (fp == NULL) { - BX_PANIC(("could not open IO init file.")); - } - - while (1) { - unsigned len, op, port, val; - int ret; - ret = fscanf(fp, "%u %u %x %x\n", - &len, &op, &port, &val); - if (ret != 4) { + FILE *fp = fopen(SIM->get_param_string(BXPN_LOAD32BITOS_IOLOG)->getptr(), "r"); + if (fp == NULL) { BX_PANIC(("could not open IO init file.")); - } - if (op == 0) { - // read - (void) bx_devices.inp(port, len); - } - else if (op == 1) { - // write - bx_devices.outp(port, val, len); - } - else { - BX_PANIC(("bad IO op in init filen")); - } - if (feof(fp)) break; } - }//if iolog file to load + + while (1) { + unsigned len, op, port, val; + int ret; + ret = fscanf(fp, "%u %u %x %x\n", &len, &op, &port, &val); + if (ret != 4) { + BX_PANIC(("could not open IO init file.")); + } + if (op == 0) { + // read + bx_devices.inp(port, len); + } + else if (op == 1) { + // write + bx_devices.outp(port, val, len); + } + else { + BX_PANIC(("bad IO op in init filen")); + } + if (feof(fp)) break; + } + } //if iolog file to load // Invoke proper hack depending on which OS image we're loading switch (SIM->get_param_enum(BXPN_LOAD32BITOS_WHICH)->get()) { @@ -99,6 +92,7 @@ struct gdt_entry Bit32u low; Bit32u high; }; + struct linux_setup_params { /* 0x000 */ Bit8u orig_x; @@ -138,8 +132,7 @@ struct linux_setup_params /* 0x800 */ Bit8u commandline[2048]; }; - static void -bx_load_linux_setup_params( Bit32u initrd_start, Bit32u initrd_size ) +static void bx_load_linux_setup_params(Bit32u initrd_start, Bit32u initrd_size) { BX_MEM_C *mem = BX_MEM(0); struct linux_setup_params *params = @@ -176,8 +169,7 @@ bx_load_linux_setup_params( Bit32u initrd_start, Bit32u initrd_size ) params->gdt[3].low = 0x0000ffff; } - void -bx_load_linux_hack(void) +void bx_load_linux_hack(void) { Bit32u initrd_start = 0, initrd_size = 0; @@ -235,8 +227,7 @@ bx_load_linux_hack(void) BX_CPU(0)->jump_protected( NULL, 0x10, 0x00100000 ); } - void -bx_load_null_kernel_hack(void) +void bx_load_null_kernel_hack(void) { // The RESET function will have been called first. // Set CPU and memory features which are assumed at this point. @@ -282,12 +273,12 @@ bx_load_kernel_image(char *path, Bit32u paddr) if (fd < 0) { BX_INFO(( "load_kernel_image: couldn't open image file '%s'.", path )); BX_EXIT(1); - } + } ret = fstat(fd, &stat_buf); if (ret) { BX_INFO(( "load_kernel_image: couldn't stat image file '%s'.", path )); BX_EXIT(1); - } + } size = (unsigned long)stat_buf.st_size; page_size = ((Bit32u)size + 0xfff) & ~0xfff; @@ -296,7 +287,7 @@ bx_load_kernel_image(char *path, Bit32u paddr) if ( (paddr + size) > mem->len ) { BX_INFO(( "load_kernel_image: address range > physical memsize!" )); BX_EXIT(1); - } + } offset = 0; while (size > 0) { @@ -304,10 +295,10 @@ bx_load_kernel_image(char *path, Bit32u paddr) if (ret <= 0) { BX_INFO(( "load_kernel_image: read failed on image" )); BX_EXIT(1); - } + } size -= ret; offset += ret; - } + } close(fd); BX_INFO(("load_kernel_image: '%s', size=%u read into memory at %08x", path, (unsigned) stat_buf.st_size, (unsigned) paddr)); diff --git a/bochs/main.cc b/bochs/main.cc index 8f94c6f71..d47fcbe2f 100644 --- a/bochs/main.cc +++ b/bochs/main.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: main.cc,v 1.320 2006-03-05 10:24:27 vruppert Exp $ +// $Id: main.cc,v 1.321 2006-03-06 22:02:48 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -25,6 +25,7 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "bochs.h" +#include "cpu/cpu.h" #include "iodev/iodev.h" #ifdef HAVE_LOCALE_H diff --git a/bochs/memory/memory.cc b/bochs/memory/memory.cc index ce20a4b37..a8eb0ad4b 100644 --- a/bochs/memory/memory.cc +++ b/bochs/memory/memory.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: memory.cc,v 1.49 2006-03-06 19:23:13 sshwarts Exp $ +// $Id: memory.cc,v 1.50 2006-03-06 22:03:16 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -25,6 +25,8 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +#include "bochs.h" +#include "cpu/cpu.h" #include "iodev/iodev.h" #define LOG_THIS BX_MEM_THIS diff --git a/bochs/memory/misc_mem.cc b/bochs/memory/misc_mem.cc index 90401ff45..906be6c80 100644 --- a/bochs/memory/misc_mem.cc +++ b/bochs/memory/misc_mem.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: misc_mem.cc,v 1.80 2006-03-01 22:32:24 sshwarts Exp $ +// $Id: misc_mem.cc,v 1.81 2006-03-06 22:03:16 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -26,7 +26,8 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - +#include "bochs.h" +#include "cpu/cpu.h" #include "iodev/iodev.h" #define LOG_THIS BX_MEM(0)-> @@ -93,7 +94,7 @@ void BX_MEM_C::init_memory(int memsize) { int idx; - BX_DEBUG(("Init $Id: misc_mem.cc,v 1.80 2006-03-01 22:32:24 sshwarts Exp $")); + BX_DEBUG(("Init $Id: misc_mem.cc,v 1.81 2006-03-06 22:03:16 sshwarts Exp $")); // you can pass 0 if memory has been allocated already through // the constructor, or the desired size of memory if it hasn't // BX_INFO(("%.2fMB", (float)(BX_MEM_THIS megabytes) )); @@ -323,7 +324,7 @@ void BX_MEM_C::load_ROM(const char *path, Bit32u romaddress, Bit8u type) for (i = 0; i < BX_SMP_PROCESSORS; i++) { put_8bit(&p, 0); // entry type = processor put_8bit(&p, (Bit8u)i); // APIC id - put_8bit(&p, APIC_VERSION_ID & 0xff); // local APIC version number + put_8bit(&p, BX_LAPIC_VERSION_ID & 0xff); // local APIC version number put_8bit(&p, (i==0)?3:1); // cpu flags: enabled, cpu0 = bootstrap cpu put_8bit(&p, 0); // cpu signature put_8bit(&p, 0); diff --git a/bochs/pc_system.cc b/bochs/pc_system.cc index 62ee92220..74985d8c8 100644 --- a/bochs/pc_system.cc +++ b/bochs/pc_system.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: pc_system.cc,v 1.50 2006-03-04 16:58:10 sshwarts Exp $ +// $Id: pc_system.cc,v 1.51 2006-03-06 22:02:50 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -25,8 +25,8 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - #include "bochs.h" +#include "cpu/cpu.h" #include "iodev/iodev.h" #define LOG_THIS bx_pc_system.