summaryrefslogtreecommitdiff
path: root/emu/fbgl_preload.h
diff options
context:
space:
mode:
authorLevent Kaya <levent@dev>2025-11-22 21:35:32 +0300
committerLevent Kaya <levent@dev>2025-11-22 21:35:32 +0300
commit479c3a301c73f12ccab54a45d86ebb20be600663 (patch)
tree4753b270b5df5daa6c77c5e64978a97ee448b071 /emu/fbgl_preload.h
parent9fe39a2c099f8c4c4f0782716142404e6aad6080 (diff)
[feature] an emulator for viewing fbgl programs
Diffstat (limited to 'emu/fbgl_preload.h')
-rw-r--r--emu/fbgl_preload.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/emu/fbgl_preload.h b/emu/fbgl_preload.h
new file mode 100644
index 0000000..e736943
--- /dev/null
+++ b/emu/fbgl_preload.h
@@ -0,0 +1,41 @@
+#ifndef FBGL_PRELOAD_H
+#define FBGL_PRELOAD_H
+
+#include <stddef.h>
+#include <sys/types.h>
+
+// Framebuffer configuration
+#define FBGL_SHM_KEY 0x1234FBCD
+#define FBGL_WIDTH 800
+#define FBGL_HEIGHT 600
+#define FBGL_BPP 32
+#define FBGL_BYTES_PP (FBGL_BPP / 8)
+#define FBGL_PITCH (FBGL_WIDTH * FBGL_BYTES_PP)
+#define FBGL_SIZE (FBGL_PITCH * FBGL_HEIGHT)
+
+// Virtual framebuffer file descriptor magic number
+#define FBGL_VIRTUAL_FD 1000
+
+// Framebuffer state structure
+typedef struct {
+ int virtual_fd; // Virtual file descriptor for /dev/fb0
+ void* shared_mem; // Pointer to shared memory
+ int shm_id; // Shared memory ID
+ int is_initialized; // Initialization flag
+ size_t total_writes; // Statistics: number of writes
+ size_t bytes_written; // Statistics: total bytes written
+} fbgl_state_t;
+
+// Original function pointers structure
+typedef struct {
+ int (*open)(const char*, int, ...);
+ int (*close)(int);
+ int (*ioctl)(int, unsigned long, ...);
+ void* (*mmap)(void*, size_t, int, int, int, off_t);
+ int (*munmap)(void*, size_t);
+ ssize_t (*write)(int, const void*, size_t);
+ ssize_t (*read)(int, void*, size_t);
+} fbgl_original_funcs_t;
+
+
+#endif // FBGL_PRELOAD_H