-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* 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.
+ *
+ * Copyright (c) 2012, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
#include <stdarg.h>
+#include <libcfs/linux/linux-cpu.h>
#include <libcfs/linux/linux-time.h>
#include <libcfs/linux/linux-mem.h>
#include <libcfs/linux/linux-prim.h>
#include <libcfs/linux/linux-lock.h>
#include <libcfs/linux/linux-fs.h>
#include <libcfs/linux/linux-tcpip.h>
-#include <libcfs/linux/linux-bitops.h>
-#include <libcfs/linux/linux-types.h>
#include <libcfs/linux/kp30.h>
#ifdef HAVE_ASM_TYPES_H
#include <linux/types.h>
#include <asm/timex.h>
#include <linux/sched.h> /* THREAD_SIZE */
-
-#define CFS_THREAD_SIZE THREAD_SIZE
-#define LUSTRE_TRACE_SIZE (THREAD_SIZE >> 5)
+#include <linux/rbtree.h>
+#include <linux/bitops.h>
#if !defined(__x86_64__)
# ifdef __ia64__
(THREAD_SIZE - 1)))
# endif /* __ia64__ */
-#define __CHECK_STACK(file, func, line) \
+#define __CHECK_STACK(msgdata, mask, cdls) \
do { \
- unsigned long _stack = CDEBUG_STACK(); \
- \
- if (_stack > 3*THREAD_SIZE/4 && _stack > libcfs_stack) { \
- libcfs_stack = _stack; \
- libcfs_debug_msg(NULL, DEBUG_SUBSYSTEM, D_WARNING, \
- file, func, line, \
- "maximum lustre stack %lu\n", _stack); \
+ if (unlikely(CDEBUG_STACK() > libcfs_stack)) { \
+ LIBCFS_DEBUG_MSG_DATA_INIT(msgdata, D_WARNING, NULL); \
+ libcfs_stack = CDEBUG_STACK(); \
+ libcfs_debug_msg(msgdata, \
+ "maximum lustre stack %lu\n", \
+ CDEBUG_STACK()); \
+ (msgdata)->msg_mask = mask; \
+ (msgdata)->msg_cdls = cdls; \
dump_stack(); \
/*panic("LBUG");*/ \
} \
} while (0)
-#define CFS_CHECK_STACK() __CHECK_STACK(__FILE__, __func__, __LINE__)
+#define CFS_CHECK_STACK(msgdata, mask, cdls) __CHECK_STACK(msgdata, mask, cdls)
#else /* __x86_64__ */
-#define CFS_CHECK_STACK() do { } while(0)
+#define CFS_CHECK_STACK(msgdata, mask, cdls) do {} while(0)
#define CDEBUG_STACK() (0L)
#endif /* __x86_64__ */
*/
#define CFS_CURPROC_COMM_MAX (sizeof ((struct task_struct *)0)->comm)
+/* helper for sysctl handlers */
+int lprocfs_call_handler(void *data, int write, loff_t *ppos, void *buffer,
+ size_t *lenp, int (*handler)(void *data, int write,
+ loff_t pos, void *buffer, int len));
+
#include <linux/capability.h>
-typedef kernel_cap_t cfs_kernel_cap_t;
/*
* 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
-#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)
+/*
+ * Macros to access common characteristics of "current" UNIX process.
+ */
+#define current_pid() (current->pid)
+#define current_comm() (current->comm)
-#endif /* HAVE_STRUCT_CRED */
+/* check if task is running in compat mode.*/
+int current_is_32bit(void);
#endif /* _LINUX_LIBCFS_H */