diff --git a/bochs/CHANGES b/bochs/CHANGES index bdd01fa18..3dadeb687 100644 --- a/bochs/CHANGES +++ b/bochs/CHANGES @@ -1,3 +1,73 @@ +Changes after 2.4.5 release: + +- CPU and internal debugger + - Implemented Process Context ID (PCID) feature + - Implemented FS/GS BASE access instructions support + (according to document from http://software.intel.com/en-us/avx/) + - Bugfixes for CPU emulation correctness and stability + - Fixed failures on Big Endian hosts ! + - Print detailed page walk information and attributes in + internal debugger 'page' command + - Updated/Fixed instrumentation callbacks + +- Configure and compile + - Added ability to configure CPUID stepping through .bochsrc. + The default stepping value is 3. + - Added ability to disable MONITOR/MWAIT support through .bochsrc + CPUID option. The option is available only if compiled with + --enable-monitor-mwait configure option. + - Determine and select max physical address size automatically at + configure time: + - 32-bit physical address for 386/486 guests + - 36-bit physical address for PSE-36 enabled Pentium guest + - 40-bit physical address for PAE enabled P6 or later guests + - Update config.guess/config.sub scripts to May 2010 revisions. + - Added Bochs compilation timestamp after Bochs version string. + +- GUI and display libraries (Volker) + - Added new .bochsrc option to select mouse capture toggle method. + In addition to the default Bochs method using the CTRL key and the + middle mouse button there are now the choices: + - CTRL+F10 (like DOSBox) + - CTRL+ALT (like QEMU) + - F12 (replaces win32 'legacyF12' option) + +- ROM BIOS + - Support for up to 2M ROM BIOS images + +- I/O Devices + - Fixes for emulated DHCP in eth_vnet (patch from @SF tracker) + - Added write protect option for floppy drives (based on @SF patch by Ben Lunt) + +- SF patches applied + [1539417] write protect for floppy drives by Ben Lunt + [2862322] fixes for emulated DHCP in eth_vnet + +- these S.F. bugs were closed/fixed + [3111577] No "back" option in log settings + [3108422] Timing window in NE2K emulation + [3084390] Bochs won't load floppy plugin right on startup + [3043174] Docbook use of '_' build failure + [3085140] Ia_arpl_Ew_Rw definition of error + [3078995] ROL/ROR/SHL/SHR modeling wrong when dest reg is 32 bit + [2864794] BX_INSTR_OPCODE in "cpu_loop" causes crash in x86_64 host + [2884071] [AIX host] prefetch: EIP [00010000] > CS.limit [0000ffff] + [3053542] 64 bit mode: far-jmp instruction is error + [3011112] error compile vs2008/2010 with X2APIC + [3002017] compile error with vs 2010 + [3009767] guest RFLAGS.IF blocks externel interrupt in VMX guest mode + [2964655] VMX not enabled in MSR IA32_FEATURE_CONTROL + [3005865] IDT show bug + [3001637] CMOS MAP register meaning error + [2994370] Cannot build with 3DNow support + +- these S.F. feature requests were closed/implemented + [1062553] select mouse (de)activation in bochsrc + [2930633] legacy mouse capture key : not specific enough + [2930679] Let user change mouse capture control key + [2803538] Show flags for pages when using "info tab" + +------------------------------------------------------------------------- Changes in 2.4.5 (April 25, 2010): Brief summary : diff --git a/bochs/cpu/access.cc b/bochs/cpu/access.cc index 6f6819971..4898a1224 100644 --- a/bochs/cpu/access.cc +++ b/bochs/cpu/access.cc @@ -1,8 +1,8 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: access.cc,v 1.128 2010-10-18 22:19:44 sshwarts Exp $ +// $Id: access.cc,v 1.129 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // -// Copyright (C) 2005-2009 The Bochs Project +// Copyright (C) 2005-2010 The Bochs Project // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public diff --git a/bochs/cpu/access32.cc b/bochs/cpu/access32.cc index 59f45a72f..dbd8a7aee 100755 --- a/bochs/cpu/access32.cc +++ b/bochs/cpu/access32.cc @@ -1,8 +1,8 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: access32.cc,v 1.29 2010-05-02 17:01:15 sshwarts Exp $ +// $Id: access32.cc,v 1.30 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // -// Copyright (c) 2008-2009 Stanislav Shwartsman +// Copyright (c) 2008-2010 Stanislav Shwartsman // Written by Stanislav Shwartsman [sshwarts at sourceforge net] // // This library is free software; you can redistribute it and/or diff --git a/bochs/cpu/access64.cc b/bochs/cpu/access64.cc index 8851bc0a6..e3f8808e2 100755 --- a/bochs/cpu/access64.cc +++ b/bochs/cpu/access64.cc @@ -1,8 +1,8 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: access64.cc,v 1.27 2010-03-14 15:51:26 sshwarts Exp $ +// $Id: access64.cc,v 1.28 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // -// Copyright (c) 2008-2009 Stanislav Shwartsman +// Copyright (c) 2008-2010 Stanislav Shwartsman // Written by Stanislav Shwartsman [sshwarts at sourceforge net] // // This library is free software; you can redistribute it and/or diff --git a/bochs/cpu/arith16.cc b/bochs/cpu/arith16.cc index 2c073569f..4da50102a 100644 --- a/bochs/cpu/arith16.cc +++ b/bochs/cpu/arith16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: arith16.cc,v 1.74 2010-02-26 11:44:50 sshwarts Exp $ +// $Id: arith16.cc,v 1.75 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2009 The Bochs Project @@ -26,13 +26,13 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::INC_RX(bxInstruction_c *i) { - Bit16u rx = ++BX_READ_16BIT_REG(i->opcodeReg()); + Bit16u rx = ++BX_READ_16BIT_REG(i->rm()); SET_FLAGS_OSZAPC_INC_16(rx); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::DEC_RX(bxInstruction_c *i) { - Bit16u rx = --BX_READ_16BIT_REG(i->opcodeReg()); + Bit16u rx = --BX_READ_16BIT_REG(i->rm()); SET_FLAGS_OSZAPC_DEC_16(rx); } diff --git a/bochs/cpu/arith32.cc b/bochs/cpu/arith32.cc index c03331add..069b6453e 100644 --- a/bochs/cpu/arith32.cc +++ b/bochs/cpu/arith32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: arith32.cc,v 1.86 2010-03-14 15:51:26 sshwarts Exp $ +// $Id: arith32.cc,v 1.87 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2009 The Bochs Project @@ -32,16 +32,16 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::INC_ERX(bxInstruction_c *i) { - Bit32u erx = ++BX_READ_32BIT_REG(i->opcodeReg()); + Bit32u erx = ++BX_READ_32BIT_REG(i->rm()); SET_FLAGS_OSZAPC_INC_32(erx); - BX_CLEAR_64BIT_HIGH(i->opcodeReg()); + BX_CLEAR_64BIT_HIGH(i->rm()); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::DEC_ERX(bxInstruction_c *i) { - Bit32u erx = --BX_READ_32BIT_REG(i->opcodeReg()); + Bit32u erx = --BX_READ_32BIT_REG(i->rm()); SET_FLAGS_OSZAPC_DEC_32(erx); - BX_CLEAR_64BIT_HIGH(i->opcodeReg()); + BX_CLEAR_64BIT_HIGH(i->rm()); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::ADD_EdGdM(bxInstruction_c *i) diff --git a/bochs/cpu/bit.cc b/bochs/cpu/bit.cc index eab0903ad..4593f25fa 100644 --- a/bochs/cpu/bit.cc +++ b/bochs/cpu/bit.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: bit.cc,v 1.69 2010-09-20 20:43:16 sshwarts Exp $ +// $Id: bit.cc,v 1.70 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2009 The Bochs Project @@ -239,22 +239,22 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::SETNLE_EbR(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::BSWAP_RX(bxInstruction_c *i) { BX_ERROR(("BSWAP with 16-bit opsize: undefined behavior !")); - BX_WRITE_16BIT_REG(i->opcodeReg(), 0); + BX_WRITE_16BIT_REG(i->rm(), 0); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::BSWAP_ERX(bxInstruction_c *i) { - Bit32u val32 = BX_READ_32BIT_REG(i->opcodeReg()); + Bit32u val32 = BX_READ_32BIT_REG(i->rm()); - BX_WRITE_32BIT_REGZ(i->opcodeReg(), bx_bswap32(val32)); + BX_WRITE_32BIT_REGZ(i->rm(), bx_bswap32(val32)); } #if BX_SUPPORT_X86_64 void BX_CPP_AttrRegparmN(1) BX_CPU_C::BSWAP_RRX(bxInstruction_c *i) { - Bit64u val64 = BX_READ_64BIT_REG(i->opcodeReg()); + Bit64u val64 = BX_READ_64BIT_REG(i->rm()); - BX_WRITE_64BIT_REG(i->opcodeReg(), bx_bswap64(val64)); + BX_WRITE_64BIT_REG(i->rm(), bx_bswap64(val64)); } #endif diff --git a/bochs/cpu/data_xfer16.cc b/bochs/cpu/data_xfer16.cc index 3d3cf47b6..4cb79f48f 100644 --- a/bochs/cpu/data_xfer16.cc +++ b/bochs/cpu/data_xfer16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: data_xfer16.cc,v 1.69 2010-05-02 15:11:39 sshwarts Exp $ +// $Id: data_xfer16.cc,v 1.70 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2009 The Bochs Project @@ -26,14 +26,14 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RXIw(bxInstruction_c *i) { - BX_WRITE_16BIT_REG(i->opcodeReg(), i->Iw()); + BX_WRITE_16BIT_REG(i->rm(), i->Iw()); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::XCHG_RXAX(bxInstruction_c *i) { Bit16u temp16 = AX; - AX = BX_READ_16BIT_REG(i->opcodeReg()); - BX_WRITE_16BIT_REG(i->opcodeReg(), temp16); + AX = BX_READ_16BIT_REG(i->rm()); + BX_WRITE_16BIT_REG(i->rm(), temp16); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_EwGwM(bxInstruction_c *i) diff --git a/bochs/cpu/data_xfer32.cc b/bochs/cpu/data_xfer32.cc index 934cc0d7e..8e2a3ca54 100644 --- a/bochs/cpu/data_xfer32.cc +++ b/bochs/cpu/data_xfer32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: data_xfer32.cc,v 1.66 2010-02-26 11:44:50 sshwarts Exp $ +// $Id: data_xfer32.cc,v 1.67 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2009 The Bochs Project @@ -32,18 +32,18 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::XCHG_ERXEAX(bxInstruction_c *i) { #if BX_SUPPORT_X86_64 - if (i->opcodeReg() == 0) // 'xchg eax, eax' is NOP even in 64-bit mode + if (i->rm() == 0) // 'xchg eax, eax' is NOP even in 64-bit mode return; #endif Bit32u temp32 = EAX; - RAX = BX_READ_32BIT_REG(i->opcodeReg()); - BX_WRITE_32BIT_REGZ(i->opcodeReg(), temp32); + RAX = BX_READ_32BIT_REG(i->rm()); + BX_WRITE_32BIT_REGZ(i->rm(), temp32); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_ERXId(bxInstruction_c *i) { - BX_WRITE_32BIT_REGZ(i->opcodeReg(), i->Id()); + BX_WRITE_32BIT_REGZ(i->rm(), i->Id()); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV32_EdGdM(bxInstruction_c *i) diff --git a/bochs/cpu/data_xfer64.cc b/bochs/cpu/data_xfer64.cc index 638072150..010ba96a0 100644 --- a/bochs/cpu/data_xfer64.cc +++ b/bochs/cpu/data_xfer64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: data_xfer64.cc,v 1.44 2009-12-04 16:53:12 sshwarts Exp $ +// $Id: data_xfer64.cc,v 1.45 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2009 The Bochs Project @@ -29,13 +29,13 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::XCHG_RRXRAX(bxInstruction_c *i) { Bit64u temp64 = RAX; - RAX = BX_READ_64BIT_REG(i->opcodeReg()); - BX_WRITE_64BIT_REG(i->opcodeReg(), temp64); + RAX = BX_READ_64BIT_REG(i->rm()); + BX_WRITE_64BIT_REG(i->rm(), temp64); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RRXIq(bxInstruction_c *i) { - BX_WRITE_64BIT_REG(i->opcodeReg(), i->Iq()); + BX_WRITE_64BIT_REG(i->rm(), i->Iq()); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV64_GdEdM(bxInstruction_c *i) diff --git a/bochs/cpu/data_xfer8.cc b/bochs/cpu/data_xfer8.cc index 242319739..60aa2a028 100644 --- a/bochs/cpu/data_xfer8.cc +++ b/bochs/cpu/data_xfer8.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: data_xfer8.cc,v 1.47 2010-09-24 21:15:16 sshwarts Exp $ +// $Id: data_xfer8.cc,v 1.48 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2009 The Bochs Project @@ -26,12 +26,12 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RLIb(bxInstruction_c *i) { - BX_WRITE_8BIT_REGx(i->opcodeReg(), i->extend8bitL(), i->Ib()); + BX_WRITE_8BIT_REGx(i->rm(), i->extend8bitL(), i->Ib()); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_RHIb(bxInstruction_c *i) { - BX_WRITE_8BIT_REGH(i->opcodeReg() & 0x03, i->Ib()); + BX_WRITE_8BIT_REGH(i->rm() & 0x03, i->Ib()); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_EbGbM(bxInstruction_c *i) diff --git a/bochs/cpu/fetchdecode.cc b/bochs/cpu/fetchdecode.cc index c76571faa..198465e84 100644 --- a/bochs/cpu/fetchdecode.cc +++ b/bochs/cpu/fetchdecode.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fetchdecode.cc,v 1.281 2010-10-18 22:19:45 sshwarts Exp $ +// $Id: fetchdecode.cc,v 1.282 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2010 The Bochs Project @@ -2669,7 +2669,7 @@ modrm_done: OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[sse_prefix-1]); ia_opcode = OpcodeInfoPtr->IA; - i->setOpcodeReg(b1 & 7); + i->setRm(b1 & 7); } if (lock) { // lock prefix invalid opcode diff --git a/bochs/cpu/fetchdecode64.cc b/bochs/cpu/fetchdecode64.cc index 176929d18..a33a75a06 100644 --- a/bochs/cpu/fetchdecode64.cc +++ b/bochs/cpu/fetchdecode64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fetchdecode64.cc,v 1.277 2010-10-18 22:19:45 sshwarts Exp $ +// $Id: fetchdecode64.cc,v 1.278 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2010 The Bochs Project @@ -3608,7 +3608,7 @@ modrm_done: OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[sse_prefix-1]); ia_opcode = OpcodeInfoPtr->IA; - i->setOpcodeReg((b1 & 7) | rex_b); + i->setRm((b1 & 7) | rex_b); } } diff --git a/bochs/cpu/instr.h b/bochs/cpu/instr.h index 07617439e..7c506b9d4 100755 --- a/bochs/cpu/instr.h +++ b/bochs/cpu/instr.h @@ -1,8 +1,8 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: instr.h,v 1.30 2010-10-18 22:19:45 sshwarts Exp $ +// $Id: instr.h,v 1.31 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // -// Copyright (c) 2008-2009 Stanislav Shwartsman +// Copyright (c) 2008-2010 Stanislav Shwartsman // Written by Stanislav Shwartsman [sshwarts at sourceforge net] // // This library is free software; you can redistribute it and/or @@ -116,14 +116,6 @@ public: BX_CPP_INLINE void setB1(unsigned b1) { metaData[BX_INSTR_METADATA_B1] = b1 & 0xff; } - BX_CPP_INLINE void setOpcodeReg(unsigned opreg) { - // The opcodeReg form (low 3 bits of the opcode byte - // (extended by REX.B on x86-64) - metaData[BX_INSTR_METADATA_RM] = opreg; - } - BX_CPP_INLINE unsigned opcodeReg() const { - return metaData[BX_INSTR_METADATA_RM]; - } BX_CPP_INLINE void setModRM(unsigned modrm) { metaData[BX_INSTR_METADATA_MODRM] = modrm; } diff --git a/bochs/cpu/stack16.cc b/bochs/cpu/stack16.cc index f5eccf1a5..30fe7ebe5 100644 --- a/bochs/cpu/stack16.cc +++ b/bochs/cpu/stack16.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: stack16.cc,v 1.47 2009-12-04 16:53:12 sshwarts Exp $ +// $Id: stack16.cc,v 1.48 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2009 The Bochs Project @@ -31,7 +31,7 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH_RX(bxInstruction_c *i) { - push_16(BX_READ_16BIT_REG(i->opcodeReg())); + push_16(BX_READ_16BIT_REG(i->rm())); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH16_CS(bxInstruction_c *i) @@ -123,7 +123,7 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP16_SS(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_RX(bxInstruction_c *i) { - BX_WRITE_16BIT_REG(i->opcodeReg(), pop_16()); + BX_WRITE_16BIT_REG(i->rm(), pop_16()); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_EwM(bxInstruction_c *i) diff --git a/bochs/cpu/stack32.cc b/bochs/cpu/stack32.cc index 3f92b4701..abee1d21b 100644 --- a/bochs/cpu/stack32.cc +++ b/bochs/cpu/stack32.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: stack32.cc,v 1.66 2010-11-23 14:59:35 sshwarts Exp $ +// $Id: stack32.cc,v 1.67 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2009 The Bochs Project @@ -47,12 +47,12 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_EdM(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH_ERX(bxInstruction_c *i) { - push_32(BX_READ_32BIT_REG(i->opcodeReg())); + push_32(BX_READ_32BIT_REG(i->rm())); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_ERX(bxInstruction_c *i) { - BX_WRITE_32BIT_REGZ(i->opcodeReg(), pop_32()); + BX_WRITE_32BIT_REGZ(i->rm(), pop_32()); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH32_CS(bxInstruction_c *i) diff --git a/bochs/cpu/stack64.cc b/bochs/cpu/stack64.cc index 27cd4379a..7f8ab1f37 100644 --- a/bochs/cpu/stack64.cc +++ b/bochs/cpu/stack64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: stack64.cc,v 1.47 2010-04-30 09:12:52 sshwarts Exp $ +// $Id: stack64.cc,v 1.48 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001-2009 The Bochs Project @@ -44,12 +44,12 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_EqM(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH_RRX(bxInstruction_c *i) { - push_64(BX_READ_64BIT_REG(i->opcodeReg())); + push_64(BX_READ_64BIT_REG(i->rm())); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::POP_RRX(bxInstruction_c *i) { - BX_WRITE_64BIT_REG(i->opcodeReg(), pop_64()); + BX_WRITE_64BIT_REG(i->rm(), pop_64()); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::PUSH64_FS(bxInstruction_c *i) diff --git a/bochs/cpu/vmx.h b/bochs/cpu/vmx.h index 81bf55874..1d6c7b61b 100755 --- a/bochs/cpu/vmx.h +++ b/bochs/cpu/vmx.h @@ -1,8 +1,8 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: vmx.h,v 1.32 2010-11-11 21:41:03 sshwarts Exp $ +// $Id: vmx.h,v 1.33 2010-12-06 21:45:56 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // -// Copyright (c) 2009 Stanislav Shwartsman +// Copyright (c) 2009-2010 Stanislav Shwartsman // Written by Stanislav Shwartsman [sshwarts at sourceforge net] // // This library is free software; you can redistribute it and/or