version 1.1.1.3, 2018/04/24 17:20:43
|
version 1.1.1.4, 2018/04/24 17:34:20
|
Line 3
|
Line 3
|
#define QEMU_COMMON_H |
#define QEMU_COMMON_H |
|
|
#define QEMU_NORETURN __attribute__ ((__noreturn__)) |
#define QEMU_NORETURN __attribute__ ((__noreturn__)) |
|
#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT |
|
#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) |
|
#else |
|
#define QEMU_WARN_UNUSED_RESULT |
|
#endif |
|
|
/* Hack around the mess dyngen-exec.h causes: We need QEMU_NORETURN in files that |
/* Hack around the mess dyngen-exec.h causes: We need QEMU_NORETURN in files that |
cannot include the following headers without conflicts. This condition has |
cannot include the following headers without conflicts. This condition has |
Line 32
|
Line 37
|
#ifndef O_BINARY |
#ifndef O_BINARY |
#define O_BINARY 0 |
#define O_BINARY 0 |
#endif |
#endif |
|
#ifndef MAP_ANONYMOUS |
|
#define MAP_ANONYMOUS MAP_ANON |
|
#endif |
#ifndef ENOMEDIUM |
#ifndef ENOMEDIUM |
#define ENOMEDIUM ENODEV |
#define ENOMEDIUM ENODEV |
#endif |
#endif |
|
#if !defined(ENOTSUP) |
|
#define ENOTSUP 4096 |
|
#endif |
|
|
#ifndef HAVE_IOVEC |
#ifndef CONFIG_IOVEC |
#define HAVE_IOVEC |
#define CONFIG_IOVEC |
struct iovec { |
struct iovec { |
void *iov_base; |
void *iov_base; |
size_t iov_len; |
size_t iov_len; |
Line 50 struct iovec {
|
Line 60 struct iovec {
|
#ifdef _WIN32 |
#ifdef _WIN32 |
#define fsync _commit |
#define fsync _commit |
#define lseek _lseeki64 |
#define lseek _lseeki64 |
#define ENOTSUP 4096 |
|
extern int qemu_ftruncate64(int, int64_t); |
extern int qemu_ftruncate64(int, int64_t); |
#define ftruncate qemu_ftruncate64 |
#define ftruncate qemu_ftruncate64 |
|
|
|
|
static inline char *realpath(const char *path, char *resolved_path) |
static inline char *realpath(const char *path, char *resolved_path) |
{ |
{ |
_fullpath(resolved_path, path, _MAX_PATH); |
_fullpath(resolved_path, path, _MAX_PATH); |
Line 85 typedef struct QEMUBH QEMUBH;
|
Line 93 typedef struct QEMUBH QEMUBH;
|
|
|
typedef void QEMUBHFunc(void *opaque); |
typedef void QEMUBHFunc(void *opaque); |
|
|
|
void async_context_push(void); |
|
void async_context_pop(void); |
|
int get_async_context_id(void); |
|
|
QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque); |
QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque); |
void qemu_bh_schedule(QEMUBH *bh); |
void qemu_bh_schedule(QEMUBH *bh); |
/* Bottom halfs that are scheduled from a bottom half handler are instantly |
/* Bottom halfs that are scheduled from a bottom half handler are instantly |
Line 97 void qemu_bh_schedule_idle(QEMUBH *bh);
|
Line 109 void qemu_bh_schedule_idle(QEMUBH *bh);
|
void qemu_bh_cancel(QEMUBH *bh); |
void qemu_bh_cancel(QEMUBH *bh); |
void qemu_bh_delete(QEMUBH *bh); |
void qemu_bh_delete(QEMUBH *bh); |
int qemu_bh_poll(void); |
int qemu_bh_poll(void); |
|
void qemu_bh_update_timeout(int *timeout); |
|
|
uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c); |
uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c); |
|
|
Line 111 int stristart(const char *str, const cha
|
Line 124 int stristart(const char *str, const cha
|
int qemu_strnlen(const char *s, int max_len); |
int qemu_strnlen(const char *s, int max_len); |
time_t mktimegm(struct tm *tm); |
time_t mktimegm(struct tm *tm); |
int qemu_fls(int i); |
int qemu_fls(int i); |
|
int qemu_fdatasync(int fd); |
|
|
|
/* path.c */ |
|
void init_paths(const char *prefix); |
|
const char *path(const char *pathname); |
|
|
#define qemu_isalnum(c) isalnum((unsigned char)(c)) |
#define qemu_isalnum(c) isalnum((unsigned char)(c)) |
#define qemu_isalpha(c) isalpha((unsigned char)(c)) |
#define qemu_isalpha(c) isalpha((unsigned char)(c)) |
Line 138 char *qemu_strndup(const char *str, size
|
Line 156 char *qemu_strndup(const char *str, size
|
void *get_mmap_addr(unsigned long size); |
void *get_mmap_addr(unsigned long size); |
|
|
|
|
|
void qemu_mutex_lock_iothread(void); |
|
void qemu_mutex_unlock_iothread(void); |
|
|
|
int qemu_open(const char *name, int flags, ...); |
|
void qemu_set_cloexec(int fd); |
|
|
|
#ifndef _WIN32 |
|
int qemu_pipe(int pipefd[2]); |
|
#endif |
|
|
/* Error handling. */ |
/* Error handling. */ |
|
|
void QEMU_NORETURN hw_error(const char *fmt, ...) |
void QEMU_NORETURN hw_error(const char *fmt, ...) |
Line 169 typedef struct PixelFormat PixelFormat;
|
Line 197 typedef struct PixelFormat PixelFormat;
|
typedef struct TextConsole TextConsole; |
typedef struct TextConsole TextConsole; |
typedef TextConsole QEMUConsole; |
typedef TextConsole QEMUConsole; |
typedef struct CharDriverState CharDriverState; |
typedef struct CharDriverState CharDriverState; |
|
typedef struct MACAddr MACAddr; |
typedef struct VLANState VLANState; |
typedef struct VLANState VLANState; |
|
typedef struct VLANClientState VLANClientState; |
typedef struct QEMUFile QEMUFile; |
typedef struct QEMUFile QEMUFile; |
typedef struct i2c_bus i2c_bus; |
typedef struct i2c_bus i2c_bus; |
typedef struct i2c_slave i2c_slave; |
typedef struct i2c_slave i2c_slave; |
typedef struct SMBusDevice SMBusDevice; |
typedef struct SMBusDevice SMBusDevice; |
typedef struct QEMUTimer QEMUTimer; |
typedef struct QEMUTimer QEMUTimer; |
|
typedef struct PCIHostState PCIHostState; |
|
typedef struct PCIExpressHost PCIExpressHost; |
typedef struct PCIBus PCIBus; |
typedef struct PCIBus PCIBus; |
typedef struct PCIDevice PCIDevice; |
typedef struct PCIDevice PCIDevice; |
typedef struct SerialState SerialState; |
typedef struct SerialState SerialState; |
Line 216 typedef struct QEMUIOVector {
|
Line 248 typedef struct QEMUIOVector {
|
void qemu_iovec_init(QEMUIOVector *qiov, int alloc_hint); |
void qemu_iovec_init(QEMUIOVector *qiov, int alloc_hint); |
void qemu_iovec_init_external(QEMUIOVector *qiov, struct iovec *iov, int niov); |
void qemu_iovec_init_external(QEMUIOVector *qiov, struct iovec *iov, int niov); |
void qemu_iovec_add(QEMUIOVector *qiov, void *base, size_t len); |
void qemu_iovec_add(QEMUIOVector *qiov, void *base, size_t len); |
|
void qemu_iovec_concat(QEMUIOVector *dst, QEMUIOVector *src, size_t size); |
void qemu_iovec_destroy(QEMUIOVector *qiov); |
void qemu_iovec_destroy(QEMUIOVector *qiov); |
void qemu_iovec_reset(QEMUIOVector *qiov); |
void qemu_iovec_reset(QEMUIOVector *qiov); |
void qemu_iovec_to_buffer(QEMUIOVector *qiov, void *buf); |
void qemu_iovec_to_buffer(QEMUIOVector *qiov, void *buf); |
Line 224 void qemu_iovec_from_buffer(QEMUIOVector
|
Line 257 void qemu_iovec_from_buffer(QEMUIOVector
|
struct Monitor; |
struct Monitor; |
typedef struct Monitor Monitor; |
typedef struct Monitor Monitor; |
|
|
|
/* Convert a byte between binary and BCD. */ |
|
static inline uint8_t to_bcd(uint8_t val) |
|
{ |
|
return ((val / 10) << 4) | (val % 10); |
|
} |
|
|
|
static inline uint8_t from_bcd(uint8_t val) |
|
{ |
|
return ((val >> 4) * 10) + (val & 0x0f); |
|
} |
|
|
#include "module.h" |
#include "module.h" |
|
|
#endif /* dyngen-exec.h hack */ |
#endif /* dyngen-exec.h hack */ |