|
|
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 {
1.1.1.3 root 19: // リクエストフラグにビット割付されるメッセージ
20: // Bit0 は REQUEST_EXIT で使用しているため
21: // こちらでは NONE に割り付けて衝突しないようにしている。
1.1 root 22: NONE = 0,
23:
1.1.1.3 root 24: HOSTCOM_RX,
1.1.1.4 ! root 25: HOSTNET0_RX,
! 26: HOSTNET1_RX,
1.1.1.3 root 27:
28: MAX_REQUEST,
29:
30: // ここ以降はキューイングされるメッセージ
31:
1.1 root 32: RESET,
33: POWEROFF_EXIT,
34: POWEROFF_RESTART,
1.1.1.2 root 35: POWER_BUTTON,
1.1 root 36:
37: SCSIDEV_LOAD_0,
38: SCSIDEV_LOAD_1,
39: SCSIDEV_LOAD_2,
40: SCSIDEV_LOAD_3,
41: SCSIDEV_LOAD_4,
42: SCSIDEV_LOAD_5,
43: SCSIDEV_LOAD_6,
44: SCSIDEV_LOAD_7,
45: SCSIDEV_UNLOAD_0,
46: SCSIDEV_UNLOAD_1,
47: SCSIDEV_UNLOAD_2,
48: SCSIDEV_UNLOAD_3,
49: SCSIDEV_UNLOAD_4,
50: SCSIDEV_UNLOAD_5,
51: SCSIDEV_UNLOAD_6,
52: SCSIDEV_UNLOAD_7,
53:
1.1.1.2 root 54: FDD_LOAD_0,
55: FDD_LOAD_1,
56: FDD_LOAD_2,
57: FDD_LOAD_3,
58: FDD_UNLOAD_0,
59: FDD_UNLOAD_1,
60: FDD_UNLOAD_2,
61: FDD_UNLOAD_3,
62:
1.1 root 63: KEY_INPUT,
64:
65: NMI,
66:
67: SCHEDULER_SYNCMODE,
68:
1.1.1.3 root 69: MPU_TRACE_MAIN,
70: MPU_TRACE_XP,
1.1 root 71:
1.1.1.3 root 72: // MAX は宛先を確保する際の最大値。
1.1 root 73: MAX,
1.1.1.3 root 74:
75: // ここ以降は、経路中だけで使われるメッセージ。
76:
77: MPU_TRACE_ALL,
1.1 root 78: };
79:
80: public:
81: MessageID() {
82: id = NONE;
83: }
84: MessageID(int id_) {
85: id = id_;
86: }
87:
88: MessageID& operator=(int id_) {
89: id = id_;
90: return *this;
91: }
92: operator int() const {
93: return id;
94: }
95:
96: static MessageID SCSIDEV_LOAD(int n) {
97: return MessageID(SCSIDEV_LOAD_0 + n);
98: }
99: static MessageID SCSIDEV_UNLOAD(int n) {
100: return MessageID(SCSIDEV_UNLOAD_0 + n);
101: }
102:
1.1.1.2 root 103: static MessageID FDD_LOAD(int n) {
104: return MessageID(FDD_LOAD_0 + n);
105: }
106: static MessageID FDD_UNLOAD(int n) {
107: return MessageID(FDD_UNLOAD_0 + n);
108: }
109:
1.1.1.4 ! root 110: static MessageID HOSTNET_RX(int n) {
! 111: return MessageID(HOSTNET0_RX + n);
! 112: }
! 113:
1.1 root 114: private:
115: int id;
116: };
117:
118: using MessageCallback_t = void (Device::*)(MessageID, uint32);
119: #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.