PowerPC system emulation (Jocelyn Mayer) - modified patch to use new TLB api
[qemu] / vl.h
diff --git a/vl.h b/vl.h
index fa7d5da..a65440f 100644 (file)
--- a/vl.h
+++ b/vl.h
 #define VL_H
 
 /* vl.c */
+struct CPUX86State;
+extern int reset_requested;
+extern int64_t ticks_per_sec;
+
+typedef void (IOPortWriteFunc)(struct CPUX86State *env, uint32_t address, uint32_t data);
+typedef uint32_t (IOPortReadFunc)(struct CPUX86State *env, uint32_t address);
+
 void *get_mmap_addr(unsigned long size);
+int register_ioport_read(int start, int length, IOPortReadFunc *func, int size);
+int register_ioport_write(int start, int length, IOPortWriteFunc *func, int size);
+void pic_set_irq(int irq, int level);
+int64_t cpu_get_ticks(void);
+
+void kbd_put_keycode(int keycode);
+
+#define MOUSE_EVENT_LBUTTON 0x01
+#define MOUSE_EVENT_RBUTTON 0x02
+#define MOUSE_EVENT_MBUTTON 0x04
+void kbd_mouse_event(int dx, int dy, int dz, int buttons_state);
 
 /* block.c */
 typedef struct BlockDriverState BlockDriverState;
@@ -45,11 +63,85 @@ int bdrv_commit(BlockDriverState *bs);
 
 struct cow_header_v2 {
     uint32_t magic;
-    uint32_t  long version;
+    uint32_t version;
     char backing_file[1024];
     int32_t mtime;
     uint64_t size;
     uint32_t sectorsize;
 };
 
+/* vga.c */
+
+#define VGA_RAM_SIZE (8192 * 1024)
+
+typedef struct DisplayState {
+    uint8_t *data;
+    int linesize;
+    int depth;
+    void (*dpy_update)(struct DisplayState *s, int x, int y, int w, int h);
+    void (*dpy_resize)(struct DisplayState *s, int w, int h);
+    void (*dpy_refresh)(struct DisplayState *s);
+} DisplayState;
+
+static inline void dpy_update(DisplayState *s, int x, int y, int w, int h)
+{
+    s->dpy_update(s, x, y, w, h);
+}
+
+static inline void dpy_resize(DisplayState *s, int w, int h)
+{
+    s->dpy_resize(s, w, h);
+}
+
+int vga_init(DisplayState *ds, uint8_t *vga_ram_base, 
+             unsigned long vga_ram_offset, int vga_ram_size);
+void vga_update_display(void);
+
+/* sdl.c */
+void sdl_display_init(DisplayState *ds);
+
+/* ide.c */
+#define MAX_DISKS 4
+
+extern BlockDriverState *bs_table[MAX_DISKS];
+
+void ide_init(void);
+void ide_set_geometry(int n, int cyls, int heads, int secs);
+void ide_set_cdrom(int n, int is_cdrom);
+
+/* oss.c */
+typedef enum {
+  AUD_FMT_U8,
+  AUD_FMT_S8,
+  AUD_FMT_U16,
+  AUD_FMT_S16
+} audfmt_e;
+
+void AUD_open (int rfreq, int rnchannels, audfmt_e rfmt);
+void AUD_reset (int rfreq, int rnchannels, audfmt_e rfmt);
+int AUD_write (void *in_buf, int size);
+void AUD_run (void);
+void AUD_adjust_estimate (int _leftover);
+int AUD_get_free (void);
+int AUD_get_live (void);
+int AUD_get_buffer_size (void);
+void AUD_init (void);
+
+/* dma.c */
+typedef int (*DMA_read_handler) (uint32_t addr, int size, int *irq);
+typedef int (*DMA_misc_handler) (int);
+
+int DMA_get_channel_mode (int nchan);
+void DMA_hold_DREQ (int nchan);
+void DMA_release_DREQ (int nchan);
+void DMA_run (void);
+void DMA_init (void);
+void DMA_register_channel (int nchan,
+                           DMA_read_handler read_handler,
+                           DMA_misc_handler misc_handler);
+
+/* sb16.c */
+void SB16_run (void);
+void SB16_init (void);
 #endif /* VL_H */