]>
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); | |
5391d806 | 37 | void pic_set_irq(int irq, int level); |
313aa567 FB |
38 | |
39 | void kbd_put_keycode(int keycode); | |
40 | ||
41 | #define MOUSE_EVENT_LBUTTON 0x01 | |
42 | #define MOUSE_EVENT_RBUTTON 0x02 | |
43 | #define MOUSE_EVENT_MBUTTON 0x04 | |
44 | void kbd_mouse_event(int dx, int dy, int dz, int buttons_state); | |
33e3963e | 45 | |
fc01f7e7 FB |
46 | /* block.c */ |
47 | typedef struct BlockDriverState BlockDriverState; | |
48 | ||
33e3963e | 49 | BlockDriverState *bdrv_open(const char *filename, int snapshot); |
fc01f7e7 FB |
50 | void bdrv_close(BlockDriverState *bs); |
51 | int bdrv_read(BlockDriverState *bs, int64_t sector_num, | |
52 | uint8_t *buf, int nb_sectors); | |
53 | int bdrv_write(BlockDriverState *bs, int64_t sector_num, | |
54 | const uint8_t *buf, int nb_sectors); | |
55 | void bdrv_get_geometry(BlockDriverState *bs, int64_t *nb_sectors_ptr); | |
33e3963e FB |
56 | int bdrv_commit(BlockDriverState *bs); |
57 | ||
58 | /* user mode linux compatible COW file */ | |
59 | #define COW_MAGIC 0x4f4f4f4d /* MOOO */ | |
60 | #define COW_VERSION 2 | |
fc01f7e7 | 61 | |
33e3963e FB |
62 | struct cow_header_v2 { |
63 | uint32_t magic; | |
9dfa5b42 | 64 | uint32_t version; |
33e3963e FB |
65 | char backing_file[1024]; |
66 | int32_t mtime; | |
67 | uint64_t size; | |
68 | uint32_t sectorsize; | |
69 | }; | |
fc01f7e7 | 70 | |
313aa567 FB |
71 | /* vga.c */ |
72 | ||
73 | #define VGA_RAM_SIZE (8192 * 1024) | |
74 | ||
75 | typedef struct DisplayState { | |
76 | uint8_t *data; | |
77 | int linesize; | |
78 | int depth; | |
79 | void (*dpy_update)(struct DisplayState *s, int x, int y, int w, int h); | |
80 | void (*dpy_resize)(struct DisplayState *s, int w, int h); | |
81 | void (*dpy_refresh)(struct DisplayState *s); | |
82 | } DisplayState; | |
83 | ||
84 | static inline void dpy_update(DisplayState *s, int x, int y, int w, int h) | |
85 | { | |
86 | s->dpy_update(s, x, y, w, h); | |
87 | } | |
88 | ||
89 | static inline void dpy_resize(DisplayState *s, int w, int h) | |
90 | { | |
91 | s->dpy_resize(s, w, h); | |
92 | } | |
93 | ||
94 | int vga_init(DisplayState *ds, uint8_t *vga_ram_base, | |
95 | unsigned long vga_ram_offset, int vga_ram_size); | |
96 | void vga_update_display(void); | |
97 | ||
98 | /* sdl.c */ | |
99 | void sdl_display_init(DisplayState *ds); | |
100 | ||
5391d806 FB |
101 | /* ide.c */ |
102 | #define MAX_DISKS 4 | |
103 | ||
104 | extern BlockDriverState *bs_table[MAX_DISKS]; | |
105 | ||
106 | void ide_init(void); | |
107 | void ide_set_geometry(int n, int cyls, int heads, int secs); | |
108 | void ide_set_cdrom(int n, int is_cdrom); | |
109 | ||
fc01f7e7 | 110 | #endif /* VL_H */ |