diff options
author | behlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c> | 2008-08-11 17:20:11 +0000 |
---|---|---|
committer | behlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c> | 2008-08-11 17:20:11 +0000 |
commit | 6a6cafbe8dd1e33530e726ee7d1c3acc340c6c15 (patch) | |
tree | 4d21cd48abb1becadf99452fe9c6618f847ddd1f /include | |
parent | 86149aa255dcfb145bb4f2ad66b80dce4d620f34 (diff) |
Pull in timespec, list, and type compat changes to support
building against a wider range of kernels.
git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@152 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/list_compat.h | 27 | ||||
-rw-r--r-- | include/linux/time_compat.h | 21 | ||||
-rw-r--r-- | include/sys/types.h | 8 |
3 files changed, 56 insertions, 0 deletions
diff --git a/include/linux/list_compat.h b/include/linux/list_compat.h new file mode 100644 index 000000000..e5daa0410 --- /dev/null +++ b/include/linux/list_compat.h @@ -0,0 +1,27 @@ +#ifndef _SPL_LIST_COMPAT_H +#define _SPL_LIST_COMPAT_H + +#include <linux/list.h> + +#ifndef list_for_each_entry_safe_reverse + +/** + * list_for_each_entry_safe_reverse + * @pos: the type * to use as a loop cursor. + * @n: another type * to use as temporary storage + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + * + * Iterate backwards over list of given type, safe against removal + * of list entry. + */ +#define list_for_each_entry_safe_reverse(pos, n, head, member) \ + for (pos = list_entry((head)->prev, typeof(*pos), member), \ + n = list_entry(pos->member.prev, typeof(*pos), member); \ + &pos->member != (head); \ + pos = n, n = list_entry(n->member.prev, typeof(*n), member)) + +#endif /* list_for_each_entry_safe_reverse */ + +#endif /* SPL_LIST_COMPAT_H */ + diff --git a/include/linux/time_compat.h b/include/linux/time_compat.h new file mode 100644 index 000000000..1b4727dcd --- /dev/null +++ b/include/linux/time_compat.h @@ -0,0 +1,21 @@ +#ifndef _SPL_TIME_COMPAT_H +#define _SPL_TIME_COMPAT_H + +#include <linux/time.h> + +/* timespec_sub() API changes + * 2.6.18 - 2.6.x: Inline function provided by linux/time.h + */ +#ifndef HAVE_TIMESPEC_SUB +static inline struct timespec +timespec_sub(struct timespec lhs, struct timespec rhs) +{ + struct timespec ts_delta; + set_normalized_timespec(&ts_delta, lhs.tv_sec - rhs.tv_sec, + lhs.tv_nsec - rhs.tv_nsec); + return ts_delta; +} +#endif /* HAVE_TIMESPEC_SUB */ + +#endif /* _SPL_TIME_COMPAT_H */ + diff --git a/include/sys/types.h b/include/sys/types.h index eba23eae0..1dec7b8d0 100644 --- a/include/sys/types.h +++ b/include/sys/types.h @@ -13,6 +13,14 @@ extern "C" { typedef unsigned long uintptr_t; #endif +#ifndef ULLONG_MAX +#define ULLONG_MAX (~0ULL) +#endif + +#ifndef LLONG_MAX +#define LLONG_MAX ((long long)(~0ULL>>1)) +#endif + typedef enum { B_FALSE=0, B_TRUE=1 } boolean_t; typedef unsigned long intptr_t; typedef unsigned long ulong_t; |