diff options
| author | salmonik <salmonik@tuta.io> | 2026-08-01 19:34:40 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-08-01 19:34:40 +0200 |
| commit | 9b9758e5ee2564b04685eadf2b9ce23dd1060b86 (patch) | |
| tree | 57fce9e715510ec70df70dc399b4440f3480fd77 /Makefile | |
| parent | fix pi-lens warnings: unwraps, shell SC2046, dup code (fmtbuf/scripts/hexdump... (diff) | |
| download | rs-dos-9b9758e5ee2564b04685eadf2b9ce23dd1060b86.tar.gz rs-dos-9b9758e5ee2564b04685eadf2b9ce23dd1060b86.zip | |
rsnix v0.4.0: GUI input foundation — PS/2 mouse + scheduler message queues
Mouse (IRQ12, stream mode): ByteRing generalized for both PS/2 devices,
ISR routes data-port bytes by the controller's aux bit; mouse_init with
bounded-ACK handshake (boots without a mouse); packet decoder with
bit-3 resync, screen-relative deltas, buttons. Exposed as /dev/mouse,
the `mouse` stream command, and `make test-mouse`.
Message queues (ADR 0003's GUI-era primitive): every task gets a static
16-slot TaskMsg ring; send/recv/recv_blocking with direct wake + tick
scan safety net for the lost-wakeup race; `msgrecv`/`send` commands,
`mouse <id>` routes real IRQ12 events into a task's queue, jobs shows
q=. `make test-msg` + `make test-disk` regression pass.
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 12 |
1 files changed, 11 insertions, 1 deletions
| @@ -14,7 +14,7 @@ export BOOT_EFI=$(ESP_DIR)/EFI/BOOT/BOOTX64.EFI | |||
| 14 | # Create one with: make disk (or: ./scripts/mkdisk.sh) | 14 | # Create one with: make disk (or: ./scripts/mkdisk.sh) |
| 15 | export DISK_IMG ?= /tmp/disk.img | 15 | export DISK_IMG ?= /tmp/disk.img |
| 16 | 16 | ||
| 17 | .PHONY: all run run-gui clean image debug release fmt bootloader boot-image disk disk-fresh inspect test-disk | 17 | .PHONY: all run run-gui clean image debug release fmt bootloader boot-image disk disk-fresh inspect test-disk test-mouse test-msg |
| 18 | 18 | ||
| 19 | # ---- Build --------------------------------------------------------------- | 19 | # ---- Build --------------------------------------------------------------- |
| 20 | 20 | ||
| @@ -113,6 +113,16 @@ inspect: | |||
| 113 | test-disk: | 113 | test-disk: |
| 114 | ./scripts/test-disk.sh | 114 | ./scripts/test-disk.sh |
| 115 | 115 | ||
| 116 | # Automated PS/2 mouse round trip: boot -> inject mouse_move/mouse_button | ||
| 117 | # via the monitor -> verify /dev/mouse + the `mouse` stream -> poweroff. | ||
| 118 | test-mouse: | ||
| 119 | ./scripts/test-mouse.sh | ||
| 120 | |||
| 121 | # Automated scheduler message-queue round trip: msgrecv/send, real-input | ||
| 122 | # routing into a task's queue, queue-full boundary. | ||
| 123 | test-msg: | ||
| 124 | ./scripts/test-msg.sh | ||
| 125 | |||
| 116 | # ---- Full boot chain ----------------------------------------------------- | 126 | # ---- Full boot chain ----------------------------------------------------- |
| 117 | 127 | ||
| 118 | # Build bootloader only (rsboot submodule) | 128 | # Build bootloader only (rsboot submodule) |
