X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_list.h;h=0d8747e9efae39befdf303878a271f7380cbd0f3;hb=a6865d183eedbdf3e5510e4be89dcb5ce51b5953;hp=9fcf7995745c5b6a1ec38788ab6c57269a493c28;hpb=570ad6257ed18fbbc840c17a600f12f2dc44b010;p=palacios.git diff --git a/palacios/include/palacios/vmm_list.h b/palacios/include/palacios/vmm_list.h index 9fcf799..0d8747e 100644 --- a/palacios/include/palacios/vmm_list.h +++ b/palacios/include/palacios/vmm_list.h @@ -1,12 +1,25 @@ +/* Stolen From Linux list implementation */ +/* 2008, Modifications by Jack Lange */ + + #ifndef _VMM_LIST_H #define _VMM_LIST_H + +#ifdef __V3VEE__ + #include #undef offsetof #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) -static inline void prefetch(const void *x) {;} + +#define container_of(ptr, type, member) ({ \ + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ + (type *)( (char *)__mptr - offsetof(type,member) );}) + + +static inline void prefetch(const void *x) {const void * foo; foo = x;} /* * These are non-NULL pointers that will result in page faults @@ -519,4 +532,7 @@ static inline void hlist_add_after(struct hlist_node *n, pos = n) + +#endif // ! __V3VEE__ + #endif