]>
Commit | Line | Data |
---|---|---|
fc01f7e7 FB |
1 | /* |
2 | * QEMU System Emulator header | |
3 | * | |
4 | * Copyright (c) 2003 Fabrice Bellard | |
5 | * | |
6 | * Permission is hereby granted, free of charge, to any person obtaining a copy | |
7 | * of this software and associated documentation files (the "Software"), to deal | |
8 | * in the Software without restriction, including without limitation the rights | |
9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
10 | * copies of the Software, and to permit persons to whom the Software is | |
11 | * furnished to do so, subject to the following conditions: | |
12 | * | |
13 | * The above copyright notice and this permission notice shall be included in | |
14 | * all copies or substantial portions of the Software. | |
15 | * | |
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
19 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
22 | * THE SOFTWARE. | |
23 | */ | |
24 | #ifndef VL_H | |
25 | #define VL_H | |
26 | ||
33e3963e | 27 | /* vl.c */ |
313aa567 FB |
28 | struct CPUX86State; |
29 | extern int reset_requested; | |
30 | ||
31 | typedef void (IOPortWriteFunc)(struct CPUX86State *env, uint32_t address, uint32_t data); | |
32 | typedef uint32_t (IOPortReadFunc)(struct CPUX86State *env, uint32_t address); | |
33 | ||
33e3963e | 34 | void *get_mmap_addr(unsigned long size); |
313aa567 FB |
35 | int register_ioport_read(int start, int length, IOPortReadFunc *func, int size); |
36 | int register_ioport_write(int start, int length, IOPortWriteFunc *func, int size); | |
37 | ||
38 | void kbd_put_keycode(int keycode); | |
39 | ||
40 | #define MOUSE_EVENT_LBUTTON 0x01 | |
41 | #define MOUSE_EVENT_RBUTTON 0x02 | |
42 | #define MOUSE_EVENT_MBUTTON 0x04 | |
43 | void kbd_mouse_event(int dx, int dy, int dz, int buttons_state); | |
33e3963e | 44 | |
fc01f7e7 FB |
45 | /* block.c */ |
46 | typedef struct BlockDriverState BlockDriverState; | |
47 | ||
33e3963e | 48 | BlockDriverState *bdrv_open(const char *filename, int snapshot); |
fc01f7e7 FB |
49 | void bdrv_close(BlockDriverState *bs); |
50 | int bdrv_read(BlockDriverState *bs, int64_t sector_num, | |
51 | uint8_t *buf, int nb_sectors); | |
52 | int bdrv_write(BlockDriverState *bs, int64_t sector_num, | |
53 | const uint8_t *buf, int nb_sectors); | |
54 | void bdrv_get_geometry(BlockDriverState *bs, int64_t *nb_sectors_ptr); | |
33e3963e FB |
55 | int bdrv_commit(BlockDriverState *bs); |
56 | ||
57 | /* user mode linux compatible COW file */ | |
58 | #define COW_MAGIC 0x4f4f4f4d /* MOOO */ | |
59 | #define COW_VERSION 2 | |
fc01f7e7 | 60 | |
33e3963e FB |
61 | struct cow_header_v2 { |
62 | uint32_t magic; | |
9dfa5b42 | 63 | uint32_t version; |
33e3963e FB |
64 | char backing_file[1024]; |
65 | int32_t mtime; | |
66 | uint64_t size; | |
67 | uint32_t sectorsize; | |
68 | }; | |
fc01f7e7 | 69 | |
313aa567 FB |
70 | /* vga.c */ |
71 | ||
72 | #define VGA_RAM_SIZE (8192 * 1024) | |
73 | ||
74 | typedef struct DisplayState { | |
75 | uint8_t *data; | |
76 | int linesize; | |
77 | int depth; | |
78 | void (*dpy_update)(struct DisplayState *s, int x, int y, int w, int h); | |
79 | void (*dpy_resize)(struct DisplayState *s, int w, int h); | |
80 | void (*dpy_refresh)(struct DisplayState *s); | |
81 | } DisplayState; | |
82 | ||
83 | static inline void dpy_update(DisplayState *s, int x, int y, int w, int h) | |
84 | { | |
85 | s->dpy_update(s, x, y, w, h); | |
86 | } | |
87 | ||
88 | static inline void dpy_resize(DisplayState *s, int w, int h) | |
89 | { | |
90 | s->dpy_resize(s, w, h); | |
91 | } | |
92 | ||
93 | int vga_init(DisplayState *ds, uint8_t *vga_ram_base, | |
94 | unsigned long vga_ram_offset, int vga_ram_size); | |
95 | void vga_update_display(void); | |
96 | ||
97 | /* sdl.c */ | |
98 | void sdl_display_init(DisplayState *ds); | |
99 | ||
fc01f7e7 | 100 | #endif /* VL_H */ |