|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2022 nono project ! 4: // Licensed under nono-license.txt ! 5: // ! 6: ! 7: // ! 8: // メッセージ ! 9: // ! 10: ! 11: #pragma once ! 12: ! 13: #include "device.h" ! 14: ! 15: class MessageID ! 16: { ! 17: public: ! 18: enum { ! 19: NONE = 0, ! 20: ! 21: POWERON, ! 22: RESET, ! 23: POWEROFF_EXIT, ! 24: POWEROFF_RESTART, ! 25: ! 26: SCSIDEV_LOAD_0, ! 27: SCSIDEV_LOAD_1, ! 28: SCSIDEV_LOAD_2, ! 29: SCSIDEV_LOAD_3, ! 30: SCSIDEV_LOAD_4, ! 31: SCSIDEV_LOAD_5, ! 32: SCSIDEV_LOAD_6, ! 33: SCSIDEV_LOAD_7, ! 34: SCSIDEV_UNLOAD_0, ! 35: SCSIDEV_UNLOAD_1, ! 36: SCSIDEV_UNLOAD_2, ! 37: SCSIDEV_UNLOAD_3, ! 38: SCSIDEV_UNLOAD_4, ! 39: SCSIDEV_UNLOAD_5, ! 40: SCSIDEV_UNLOAD_6, ! 41: SCSIDEV_UNLOAD_7, ! 42: ! 43: HOSTCOM_RX, ! 44: HOSTNET_RX, ! 45: ! 46: KEY_INPUT, ! 47: ! 48: NMI, ! 49: ! 50: SCHEDULER_SYNCMODE, ! 51: ! 52: MPU_TRACE, ! 53: ! 54: MAX, ! 55: }; ! 56: ! 57: public: ! 58: MessageID() { ! 59: id = NONE; ! 60: } ! 61: MessageID(int id_) { ! 62: id = id_; ! 63: } ! 64: ! 65: MessageID& operator=(int id_) { ! 66: id = id_; ! 67: return *this; ! 68: } ! 69: operator int() const { ! 70: return id; ! 71: } ! 72: ! 73: static MessageID SCSIDEV_LOAD(int n) { ! 74: return MessageID(SCSIDEV_LOAD_0 + n); ! 75: } ! 76: static MessageID SCSIDEV_UNLOAD(int n) { ! 77: return MessageID(SCSIDEV_UNLOAD_0 + n); ! 78: } ! 79: ! 80: private: ! 81: int id; ! 82: }; ! 83: ! 84: using MessageCallback_t = void (Device::*)(MessageID, uint32); ! 85: #define ToMessageCallback(f) static_cast<MessageCallback_t>(f)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.