VirtualBox

source: vbox/trunk/src/recompiler/qemu-common.h@ 36143

Last change on this file since 36143 was 36125, checked in by vboxsync, 14 years ago

recompiler: Removing traces of attempts at making the recompiler compile with the microsoft compiler. (untested)

  • Property svn:eol-style set to native
File size: 3.8 KB
Line 
1/* Common header file that is included by all of qemu. */
2#ifndef QEMU_COMMON_H
3#define QEMU_COMMON_H
4
5#ifdef VBOX
6
7# include <string.h>
8# include <inttypes.h>
9
10void pstrcpy(char *buf, int buf_size, const char *str);
11char *pstrcat(char *buf, int buf_size, const char *s);
12# define snprintf RTStrPrintf
13
14#else /* !VBOX */
15/* we put basic includes here to avoid repeating them in device drivers */
16#include <stdlib.h>
17#include <stdio.h>
18#include <stdarg.h>
19#include <string.h>
20#include <inttypes.h>
21#include <limits.h>
22#include <time.h>
23#include <ctype.h>
24#include <errno.h>
25#include <unistd.h>
26#include <fcntl.h>
27#include <sys/stat.h>
28
29#ifndef O_LARGEFILE
30#define O_LARGEFILE 0
31#endif
32#ifndef O_BINARY
33#define O_BINARY 0
34#endif
35
36#ifndef ENOMEDIUM
37#define ENOMEDIUM ENODEV
38#endif
39
40#ifdef _WIN32
41#define WIN32_LEAN_AND_MEAN
42#include <windows.h>
43#define fsync _commit
44#define lseek _lseeki64
45#define ENOTSUP 4096
46extern int qemu_ftruncate64(int, int64_t);
47#define ftruncate qemu_ftruncate64
48
49
50static inline char *realpath(const char *path, char *resolved_path)
51{
52 _fullpath(resolved_path, path, _MAX_PATH);
53 return resolved_path;
54}
55
56#define PRId64 "I64d"
57#define PRIx64 "I64x"
58#define PRIu64 "I64u"
59#define PRIo64 "I64o"
60#endif
61
62/* FIXME: Remove NEED_CPU_H. */
63#ifndef NEED_CPU_H
64
65#include "config-host.h"
66#include <setjmp.h>
67#include "osdep.h"
68#include "bswap.h"
69
70#else
71
72#include "cpu.h"
73
74#endif /* !defined(NEED_CPU_H) */
75
76/* bottom halves */
77typedef struct QEMUBH QEMUBH;
78
79typedef void QEMUBHFunc(void *opaque);
80
81QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque);
82void qemu_bh_schedule(QEMUBH *bh);
83void qemu_bh_cancel(QEMUBH *bh);
84void qemu_bh_delete(QEMUBH *bh);
85int qemu_bh_poll(void);
86
87uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c);
88
89void qemu_get_timedate(struct tm *tm, int offset);
90int qemu_timedate_diff(struct tm *tm);
91
92/* cutils.c */
93void pstrcpy(char *buf, int buf_size, const char *str);
94char *pstrcat(char *buf, int buf_size, const char *s);
95int strstart(const char *str, const char *val, const char **ptr);
96int stristart(const char *str, const char *val, const char **ptr);
97time_t mktimegm(struct tm *tm);
98
99void *qemu_malloc(size_t size);
100void *qemu_realloc(void *ptr, size_t size);
101void *qemu_mallocz(size_t size);
102void qemu_free(void *ptr);
103char *qemu_strdup(const char *str);
104
105void *get_mmap_addr(unsigned long size);
106
107
108/* Error handling. */
109
110void hw_error(const char *fmt, ...)
111 __attribute__ ((__format__ (__printf__, 1, 2)))
112 __attribute__ ((__noreturn__));
113
114/* IO callbacks. */
115typedef void IOReadHandler(void *opaque, const uint8_t *buf, int size);
116typedef int IOCanRWHandler(void *opaque);
117typedef void IOHandler(void *opaque);
118
119struct ParallelIOArg {
120 void *buffer;
121 int count;
122};
123
124typedef int (*DMA_transfer_handler) (void *opaque, int nchan, int pos, int size);
125
126/* A load of opaque types so that device init declarations don't have to
127 pull in all the real definitions. */
128typedef struct NICInfo NICInfo;
129typedef struct HCIInfo HCIInfo;
130typedef struct AudioState AudioState;
131typedef struct BlockDriverState BlockDriverState;
132typedef struct DisplayState DisplayState;
133typedef struct TextConsole TextConsole;
134typedef TextConsole QEMUConsole;
135typedef struct CharDriverState CharDriverState;
136typedef struct VLANState VLANState;
137typedef struct QEMUFile QEMUFile;
138typedef struct i2c_bus i2c_bus;
139typedef struct i2c_slave i2c_slave;
140typedef struct SMBusDevice SMBusDevice;
141typedef struct QEMUTimer QEMUTimer;
142typedef struct PCIBus PCIBus;
143typedef struct PCIDevice PCIDevice;
144typedef struct SerialState SerialState;
145typedef struct IRQState *qemu_irq;
146struct pcmcia_card_s;
147
148/* CPU save/load. */
149void cpu_save(QEMUFile *f, void *opaque);
150int cpu_load(QEMUFile *f, void *opaque, int version_id);
151
152/* Force QEMU to stop what it's doing and service IO */
153void qemu_service_io(void);
154#endif /* !VBOX */
155
156#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette