-/* -*- 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/
#error This include is only for kernel use.
#endif
-#ifdef HAVE_ASM_TYPES_H
-#include <asm/types.h>
-#endif
#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-tcpip.h>
#include <libcfs/linux/kp30.h>
+#ifdef HAVE_ASM_TYPES_H
+#include <asm/types.h>
+#endif
#include <linux/types.h>
#include <asm/timex.h>
#include <linux/sched.h> /* 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 CHECK_STACK() __CHECK_STACK(__FILE__, __func__, __LINE__)
+#define CFS_CHECK_STACK(msgdata, mask, cdls) __CHECK_STACK(msgdata, mask, cdls)
#else /* __x86_64__ */
-#define 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 __user *buffer, size_t *lenp,
+ int (*handler)(void *data, int write,
+ loff_t pos, void __user *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
+/*
+ * Macros to access common characteristics of "current" UNIX process.
+ */
+#define current_pid() (current->pid)
+#define current_comm() (current->comm)
+
+/* check if task is running in compat mode.*/
+int current_is_32bit(void);
+
#endif /* _LINUX_LIBCFS_H */