From 6813209b5cc7ebe5ae501bd3a9e3dddeb6ad4f54 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Thu, 28 Apr 2011 16:40:41 +0300 Subject: [PATCH] kvm tools: Add kernel headers required for using list Adds kernel headers so that (and others) could be included directly. Signed-off-by: Sasha Levin Signed-off-by: Pekka Enberg --- tools/kvm/include/linux/kernel.h | 26 ++++++++++++++++++++++++++ tools/kvm/include/linux/prefetch.h | 6 ++++++ tools/kvm/include/linux/types.h | 12 ++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 tools/kvm/include/linux/kernel.h create mode 100644 tools/kvm/include/linux/prefetch.h diff --git a/tools/kvm/include/linux/kernel.h b/tools/kvm/include/linux/kernel.h new file mode 100644 index 000000000000..8d830379bb66 --- /dev/null +++ b/tools/kvm/include/linux/kernel.h @@ -0,0 +1,26 @@ +#ifndef KVM__LINUX_KERNEL_H_ +#define KVM__LINUX_KERNEL_H_ + +#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) + +#define ALIGN(x,a) __ALIGN_MASK(x,(typeof(x))(a)-1) +#define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask)) + +#ifndef offsetof +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) +#endif + +#ifndef container_of +/** + * container_of - cast a member of a structure out to the containing structure + * @ptr: the pointer to the member. + * @type: the type of the container struct this is embedded in. + * @member: the name of the member within the struct. + * + */ +#define container_of(ptr, type, member) ({ \ + const typeof(((type *)0)->member) * __mptr = (ptr); \ + (type *)((char *)__mptr - offsetof(type, member)); }) +#endif + +#endif diff --git a/tools/kvm/include/linux/prefetch.h b/tools/kvm/include/linux/prefetch.h new file mode 100644 index 000000000000..62f67889c52f --- /dev/null +++ b/tools/kvm/include/linux/prefetch.h @@ -0,0 +1,6 @@ +#ifndef KVM__LINUX_PREFETCH_H +#define KVM__LINUX_PREFETCH_H + +static inline void prefetch(void *a __attribute__((unused))) { } + +#endif diff --git a/tools/kvm/include/linux/types.h b/tools/kvm/include/linux/types.h index efd8519ca6c5..c7c444ea1559 100644 --- a/tools/kvm/include/linux/types.h +++ b/tools/kvm/include/linux/types.h @@ -46,4 +46,16 @@ typedef __u32 __bitwise __be32; typedef __u64 __bitwise __le64; typedef __u64 __bitwise __be64; +struct list_head { + struct list_head *next, *prev; +}; + +struct hlist_head { + struct hlist_node *first; +}; + +struct hlist_node { + struct hlist_node *next, **pprev; +}; + #endif /* LINUX_TYPES_H */ -- 2.39.5