LCOV - code coverage report
Current view: top level - discof/backup - fd_snapmk_tile.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 0 5 0.0 %
Date: 2026-08-15 04:34:25 Functions: 0 0 -

          Line data    Source code
       1             : #ifndef HEADER_fd_src_discof_backup_fd_snapmk_tile_h
       2             : #define HEADER_fd_src_discof_backup_fd_snapmk_tile_h
       3             : 
       4             : /* fd_snapmk_tile.h specifies the snapmk tile ABI.
       5             :    The snapmk tile is the IPC entrypoint for snapshot production. */
       6             : 
       7             : #include "fd_backup.h"
       8             : #include "../../tango/fd_tango_base.h"
       9             : 
      10             : /* snapmk_out ABI
      11             : 
      12             :    snapmk_out is a reliable tango link with dcache alloc policy.
      13             :    mcache descriptor fields as follows:
      14             :    - seq: sequence number
      15             :    - sig: payload type (FD_SNAPMK_MSG_*)
      16             :    - chunk: compressed payload pointer (fd_chunk_to_laddr wksp-relative)
      17             :    - sz: payload size
      18             :    - tspub: compressed tickcount event timestamp
      19             :    Other fields are reserved for future use.
      20             : 
      21             :    Consumers can replay found/created/deleted messages to reconstruct a
      22             :    live view of all available snapshots on the file system.*/
      23             : 
      24             : /* FD_SNAPMK_MSG_* give message types */
      25             : 
      26           0 : #define FD_SNAPMK_MSG_FOUND   1 /* fd_snapmk_msg_found_t */
      27           0 : #define FD_SNAPMK_MSG_CREATED 2 /* fd_snapmk_msg_created_t */
      28           0 : #define FD_SNAPMK_MSG_DELETED 3 /* fd_snapmk_msg_deleted_t */
      29           0 : #define FD_SNAPMK_MSG_STARTED 4 /* fd_snapmk_msg_started_t */
      30           0 : #define FD_SNAPMK_MSG_FAILED  5 /* fd_snapmk_msg_failed_t */
      31             : 
      32             : /* fd_snapmk_msg_found_t signals that a pre-existing snapshot was found
      33             :    on the file system.  That snapshot comes from a previous run or was
      34             :    just downloaded by the snapshot loading pipeline.
      35             : 
      36             :    A burst of these messages is also created after startup (once the
      37             :    snapshot loading pipeline finishes). */
      38             : 
      39             : struct fd_snapmk_msg_found {
      40             :   ulong slot;      /* snapshot slot */
      41             :   ulong base_slot; /* ULONG_MAX if full snapshot */
      42             :   ulong sz;        /* snapshot file size */
      43             :   uint  pool_idx;  /* FD_SNAP_FD( pool_idx ) -> snap file descriptor */
      44             :   uint  reserved;
      45             :   char  name[ FD_SNAP_NAME_MAX ];
      46             :   long  fs_timestamp; /* unix nanosecond timestamp from file (LONG_MAX if unknown) */
      47             : };
      48             : 
      49             : typedef struct fd_snapmk_msg_found fd_snapmk_msg_found_t;
      50             : 
      51             : /* fd_snapmk_msg_created_t signals that a new snapshot was just produced
      52             :    and is available on the file system. */
      53             : 
      54             : struct fd_snapmk_msg_created {
      55             :   ulong slot;      /* snapshot slot */
      56             :   ulong base_slot; /* ULONG_MAX if full snapshot */
      57             :   ulong sz;        /* snapshot file size */
      58             :   uint  pool_idx;  /* FD_SNAP_FD( pool_idx ) -> snap file descriptor */
      59             :   uint  reserved;
      60             :   char  name[ FD_SNAP_NAME_MAX ];
      61             : };
      62             : 
      63             : typedef struct fd_snapmk_msg_created fd_snapmk_msg_created_t;
      64             : 
      65             : /* fd_snapmk_msg_deleted_t signals that a snapshot is about to be
      66             :    deleted. */
      67             : 
      68             : struct fd_snapmk_msg_deleted {
      69             :   ulong slot;
      70             :   ulong base_slot; /* ULONG_MAX if full snapshot */
      71             :   uint  pool_idx; /* FD_SNAP_FD( pool_idx ) -> snap file descriptor */
      72             :   uint  reserved1;
      73             :   char  name[ FD_SNAP_NAME_MAX ];
      74             : };
      75             : 
      76             : typedef struct fd_snapmk_msg_deleted fd_snapmk_msg_deleted_t;
      77             : 
      78             : /* fd_snapmk_msg_started_t signals that the snapshot production pipeline
      79             :    has started.  Will eventually be followed by a created or failed msg. */
      80             : 
      81             : struct fd_snapmk_msg_started {
      82             :   ulong slot;
      83             :   ulong base_slot; /* ULONG_MAX if full snapshot */
      84             :   uint  pool_idx; /* FD_SNAP_FD( pool_idx ) -> snap file descriptor */
      85             : };
      86             : 
      87             : typedef struct fd_snapmk_msg_started fd_snapmk_msg_started_t;
      88             : 
      89             : /* fd_snapmk_msg_failed_t signals that snapshot production failed.
      90             :    Currently, there is only one failure reason: too many accounts
      91             :    changed since the full snapshot to fit in the incremental snap. */
      92             : 
      93             : struct fd_snapmk_msg_failed {
      94             :   ulong slot;
      95             :   ulong base_slot; /* ULONG_MAX if full snapshot */
      96             :   uint  reserved;
      97             : };
      98             : 
      99             : typedef struct fd_snapmk_msg_failed fd_snapmk_msg_failed_t;
     100             : 
     101             : /* fd_snapmk_msg_t is the data payload behind the fd_frag_meta_t::chunk
     102             :    compressed offset. */
     103             : 
     104             : union fd_snapmk_msg {
     105             :   fd_snapmk_msg_found_t   found;
     106             :   fd_snapmk_msg_created_t created;
     107             :   fd_snapmk_msg_deleted_t deleted;
     108             :   fd_snapmk_msg_started_t started;
     109             :   fd_snapmk_msg_failed_t  failed;
     110             : };
     111             : 
     112             : typedef union fd_snapmk_msg fd_snapmk_msg_t;
     113             : 
     114             : #endif /* HEADER_fd_src_discof_backup_fd_snapmk_tile_h */

Generated by: LCOV version 1.14