linux/fs/orangefs/orangefs-debug.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * (C) 2001 Clemson University and The University of Chicago
   4 *
   5 * See COPYING in top-level directory.
   6 */
   7
   8/* This file just defines debugging masks to be used with the gossip
   9 * logging utility.  All debugging masks for ORANGEFS are kept here to make
  10 * sure we don't have collisions.
  11 */
  12
  13#ifndef __ORANGEFS_DEBUG_H
  14#define __ORANGEFS_DEBUG_H
  15
  16#ifdef __KERNEL__
  17#include <linux/types.h>
  18#include <linux/kernel.h>
  19#else
  20#include <stdint.h>
  21#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
  22#endif
  23
  24#define GOSSIP_NO_DEBUG                 (__u64)0
  25
  26#define GOSSIP_SUPER_DEBUG              ((__u64)1 << 0)
  27#define GOSSIP_INODE_DEBUG              ((__u64)1 << 1)
  28#define GOSSIP_FILE_DEBUG               ((__u64)1 << 2)
  29#define GOSSIP_DIR_DEBUG                ((__u64)1 << 3)
  30#define GOSSIP_UTILS_DEBUG              ((__u64)1 << 4)
  31#define GOSSIP_WAIT_DEBUG               ((__u64)1 << 5)
  32#define GOSSIP_ACL_DEBUG                ((__u64)1 << 6)
  33#define GOSSIP_DCACHE_DEBUG             ((__u64)1 << 7)
  34#define GOSSIP_DEV_DEBUG                ((__u64)1 << 8)
  35#define GOSSIP_NAME_DEBUG               ((__u64)1 << 9)
  36#define GOSSIP_BUFMAP_DEBUG             ((__u64)1 << 10)
  37#define GOSSIP_CACHE_DEBUG              ((__u64)1 << 11)
  38#define GOSSIP_DEBUGFS_DEBUG            ((__u64)1 << 12)
  39#define GOSSIP_XATTR_DEBUG              ((__u64)1 << 13)
  40#define GOSSIP_INIT_DEBUG               ((__u64)1 << 14)
  41#define GOSSIP_SYSFS_DEBUG              ((__u64)1 << 15)
  42
  43#define GOSSIP_MAX_NR                 16
  44#define GOSSIP_MAX_DEBUG              (((__u64)1 << GOSSIP_MAX_NR) - 1)
  45
  46/* a private internal type */
  47struct __keyword_mask_s {
  48        const char *keyword;
  49        __u64 mask_val;
  50};
  51
  52/*
  53 * Map all kmod keywords to kmod debug masks here. Keep this
  54 * structure "packed":
  55 *
  56 *   "all" is always last...
  57 *
  58 *   keyword     mask_val     index
  59 *     foo          1           0
  60 *     bar          2           1
  61 *     baz          4           2
  62 *     qux          8           3
  63 *      .           .           .
  64 */
  65static struct __keyword_mask_s s_kmod_keyword_mask_map[] = {
  66        {"super", GOSSIP_SUPER_DEBUG},
  67        {"inode", GOSSIP_INODE_DEBUG},
  68        {"file", GOSSIP_FILE_DEBUG},
  69        {"dir", GOSSIP_DIR_DEBUG},
  70        {"utils", GOSSIP_UTILS_DEBUG},
  71        {"wait", GOSSIP_WAIT_DEBUG},
  72        {"acl", GOSSIP_ACL_DEBUG},
  73        {"dcache", GOSSIP_DCACHE_DEBUG},
  74        {"dev", GOSSIP_DEV_DEBUG},
  75        {"name", GOSSIP_NAME_DEBUG},
  76        {"bufmap", GOSSIP_BUFMAP_DEBUG},
  77        {"cache", GOSSIP_CACHE_DEBUG},
  78        {"debugfs", GOSSIP_DEBUGFS_DEBUG},
  79        {"xattr", GOSSIP_XATTR_DEBUG},
  80        {"init", GOSSIP_INIT_DEBUG},
  81        {"sysfs", GOSSIP_SYSFS_DEBUG},
  82        {"none", GOSSIP_NO_DEBUG},
  83        {"all", GOSSIP_MAX_DEBUG}
  84};
  85
  86static const int num_kmod_keyword_mask_map = (int)
  87        (ARRAY_SIZE(s_kmod_keyword_mask_map));
  88
  89#endif /* __ORANGEFS_DEBUG_H */
  90