Removed useless misc.h
[libfirm] / ir / adt / debug.c
1 /*
2  * Project:     libFIRM
3  * File name:   ir/adt/debug.c
4  * Purpose:     Debug --- run time debug level management
5  * Author:      Christian von Roques
6  * Modified by:
7  * Created:     1999 by getting from fiasco
8  * CVS-ID:      $Id$
9  * Copyright:   (c) 1995, 1996 Christian von Roques
10  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
11  */
12
13 #ifdef HAVE_CONFIG_H
14 # include <config.h>
15 #endif
16
17 #include <stdlib.h>
18 #include <string.h>
19 #include "debug.h"
20 #include "xmalloc.h"
21
22
23 int
24 (d_) (int flag, unsigned level)
25 {
26   return d_ (flag, level);
27 }
28
29
30 int
31 (d_level) (int flag)
32 {
33   return d_level (flag);
34 }
35
36
37 int
38 (d_set_level) (int flag, unsigned level)
39 {
40   return d_set_level (flag, level);
41 }
42
43
44 #ifdef DEBUG
45 int nflags;
46 unsigned char *d_vec;
47 #endif
48
49
50 /*
51  * Set debug flags according to the following syntax:
52  * number ["-" number] ["." number]
53  * 1st number is number of first flag to set.
54  * 2nd number is number of last flag to set. [defaults to 1st number]
55  * 3rd number is level to set the flags to. [defaults to 1]
56  */
57 void
58 (d_parse) (const char *s)
59 {
60 #ifdef DEBUG
61   long first, last, level;
62   char *end;
63
64   first = strtol(s, &end, 10);
65   last = (s != end) ? first : nflags-1;
66
67   s = end;
68   if (*s == '-') {
69     ++s;
70     last = strtol(s, &end, 10);
71     if (end == s) last = nflags-1; /* 3-  ==> 3..nflags-1 */
72   }
73
74   s = end;
75   if (*s == '.') {
76     ++s;
77     level = strtol(s, &end, 10);
78     /* . with no number gives level 0 */
79   } else {
80     level = 1;
81   }
82
83   if (first<0) first=0;
84   if (last>=nflags) last = nflags-1;
85
86   while (first<=last) d_vec[first++] = level;
87 #endif /* DEBUG */
88 }
89
90
91 void
92 (d_init) (int n)
93 {
94 #ifdef DEBUG
95   nflags = n;
96   d_vec = xmalloc (sizeof (unsigned char) * n);
97   memset(d_vec, 0, sizeof (unsigned char) * n);
98 #endif
99 }