#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])))
#ifndef smp_processor_id
#define smp_processor_id() 0
#endif
-#ifndef smp_num_cpus
-#define smp_num_cpus 1
+#ifndef num_online_cpus
+#define num_online_cpus() 1
+#endif
+#ifndef num_possible_cpus
+#define num_possible_cpus() 1
#endif
/* 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))
}
return pg;
}
+#define cfs_alloc_pages(mask, order) alloc_pages((mask), (order))
-#define alloc_page(mask) alloc_pages((mask), 0)
+#define alloc_page(mask) alloc_pages((mask), 0)
+#define cfs_alloc_page(mask) alloc_page(mask)
static inline void __free_pages(cfs_page_t *pg, int what)
{
#endif
free(pg);
}
+#define __cfs_free_pages(pg, order) __free_pages((pg), (order))
#define __free_page(page) __free_pages((page), 0)
#define free_page(page) __free_page(page)
+#define __cfs_free_page(page) __cfs_free_pages((page), 0)
static inline cfs_page_t* __grab_cache_page(unsigned long index)
{
#define ATTR_FROM_OPEN 0x1000 /* called from open path, ie O_TRUNC */
#define ATTR_CTIME_SET 0x2000
#define ATTR_BLOCKS 0x4000
+#define ATTR_KILL_SUID 0
+#define ATTR_KILL_SGID 0
struct iattr {
unsigned int ia_valid;
#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_INIT(i) { i }
+#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