59 lines
1.5 KiB
C
59 lines
1.5 KiB
C
#include "../../vm/device.h"
|
|
#include "../../vm/vm.h"
|
|
#include <SDL2/SDL.h>
|
|
|
|
#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);
|