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