--- nono/vm/message.h 2026/04/29 17:05:18 1.1.1.3 +++ nono/vm/message.h 2026/04/29 17:05:47 1.1.1.8 @@ -16,17 +16,21 @@ class MessageID { public: enum { - // リクエストフラグにビット割付されるメッセージ + // リクエストフラグにビット割付されるメッセージ。 // Bit0 は REQUEST_EXIT で使用しているため // こちらでは NONE に割り付けて衝突しないようにしている。 NONE = 0, - HOSTCOM_RX, - HOSTNET_RX, + HOSTCOM0_RX, + HOSTCOM1_RX, + HOSTCOM2_RX, + HOSTNET0_RX, + HOSTNET1_RX, MAX_REQUEST, - // ここ以降はキューイングされるメッセージ + // ここ以降はキューイングされるメッセージ。 + // 整数。 RESET, POWEROFF_EXIT, @@ -59,6 +63,18 @@ class MessageID FDD_UNLOAD_2, FDD_UNLOAD_3, + VIRTIO_BLOCK_DONE_0, + VIRTIO_BLOCK_DONE_1, + VIRTIO_BLOCK_DONE_2, + VIRTIO_BLOCK_DONE_3, + VIRTIO_BLOCK_DONE_4, + VIRTIO_BLOCK_DONE_5, + VIRTIO_BLOCK_DONE_6, + VIRTIO_BLOCK_DONE_7, + VIRTIO_NET_DONE, + VIRTIO_ENTROPY_DONE, + VIRTIO_SCSI_DONE, + KEY_INPUT, NMI, @@ -80,6 +96,7 @@ class MessageID MessageID() { id = NONE; } + // enum からの自動変換のため explicit つけない。 MessageID(int id_) { id = id_; } @@ -106,6 +123,18 @@ class MessageID return MessageID(FDD_UNLOAD_0 + n); } + static MessageID VIRTIO_BLOCK_DONE(int n) { + return MessageID(VIRTIO_BLOCK_DONE_0 + n); + } + + static MessageID HOSTCOM_RX(int n) { + return MessageID(HOSTCOM0_RX + n); + } + + static MessageID HOSTNET_RX(int n) { + return MessageID(HOSTNET0_RX + n); + } + private: int id; };