Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  nx_dbg.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Copyright 2020 IBM Corporation
 *
 */


#ifndef _NXU_DBG_H_
#define _NXU_DBG_H_

#include <sys/file.h>
#include <stdint.h>
#include <stdio.h>
#include <time.h>
#include <pthread.h>

extern FILE * nx_gzip_log;
extern int nx_gzip_trace;
extern unsigned int nx_gzip_inflate_impl;
extern unsigned int nx_gzip_deflate_impl;
extern unsigned int nx_gzip_inflate_flags;
extern unsigned int nx_gzip_deflate_flags;

extern int nx_dbg;
pthread_mutex_t mutex_log;

#define nx_gzip_trace_enabled()       (nx_gzip_trace & 0x1)
#define nx_gzip_hw_trace_enabled()    (nx_gzip_trace & 0x2)
#define nx_gzip_sw_trace_enabled()    (nx_gzip_trace & 0x4)
#define nx_gzip_gather_statistics()   (nx_gzip_trace & 0x8)
#define nx_gzip_per_stream_stat()     (nx_gzip_trace & 0x10)

#define prt(fmt, ...) do { \
 pthread_mutex_lock(&mutex_log);     \
 flock(nx_gzip_log->_fileno, LOCK_EX);    \
 time_t t; struct tm *m; time(&t); m = localtime(&t);  \
 fprintf(nx_gzip_log, "[%04d/%02d/%02d %02d:%02d:%02d] "  \
  "pid %d: " fmt, \
  (int)m->tm_year + 1900, (int)m->tm_mon+1, (int)m->tm_mday, \
  (int)m->tm_hour, (int)m->tm_min, (int)m->tm_sec, \
  (int)getpid(), ## __VA_ARGS__);    \
 fflush(nx_gzip_log);      \
 flock(nx_gzip_log->_fileno, LOCK_UN);    \
 pthread_mutex_unlock(&mutex_log);    \
while (0)

/* Use in case of an error */
#define prt_err(fmt, ...) do { if (nx_dbg >= 0) {   \
 prt("%s:%u: Error: "fmt,     \
  __FILE__, __LINE__, ## __VA_ARGS__);   \
}} while (0)

/* Use in case of an warning */
#define prt_warn(fmt, ...) do { if (nx_dbg >= 1) {   \
 prt("%s:%u: Warning: "fmt,     \
  __FILE__, __LINE__, ## __VA_ARGS__);   \
}} while (0)

/* Informational printouts */
#define prt_info(fmt, ...) do { if (nx_dbg >= 2) {   \
 prt("Info: "fmt, ## __VA_ARGS__);    \
}} while (0)

/* Trace zlib wrapper code */
#define prt_trace(fmt, ...) do { if (nx_gzip_trace_enabled()) {  \
 prt("### "fmt, ## __VA_ARGS__);     \
}} while (0)

/* Trace statistics */
#define prt_stat(fmt, ...) do { if (nx_gzip_gather_statistics()) { \
 prt("### "fmt, ## __VA_ARGS__);     \
}} while (0)

/* Trace zlib hardware implementation */
#define hw_trace(fmt, ...) do {      \
  if (nx_gzip_hw_trace_enabled())    \
   fprintf(nx_gzip_log, "hhh " fmt, ## __VA_ARGS__); \
 } while (0)

/* Trace zlib software implementation */
#define sw_trace(fmt, ...) do {      \
  if (nx_gzip_sw_trace_enabled())    \
   fprintf(nx_gzip_log, "sss " fmt, ## __VA_ARGS__); \
 } while (0)


/**
 * str_to_num - Convert string into number and copy with endings like
 *              KiB for kilobyte
 *              MiB for megabyte
 *              GiB for gigabyte
 */

uint64_t str_to_num(char *str);
void nx_lib_debug(int onoff);

#endif /* _NXU_DBG_H_ */

Messung V0.5
C=92 H=66 G=79

¤ Dauer der Verarbeitung: 0.4 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge