Rizin
unix-like reverse engineering framework and cli tools
|
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <time.h>
#include <sys/stat.h>
#include <sys/time.h>
#include "zlib.h"
#include "gzlog.h"
Go to the source code of this file.
Classes | |
struct | log |
Macros | |
#define | local static |
#define | BAIL(n) |
#define | PATIENCE 300 |
#define | MAX_STORE 16 |
#define | TRIGGER 1024 |
#define | DICT 32768U |
#define | NO_OP 0 |
#define | APPEND_OP 1 |
#define | COMPRESS_OP 2 |
#define | REPLACE_OP 3 |
#define | PULL2(p) ((p)[0]+((uint)((p)[1])<<8)) |
#define | PULL4(p) (PULL2(p)+((ulong)PULL2(p+2)<<16)) |
#define | PULL8(p) (PULL4(p)+((off_t)PULL4(p+4)<<32)) |
#define | PUT2(p, a) do {(p)[0]=a;(p)[1]=(a)>>8;} while(0) |
#define | PUT4(p, a) do {PUT2(p,a);PUT2(p+2,a>>16);} while(0) |
#define | PUT8(p, a) do {PUT4(p,a);PUT4(p+4,a>>32);} while(0) |
#define | LOGID "\106\035\172" /* should be three non-zero characters */ |
#define | HEAD sizeof(log_gzhead) /* should be 16 */ |
#define | EXTRA sizeof(log_gzext) /* should be 35 */ |
#define | BODY sizeof(log_gzbody) |
Typedefs | |
typedef unsigned int | uint |
typedef unsigned long | ulong |
Functions | |
int | log_lock (struct log *log) |
void | log_touch (struct log *log) |
int | log_check (struct log *log) |
void | log_unlock (struct log *log) |
int | log_head (struct log *log) |
int | log_mark (struct log *log, int op) |
int | log_last (struct log *log, int last) |
int | log_append (struct log *log, unsigned char *data, size_t len) |
int | log_replace (struct log *log) |
int | log_compress (struct log *log, unsigned char *data, size_t len) |
void | log_log (struct log *log, int op, char *record) |
int | log_recover (struct log *log, int op) |
void | log_close (struct log *log) |
int | log_open (struct log *log) |
gzlog * | gzlog_open (char *path) |
int | gzlog_compress (gzlog *logd) |
int | gzlog_write (gzlog *logd, void *data, size_t len) |
int | gzlog_close (gzlog *logd) |
Variables | |
unsigned char | log_gzhead [] |
unsigned char | log_gzext [] |
unsigned char | log_gzbody [] |
#define BODY sizeof(log_gzbody) |
#define HEAD sizeof(log_gzhead) /* should be 16 */ |
#define LOGID "\106\035\172" /* should be three non-zero characters */ |
Definition at line 1044 of file gzlog.c.
References free(), log::id, log_close(), LOGID, NULL, and log::path.
Definition at line 910 of file gzlog.c.
References BAIL, close, COMPRESS_OP, DICT, log::end, fd, log::fd, log::first, free(), log::id, log::last, len, log_check(), log_compress(), log_mark(), log_open(), log_touch(), LOGID, lseek, malloc(), NULL, O_CREAT, O_TRUNC, O_WRONLY, log::path, PULL2, read(), SEEK_CUR, SEEK_SET, log::stored, and write.
Referenced by gzlog_write().
gzlog* gzlog_open | ( | char * | path | ) |
Definition at line 867 of file gzlog.c.
References log::end, log::fd, free(), log::id, test-lz4-list::log(), log_open(), LOGID, malloc(), n, NULL, path, and log::path.
Definition at line 997 of file gzlog.c.
References APPEND_OP, BAIL, close, log::end, fd, log::first, gzlog_compress(), log::id, log::last, len, log_append(), log_check(), log_mark(), log_open(), log_touch(), LOGID, NULL, O_CREAT, O_TRUNC, O_WRONLY, log::path, log::stored, TRIGGER, and write.
Definition at line 501 of file gzlog.c.
References BAIL, crc32(), test_evm::end, log::end, log::fd, ftruncate, if(), log::last, len, log_last(), log_mark(), lseek, MAX_STORE, NO_OP, log::path, PUT4, SEEK_CUR, log::stored, log::tcrc, log::tlen, unlink, and write.
Referenced by gzlog_write(), and log_recover().
Definition at line 384 of file gzlog.c.
References log::end, log::lock, log_touch(), log::path, and stat.
Referenced by gzlog_compress(), gzlog_write(), and log_unlock().
void log_close | ( | struct log * | log | ) |
Definition at line 798 of file gzlog.c.
References close, log::fd, and log_unlock().
Referenced by gzlog_close(), and log_open().
Definition at line 608 of file gzlog.c.
References lzma_stream::avail_in, lzma_stream::avail_out, log::back, BAIL, log::ccrc, log::clen, close, deflate(), deflateEnd(), deflateInit2, deflatePrime(), deflateSetDictionary(), DICT, test_evm::end, log::end, fd, log::fd, log::first, ftruncate, log::last, len, log_last(), log_mark(), log_replace(), log_touch(), lseek, max, lzma_stream::next_in, lzma_stream::next_out, O_RDONLY, log::path, PUT4, read(), REPLACE_OP, SEEK_CUR, SEEK_SET, log::stored, strm, log::tcrc, log::tlen, write, Z_DEFAULT_COMPRESSION, Z_DEFAULT_STRATEGY, Z_DEFLATED, Z_NO_FLUSH, Z_NULL, Z_OK, and Z_PARTIAL_FLUSH.
Referenced by gzlog_compress(), and log_recover().
Definition at line 462 of file gzlog.c.
References log::back, log::fd, log::first, log::last, len, lseek, mask, PUT2, read(), SEEK_CUR, SEEK_SET, log::stored, and write.
Referenced by log_append(), and log_compress().
Definition at line 348 of file gzlog.c.
References close, EEXIST, log::end, fd, log::lock, NULL, O_CREAT, O_EXCL, log::path, PATIENCE, stat, time, and unlink.
Referenced by log_open().
Definition at line 718 of file gzlog.c.
References APPEND_OP, COMPRESS_OP, log::end, benchmark::FILE, NULL, log::path, and time.
Referenced by log_recover().
Definition at line 437 of file gzlog.c.
References log::back, log::ccrc, log::clen, ext, EXTRA, log::fd, log::first, fsync, HEAD, log::last, lseek, PUT2, PUT4, PUT8, SEEK_SET, log::stored, log::tcrc, log::tlen, and write.
Referenced by gzlog_compress(), gzlog_write(), log_append(), log_compress(), and log_replace().
Definition at line 815 of file gzlog.c.
References BODY, close, log::end, EXTRA, log::fd, HEAD, log_close(), log_gzbody, log_gzext, log_gzhead, log_head(), log_lock(), log_recover(), log_touch(), lseek, NO_OP, O_CREAT, O_RDWR, op, log::path, SEEK_END, unlink, and write.
Referenced by gzlog_compress(), gzlog_open(), and gzlog_write().
Definition at line 738 of file gzlog.c.
References APPEND_OP, close, COMPRESS_OP, log::end, fd, free(), len, log_append(), log_compress(), log_log(), log_replace(), malloc(), NULL, O_RDONLY, log::path, read(), REPLACE_OP, and stat.
Referenced by log_open().
Definition at line 571 of file gzlog.c.
References BAIL, dest, log::end, ENOENT, free(), log_mark(), malloc(), NO_OP, NULL, log::path, rename, and unlink.
Referenced by log_compress(), and log_recover().
void log_touch | ( | struct log * | log | ) |
Definition at line 372 of file gzlog.c.
References log::end, log::lock, NULL, log::path, and stat.
Referenced by gzlog_compress(), gzlog_write(), log_check(), log_compress(), and log_open().
void log_unlock | ( | struct log * | log | ) |
unsigned char log_gzbody[] |
Definition at line 331 of file gzlog.c.
Referenced by log_open().
unsigned char log_gzext[] |
Definition at line 319 of file gzlog.c.
Referenced by log_open().
unsigned char log_gzhead[] |
Definition at line 306 of file gzlog.c.
Referenced by log_head(), and log_open().