Move offsetof to osdep.h, remove local defintions.

With this container_of can actually be used without causing build errors.
Reformat container_of.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5234 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
balrog 2008-09-16 13:36:57 +00:00
parent 2acf5af04d
commit ac509d8887
5 changed files with 7 additions and 18 deletions

View File

@ -61,10 +61,6 @@
#define REFCOUNT_SHIFT 1 /* refcount size is 2 bytes */
#ifndef offsetof
#define offsetof(type, field) ((size_t) &((type *)0)->field)
#endif
typedef struct QCowHeader {
uint32_t magic;
uint32_t version;

View File

@ -256,10 +256,6 @@ static inline void tb_add_jump(TranslationBlock *tb, int n,
TranslationBlock *tb_find_pc(unsigned long pc_ptr);
#ifndef offsetof
#define offsetof(type, field) ((size_t) &((type *)0)->field)
#endif
#if defined(_WIN32)
#define ASM_DATA_SECTION ".section \".data\"\n"
#define ASM_PREVIOUS_SECTION ".section .text\n"

View File

@ -549,10 +549,6 @@ int do_sigaction(int sig, const struct target_sigaction *act,
return ret;
}
#ifndef offsetof
#define offsetof(type, field) ((size_t) &((type *)0)->field)
#endif
static inline int copy_siginfo_to_user(target_siginfo_t *tinfo,
const target_siginfo_t *info)
{

View File

@ -40,10 +40,6 @@
//#define DEBUG
//#define DEBUG_COMPLETION
#ifndef offsetof
#define offsetof(type, field) ((size_t) &((type *)0)->field)
#endif
/*
* Supported types:
*

View File

@ -23,9 +23,14 @@
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
#ifndef offsetof
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
#endif
#ifndef container_of
#define container_of(ptr, type, member) ({ \
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})
const typeof(((type *) 0)->member) *__mptr = (ptr); \
(type *) ((char *) __mptr - offsetof(type, member));})
#endif
#ifndef MIN
#define MIN(a, b) (((a) < (b)) ? (a) : (b))