Statistics
| Branch: | Revision:

root / osdep.h @ 83f64091

History | View | Annotate | Download (1.3 kB)

1
#ifndef QEMU_OSDEP_H
2
#define QEMU_OSDEP_H
3

    
4
#include <stdarg.h>
5

    
6
#define qemu_printf printf
7

    
8
void *qemu_malloc(size_t size);
9
void *qemu_mallocz(size_t size);
10
void qemu_free(void *ptr);
11
char *qemu_strdup(const char *str);
12

    
13
void *qemu_vmalloc(size_t size);
14
void qemu_vfree(void *ptr);
15

    
16
void *get_mmap_addr(unsigned long size);
17

    
18
/* specific kludges for OS compatibility (should be moved elsewhere) */
19
#if defined(__i386__) && !defined(CONFIG_SOFTMMU) && !defined(CONFIG_USER_ONLY)
20

    
21
/* disabled pthread version of longjmp which prevent us from using an
22
   alternative signal stack */
23
extern void __longjmp(jmp_buf env, int val);
24
#define longjmp __longjmp
25

    
26
#include <signal.h>
27

    
28
struct siginfo;
29

    
30
/* NOTE: it works only because the glibc sigset_t is >= kernel sigset_t */
31
struct qemu_sigaction {
32
    union {
33
        void (*_sa_handler)(int);
34
        void (*_sa_sigaction)(int, struct siginfo *, void *);
35
    } _u;
36
    unsigned long sa_flags;
37
    void (*sa_restorer)(void);
38
    sigset_t sa_mask;                /* mask last for extensibility */
39
};
40

    
41
int qemu_sigaction(int signum, const struct qemu_sigaction *act, 
42
                   struct qemu_sigaction *oldact);
43

    
44
#undef sigaction
45
#undef sa_handler
46
#undef sa_sigaction
47
#define sigaction qemu_sigaction
48
#define sa_handler        _u._sa_handler
49
#define sa_sigaction        _u._sa_sigaction
50

    
51
#endif
52

    
53
#endif