X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=libcfs%2Finclude%2Flibcfs%2Fposix%2Flibcfs.h;h=403861ce6a12863260253ab45c24f2524a48354f;hp=e6d91bc5de7e0c44ae4152733aa5274eefe6a3e3;hb=c4a6999ceec8ac95415de4cb6099182d3f67d1cb;hpb=8c47378b057e72d6125f4baffe8721e0734d0d3f diff --git a/libcfs/include/libcfs/posix/libcfs.h b/libcfs/include/libcfs/posix/libcfs.h index e6d91bc..403861c 100644 --- a/libcfs/include/libcfs/posix/libcfs.h +++ b/libcfs/include/libcfs/posix/libcfs.h @@ -67,6 +67,7 @@ #include #include #include +#include #ifdef HAVE_NETDB_H #include @@ -97,123 +98,31 @@ #endif #include -#include #include #include #include #include #include -#include #include -# define do_gettimeofday(tv) gettimeofday(tv, NULL); +#define do_gettimeofday(tv) gettimeofday(tv, NULL); typedef unsigned long long cfs_cycles_t; -#define IS_ERR(a) ((unsigned long)(a) > (unsigned long)-1000L) -#define IS_ERR_VALUE(a) (IS_ERR(a)) -#define PTR_ERR(a) ((long)(a)) -#define ERR_PTR(a) ((void*)((long)(a))) - /* this goes in posix-fs.h */ #include -#ifdef __linux__ #include -#endif #define fget(x) NULL #define fput(f) do {} while (0) -#ifdef __linux__ -/* Userpace byte flipping */ -# include -# include -# define __swab16(x) bswap_16(x) -# define __swab32(x) bswap_32(x) -# define __swab64(x) bswap_64(x) -# define __swab16s(x) do {*(x) = bswap_16(*(x));} while (0) -# define __swab32s(x) do {*(x) = bswap_32(*(x));} while (0) -# define __swab64s(x) do {*(x) = bswap_64(*(x));} while (0) -# if __BYTE_ORDER == __LITTLE_ENDIAN -# define le16_to_cpu(x) (x) -# define cpu_to_le16(x) (x) -# define le32_to_cpu(x) (x) -# define cpu_to_le32(x) (x) -# define le64_to_cpu(x) (x) -# define cpu_to_le64(x) (x) - -# define be16_to_cpu(x) bswap_16(x) -# define cpu_to_be16(x) bswap_16(x) -# define be32_to_cpu(x) bswap_32(x) -# define cpu_to_be32(x) bswap_32(x) -# define be64_to_cpu(x) (__u64)bswap_64(x) -# define cpu_to_be64(x) (__u64)bswap_64(x) -# else -# if __BYTE_ORDER == __BIG_ENDIAN -# define le16_to_cpu(x) bswap_16(x) -# define cpu_to_le16(x) bswap_16(x) -# define le32_to_cpu(x) bswap_32(x) -# define cpu_to_le32(x) bswap_32(x) -# define le64_to_cpu(x) (__u64)bswap_64(x) -# define cpu_to_le64(x) (__u64)bswap_64(x) - -# define be16_to_cpu(x) (x) -# define cpu_to_be16(x) (x) -# define be32_to_cpu(x) (x) -# define cpu_to_be32(x) (x) -# define be64_to_cpu(x) (x) -# define cpu_to_be64(x) (x) - -# else -# error "Unknown byte order" -# endif /* __BIG_ENDIAN */ -# endif /* __LITTLE_ENDIAN */ -#elif __APPLE__ -#define __cpu_to_le64(x) OSSwapHostToLittleInt64(x) -#define __cpu_to_le32(x) OSSwapHostToLittleInt32(x) -#define __cpu_to_le16(x) OSSwapHostToLittleInt16(x) - -#define __le16_to_cpu(x) OSSwapLittleToHostInt16(x) -#define __le32_to_cpu(x) OSSwapLittleToHostInt32(x) -#define __le64_to_cpu(x) OSSwapLittleToHostInt64(x) - -#define cpu_to_le64(x) __cpu_to_le64(x) -#define cpu_to_le32(x) __cpu_to_le32(x) -#define cpu_to_le16(x) __cpu_to_le16(x) - -#define le64_to_cpu(x) __le64_to_cpu(x) -#define le32_to_cpu(x) __le32_to_cpu(x) -#define le16_to_cpu(x) __le16_to_cpu(x) - -#define __swab16(x) OSSwapInt16(x) -#define __swab32(x) OSSwapInt32(x) -#define __swab64(x) OSSwapInt64(x) -#define __swab16s(x) do { *(x) = __swab16(*(x)); } while (0) -#define __swab32s(x) do { *(x) = __swab32(*(x)); } while (0) -#define __swab64s(x) do { *(x) = __swab64(*(x)); } while (0) -#endif - -#if !defined(ALIGN) -#define __ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) -#define ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a) - 1) -#endif - -# ifndef THREAD_SIZE /* x86_64 linux has THREAD_SIZE in userspace */ -# define THREAD_SIZE 8192 -# else -# endif +#ifndef THREAD_SIZE /* x86_64 linux has THREAD_SIZE in userspace */ +# define THREAD_SIZE 8192 +#endif /* THREAD_SIZE */ #define CFS_CHECK_STACK(msgdata, mask, cdls) do {} while(0) #define CDEBUG_STACK() (0L) -/* initial pid */ -#define LUSTRE_LNET_PID 12345 - -#define ENTRY_NESTING_SUPPORT (1) -#define ENTRY_NESTING do {;} while (0) -#define EXIT_NESTING do {;} while (0) -#define __current_nesting_level() (0) - /** * Platform specific declarations for cfs_curproc API (libcfs/curproc.h) * @@ -273,15 +182,24 @@ static inline int module_refcount(struct module *m) ***************************************************************************/ struct shrinker { - ; +#ifndef __INTEL_COMPILER + ; +#endif }; -#define DEFAULT_SEEKS (0) +struct shrinker_var { +#ifndef __INTEL_COMPILER + ; +#endif +}; -typedef int (*shrinker_t)(int, unsigned int); +#define DEF_SHRINKER_VAR(name, shrink, count, scan) \ + struct shrinker_var name = {}; + +#define DEFAULT_SEEKS (0) static inline -struct shrinker *set_shrinker(int seeks, shrinker_t shrink) +struct shrinker *set_shrinker(int seeks, struct shrinker_var *var) { return (struct shrinker *)0xdeadbea1; /* Cannot return NULL here */ } @@ -301,88 +219,87 @@ static inline void remove_shrinker(struct shrinker *shrinker) ***************************************************************************/ struct radix_tree_root { - cfs_list_t list; - void *rnode; + struct list_head list; + void *rnode; }; struct radix_tree_node { - cfs_list_t _node; - unsigned long index; - void *item; + struct list_head _node; + unsigned long index; + void *item; }; -#define RADIX_TREE_INIT(mask) { \ - NOT_IMPLEMENTED \ +#define RADIX_TREE_INIT(mask) { \ + NOT_IMPLEMENTED \ } #define RADIX_TREE(name, mask) \ struct radix_tree_root name = RADIX_TREE_INIT(mask) -#define INIT_RADIX_TREE(root, mask) \ -do { \ - CFS_INIT_LIST_HEAD(&((struct radix_tree_root *)root)->list); \ - ((struct radix_tree_root *)root)->rnode = NULL; \ +#define INIT_RADIX_TREE(root, mask) \ +do { \ + INIT_LIST_HEAD(&((struct radix_tree_root *)root)->list); \ + ((struct radix_tree_root *)root)->rnode = NULL; \ } while (0) static inline int radix_tree_insert(struct radix_tree_root *root, - unsigned long idx, void *item) + unsigned long idx, void *item) { - struct radix_tree_node *node; - node = malloc(sizeof(*node)); - if (!node) - return -ENOMEM; - - CFS_INIT_LIST_HEAD(&node->_node); - node->index = idx; - node->item = item; - cfs_list_add_tail(&node->_node, &root->list); - root->rnode = (void *)1001; - return 0; + struct radix_tree_node *node; + node = malloc(sizeof(*node)); + if (!node) + return -ENOMEM; + + INIT_LIST_HEAD(&node->_node); + node->index = idx; + node->item = item; + list_add_tail(&node->_node, &root->list); + root->rnode = (void *)1001; + return 0; } -static inline struct radix_tree_node *radix_tree_lookup0(struct radix_tree_root *root, - unsigned long idx) +static inline struct radix_tree_node * +radix_tree_lookup0(struct radix_tree_root *root, unsigned long idx) { - struct radix_tree_node *node; + struct radix_tree_node *node; - if (cfs_list_empty(&root->list)) - return NULL; + if (list_empty(&root->list)) + return NULL; - cfs_list_for_each_entry_typed(node, &root->list, - struct radix_tree_node, _node) - if (node->index == idx) - return node; + list_for_each_entry(node, &root->list, _node) + if (node->index == idx) + return node; - return NULL; + return NULL; } static inline void *radix_tree_lookup(struct radix_tree_root *root, - unsigned long idx) + unsigned long idx) { - struct radix_tree_node *node = radix_tree_lookup0(root, idx); + struct radix_tree_node *node = radix_tree_lookup0(root, idx); - if (node) - return node->item; - return node; + if (node) + return node->item; + return node; } static inline void *radix_tree_delete(struct radix_tree_root *root, - unsigned long idx) + unsigned long idx) { - struct radix_tree_node *p = radix_tree_lookup0(root, idx); - void *item; + struct radix_tree_node *p = radix_tree_lookup0(root, idx); + void *item; - if (p == NULL) - return NULL; + if (p == NULL) + return NULL; - cfs_list_del_init(&p->_node); - item = p->item; - free(p); - if (cfs_list_empty(&root->list)) - root->rnode = NULL; + list_del_init(&p->_node); + item = p->item; + free(p); + if (list_empty(&root->list)) + root->rnode = NULL; - return item; + return item; } static inline unsigned int @@ -492,4 +409,8 @@ typedef ssize_t (*read_actor_t)(); # define DTTOIF(dirtype) ((dirtype) << IFSHIFT) # endif +#ifndef ERESTARTSYS +#define ERESTARTSYS ERESTART +#endif + #endif