#include <sys/cdefs.h>
#include <stdio.h>
#include "debug.h"
static int trace_level = 0;
static int trace_level_bk = 0;
void
nscd_trace_in(const char *s, const char *f, int l)
{
int i;
if (trace_level < TRACE_WANTED)
{
for (i = 0; i < trace_level; ++i)
printf("\t");
printf("=> %s\n", s);
}
++trace_level;
}
void
nscd_trace_point(const char *f, int l)
{
int i;
if (trace_level < TRACE_WANTED)
{
for (i = 0; i < trace_level - 1; ++i)
printf("\t");
printf("= %s: %d\n", f, l);
}
}
void
nscd_trace_msg(const char *msg, const char *f, int l)
{
int i;
if (trace_level < TRACE_WANTED)
{
for (i = 0; i < trace_level - 1; ++i)
printf("\t");
printf("= MSG %s, %s: %d\n", msg, f, l);
}
}
void
nscd_trace_ptr(const char *desc, const void *p, const char *f, int l)
{
int i;
if (trace_level < TRACE_WANTED)
{
for (i = 0; i < trace_level - 1; ++i)
printf("\t");
printf("= PTR %s: %p, %s: %d\n", desc, p, f, l);
}
}
void
nscd_trace_int(const char *desc, int i, const char *f, int l)
{
int j;
if (trace_level < TRACE_WANTED)
{
for (j = 0; j < trace_level - 1; ++j)
printf("\t");
printf("= INT %s: %i, %s: %d\n",desc, i, f, l);
}
}
void
nscd_trace_str(const char *desc, const char *s, const char *f, int l)
{
int i;
if (trace_level < TRACE_WANTED)
{
for (i = 0; i < trace_level - 1; ++i)
printf("\t");
printf("= STR %s: '%s', %s: %d\n", desc, s, f, l);
}
}
void
nscd_trace_out(const char *s, const char *f, int l)
{
int i;
--trace_level;
if (trace_level < TRACE_WANTED)
{
for (i = 0; i < trace_level; ++i)
printf("\t");
printf("<= %s, %s: %d\n", s, f, l);
}
}
void
nscd_trace_on(void)
{
trace_level = trace_level_bk;
trace_level_bk = 0;
}
void
nscd_trace_off(void)
{
trace_level_bk = trace_level;
trace_level = 1024;
}