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 14 0.0 %
Date: 2025-08-05 05:04:49 Functions: 0 186 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 "../types/fd_types_custom.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             : };
      16             : typedef struct fd_bank_hash_cmp_entry fd_bank_hash_cmp_entry_t;
      17             : #define MAP_NAME         fd_bank_hash_cmp_map
      18           0 : #define MAP_T            fd_bank_hash_cmp_entry_t
      19           0 : #define MAP_KEY          slot
      20           0 : #define MAP_KEY_NULL     ULONG_MAX
      21           0 : #define MAP_KEY_INVAL(k) ((k)==ULONG_MAX)
      22           0 : #define MAP_LG_SLOT_CNT  (16) /* 0.25 fill ratio */
      23             : #include "../../util/tmpl/fd_map.c"
      24             : 
      25             : struct fd_bank_hash_cmp {
      26             :   fd_bank_hash_cmp_entry_t * map;
      27             :   ulong                      map_gaddr;
      28             :   ulong                      cnt;
      29             :   ulong                      watermark; /*  */
      30             :   ulong                      total_stake;
      31             :   volatile int               lock;
      32             : };
      33             : typedef struct fd_bank_hash_cmp fd_bank_hash_cmp_t;
      34             : 
      35             : FD_PROTOTYPES_BEGIN
      36             : 
      37             : static inline ulong
      38           0 : fd_bank_hash_cmp_align( void ) {
      39           0 :   return 128UL;
      40           0 : }
      41             : 
      42             : FD_FN_CONST static inline ulong
      43           0 : fd_bank_hash_cmp_footprint( void ) {
      44             :   /* clang-format off */
      45           0 :     return FD_LAYOUT_FINI( FD_LAYOUT_APPEND( FD_LAYOUT_APPEND( FD_LAYOUT_INIT,
      46           0 :         fd_bank_hash_cmp_align(), sizeof(fd_bank_hash_cmp_t) ),
      47           0 :         fd_bank_hash_cmp_map_align(), fd_bank_hash_cmp_map_footprint() ),
      48           0 :         fd_bank_hash_cmp_align() );
      49             :   /* clang-format on */
      50           0 : }
      51             : 
      52             : void *
      53             : fd_bank_hash_cmp_new( void * mem );
      54             : 
      55             : fd_bank_hash_cmp_t *
      56             : fd_bank_hash_cmp_join( void * bank_hash_cmp );
      57             : 
      58             : void *
      59             : fd_bank_hash_cmp_leave( fd_bank_hash_cmp_t const * bank_hash_cmp );
      60             : 
      61             : void *
      62             : fd_bank_hash_cmp_delete( void * bank_hash_cmp );
      63             : 
      64             : void
      65             : fd_bank_hash_cmp_lock( fd_bank_hash_cmp_t * bank_hash_cmp );
      66             : 
      67             : void
      68             : fd_bank_hash_cmp_unlock( fd_bank_hash_cmp_t * bank_hash_cmp );
      69             : 
      70             : void
      71             : fd_bank_hash_cmp_insert( fd_bank_hash_cmp_t * bank_hash_cmp,
      72             :                          ulong                slot,
      73             :                          fd_hash_t const *    hash,
      74             :                          int                  ours,
      75             :                          ulong                stake );
      76             : 
      77             : /* Returns 1 on bank hash match (caller should move watermark forward),
      78             :           -1 on mismatch
      79             :            0 if we weren't able to compare yet */
      80             : int
      81             : fd_bank_hash_cmp_check( fd_bank_hash_cmp_t * bank_hash_cmp, ulong slot );
      82             : 
      83             : FD_PROTOTYPES_END
      84             : 
      85             : #endif /* HEADER_fd_src_flamenco_runtime_fd_bank_hash_cmp_h */

Generated by: LCOV version 1.14