diff --git a/makefile b/makefile index 1522661..952063f 100644 --- a/makefile +++ b/makefile @@ -24,7 +24,7 @@ CFLAGS = -Wall $(INC) $(DEBUG) LDFLAGS = LDLIBS = -lm -lrt PRG = linuxptp -OBJ = phc.o +OBJ = phc.o print.o SRC = $(OBJ:.o=.c) DEPEND = $(OBJ:.o=.d) diff --git a/print.c b/print.c new file mode 100644 index 0000000..e5cb4f2 --- /dev/null +++ b/print.c @@ -0,0 +1,39 @@ +/** + * @file print.c + * @note Copyright (C) 2011 Richard Cochran + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +#include +#include +#include +#include + +static int verbose = 1; + +void print(int level, char const *format, ...) +{ + pid_t pid = getpid(); + va_list ap; + char buf[1024]; + + va_start(ap, format); + vsnprintf(buf, sizeof(buf), format, ap); + va_end(ap); + + if (verbose) { + fprintf(stdout, "linuxptp[%d]: %s\n", pid, buf); + } +} diff --git a/print.h b/print.h new file mode 100644 index 0000000..6c16315 --- /dev/null +++ b/print.h @@ -0,0 +1,36 @@ +/** + * @file print.h + * @brief Logging support functions + * @note Copyright (C) 2011 Richard Cochran + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +#ifndef HAVE_PRINT_H +#define HAVE_PRINT_H + +#include + +void print(int level, char const *format, ...); + +#define pr_emerg(x...) print(LOG_EMERG, x) +#define pr_alert(x...) print(LOG_ALERT, x) +#define pr_crit(x...) print(LOG_CRIT, x) +#define pr_err(x...) print(LOG_ERR, x) +#define pr_warning(x...) print(LOG_WARNING, x) +#define pr_notice(x...) print(LOG_NOTICE, x) +#define pr_info(x...) print(LOG_INFO, x) +#define pr_debug(x...) print(LOG_DEBUG, x) + +#endif