X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Finclude%2Fliblustre.h;h=56ed008b5102d469296fdad66aa2110d08af8866;hp=3c602cd8f9550a1f2945d6585da3652ca360fed8;hb=350abc09880fc4cc1085f462258bf6e0f7b933f2;hpb=191061ee668400324f4505cf498f1ee2d57e4962 diff --git a/lustre/include/liblustre.h b/lustre/include/liblustre.h index 3c602cd..56ed008 100644 --- a/lustre/include/liblustre.h +++ b/lustre/include/liblustre.h @@ -25,13 +25,18 @@ #define LIBLUSTRE_H__ #include -#ifndef __CYGWIN__ -#include -#include -#else -#include -#include "ioctl.h" +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_ASM_PAGE_H +# include +#endif +#ifdef HAVE_SYS_USER_H +# include #endif + +#include "ioctl.h" + #include #include #include @@ -40,9 +45,9 @@ #include #include -#include +#include #include -#include +#include /* definitions for liblustre */ @@ -197,16 +202,17 @@ struct module { int count; }; -static inline void MODULE_AUTHOR(char *name) -{ - printf("%s\n", name); -} -#define MODULE_DESCRIPTION(name) MODULE_AUTHOR(name) -#define MODULE_LICENSE(name) MODULE_AUTHOR(name) +#define MODULE_AUTHOR(name) +#define MODULE_DESCRIPTION(name) +#define MODULE_LICENSE(name) + +#define module_init(init) +#define module_exit(exit) #define THIS_MODULE NULL #define __init #define __exit +#define __user /* devices */ @@ -275,6 +281,14 @@ static inline void spin_unlock_bh(spinlock_t *l) {} static inline void spin_lock_irqsave(spinlock_t *a, unsigned long b) {} static inline void spin_unlock_irqrestore(spinlock_t *a, unsigned long b) {} +typedef struct { } rwlock_t; +#define rwlock_init(x) do {} while(0) +#define RW_LOCK_UNLOCKED (rwlock_t) {} +#define read_lock(l) +#define read_unlock(l) +#define write_lock(l) +#define write_unlock(l) + #define min(x,y) ((x)<(y) ? (x) : (y)) #define max(x,y) ((x)>(y) ? (x) : (y)) @@ -287,6 +301,10 @@ static inline void spin_unlock_irqrestore(spinlock_t *a, unsigned long b) {} ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; }) #endif +#define container_of(ptr, type, member) ({ \ + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ + (type *)( (char *)__mptr - offsetof(type,member) );}) + /* registering symbols */ #define ERESTARTSYS ERESTART @@ -313,6 +331,12 @@ static inline int copy_to_user(void *a,void *b, int c) return 0; } +static inline long strncpy_from_user(char *dest, const char *src, long n) +{ + char *s; + s = strncpy(dest, src, n); + return strnlen(s, n); +} /* slabs */ typedef struct { @@ -348,21 +372,13 @@ static inline int kmem_cache_destroy(kmem_cache_t *a) #define PAGE_CACHE_SHIFT PAGE_SHIFT #define PAGE_CACHE_MASK PAGE_MASK -struct page { - void *addr; - unsigned long index; - struct list_head list; - unsigned long private; - - /* internally used by liblustre file i/o */ - int _offset; - int _count; -}; +/* struct page decl moved out from here into portals/include/libcfs/user-prim.h */ /* 2.4 defines */ #define PAGE_LIST_ENTRY list #define PAGE_LIST(page) ((page)->list) +#define page_address(page) ((page)->addr) #define kmap(page) (page)->addr #define kunmap(a) do {} while (0) @@ -435,7 +451,7 @@ static inline struct page* __grab_cache_page(unsigned long index) #define ATTR_ATTR_FLAG 0x0400 #define ATTR_RAW 0x0800 /* file system, not vfs will massage attrs */ #define ATTR_FROM_OPEN 0x1000 /* called from open path, ie O_TRUNC */ -#define ATTR_CTIME_SET 0x2000 +/* ATTR_CTIME_SET has been defined in lustre_idl.h */ struct iattr { unsigned int ia_valid; @@ -465,25 +481,30 @@ struct iattr { #define INTENT_MAGIC 0x19620323 -struct lustre_intent_data { - int it_disposition; - int it_status; - __u64 it_lock_handle; - void *it_data; - int it_lock_mode; - int it_int_flags; -}; struct lookup_intent { int it_magic; void (*it_op_release)(struct lookup_intent *); int it_op; int it_flags; int it_create_mode; - union { - struct lustre_intent_data lustre; - } d; + union { + void *fs_data; /* FS-specific intent data */ + } d; +}; + +struct lustre_intent_data { + int it_disposition; + int it_status; + __u64 it_lock_handle; + void *it_data; + int it_lock_mode; + int it_int_flags; + void *it_key; + int it_key_size; }; +#define LUSTRE_IT(it) ((struct lustre_intent_data *)((it)->d.fs_data)) + static inline void intent_init(struct lookup_intent *it, int op, int flags) { memset(it, 0, sizeof(*it)); @@ -551,6 +572,8 @@ struct task_struct { struct signal pending; char comm[32]; int pid; + uid_t uid; + gid_t gid; int fsuid; int fsgid; int max_groups; @@ -609,6 +632,7 @@ static inline int schedule_timeout(signed long t) } #define lock_kernel() do {} while (0) +#define unlock_kernel() do {} while (0) #define daemonize(l) do {} while (0) #define sigfillset(l) do {} while (0) #define recalc_sigpending(l) do {} while (0) @@ -633,6 +657,14 @@ static inline int schedule_timeout(signed long t) #define time_after(a, b) ((long)(b) - (long)(a) < 0) #define time_before(a, b) time_after(b,a) +static inline unsigned long get_seconds(void) +{ + struct timeval tv; + + gettimeofday(&tv, NULL); + return (tv.tv_sec + tv.tv_usec / 1000000); +} + struct timer_list { struct list_head tl_list; void (*function)(unsigned long unused); @@ -666,6 +698,7 @@ static inline void del_timer(struct timer_list *l) 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) @@ -761,5 +794,4 @@ int liblustre_wait_event(int timeout); #include #include - #endif