Coverage Report

Created: 2026-02-22 06:11

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/util-linux/libblkid/src/init.c
Line
Count
Source
1
/*
2
 * Copyright (C) 2008-2013 Karel Zak <kzak@redhat.com>
3
 *
4
 * This file may be redistributed under the terms of the
5
 * GNU Lesser General Public License.
6
 */
7
8
/**
9
 * SECTION: init
10
 * @title: Library initialization
11
 * @short_description: initialize debugging
12
 */
13
14
#include <stdarg.h>
15
16
#include "blkidP.h"
17
18
UL_DEBUG_DEFINE_MASK(libblkid);
19
UL_DEBUG_DEFINE_MASKNAMES(libblkid) =
20
{
21
  { "all", BLKID_DEBUG_ALL, "info about all subsystems" },
22
  { "cache", BLKID_DEBUG_CACHE, "blkid tags cache" },
23
  { "config", BLKID_DEBUG_CONFIG, "config file utils" },
24
  { "dev", BLKID_DEBUG_DEV,       "device utils" },
25
  { "devname", BLKID_DEBUG_DEVNAME, "/proc/partitions evaluation" },
26
  { "devno", BLKID_DEBUG_DEVNO, "conversions to device name" },
27
  { "evaluate", BLKID_DEBUG_EVALUATE, "tags resolving" },
28
  { "help", BLKID_DEBUG_HELP, "this help" },
29
  { "lowprobe", BLKID_DEBUG_LOWPROBE, "superblock/raids/partitions probing" },
30
  { "buffer", BLKID_DEBUG_BUFFER, "low-probing buffers" },
31
  { "probe", BLKID_DEBUG_PROBE, "devices verification" },
32
  { "read", BLKID_DEBUG_READ, "cache parsing" },
33
  { "save", BLKID_DEBUG_SAVE, "cache writing" },
34
  { "tag", BLKID_DEBUG_TAG, "tags utils" },
35
  { NULL, 0, NULL }
36
};
37
38
/**
39
 * blkid_init_debug:
40
 * @mask: debug mask (0xffff to enable full debugging)
41
 *
42
 * If the @mask is not specified then this function reads
43
 * LIBBLKID_DEBUG environment variable to get the mask.
44
 *
45
 * Already initialized debugging stuff cannot be changed. It does not
46
 * have effect to call this function twice.
47
 */
48
void blkid_init_debug(int mask)
49
6
{
50
6
  if (libblkid_debug_mask)
51
0
    return;
52
53
6
  __UL_INIT_DEBUG_FROM_ENV(libblkid, BLKID_DEBUG_, mask, LIBBLKID_DEBUG);
54
55
6
  if (libblkid_debug_mask != BLKID_DEBUG_INIT
56
0
      && libblkid_debug_mask != (BLKID_DEBUG_HELP|BLKID_DEBUG_INIT)) {
57
0
    const char *ver = NULL;
58
0
    const char *date = NULL;
59
60
0
    blkid_get_library_version(&ver, &date);
61
0
    DBG(INIT, ul_debug("library debug mask: 0x%04x", libblkid_debug_mask));
62
0
    DBG(INIT, ul_debug("library version: %s [%s]", ver, date));
63
64
0
  }
65
6
  ON_DBG(HELP, ul_debug_print_masks("LIBBLKID_DEBUG",
66
6
        UL_DEBUG_MASKNAMES(libblkid)));
67
6
}
68
69
static void __attribute__ ((constructor)) blkid_init_default_debug(void)
70
6
{
71
6
  blkid_init_debug(0);
72
6
}