1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

Logging: Abolished stdio in favor of write() to make the logging faster.

This commit is contained in:
Maria Matejka
2023-08-16 15:05:36 +02:00
parent 88307c31c5
commit 32009cb6eb
12 changed files with 165 additions and 144 deletions

View File

@@ -151,6 +151,16 @@ typedef struct buffer {
byte *end;
} buffer;
#define LOG_BUFFER_SIZE 2560
typedef struct log_buffer {
struct buffer buf;
byte *tm_pos;
byte *msg_pos;
int class;
char block[LOG_BUFFER_SIZE];
} log_buffer;
#define STACK_BUFFER_INIT(buf,size) \
do { \
buf.start = alloca(size); \
@@ -158,13 +168,9 @@ typedef struct buffer {
buf.end = buf.start + size; \
} while(0)
#define LOG_BUFFER_INIT(buf) \
STACK_BUFFER_INIT(buf, LOG_BUFFER_SIZE)
#define LOG_BUFFER_SIZE 1024
#define log log_msg
void log_commit(int class, buffer *buf);
void log_prepare(log_buffer *buf, int class);
void log_commit(log_buffer *buf);
void log_msg(const char *msg, ...);
void log_rl(struct tbf *rl, const char *msg, ...);
void die(const char *msg, ...) NORET;