LCOV - code coverage report
Current view: top level - flamenco/runtime/context - fd_capture_ctx.c (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 0 64 0.0 %
Date: 2024-11-13 11:58:15 Functions: 0 4 0.0 %

          Line data    Source code
       1             : #include "fd_capture_ctx.h"
       2             : 
       3             : #include <time.h>
       4             : 
       5             : void *
       6           0 : fd_capture_ctx_new( void * mem ) {
       7           0 :   if( FD_UNLIKELY( !mem ) ) {
       8           0 :     FD_LOG_WARNING(( "NULL mem" ));
       9           0 :     return NULL;
      10           0 :   }
      11             : 
      12           0 :   if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)mem, FD_CAPTURE_CTX_ALIGN ) ) ) {
      13           0 :     FD_LOG_WARNING(( "misaligned mem" ));
      14           0 :     return NULL;
      15           0 :   }
      16             : 
      17           0 :   fd_memset(mem, 0, FD_CAPTURE_CTX_FOOTPRINT);
      18             : 
      19           0 :   fd_capture_ctx_t * self = (fd_capture_ctx_t *) mem;
      20           0 :   self->capture = (fd_solcap_writer_t *)((uchar *)mem + sizeof(fd_capture_ctx_t));
      21           0 :   fd_solcap_writer_new( self->capture );
      22             : 
      23           0 :   FD_COMPILER_MFENCE();
      24           0 :   self->magic = FD_CAPTURE_CTX_MAGIC;
      25           0 :   FD_COMPILER_MFENCE();
      26             : 
      27           0 :   return mem;
      28           0 : }
      29             : 
      30             : fd_capture_ctx_t *
      31           0 : fd_capture_ctx_join( void * mem ) {
      32           0 :   if( FD_UNLIKELY( !mem ) ) {
      33           0 :     FD_LOG_WARNING(( "NULL block" ));
      34           0 :     return NULL;
      35           0 :   }
      36             : 
      37           0 :   fd_capture_ctx_t * ctx = (fd_capture_ctx_t *) mem;
      38             : 
      39           0 :   if( FD_UNLIKELY( ctx->magic!=FD_CAPTURE_CTX_MAGIC ) ) {
      40           0 :     FD_LOG_WARNING(( "bad magic" ));
      41           0 :     return NULL;
      42           0 :   }
      43             : 
      44           0 :   return ctx;
      45           0 : }
      46             : 
      47             : void *
      48           0 : fd_capture_ctx_leave( fd_capture_ctx_t * ctx) {
      49           0 :   if( FD_UNLIKELY( !ctx ) ) {
      50           0 :     FD_LOG_WARNING(( "NULL block" ));
      51           0 :     return NULL;
      52           0 :   }
      53             : 
      54           0 :   if( FD_UNLIKELY( ctx->magic!=FD_CAPTURE_CTX_MAGIC ) ) {
      55           0 :     FD_LOG_WARNING(( "bad magic" ));
      56           0 :     return NULL;
      57           0 :   }
      58             : 
      59           0 :   return (void *) ctx;
      60           0 : }
      61             : 
      62             : void *
      63           0 : fd_capture_ctx_delete( void * mem ) {
      64           0 :   if( FD_UNLIKELY( !mem ) ) {
      65           0 :     FD_LOG_WARNING(( "NULL mem" ));
      66           0 :     return NULL;
      67           0 :   }
      68             : 
      69           0 :   if( FD_UNLIKELY( !fd_ulong_is_aligned( (ulong)mem, FD_CAPTURE_CTX_ALIGN) ) )  {
      70           0 :     FD_LOG_WARNING(( "misaligned mem" ));
      71           0 :     return NULL;
      72           0 :   }
      73             : 
      74           0 :   fd_capture_ctx_t * hdr = (fd_capture_ctx_t *)mem;
      75           0 :   if( FD_UNLIKELY( hdr->magic!=FD_CAPTURE_CTX_MAGIC ) ) {
      76           0 :     FD_LOG_WARNING(( "bad magic" ));
      77           0 :     return NULL;
      78           0 :   }
      79             : 
      80           0 :   if( FD_UNLIKELY( fd_solcap_writer_delete( hdr->capture ) == NULL ) ) {
      81           0 :     FD_LOG_WARNING(( "failed deleting capture" ));
      82           0 :     return NULL;
      83           0 :   }
      84             : 
      85           0 :   FD_COMPILER_MFENCE();
      86           0 :   FD_VOLATILE( hdr->magic ) = 0UL;
      87           0 :   FD_COMPILER_MFENCE();
      88             : 
      89           0 :   return mem;
      90           0 : }

Generated by: LCOV version 1.14