Whamcloud - gitweb
b=23289 new API: cfs_waitq_add_exclusive_head
[fs/lustre-release.git] / libcfs / include / libcfs / libcfs_debug.h
index ff6fbd5..44b2e07 100644 (file)
@@ -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.
  */
 /*
@@ -55,7 +55,7 @@ extern cfs_duration_t libcfs_console_max_delay;
 extern cfs_duration_t libcfs_console_min_delay;
 extern unsigned int libcfs_console_backoff;
 extern unsigned int libcfs_debug_binary;
-extern char debug_file_path_arr[1024];
+extern char libcfs_debug_file_path_arr[PATH_MAX];
 
 int libcfs_debug_mask2str(char *str, int size, int mask, int is_subsys);
 int libcfs_debug_str2mask(int *mask, const char *str, int is_subsys);
@@ -72,7 +72,8 @@ struct ptldebug_header {
         __u32 ph_flags;
         __u32 ph_subsys;
         __u32 ph_mask;
-        __u32 ph_cpu_id;
+        __u16 ph_cpu_id;
+        __u16 ph_type;
         __u32 ph_sec;
         __u64 ph_usec;
         __u32 ph_stack;
@@ -152,6 +153,8 @@ struct ptldebug_header {
 #define D_SEC         0x08000000
 /* keep these in sync with lnet/{utils,libcfs}/debug.c */
 
+#define D_HSM         D_TRACE
+
 #define D_CANTMASK   (D_ERROR | D_EMERG | D_WARNING | D_CONSOLE)
 
 #ifndef DEBUG_SUBSYSTEM
@@ -174,7 +177,7 @@ typedef struct {
 /**
  * Filters out logging messages based on mask and subsystem.
  */
-static inline int cdebug_show(unsigned int mask, unsigned int subsystem)
+static inline int cfs_cdebug_show(unsigned int mask, unsigned int subsystem)
 {
         return mask & D_CANTMASK ||
                 ((libcfs_debug & mask) && (libcfs_subsystem_debug & subsystem));
@@ -182,9 +185,9 @@ static inline int cdebug_show(unsigned int mask, unsigned int subsystem)
 
 #define __CDEBUG(cdls, mask, format, ...)                               \
 do {                                                                    \
-        CHECK_STACK();                                                  \
+        CFS_CHECK_STACK();                                              \
                                                                         \
-        if (cdebug_show(mask, DEBUG_SUBSYSTEM))                         \
+        if (cfs_cdebug_show(mask, DEBUG_SUBSYSTEM))                     \
                 libcfs_debug_msg(cdls, DEBUG_SUBSYSTEM, mask,           \
                                  __FILE__, __FUNCTION__, __LINE__,      \
                                  format, ## __VA_ARGS__);               \
@@ -200,7 +203,7 @@ do {                                            \
 } while (0)
 
 #else /* !CDEBUG_ENABLED */
-static inline int cdebug_show(unsigned int mask, unsigned int subsystem)
+static inline int cfs_cdebug_show(unsigned int mask, unsigned int subsystem)
 {
         return 0;
 }
@@ -225,6 +228,7 @@ do {                                                                    \
 
 #define CWARN(format, ...)          CDEBUG_LIMIT(D_WARNING, format, ## __VA_ARGS__)
 #define CERROR(format, ...)         CDEBUG_LIMIT(D_ERROR, format, ## __VA_ARGS__)
+#define CNETERR(format, a...)       CDEBUG_LIMIT(D_NETERROR, format, ## a)
 #define CEMERG(format, ...)         CDEBUG_LIMIT(D_EMERG, format, ## __VA_ARGS__)
 
 #define LCONSOLE(mask, format, ...) CDEBUG(D_CONSOLE | (mask), format, ## __VA_ARGS__)
@@ -332,33 +336,37 @@ extern int libcfs_debug_vmsg2(cfs_debug_limit_state_t *cdls,
     libcfs_debug_vmsg2(cdls, subsys, mask, file, fn,line,NULL,NULL,format, ## __VA_ARGS__)
 
 #define cdebug_va(cdls, mask, file, func, line, fmt, args)      do {          \
-        CHECK_STACK();                                                        \
+        CFS_CHECK_STACK();                                                    \
                                                                               \
-        if (cdebug_show(mask, DEBUG_SUBSYSTEM))                               \
+        if (cfs_cdebug_show(mask, DEBUG_SUBSYSTEM))                           \
                 libcfs_debug_vmsg(cdls, DEBUG_SUBSYSTEM, (mask),              \
                                   (file), (func), (line), fmt, args);         \
-} while(0);
+} while(0)
 
 #define cdebug(cdls, mask, file, func, line, fmt, ...) do {                   \
-        CHECK_STACK();                                                        \
+        CFS_CHECK_STACK();                                                    \
                                                                               \
-        if (cdebug_show(mask, DEBUG_SUBSYSTEM))                               \
+        if (cfs_cdebug_show(mask, DEBUG_SUBSYSTEM))                           \
                 libcfs_debug_msg(cdls, DEBUG_SUBSYSTEM, (mask),               \
                                  (file), (func), (line), fmt, ## __VA_ARGS__);\
-} while(0);
+} while(0)
 
 extern void libcfs_assertion_failed(const char *expr, const char *file,
                                     const char *fn, const int line);
 
+/* one more external symbol that tracefile provides: */
+extern int cfs_trace_copyout_string(char *usr_buffer, int usr_buffer_nob,
+                                    const char *knl_buffer, char *append);
+
 
 #if defined(HAVE_BGL_SUPPORT)
-#define DEBUG_FILE_PATH_DEFAULT "/bgl/ion/tmp/lustre-log"
+#define LIBCFS_DEBUG_FILE_PATH_DEFAULT "/bgl/ion/tmp/lustre-log"
 #elif defined(__arch_um__)
-#define DEBUG_FILE_PATH_DEFAULT "/r/tmp/lustre-log"
+#define LIBCFS_DEBUG_FILE_PATH_DEFAULT "/r/tmp/lustre-log"
 #elif defined(__WINNT__)
-#define DEBUG_FILE_PATH_DEFAULT "\\SystemRoot\\temp\\lustre-log"
+#define LIBCFS_DEBUG_FILE_PATH_DEFAULT "\\SystemRoot\\temp\\lustre-log"
 #else
-#define DEBUG_FILE_PATH_DEFAULT "/tmp/lustre-log"
+#define LIBCFS_DEBUG_FILE_PATH_DEFAULT "/tmp/lustre-log"
 #endif
 
 #endif /* __LIBCFS_DEBUG_H__ */