feat(lvgl): adapt LVGL for opencoreC with SSE2 SIMD blit, hardware tick, and desktop toast IPC
This commit is contained in:
+13
-5
@@ -522,11 +522,19 @@ static void handle_command(char *cmd) {
|
||||
printf("%u packets transmitted, %u received, %u%% packet loss\n",
|
||||
(unsigned int)transmitted, (unsigned int)received,
|
||||
(unsigned int)(transmitted > 0 ? ((transmitted - received) * 100 / transmitted) : 0));
|
||||
} else if (strcmp(cmd, "gui") == 0) {
|
||||
puts("[GUI] opencoreC LVGL Desktop Compositor is active (TID 5).");
|
||||
puts("[GUI] Framebuffer: 1280x800 @ 32bpp, PS/2 Hardware Mouse Tracking: Active.");
|
||||
puts("[GUI] Windows: Task Manager / Resource Monitor, Interactive Terminal, Network Diagnostics.");
|
||||
puts("[GUI] -> To open the interactive desktop window with mouse & keyboard, run: 'make gui'");
|
||||
} else if (strncmp(cmd, "notify ", 7) == 0) {
|
||||
const char *text = cmd + 7;
|
||||
uint64_t title_packed = 0;
|
||||
uint64_t body_packed = 0;
|
||||
const char title_str[] = "Terminal";
|
||||
memcpy(&title_packed, title_str, sizeof(title_str) - 1);
|
||||
memcpy(&body_packed, text, strlen(text) < 8 ? strlen(text) : 8);
|
||||
|
||||
register uint64_t rax __asm__("rax") = SYS_NOTIFY_SEND;
|
||||
register uint64_t rdi __asm__("rdi") = title_packed;
|
||||
register uint64_t rsi __asm__("rsi") = body_packed;
|
||||
__asm__ volatile("syscall" : "+r"(rax) : "r"(rdi), "r"(rsi) : "rcx", "r11", "memory");
|
||||
printf("[NOTIFY] Dispatched desktop notification to GUI Compositor: '%s'\n", text);
|
||||
} else if (strncmp(cmd, "write ", 6) == 0) {
|
||||
const char *msg = cmd + 6;
|
||||
ipc::Endpoint uart_service(UART_ENDPOINT);
|
||||
|
||||
Reference in New Issue
Block a user