X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Finclude%2Flibcfs%2Flinux%2Flibcfs.h;h=d8fcbca5bc85d2a2d1ab6702d7de19cc451752fd;hb=0f8dca08a4f68cba82c2c822998ecc309d3b7aaf;hp=72fd575fde4f30da84e72aae923aae3e1fd8d2e6;hpb=70e80ade90af09300396706b8910e196a7928520;p=fs%2Flustre-release.git diff --git a/libcfs/include/libcfs/linux/libcfs.h b/libcfs/include/libcfs/linux/libcfs.h index 72fd575..d8fcbca 100644 --- a/libcfs/include/libcfs/linux/libcfs.h +++ b/libcfs/include/libcfs/linux/libcfs.h @@ -16,8 +16,8 @@ * in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see [sun.com URL with a - * copy of GPLv2]. + * version 2 along with this program; If not, see + * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or @@ -26,7 +26,7 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. */ /* @@ -41,12 +41,11 @@ #error Do not #include this file directly. #include instead #endif -#ifdef HAVE_ASM_TYPES_H -#include -#else -#include +#ifndef __KERNEL__ +#error This include is only for kernel use. #endif + #include #include #include @@ -54,91 +53,21 @@ #include #include #include +#include +#include +#include - -#ifdef __KERNEL__ -# include -# include -# include -#else -# include -# include -# define do_gettimeofday(tv) gettimeofday(tv, NULL); -typedef unsigned long long cycles_t; -#endif - -#ifndef __KERNEL__ -/* 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) bswap_64(x) -# define cpu_to_be64(x) 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) bswap_64(x) -# define cpu_to_le64(x) 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 */ -#endif /* ! __KERNEL__ */ - -struct ptldebug_header { - __u32 ph_len; - __u32 ph_flags; - __u32 ph_subsys; - __u32 ph_mask; - __u32 ph_cpu_id; - __u32 ph_sec; - __u64 ph_usec; - __u32 ph_stack; - __u32 ph_pid; - __u32 ph_extern_pid; - __u32 ph_line_num; -} __attribute__((packed)); - -#ifdef __KERNEL__ -# include /* THREAD_SIZE */ -#else -# ifndef THREAD_SIZE /* x86_64 has THREAD_SIZE in userspace */ -# define THREAD_SIZE 8192 -# endif +#ifdef HAVE_ASM_TYPES_H +#include #endif +#include +#include +#include /* THREAD_SIZE */ +#define CFS_THREAD_SIZE THREAD_SIZE #define LUSTRE_TRACE_SIZE (THREAD_SIZE >> 5) -#if defined(__KERNEL__) && !defined(__x86_64__) +#if !defined(__x86_64__) # ifdef __ia64__ # define CDEBUG_STACK() (THREAD_SIZE - \ ((unsigned long)__builtin_dwarf_cfa() & \ @@ -158,15 +87,15 @@ do { \ libcfs_debug_msg(NULL, DEBUG_SUBSYSTEM, D_WARNING, \ file, func, line, \ "maximum lustre stack %lu\n", _stack); \ + dump_stack(); \ /*panic("LBUG");*/ \ } \ } while (0) -#define CHECK_STACK() __CHECK_STACK(__FILE__, __func__, __LINE__) -#else /* !__KERNEL__ */ -#define __CHECK_STACK(X, Y, Z) do { } while(0) -#define CHECK_STACK() do { } while(0) +#define CFS_CHECK_STACK() __CHECK_STACK(__FILE__, __func__, __LINE__) +#else /* __x86_64__ */ +#define CFS_CHECK_STACK() do { } while(0) #define CDEBUG_STACK() (0L) -#endif /* __KERNEL__ */ +#endif /* __x86_64__ */ /* initial pid */ #define LUSTRE_LNET_PID 12345 @@ -176,31 +105,62 @@ do { \ #define EXIT_NESTING do {;} while (0) #define __current_nesting_level() (0) -/* +/** * Platform specific declarations for cfs_curproc API (libcfs/curproc.h) * * Implementation is in linux-curproc.c */ #define CFS_CURPROC_COMM_MAX (sizeof ((struct task_struct *)0)->comm) -#if defined(__KERNEL__) #include typedef kernel_cap_t cfs_kernel_cap_t; -#else -typedef __u32 cfs_kernel_cap_t; -#endif -#if defined(__KERNEL__) /* * No stack-back-tracing in Linux for now. */ struct cfs_stack_trace { }; +/* long integer with size equal to pointer */ +typedef unsigned long ulong_ptr_t; +typedef long long_ptr_t; + #ifndef WITH_WATCHDOG #define WITH_WATCHDOG #endif -#endif +#ifndef HAVE_STRUCT_CRED + +#define current_cred() (current) + +#define current_cred_xxx(xxx) \ +({ \ + current->xxx; \ +}) + +#ifndef HAVE_CRED_WRAPPERS + +#define current_uid() (current_cred_xxx(uid)) +#define current_gid() (current_cred_xxx(gid)) +#define current_euid() (current_cred_xxx(euid)) +#define current_egid() (current_cred_xxx(egid)) +#define current_suid() (current_cred_xxx(suid)) +#define current_sgid() (current_cred_xxx(sgid)) +#define current_fsuid() (current_cred_xxx(fsuid)) +#define current_fsgid() (current_cred_xxx(fsgid)) +#define current_cap() (current_cred_xxx(cap_effective)) + +#endif /* HAVE_LINUX_CRED_H */ + +#define current_user() (current_cred_xxx(user)) +#define current_user_ns() (current_cred_xxx(user)->user_ns) +#define current_security() (current_cred_xxx(security)) + +#define cred task_struct + +#define prepare_creds() (current) +#define commit_creds(a) + +#endif /* HAVE_STRUCT_CRED */ #endif /* _LINUX_LIBCFS_H */