Fix tswap size
[qemu/mini2440.git] / hw / hw.h
blobb84ace07fcc0c416b73086e427c36521ce95fe4e
1 /* Declarations for use by hardware emulation. */
2 #ifndef QEMU_HW_H
3 #define QEMU_HW_H
5 #include "qemu-common.h"
6 #include "irq.h"
8 /* VM Load/Save */
10 QEMUFile *qemu_fopen(const char *filename, const char *mode);
11 void qemu_fflush(QEMUFile *f);
12 void qemu_fclose(QEMUFile *f);
13 void qemu_put_buffer(QEMUFile *f, const uint8_t *buf, int size);
14 void qemu_put_byte(QEMUFile *f, int v);
15 void qemu_put_be16(QEMUFile *f, unsigned int v);
16 void qemu_put_be32(QEMUFile *f, unsigned int v);
17 void qemu_put_be64(QEMUFile *f, uint64_t v);
18 int qemu_get_buffer(QEMUFile *f, uint8_t *buf, int size);
19 int qemu_get_byte(QEMUFile *f);
20 unsigned int qemu_get_be16(QEMUFile *f);
21 unsigned int qemu_get_be32(QEMUFile *f);
22 uint64_t qemu_get_be64(QEMUFile *f);
24 static inline void qemu_put_be64s(QEMUFile *f, const uint64_t *pv)
26 qemu_put_be64(f, *pv);
29 static inline void qemu_put_be32s(QEMUFile *f, const uint32_t *pv)
31 qemu_put_be32(f, *pv);
34 static inline void qemu_put_be16s(QEMUFile *f, const uint16_t *pv)
36 qemu_put_be16(f, *pv);
39 static inline void qemu_put_8s(QEMUFile *f, const uint8_t *pv)
41 qemu_put_byte(f, *pv);
44 static inline void qemu_get_be64s(QEMUFile *f, uint64_t *pv)
46 *pv = qemu_get_be64(f);
49 static inline void qemu_get_be32s(QEMUFile *f, uint32_t *pv)
51 *pv = qemu_get_be32(f);
54 static inline void qemu_get_be16s(QEMUFile *f, uint16_t *pv)
56 *pv = qemu_get_be16(f);
59 static inline void qemu_get_8s(QEMUFile *f, uint8_t *pv)
61 *pv = qemu_get_byte(f);
64 #ifdef NEED_CPU_H
65 #if TARGET_LONG_BITS == 64
66 #define qemu_put_betl qemu_put_be64
67 #define qemu_get_betl qemu_get_be64
68 #define qemu_put_betls qemu_put_be64s
69 #define qemu_get_betls qemu_get_be64s
70 #else
71 #define qemu_put_betl qemu_put_be32
72 #define qemu_get_betl qemu_get_be32
73 #define qemu_put_betls qemu_put_be32s
74 #define qemu_get_betls qemu_get_be32s
75 #endif
76 #endif
78 int64_t qemu_ftell(QEMUFile *f);
79 int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence);
81 typedef void SaveStateHandler(QEMUFile *f, void *opaque);
82 typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);
84 int register_savevm(const char *idstr,
85 int instance_id,
86 int version_id,
87 SaveStateHandler *save_state,
88 LoadStateHandler *load_state,
89 void *opaque);
91 typedef void QEMUResetHandler(void *opaque);
93 void qemu_register_reset(QEMUResetHandler *func, void *opaque);
95 /* handler to set the boot_device for a specific type of QEMUMachine */
96 /* return 0 if success */
97 typedef int QEMUBootSetHandler(void *opaque, const char *boot_device);
98 void qemu_register_boot_set(QEMUBootSetHandler *func, void *opaque);
100 /* These should really be in isa.h, but are here to make pc.h happy. */
101 typedef void (IOPortWriteFunc)(void *opaque, uint32_t address, uint32_t data);
102 typedef uint32_t (IOPortReadFunc)(void *opaque, uint32_t address);
104 #endif