#include "../../vm/device.h" #include "../../vm/vm.h" #include #define IOCTL_GET_INFO 0x01 /* Screen device data */ typedef struct screen_device_data_s { u32 width; u32 height; u32 pos; u32 size; SDL_Window *window; SDL_Renderer *renderer; SDL_Texture *texture; } ScreenDeviceData; /* Mouse device data */ typedef struct mouse_device_data_s { u32 x; u32 y; u8 btn1; u8 btn2; u8 btn3; u8 btn4; u32 pos; u32 size; } MouseDeviceData; /* Keyboard device data */ typedef struct keyboard_device_data_s { const u8 *keys; i32 key_count; u32 pos; u32 size; } KeyboardDeviceData; i32 screen_open(void *data, u32 mode); i32 screen_read(void *data, u8 *buffer, u32 size); i32 screen_write(void *data, const u8 *buffer, u32 size); i32 screen_close(void *data); i32 screen_ioctl(void *data, u32 cmd, const u8 *buffer); i32 mouse_open(void *data, u32 mode); i32 mouse_read(void *data, u8 *buffer, u32 size); i32 mouse_write(void *data, const u8 *buffer, u32 size); i32 mouse_close(void *data); i32 keyboard_open(void *data, u32 mode); i32 keyboard_read(void *data, u8 *buffer, u32 size); i32 keyboard_write(void *data, const u8 *buffer, u32 size); i32 keyboard_close(void *data); i32 console_open(void *data, u32 mode); i32 console_read(void *data, u8 *buffer, u32 size); i32 console_write(void *data, const u8 *buffer, u32 size); i32 console_close(void *data); i32 console_ioctl(void *data, u32 cmd, const u8 *buffer);