Statistics
| Branch: | Revision:

root / hw / hw.h @ 2ca83a8d

History | View | Annotate | Download (2.8 kB)

1
/* Declarations for use by hardware emulation.  */
2
#ifndef QEMU_HW_H
3
#define QEMU_HW_H
4

    
5
#include "qemu-common.h"
6
#include "irq.h"
7

    
8
/* VM Load/Save */
9

    
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);
23

    
24
static inline void qemu_put_be64s(QEMUFile *f, const uint64_t *pv)
25
{
26
    qemu_put_be64(f, *pv);
27
}
28

    
29
static inline void qemu_put_be32s(QEMUFile *f, const uint32_t *pv)
30
{
31
    qemu_put_be32(f, *pv);
32
}
33

    
34
static inline void qemu_put_be16s(QEMUFile *f, const uint16_t *pv)
35
{
36
    qemu_put_be16(f, *pv);
37
}
38

    
39
static inline void qemu_put_8s(QEMUFile *f, const uint8_t *pv)
40
{
41
    qemu_put_byte(f, *pv);
42
}
43

    
44
static inline void qemu_get_be64s(QEMUFile *f, uint64_t *pv)
45
{
46
    *pv = qemu_get_be64(f);
47
}
48

    
49
static inline void qemu_get_be32s(QEMUFile *f, uint32_t *pv)
50
{
51
    *pv = qemu_get_be32(f);
52
}
53

    
54
static inline void qemu_get_be16s(QEMUFile *f, uint16_t *pv)
55
{
56
    *pv = qemu_get_be16(f);
57
}
58

    
59
static inline void qemu_get_8s(QEMUFile *f, uint8_t *pv)
60
{
61
    *pv = qemu_get_byte(f);
62
}
63

    
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
77

    
78
int64_t qemu_ftell(QEMUFile *f);
79
int64_t qemu_fseek(QEMUFile *f, int64_t pos, int whence);
80

    
81
typedef void SaveStateHandler(QEMUFile *f, void *opaque);
82
typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);
83

    
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);
90

    
91
typedef void QEMUResetHandler(void *opaque);
92

    
93
void qemu_register_reset(QEMUResetHandler *func, void *opaque);
94

    
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);
99

    
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);
103

    
104
#endif