source: bootcd/isolinux/syslinux-6.03/com32/lib/syslinux/debug.c @ 26ffad7

Last change on this file since 26ffad7 was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 1.5 KB
Line 
1#include <linux/list.h>
2#include <string.h>
3#include <stdbool.h>
4
5#ifdef DYNAMIC_DEBUG
6
7static LIST_HEAD(debug_funcs);
8
9struct debug_func_entry {
10    const char *name;
11    struct list_head list;
12};
13
14static struct debug_func_entry *lookup_entry(const char *func)
15{
16    struct debug_func_entry *e, *entry = NULL;
17
18    list_for_each_entry(e, &debug_funcs, list) {
19        if (!strcmp(e->name, func)) {
20            entry = e;
21            break;
22        }
23    }
24
25    return entry;
26}
27
28bool __syslinux_debug_enabled(const char *func)
29{
30    struct debug_func_entry *entry;
31
32    entry = lookup_entry(func);
33    if (entry)
34        return true;
35
36    return false;
37}
38
39static int __enable(const char *func)
40{
41    struct debug_func_entry *entry;
42
43    entry = lookup_entry(func);
44    if (entry)
45        return 0;       /* already enabled */
46
47    entry = malloc(sizeof(*entry));
48    if (!entry)
49        return -1;
50
51    entry->name = func;
52    list_add(&entry->list, &debug_funcs);
53    return 0;
54}
55
56static int __disable(const char *func)
57{
58    struct debug_func_entry *entry;
59
60    entry = lookup_entry(func);
61    if (!entry)
62        return 0;       /* already disabled */
63
64    list_del(&entry->list);
65    free(entry);
66    return 0;
67}
68
69/*
70 * Enable or disable debug code for function 'func'.
71 */
72int syslinux_debug(const char *func, bool enable)
73{
74    int rv;
75
76    if (enable)
77        rv = __enable(func);
78    else
79        rv = __disable(func);
80
81    return rv;
82}
83
84#else
85
86int syslinux_debug(const char *func, bool enable)
87{
88    (void)func;
89    (void)enable;
90
91    printf("Dynamic debug unavailable\n");
92    return -1;
93}
94
95#endif /* DYNAMIC_DEBUG */
Note: See TracBrowser for help on using the repository browser.