~vcs-imports/qemu/git

« back to all changes in this revision

Viewing changes to osdep.h

  • Committer: bellard
  • Date: 2004-04-22 00:10:48 UTC
  • Revision ID: git-v1:f0cbd3ec9f4a3de1a9ef94deda09704543889f44
initial user mode network support


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@733 c046a42c-6fe2-441c-8c8c-71466251a162

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
#define QEMU_OSDEP_H
3
3
 
4
4
#include <stdarg.h>
5
 
#ifdef __OpenBSD__
6
 
#include <sys/types.h>
7
 
#include <sys/signal.h>
8
 
#endif
9
 
 
10
 
#ifndef glue
11
 
#define xglue(x, y) x ## y
12
 
#define glue(x, y) xglue(x, y)
13
 
#define stringify(s)    tostring(s)
14
 
#define tostring(s)     #s
15
 
#endif
16
 
 
17
 
#ifndef likely
18
 
#if __GNUC__ < 3
19
 
#define __builtin_expect(x, n) (x)
20
 
#endif
21
 
 
22
 
#define likely(x)   __builtin_expect(!!(x), 1)
23
 
#define unlikely(x)   __builtin_expect(!!(x), 0)
24
 
#endif
25
 
 
26
 
#ifndef offsetof
27
 
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
28
 
#endif
29
 
#ifndef container_of
30
 
#define container_of(ptr, type, member) ({                      \
31
 
        const typeof(((type *) 0)->member) *__mptr = (ptr);     \
32
 
        (type *) ((char *) __mptr - offsetof(type, member));})
33
 
#endif
34
 
 
35
 
#ifndef MIN
36
 
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
37
 
#endif
38
 
#ifndef MAX
39
 
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
40
 
#endif
41
 
 
42
 
#ifndef ARRAY_SIZE
43
 
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
44
 
#endif
45
 
 
46
 
#ifndef always_inline
47
 
#if (__GNUC__ < 3) || defined(__APPLE__)
48
 
#define always_inline inline
49
 
#else
50
 
#define always_inline __attribute__ (( always_inline )) __inline__
51
 
#define inline always_inline
52
 
#endif
53
 
#else
54
 
#define inline always_inline
55
 
#endif
56
 
 
57
 
#ifdef __i386__
58
 
#define REGPARM __attribute((regparm(3)))
59
 
#else
60
 
#define REGPARM
61
 
#endif
62
 
 
63
 
#define qemu_printf printf
64
 
 
65
 
#if defined (__GNUC__) && defined (__GNUC_MINOR_)
66
 
# define QEMU_GNUC_PREREQ(maj, min) \
67
 
         ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
68
 
#else
69
 
# define QEMU_GNUC_PREREQ(maj, min) 0
70
 
#endif
71
 
 
72
 
void *qemu_memalign(size_t alignment, size_t size);
73
 
void *qemu_vmalloc(size_t size);
74
 
void qemu_vfree(void *ptr);
75
 
 
76
 
int qemu_create_pidfile(const char *filename);
77
 
 
78
 
#ifdef _WIN32
79
 
int ffs(int i);
80
 
 
81
 
typedef struct {
82
 
    long tv_sec;
83
 
    long tv_usec;
84
 
} qemu_timeval;
85
 
int qemu_gettimeofday(qemu_timeval *tp);
86
 
#else
87
 
typedef struct timeval qemu_timeval;
88
 
#define qemu_gettimeofday(tp) gettimeofday(tp, NULL);
89
 
#endif /* !_WIN32 */
 
5
 
 
6
int qemu_vsnprintf(char *buf, int buflen, const char *fmt, va_list args);
 
7
void qemu_vprintf(const char *fmt, va_list ap);
 
8
void qemu_printf(const char *fmt, ...);
 
9
 
 
10
void *qemu_malloc(size_t size);
 
11
void *qemu_mallocz(size_t size);
 
12
void qemu_free(void *ptr);
 
13
 
 
14
void *get_mmap_addr(unsigned long size);
 
15
 
 
16
/* specific kludges for OS compatibility (should be moved elsewhere) */
 
17
#if defined(__i386__) && !defined(CONFIG_SOFTMMU) && !defined(CONFIG_USER_ONLY)
 
18
 
 
19
/* disabled pthread version of longjmp which prevent us from using an
 
20
   alternative signal stack */
 
21
extern void __longjmp(jmp_buf env, int val);
 
22
#define longjmp __longjmp
 
23
 
 
24
#endif
90
25
 
91
26
#endif