#define __LINUX_SPINLOCK_H
#endif
+#include <libcfs/libcfs.h>
+#include <lnet/lnet.h>
+#include <libcfs/user-bitops.h>
+
#include <sys/mman.h>
#ifdef HAVE_STDINT_H
# include <stdint.h>
#ifdef HAVE_SYS_IOCTL_H
# include <sys/ioctl.h>
#endif
-#ifndef _IOWR
-# include "ioctl.h"
-#endif
#include <stdio.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <assert.h>
+#include <libcfs/libcfs.h>
#include <libcfs/list.h>
#include <lnet/lnet.h>
-#include <libcfs/kp30.h>
+#include <libcfs/user-bitops.h>
+
+#ifndef _IOWR
+# include "ioctl.h"
+#endif
/* definitions for liblustre */
#ifdef __CYGWIN__
-#define CFS_PAGE_SHIFT 12
-#define CFS_PAGE_SIZE (1UL << CFS_PAGE_SHIFT)
-#define CFS_PAGE_MASK (~((__u64)CFS_PAGE_SIZE-1))
#define loff_t long long
#define ERESTART 2001
typedef unsigned short umode_t;
#endif
-#ifndef CURRENT_SECONDS
-# define CURRENT_SECONDS time(0)
-#endif
#ifndef ARRAY_SIZE
#define ARRAY_SIZE(a) ((sizeof (a))/(sizeof ((a)[0])))
/* always adopt 2.5 definitions */
#define KERNEL_VERSION(a,b,c) ((a)*100+(b)*10+c)
-#define LINUX_VERSION_CODE KERNEL_VERSION(2,5,0)
+#define LINUX_VERSION_CODE KERNEL_VERSION(2,6,5)
#ifndef page_private
#define page_private(page) ((page)->private)
typedef int (write_proc_t)(struct file *file, const char *buffer,
unsigned long count, void *data);
-#define NIPQUAD(addr) \
- ((unsigned char *)&addr)[0], \
- ((unsigned char *)&addr)[1], \
- ((unsigned char *)&addr)[2], \
- ((unsigned char *)&addr)[3]
-
-#if defined(__LITTLE_ENDIAN)
-#define HIPQUAD(addr) \
- ((unsigned char *)&addr)[3], \
- ((unsigned char *)&addr)[2], \
- ((unsigned char *)&addr)[1], \
- ((unsigned char *)&addr)[0]
-#elif defined(__BIG_ENDIAN)
-#define HIPQUAD NIPQUAD
-#else
-#error "Undefined byteorder??"
-#endif /* __LITTLE_ENDIAN */
-
/* bits ops */
/* a long can be more than 32 bits, so use BITS_PER_LONG
* to allow the compiler to adjust the bit shifting accordingly
*/
-/* test if bit nr is set in bitmap addr; returns previous value of bit nr */
-static __inline__ int set_bit(int nr, long * addr)
-{
- long mask;
-
- addr += nr / BITS_PER_LONG;
- mask = 1UL << (nr & (BITS_PER_LONG - 1));
- nr = (mask & *addr) != 0;
- *addr |= mask;
- return nr;
-}
-
-/* clear bit nr in bitmap addr; returns previous value of bit nr*/
-static __inline__ int clear_bit(int nr, long * addr)
-{
- long mask;
-
- addr += nr / BITS_PER_LONG;
- mask = 1UL << (nr & (BITS_PER_LONG - 1));
- nr = (mask & *addr) != 0;
- *addr &= ~mask;
- return nr;
-}
-
-static __inline__ int test_bit(int nr, const long * addr)
-{
- return ((1UL << (nr & (BITS_PER_LONG - 1))) & ((addr)[nr / BITS_PER_LONG])) != 0;
-}
-
static __inline__ int ext2_set_bit(int nr, void *addr)
{
- return set_bit(nr, (long*)addr);
+ return set_bit(nr, addr);
}
static __inline__ int ext2_clear_bit(int nr, void *addr)
{
- return clear_bit(nr, (long*)addr);
+ return clear_bit(nr, addr);
}
static __inline__ int ext2_test_bit(int nr, void *addr)
{
- return test_bit(nr, (long*)addr);
+ return test_bit(nr, addr);
}
/* modules */
#define read_unlock(l) spin_unlock(l)
#define write_lock(l) spin_lock(l)
#define write_unlock(l) spin_unlock(l)
-
+#define rwlock_init(l) spin_lock_init(l)
#define min(x,y) ((x)<(y) ? (x) : (y))
#define max(x,y) ((x)>(y) ? (x) : (y))
#define DECLARE_WAIT_QUEUE_HEAD(HEAD) \
wait_queue_head_t HEAD = { \
- .sleepers = LIST_HEAD_INIT(HEAD.sleepers) \
+ .sleepers = CFS_LIST_HEAD_INIT(HEAD.sleepers) \
}
-#define init_waitqueue_head(l) INIT_LIST_HEAD(&(l)->sleepers)
+#define init_waitqueue_head(l) CFS_INIT_LIST_HEAD(&(l)->sleepers)
#define wake_up(l) do { int a; a++; } while (0)
#define TASK_INTERRUPTIBLE 0
#define TASK_UNINTERRUPTIBLE 1
static inline int init_timer(struct timer_list *l)
{
- INIT_LIST_HEAD(&l->tl_list);
+ CFS_INIT_LIST_HEAD(&l->tl_list);
return 0;
}
typedef struct { volatile int counter; } atomic_t;
#define ATOMIC_INIT(i) { (i) }
+
#define atomic_read(a) ((a)->counter)
#define atomic_set(a,b) do {(a)->counter = b; } while (0)
#define atomic_dec_and_test(a) ((--((a)->counter)) == 0)
#define atomic_inc(a) (((a)->counter)++)
#define atomic_dec(a) do { (a)->counter--; } while (0)
#define atomic_add(b,a) do {(a)->counter += b;} while (0)
+#define atomic_add_return(n,a) ((a)->counter += n)
+#define atomic_inc_return(a) atomic_add_return(1,a)
#define atomic_sub(b,a) do {(a)->counter -= b;} while (0)
+#define atomic_sub_return(n,a) ((a)->counter -= n)
+#define atomic_dec_return(a) atomic_sub_return(1,a)
#ifndef likely
#define likely(exp) (exp)
cap_t cap_get_proc(void);
int cap_get_flag(cap_t, cap_value_t, cap_flag_t, cap_flag_value_t *);
-/* log related */
-static inline int llog_init_commit_master(void) { return 0; }
-static inline int llog_cleanup_commit_master(int force) { return 0; }
static inline void libcfs_run_lbug_upcall(char *file, const char *fn,
const int l){}
{
}
+#ifdef LIBLUSTRE_POSIX_ACL
+# ifndef posix_acl_xattr_entry
+# define posix_acl_xattr_entry xattr_acl_entry
+# endif
+# ifndef posix_acl_xattr_header
+# define posix_acl_xattr_header xattr_acl_header
+# endif
+# ifndef posix_acl_xattr_size
+# define posix_acl_xattr_size(entry) xattr_acl_size(entry)
+# endif
+# ifndef CONFIG_FS_POSIX_ACL
+# define CONFIG_FS_POSIX_ACL 1
+# endif
+#endif
+
#ifndef ENOTSUPP
#define ENOTSUPP ENOTSUP
#endif