# include <stdio.h>
# include <stdarg.h>
# include "dm.h"
# include "dm_error.h"
#define WRITES(fd, buf) write(fd, buf, strlen(buf))
void LogInfo(char * fmt, ...)
{
char buf[1024];
snprintf(buf, sizeof buf, "xdm info (pid %ld): ", (long)getpid());
WRITES(STDERR_FILENO, buf);
{
va_list args;
va_start(args, fmt);
vsnprintf (buf, sizeof buf, fmt, args);
va_end(args);
}
WRITES(STDERR_FILENO, buf);
}
void LogError (char * fmt, ...)
{
char buf[1024];
snprintf (buf, sizeof buf, "xdm error (pid %ld): ", (long)getpid());
WRITES(STDERR_FILENO, buf);
{
va_list args;
va_start(args, fmt);
vsnprintf (buf, sizeof buf, fmt, args);
va_end(args);
}
WRITES(STDERR_FILENO, buf);
}
void LogPanic (char * fmt, ...)
{
char buf[1024];
snprintf (buf, sizeof buf, "xdm panic (pid %ld): ", (long)getpid());
WRITES(STDERR_FILENO, buf);
{
va_list args;
va_start(args, fmt);
vsnprintf (buf, sizeof buf, fmt, args);
va_end(args);
}
WRITES(STDERR_FILENO, buf);
_exit (1);
}
void LogOutOfMem (char * fmt, ...)
{
fprintf (stderr, "xdm: out of memory in routine ");
{
va_list args;
va_start(args, fmt);
vfprintf (stderr, fmt, args);
va_end(args);
}
fflush (stderr);
}
void Panic (char *mesg)
{
int i;
i = creat ("/dev/console", 0666);
write (i, "panic: ", 7);
write (i, mesg, strlen (mesg));
exit (1);
}
void Debug (char * fmt, ...)
{
char buf[1024];
if (debugLevel > 0)
{
va_list args;
va_start(args, fmt);
vsnprintf (buf, sizeof buf, fmt, args);
va_end(args);
WRITES(STDOUT_FILENO, buf);
}
}
void InitErrorLog (void)
{
int i;
if (errorLogFile[0]) {
i = creat (errorLogFile, 0666);
if (i != -1) {
if (i != 2) {
dup2 (i, 2);
close (i);
}
} else
LogError ("Cannot open errorLogFile %s\n", errorLogFile);
}
}