diff --git a/irqbalance.c b/irqbalance.c index 8057591..60f5411 100644 --- a/irqbalance.c +++ b/irqbalance.c @@ -59,6 +59,11 @@ char *banscript = NULL; char *polscript = NULL; long HZ; +#ifdef HAVE_SYSTEMD + char *line_buffer_7ee22e61_f183; + char *log_buffer_4c93_8665; +#endif /* HAVE_SYSTEMD */ + static void sleep_approx(int seconds) { struct timespec ts; @@ -259,7 +264,10 @@ int main(int argc, char** argv) sigaddset(&sigset,SIGUSR1); sigaddset(&sigset,SIGUSR2); sigprocmask(SIG_BLOCK, &sigset, &old_sigset); - +#ifdef HAVE_SYSTEMD + line_buffer_7ee22e61_f183 = malloc(sizeof(char) * 2048); + log_buffer_4c93_8665 = malloc(sizeof(char) * 2048); +#endif /* HAVE_SYSTEMD */ #ifdef HAVE_GETOPT_LONG parse_command_line(argc, argv); #else /* ! HAVE_GETOPT_LONG */ diff --git a/irqbalance.h b/irqbalance.h index e6f4f87..c301427 100644 --- a/irqbalance.h +++ b/irqbalance.h @@ -60,6 +60,7 @@ enum hp_e { }; extern int debug_mode; +extern int journal_logging; extern int one_shot_mode; extern int need_rescan; extern enum hp_e global_hint_policy; @@ -136,12 +137,34 @@ static inline void for_each_object(GList *list, void (*cb)(struct topo_obj *obj, extern char * log_indent; extern unsigned int log_mask; +#ifdef HAVE_SYSTEMD +extern char *line_buffer_7ee22e61_f183; +extern char *log_buffer_4c93_8665; +#define log(mask, lvl, fmt, args...) do { \ + if (journal_logging) { \ + sprintf(log_buffer_4c93_8665,fmt, ##args); \ + strcat(line_buffer_7ee22e61_f183, log_buffer_4c93_8665); \ + if (line_buffer_7ee22e61_f183[strlen(line_buffer_7ee22e61_f183)-1]\ + == '\n' || strlen(line_buffer_7ee22e61_f183) > 256 ) { \ + printf("<%d>%s", lvl, line_buffer_7ee22e61_f183); \ + line_buffer_7ee22e61_f183[0] = '\0'; \ + line_buffer_7ee22e61_f183[0] = '\0'; \ + } \ + } else { \ + if (log_mask & mask & TO_SYSLOG) \ + syslog(lvl, fmt, ##args); \ + if (log_mask & mask & TO_CONSOLE) \ + printf(fmt, ##args); \ + } \ +}while(0) +#else /* ! HAVE_SYSTEMD */ #define log(mask, lvl, fmt, args...) do {\ if (log_mask & mask & TO_SYSLOG)\ syslog(lvl, fmt, ##args);\ if (log_mask & mask & TO_CONSOLE)\ printf(fmt, ##args);\ }while(0) +#endif /* HAVE_SYSTEMD */ -#endif +#endif /* __INCLUDE_GUARD_IRQBALANCE_H_ */