added infrastructure for init disable

This commit is contained in:
Stanislav Shwartsman 2008-12-01 18:54:24 +00:00
parent 430166ef7a
commit f69ac41e59
3 changed files with 8 additions and 4 deletions

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: cpu.cc,v 1.251 2008-11-20 18:44:15 sshwarts Exp $ // $Id: cpu.cc,v 1.252 2008-12-01 18:54:24 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001 MandrakeSoft S.A. // Copyright (C) 2001 MandrakeSoft S.A.
@ -823,7 +823,8 @@ void BX_CPU_C::boundaryFetch(const Bit8u *fetchPtr, unsigned remainingInPage, bx
void BX_CPU_C::deliver_INIT(void) void BX_CPU_C::deliver_INIT(void)
{ {
BX_CPU_THIS_PTR reset(BX_RESET_SOFTWARE); if (! BX_CPU_THIS_PTR init_disable)
BX_CPU_THIS_PTR reset(BX_RESET_SOFTWARE);
} }
void BX_CPU_C::deliver_NMI(void) void BX_CPU_C::deliver_NMI(void)

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: cpu.h,v 1.537 2008-11-29 19:28:09 sshwarts Exp $ // $Id: cpu.h,v 1.538 2008-12-01 18:54:24 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001 MandrakeSoft S.A. // Copyright (C) 2001 MandrakeSoft S.A.
@ -925,6 +925,7 @@ public: // for now...
bx_bool user_pl; bx_bool user_pl;
bx_bool in_smm; bx_bool in_smm;
bx_bool nmi_disable; bx_bool nmi_disable;
bx_bool init_disable;
#if BX_CPU_LEVEL >= 4 && BX_SUPPORT_ALIGNMENT_CHECK #if BX_CPU_LEVEL >= 4 && BX_SUPPORT_ALIGNMENT_CHECK
unsigned alignment_check_mask; unsigned alignment_check_mask;
#endif #endif

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: init.cc,v 1.181 2008-11-18 20:58:09 sshwarts Exp $ // $Id: init.cc,v 1.182 2008-12-01 18:54:24 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2001 MandrakeSoft S.A. // Copyright (C) 2001 MandrakeSoft S.A.
@ -511,6 +511,7 @@ void BX_CPU_C::register_state(void)
BXRS_PARAM_BOOL(cpu, nmi_pending, nmi_pending); BXRS_PARAM_BOOL(cpu, nmi_pending, nmi_pending);
BXRS_PARAM_BOOL(cpu, in_smm, in_smm); BXRS_PARAM_BOOL(cpu, in_smm, in_smm);
BXRS_PARAM_BOOL(cpu, nmi_disable, nmi_disable); BXRS_PARAM_BOOL(cpu, nmi_disable, nmi_disable);
BXRS_PARAM_BOOL(cpu, init_disable, init_disable);
BXRS_PARAM_BOOL(cpu, trace, trace); BXRS_PARAM_BOOL(cpu, trace, trace);
} }
@ -854,6 +855,7 @@ void BX_CPU_C::reset(unsigned source)
BX_CPU_THIS_PTR nmi_pending = 0; BX_CPU_THIS_PTR nmi_pending = 0;
BX_CPU_THIS_PTR in_smm = 0; BX_CPU_THIS_PTR in_smm = 0;
BX_CPU_THIS_PTR nmi_disable = 0; BX_CPU_THIS_PTR nmi_disable = 0;
BX_CPU_THIS_PTR init_disable = 0;
#if BX_CPU_LEVEL >= 4 && BX_SUPPORT_ALIGNMENT_CHECK #if BX_CPU_LEVEL >= 4 && BX_SUPPORT_ALIGNMENT_CHECK
BX_CPU_THIS_PTR alignment_check_mask = 0; BX_CPU_THIS_PTR alignment_check_mask = 0;
#endif #endif