X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Finclude%2Flibcfs%2Flibcfs_private.h;h=0b0bf7d2c7c890e1b19c5c8afc70fa68dfaaeec7;hb=e3a7c58aebafce40323db54bf6056029e5af4a70;hp=82810ad544f559c734d6e8fe25d484b1d68f2b36;hpb=68bbae08db0da2767bb46e370a43b24f6f1e3369;p=fs%2Flustre-release.git diff --git a/libcfs/include/libcfs/libcfs_private.h b/libcfs/include/libcfs/libcfs_private.h index 82810ad..0b0bf7d 100644 --- a/libcfs/include/libcfs/libcfs_private.h +++ b/libcfs/include/libcfs/libcfs_private.h @@ -1,6 +1,4 @@ -/* -*- 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. @@ -28,6 +26,8 @@ /* * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2011, Whamcloud, Inc. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -71,48 +71,35 @@ * * requires -Wall. Unfortunately this rules out use of likely/unlikely. */ -#define LASSERT(cond) \ +#define LASSERTF(cond, fmt, ...) \ do { \ if (cond) \ ; \ - else \ - libcfs_assertion_failed( #cond , __FILE__, \ - __FUNCTION__, __LINE__); \ -} while(0) - -#define LASSERTF(cond, fmt, ...) \ -do { \ - if (cond) \ - ; \ - else { \ - libcfs_debug_msg(NULL, DEBUG_SUBSYSTEM, D_EMERG, \ - __FILE__, __FUNCTION__,__LINE__, \ - "ASSERTION(" #cond ") failed: " fmt, \ + else { \ + LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, D_EMERG, NULL); \ + libcfs_debug_msg(&msgdata, \ + "ASSERTION( %s ) failed: " fmt, #cond, \ ## __VA_ARGS__); \ - LBUG(); \ - } \ + LBUG(); \ + } \ } while(0) -#else /* !LASSERT_CHECKED */ +#define LASSERT(cond) LASSERTF(cond, "\n") -#define LASSERT(cond) \ -do { \ - if (unlikely(!(cond))) \ - libcfs_assertion_failed(#cond , __FILE__, \ - __FUNCTION__, __LINE__); \ -} while(0) +#else /* !LASSERT_CHECKED */ #define LASSERTF(cond, fmt, ...) \ do { \ if (unlikely(!(cond))) { \ - libcfs_debug_msg(NULL, DEBUG_SUBSYSTEM, D_EMERG, \ - __FILE__, __FUNCTION__,__LINE__, \ - "ASSERTION(" #cond ") failed: " fmt, \ + LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, D_EMERG, NULL); \ + libcfs_debug_msg(&msgdata, \ + "ASSERTION( %s ) failed: " fmt, #cond, \ ## __VA_ARGS__ ); \ LBUG(); \ } \ } while(0) +#define LASSERT(cond) LASSERTF(cond, "\n") #endif /* !LASSERT_CHECKED */ #else /* !LIBCFS_DEBUG */ /* sizeof is to use expression without evaluating it. */ @@ -133,10 +120,13 @@ do { \ #define KLASSERT(e) LASSERT(e) -void lbug_with_loc(const char *file, const char *func, const int line) - __attribute__((noreturn)); +void lbug_with_loc(struct libcfs_debug_msg_data *) __attribute__((noreturn)); -#define LBUG() lbug_with_loc(__FILE__, __FUNCTION__, __LINE__) +#define LBUG() \ +do { \ + LIBCFS_DEBUG_MSG_DATA_DECL(msgdata, D_EMERG, NULL); \ + lbug_with_loc(&msgdata); \ +} while(0) extern cfs_atomic_t libcfs_kmemory; /* @@ -222,7 +212,7 @@ do { \ void libcfs_debug_dumpstack(cfs_task_t *tsk); void libcfs_run_upcall(char **argv); -void libcfs_run_lbug_upcall(const char * file, const char *fn, const int line); +void libcfs_run_lbug_upcall(struct libcfs_debug_msg_data *); void libcfs_debug_dumplog(void); int libcfs_debug_init(unsigned long bufsize); int libcfs_debug_cleanup(void); @@ -265,7 +255,7 @@ do { \ # else # define LIBCFS_ALLOC(ptr, size) do { (ptr) = calloc(1,size); } while (0) # endif -# define LIBCFS_FREE(a, b) do { free(a); } while (0) +# define LIBCFS_FREE(ptr, size) do { free(ptr); } while((size) - (size)) void libcfs_debug_dumplog(void); int libcfs_debug_init(unsigned long bufsize);