linux/drivers/staging/lustre/include/linux/libcfs/linux/libcfs.h
<<
>>
Prefs
   1/*
   2 * GPL HEADER START
   3 *
   4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 only,
   8 * as published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope that it will be useful, but
  11 * WITHOUT ANY WARRANTY; without even the implied warranty of
  12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13 * General Public License version 2 for more details (a copy is included
  14 * in the LICENSE file that accompanied this code).
  15 *
  16 * You should have received a copy of the GNU General Public License
  17 * version 2 along with this program; If not, see
  18 * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
  19 *
  20 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  21 * CA 95054 USA or visit www.sun.com if you need additional information or
  22 * have any questions.
  23 *
  24 * GPL HEADER END
  25 */
  26/*
  27 * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  28 * Use is subject to license terms.
  29 *
  30 * Copyright (c) 2012, Intel Corporation.
  31 */
  32/*
  33 * This file is part of Lustre, http://www.lustre.org/
  34 * Lustre is a trademark of Sun Microsystems, Inc.
  35 */
  36
  37#ifndef __LIBCFS_LINUX_LIBCFS_H__
  38#define __LIBCFS_LINUX_LIBCFS_H__
  39
  40#ifndef __LIBCFS_LIBCFS_H__
  41#error Do not #include this file directly. #include <linux/libcfs/libcfs.h> instead
  42#endif
  43
  44
  45#include <linux/bitops.h>
  46#include <linux/compiler.h>
  47#include <linux/ctype.h>
  48#include <linux/errno.h>
  49#include <linux/file.h>
  50#include <linux/fs.h>
  51#include <linux/highmem.h>
  52#include <linux/interrupt.h>
  53#include <linux/kallsyms.h>
  54#include <linux/kernel.h>
  55#include <linux/kmod.h>
  56#include <linux/kthread.h>
  57#include <linux/miscdevice.h>
  58#include <linux/mm.h>
  59#include <linux/mm_inline.h>
  60#include <linux/module.h>
  61#include <linux/moduleparam.h>
  62#include <linux/mutex.h>
  63#include <linux/notifier.h>
  64#include <linux/proc_fs.h>
  65#include <linux/random.h>
  66#include <linux/rbtree.h>
  67#include <linux/rwsem.h>
  68#include <linux/scatterlist.h>
  69#include <linux/sched.h>
  70#include <linux/signal.h>
  71#include <linux/slab.h>
  72#include <linux/smp.h>
  73#include <linux/stat.h>
  74#include <linux/string.h>
  75#include <linux/time.h>
  76#include <linux/timer.h>
  77#include <linux/types.h>
  78#include <linux/unistd.h>
  79#include <linux/vmalloc.h>
  80#include <net/sock.h>
  81#include <linux/atomic.h>
  82#include <asm/div64.h>
  83#include <linux/timex.h>
  84#include <linux/uaccess.h>
  85#include <stdarg.h>
  86#include "linux-cpu.h"
  87#include "linux-time.h"
  88#include "linux-mem.h"
  89
  90
  91#define LUSTRE_TRACE_SIZE (THREAD_SIZE >> 5)
  92
  93#if !defined(__x86_64__)
  94# ifdef __ia64__
  95#  define CDEBUG_STACK() (THREAD_SIZE -                          \
  96                          ((unsigned long)__builtin_dwarf_cfa() &       \
  97                           (THREAD_SIZE - 1)))
  98# else
  99#  define CDEBUG_STACK() (THREAD_SIZE -                          \
 100                          ((unsigned long)__builtin_frame_address(0) &  \
 101                           (THREAD_SIZE - 1)))
 102# endif /* __ia64__ */
 103
 104#define __CHECK_STACK(msgdata, mask, cdls)                            \
 105do {                                                                \
 106        if (unlikely(CDEBUG_STACK() > libcfs_stack)) {            \
 107                LIBCFS_DEBUG_MSG_DATA_INIT(msgdata, D_WARNING, NULL);   \
 108                libcfs_stack = CDEBUG_STACK();                    \
 109                libcfs_debug_msg(msgdata,                              \
 110                                 "maximum lustre stack %lu\n",    \
 111                                 CDEBUG_STACK());                      \
 112                (msgdata)->msg_mask = mask;                          \
 113                (msgdata)->msg_cdls = cdls;                          \
 114                dump_stack();                                      \
 115              /*panic("LBUG");*/                                        \
 116        }                                                              \
 117} while (0)
 118#define CFS_CHECK_STACK(msgdata, mask, cdls)  __CHECK_STACK(msgdata, mask, cdls)
 119#else /* __x86_64__ */
 120#define CFS_CHECK_STACK(msgdata, mask, cdls) do {} while (0)
 121#define CDEBUG_STACK() (0L)
 122#endif /* __x86_64__ */
 123
 124/* initial pid  */
 125#define LUSTRE_LNET_PID   12345
 126
 127#define __current_nesting_level() (0)
 128
 129/**
 130 * Platform specific declarations for cfs_curproc API (libcfs/curproc.h)
 131 *
 132 * Implementation is in linux-curproc.c
 133 */
 134#define CFS_CURPROC_COMM_MAX (sizeof((struct task_struct *)0)->comm)
 135
 136#include <linux/capability.h>
 137
 138/* long integer with size equal to pointer */
 139typedef unsigned long ulong_ptr_t;
 140typedef long long_ptr_t;
 141
 142#ifndef WITH_WATCHDOG
 143#define WITH_WATCHDOG
 144#endif
 145
 146
 147#endif /* _LINUX_LIBCFS_H */
 148