diff options
Diffstat (limited to 'src/mame/machine/sgi.h')
-rw-r--r-- | src/mame/machine/sgi.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/mame/machine/sgi.h b/src/mame/machine/sgi.h new file mode 100644 index 00000000000..ec5d203ba70 --- /dev/null +++ b/src/mame/machine/sgi.h @@ -0,0 +1,80 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +/********************************************************************* + + sgi.h + + Silicon Graphics MC (Memory Controller) code + +*********************************************************************/ + +#ifndef _SGIMC_H +#define _SGIMC_H + +class sgi_mc_device : public device_t +{ +public: + sgi_mc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + ~sgi_mc_device() {} + +DECLARE_READ32_MEMBER(read); +DECLARE_WRITE32_MEMBER(write); + +protected: + // device-level overrides + virtual void device_start(); + +private: + // internal state + emu_timer *m_tUpdateTimer; + UINT32 m_nCPUControl0; + UINT32 m_nCPUControl1; + UINT32 m_nWatchdog; + UINT32 m_nSysID; + UINT32 m_nRPSSDiv; + UINT32 m_nRefCntPreload; + UINT32 m_nRefCnt; + UINT32 m_nGIO64ArbParam; + UINT32 m_nArbCPUTime; + UINT32 m_nArbBurstTime; + UINT32 m_nMemCfg0; + UINT32 m_nMemCfg1; + UINT32 m_nCPUMemAccCfg; + UINT32 m_nGIOMemAccCfg; + UINT32 m_nCPUErrorAddr; + UINT32 m_nCPUErrorStatus; + UINT32 m_nGIOErrorAddr; + UINT32 m_nGIOErrorStatus; + UINT32 m_nSysSemaphore; + UINT32 m_nGIOLock; + UINT32 m_nEISALock; + UINT32 m_nGIO64TransMask; + UINT32 m_nGIO64Subst; + UINT32 m_nDMAIntrCause; + UINT32 m_nDMAControl; + UINT32 m_nDMATLBEntry0Hi; + UINT32 m_nDMATLBEntry0Lo; + UINT32 m_nDMATLBEntry1Hi; + UINT32 m_nDMATLBEntry1Lo; + UINT32 m_nDMATLBEntry2Hi; + UINT32 m_nDMATLBEntry2Lo; + UINT32 m_nDMATLBEntry3Hi; + UINT32 m_nDMATLBEntry3Lo; + UINT32 m_nRPSSCounter; + UINT32 m_nDMAMemAddr; + UINT32 m_nDMALineCntWidth; + UINT32 m_nDMALineZoomStride; + UINT32 m_nDMAGIO64Addr; + UINT32 m_nDMAMode; + UINT32 m_nDMAZoomByteCnt; + UINT32 m_nDMARunning; + + void update(); + TIMER_CALLBACK_MEMBER(update_callback); + void timer_init(); +}; + +extern const device_type SGI_MC; + + +#endif /* _SGIMC_H */ |