Line data Source code
1 : #ifndef HEADER_fd_src_appdctl_run_tiles_fd_replay_notif_h 2 : #define HEADER_fd_src_appdctl_run_tiles_fd_replay_notif_h 1 3 : 4 : #include "../../../../funk/fd_funk.h" 5 : 6 : /* Data structure which is passed through replay_notif link */ 7 : 8 : #define FD_REPLAY_NOTIF_MTU 2048U 9 : #define FD_REPLAY_NOTIF_ACCT_MAX ((FD_REPLAY_NOTIF_MTU - 128U)/sizeof(struct fd_replay_notif_acct)) 10 : #define FD_REPLAY_NOTIF_DEPTH (1U<<15U) 11 : 12 0 : #define FD_REPLAY_ACCTS_TYPE 0x29FE5135U 13 0 : #define FD_REPLAY_SLOT_TYPE 0xD1239ACAU 14 : 15 : struct __attribute__((aligned(1))) fd_replay_notif_acct { 16 : uchar id [ 32U ]; /* Account id */ 17 : uchar flags; /* 0=nothing 1=account written */ 18 : }; 19 0 : #define FD_REPLAY_NOTIF_ACCT_WRITTEN ((uchar)1) 20 : #define FD_REPLAY_NOTIF_ACCT_NO_FLAGS ((uchar)0) 21 : 22 : struct __attribute__((aligned(64UL))) fd_replay_notif_msg { 23 : union { 24 : struct { 25 : fd_funk_txn_xid_t funk_xid; 26 : uchar sig[64U]; /* Transaction signature */ 27 : struct fd_replay_notif_acct accts[FD_REPLAY_NOTIF_ACCT_MAX]; 28 : uint accts_cnt; 29 : } accts; 30 : struct { 31 : ulong parent; 32 : ulong root; 33 : ulong slot; 34 : ulong height; 35 : fd_hash_t bank_hash; 36 : fd_hash_t block_hash; 37 : fd_pubkey_t identity; 38 : ulong transaction_count; 39 : } slot_exec; 40 : }; 41 : uint type; 42 : }; 43 : typedef struct fd_replay_notif_msg fd_replay_notif_msg_t; 44 : 45 : /* MTU on replay_notif link is 128 */ 46 : FD_STATIC_ASSERT( sizeof(fd_replay_notif_msg_t) <= FD_REPLAY_NOTIF_MTU, notify message too big); 47 : 48 : #endif /* HEADER_fd_src_appdctl_run_tiles_fd_replay_notif_h */