1e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#ifndef _PERF_LINUX_TYPES_H_
2e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#define _PERF_LINUX_TYPES_H_
3e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
4e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include <asm/types.h>
5e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
6e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#ifndef __bitwise
7e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#define __bitwise
8e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#endif
9e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
10e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#ifndef __le32
11e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengtypedef __u32 __bitwise __le32;
12e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#endif
13e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
14e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#define DECLARE_BITMAP(name,bits) \
15e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	unsigned long name[BITS_TO_LONGS(bits)]
16e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
17e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct list_head {
18e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	struct list_head *next, *prev;
19e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng};
20e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
21e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct hlist_head {
22e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	struct hlist_node *first;
23e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng};
24e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
25e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct hlist_node {
26e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng	struct hlist_node *next, **pprev;
27e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng};
28e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng
29e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#endif
30