LCOV - code coverage report
Current view: top level - flamenco/runtime - fd_bank_hash_cmp.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 0 12 0.0 %
Date: 2025-07-01 05:00:49 Functions: 0 226 0.0 %

          Line data    Source code
       1             : #ifndef HEADER_fd_src_flamenco_runtime_fd_bank_hash_cmp_h
       2             : #define HEADER_fd_src_flamenco_runtime_fd_bank_hash_cmp_h
       3             : 
       4             : #include "../fd_flamenco_base.h"
       5             : #include "fd_blockstore.h"
       6             : 
       7             : struct fd_bank_hash_cmp_entry {
       8             :   ulong     slot;
       9             :   uint      hash;
      10             :   fd_hash_t ours;
      11             :   fd_hash_t theirs[8];
      12             :   ulong     stakes[8];
      13             :   ulong     cnt;
      14             :   int       overflow;
      15             :   int       rooted;
      16             : };
      17             : typedef struct fd_bank_hash_cmp_entry fd_bank_hash_cmp_entry_t;
      18             : #define MAP_NAME        fd_bank_hash_cmp_map
      19           0 : #define MAP_T           fd_bank_hash_cmp_entry_t
      20           0 : #define MAP_KEY         slot
      21           0 : #define MAP_LG_SLOT_CNT (16) /* 0.25 fill ratio */
      22             : #include "../../util/tmpl/fd_map.c"
      23             : 
      24             : struct fd_bank_hash_cmp {
      25             :   fd_bank_hash_cmp_entry_t * map;
      26             :   ulong                      map_gaddr;
      27             :   ulong                      cnt;
      28             :   ulong                      watermark; /*  */
      29             :   ulong                      total_stake;
      30             :   volatile int               lock;
      31             : };
      32             : typedef struct fd_bank_hash_cmp fd_bank_hash_cmp_t;
      33             : 
      34             : FD_PROTOTYPES_BEGIN
      35             : 
      36             : static inline ulong
      37           0 : fd_bank_hash_cmp_align( void ) {
      38           0 :   return 128UL;
      39           0 : }
      40             : 
      41             : FD_FN_CONST static inline ulong
      42           0 : fd_bank_hash_cmp_footprint( void ) {
      43             :   /* clang-format off */
      44           0 :     return FD_LAYOUT_FINI( FD_LAYOUT_APPEND( FD_LAYOUT_APPEND( FD_LAYOUT_INIT,
      45           0 :         fd_bank_hash_cmp_align(), sizeof(fd_bank_hash_cmp_t) ),
      46           0 :         fd_bank_hash_cmp_map_align(), fd_bank_hash_cmp_map_footprint() ),
      47           0 :         fd_bank_hash_cmp_align() );
      48             :   /* clang-format on */
      49           0 : }
      50             : 
      51             : void *
      52             : fd_bank_hash_cmp_new( void * mem );
      53             : 
      54             : fd_bank_hash_cmp_t *
      55             : fd_bank_hash_cmp_join( void * bank_hash_cmp );
      56             : 
      57             : void *
      58             : fd_bank_hash_cmp_leave( fd_bank_hash_cmp_t const * bank_hash_cmp );
      59             : 
      60             : void *
      61             : fd_bank_hash_cmp_delete( void * bank_hash_cmp );
      62             : 
      63             : void
      64             : fd_bank_hash_cmp_lock( fd_bank_hash_cmp_t * bank_hash_cmp );
      65             : 
      66             : void
      67             : fd_bank_hash_cmp_unlock( fd_bank_hash_cmp_t * bank_hash_cmp );
      68             : 
      69             : void
      70             : fd_bank_hash_cmp_insert( fd_bank_hash_cmp_t * bank_hash_cmp,
      71             :                          ulong                slot,
      72             :                          fd_hash_t const *    hash,
      73             :                          int                  ours,
      74             :                          ulong                stake );
      75             : 
      76             : /* Returns 1 on bank hash match (caller should move watermark forward),
      77             :           -1 on mismatch
      78             :            0 if we weren't able to compare yet */
      79             : int
      80             : fd_bank_hash_cmp_check( fd_bank_hash_cmp_t * bank_hash_cmp, ulong slot );
      81             : 
      82             : FD_PROTOTYPES_END
      83             : 
      84             : #endif /* HEADER_fd_src_flamenco_runtime_fd_bank_hash_cmp_h */

Generated by: LCOV version 1.14