Line data Source code
1 : #ifndef HEADER_fd_src_flamenco_accdb_fd_accdb_fsck_h 2 : #define HEADER_fd_src_flamenco_accdb_fd_accdb_fsck_h 3 : 4 : /* fd_accdb_fsck.h provides APIs to do integrity checking of an account 5 : database. */ 6 : 7 : #include "../../funk/fd_funk_base.h" 8 : #include "../../vinyl/io/fd_vinyl_io.h" 9 : #include "../../vinyl/meta/fd_vinyl_meta.h" 10 : 11 : /* FD_ACCDB_FSCK_* gives high-level fsck status results */ 12 : 13 0 : #define FD_ACCDB_FSCK_NO_ERROR 0U /* no error detected */ 14 : #define FD_ACCDB_FSCK_UNCLEAN 1U /* unclean shutdown detected (recoverable) */ 15 0 : #define FD_ACCDB_FSCK_INVARIANT 2U /* invariant violation detected */ 16 0 : #define FD_ACCDB_FSCK_CORRUPT 3U /* data corruption detected */ 17 0 : #define FD_ACCDB_FSCK_UNKNOWN 4U /* check stopped early */ 18 : 19 : /* FD_ACCDB_FSCK_FLAGS_* are verification options */ 20 : 21 0 : #define FD_ACCDB_FSCK_FLAGS_LTHASH (1U) /* compute lthash */ 22 : 23 : FD_PROTOTYPES_BEGIN 24 : 25 : /* fd_accdb_fsck_funk verifies a funk index. Returns the high-level 26 : result (FD_ACCDB_FSCK_*) and writes NOTICE/WARNING logs along the 27 : way. Assumes that no concurrent access to funk is active (smashes 28 : tag bits for integrity checking). */ 29 : 30 : uint 31 : fd_accdb_fsck_funk( fd_funk_t * funk, 32 : uint flags ); 33 : 34 : /* fd_accdb_fsck_vinyl verifies a bstream and meta index. Returns the 35 : high-level result (FD_ACCDB_FSCK_*) and writes NOTICE/WARNING logs 36 : along the way. Assumes that no data cache is active (smashes bits 37 : used by vinyl_data for integrity check scratch space). */ 38 : 39 : uint 40 : fd_accdb_fsck_vinyl( fd_vinyl_io_t * io, /* must be io_mm */ 41 : fd_vinyl_meta_t * meta, /* local join to meta index */ 42 : uint flags ); 43 : 44 : FD_PROTOTYPES_END 45 : 46 : #endif /* HEADER_fd_src_flamenco_accdb_fd_accdb_fsck_h */