--- nono/vm/sysclk.h 2026/04/29 17:04:56 1.1.1.7 +++ nono/vm/sysclk.h 2026/04/29 17:05:17 1.1.1.9 @@ -4,11 +4,17 @@ // Licensed under nono-license.txt // +// +// LUNA システムクロック +// + #pragma once #include "device.h" +#include "event.h" #include "monitor.h" -#include "scheduler.h" + +class InterruptDevice; class SysClkDevice : public IODevice { @@ -18,7 +24,7 @@ class SysClkDevice : public IODevice virtual ~SysClkDevice() override; bool Init() override; - bool PowerOn() override; + void ResetHard(bool poweron) override; protected: // BusIO インタフェース @@ -30,7 +36,6 @@ class SysClkDevice : public IODevice private: // イベントコールバック void Callback(Event& ev); - void Callback_rt(Event& ev); DECLARE_MONITOR_CALLBACK(MonitorUpdate); @@ -52,7 +57,11 @@ class SysClkDevice : public IODevice // システムクロックを実時間に同期する場合 true bool sync_rt {}; + InterruptDevice *interrupt {}; + Monitor monitor { this }; }; -extern std::unique_ptr gSysClk; +static inline SysClkDevice *GetSysClkDevice() { + return Object::GetObject(OBJ_SYSCLK); +}