xref: /spdk/lib/ftl/ftl_debug.h (revision b30d57cdad6d2bc75cc1e4e2ebbcebcb0d98dcfa)
1  /*-
2   *   BSD LICENSE
3   *
4   *   Copyright (c) Intel Corporation.
5   *   All rights reserved.
6   *
7   *   Redistribution and use in source and binary forms, with or without
8   *   modification, are permitted provided that the following conditions
9   *   are met:
10   *
11   *     * Redistributions of source code must retain the above copyright
12   *       notice, this list of conditions and the following disclaimer.
13   *     * Redistributions in binary form must reproduce the above copyright
14   *       notice, this list of conditions and the following disclaimer in
15   *       the documentation and/or other materials provided with the
16   *       distribution.
17   *     * Neither the name of Intel Corporation nor the names of its
18   *       contributors may be used to endorse or promote products derived
19   *       from this software without specific prior written permission.
20   *
21   *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22   *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23   *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24   *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25   *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26   *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27   *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28   *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29   *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30   *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31   *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   */
33  
34  #ifndef FTL_DEBUG_H
35  #define FTL_DEBUG_H
36  
37  #include "ftl_addr.h"
38  #include "ftl_band.h"
39  #include "ftl_core.h"
40  
41  #if defined(DEBUG)
42  /* Debug flags - enabled when defined */
43  #define FTL_META_DEBUG	1
44  #define FTL_DUMP_STATS	1
45  
46  #define ftl_debug(msg, ...) \
47  	SPDK_ERRLOG(msg, ## __VA_ARGS__)
48  #else
49  #define ftl_debug(msg, ...)
50  #endif
51  
52  static inline const char *
53  ftl_addr2str(struct ftl_addr addr, char *buf, size_t size)
54  {
55  	snprintf(buf, size, "(%"PRIu64")", addr.offset);
56  	return buf;
57  }
58  
59  #if defined(FTL_META_DEBUG)
60  bool ftl_band_validate_md(struct ftl_band *band);
61  void ftl_dev_dump_bands(struct spdk_ftl_dev *dev);
62  #else
63  #define ftl_band_validate_md(band)
64  #define ftl_dev_dump_bands(dev)
65  #endif
66  
67  #if defined(FTL_DUMP_STATS)
68  void ftl_dev_dump_stats(const struct spdk_ftl_dev *dev);
69  #else
70  #define ftl_dev_dump_stats(dev)
71  #endif
72  
73  #endif /* FTL_DEBUG_H */
74