Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  * Copyright (c) 2000-2005 Silicon Graphics, Inc.
  3  * All Rights Reserved.
  4  *
  5  * This program is free software; you can redistribute it and/or
  6  * modify it under the terms of the GNU General Public License as
  7  * published by the Free Software Foundation.
  8  *
  9  * This program is distributed in the hope that it would be useful,
 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 12  * GNU General Public License for more details.
 13  *
 14  * You should have received a copy of the GNU General Public License
 15  * along with this program; if not, write the Free Software Foundation,
 16  * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 17  */
 18 #ifndef __XFS_SUPPORT_DEBUG_H__
 19 #define __XFS_SUPPORT_DEBUG_H__
 20 
 21 #include <stdarg.h>
 22 
 23 #define CE_DEBUG        7               /* debug        */
 24 #define CE_CONT         6               /* continuation */
 25 #define CE_NOTE         5               /* notice       */
 26 #define CE_WARN         4               /* warning      */
 27 #define CE_ALERT        1               /* alert        */
 28 #define CE_PANIC        0               /* panic        */
 29 
 30 extern void icmn_err(int, char *, va_list)
 31         __attribute__ ((format (printf, 2, 0)));
 32 extern void cmn_err(int, char *, ...)
 33         __attribute__ ((format (printf, 2, 3)));
 34 extern void assfail(char *expr, char *f, int l);
 35 
 36 #define ASSERT_ALWAYS(expr)     \
 37         (unlikely(expr) ? (void)0 : assfail(#expr, __FILE__, __LINE__))
 38 
 39 #ifndef DEBUG
 40 #define ASSERT(expr)    ((void)0)
 41 
 42 #ifndef STATIC
 43 # define STATIC static noinline
 44 #endif
 45 
 46 #ifndef STATIC_INLINE
 47 # define STATIC_INLINE static inline
 48 #endif
 49 
 50 #else /* DEBUG */
 51 
 52 #include <linux/random.h>
 53 
 54 #define ASSERT(expr)    \
 55         (unlikely(expr) ? (void)0 : assfail(#expr, __FILE__, __LINE__))
 56 
 57 #ifndef STATIC
 58 # define STATIC noinline
 59 #endif
 60 
 61 /*
 62  * We stop inlining of inline functions in debug mode.
 63  * Unfortunately, this means static inline in header files
 64  * get multiple definitions, so they need to remain static.
 65  * This then gives tonnes of warnings about unused but defined
 66  * functions, so we need to add the unused attribute to prevent
 67  * these spurious warnings.
 68  */
 69 #ifndef STATIC_INLINE
 70 # define STATIC_INLINE static __attribute__ ((unused)) noinline
 71 #endif
 72 
 73 #endif /* DEBUG */
 74 
 75 
 76 #endif  /* __XFS_SUPPORT_DEBUG_H__ */
 77 
  This page was automatically generated by the LXR engine.