Line data Source code
1 : #ifndef HEADER_fd_src_flamenco_types_fd_types_reflect_private_h 2 : #define HEADER_fd_src_flamenco_types_fd_types_reflect_private_h 3 : 4 : #include "fd_types_reflect.h" 5 : 6 : /* Map API for looking up types by name. */ 7 : 8 0 : #define FD_TYPES_MAP_LG_SLOT_CNT 9 9 : #define MAP_NAME fd_types_map 10 0 : #define MAP_LG_SLOT_CNT FD_TYPES_MAP_LG_SLOT_CNT 11 0 : #define MAP_T fd_types_vt_t 12 0 : #define MAP_KEY_T fd_types_vt_key_t 13 0 : #define MAP_KEY_EQUAL(a,b) ( ((a).name_len==(b).name_len) && 0==memcmp( (a).name, (b).name, (a).name_len ) ) 14 : #define MAP_KEY_EQUAL_IS_SLOW 1 15 0 : #define MAP_KEY_NULL (fd_types_vt_key_t){0} 16 0 : #define MAP_KEY_INVAL(k) ((k).name_len==0) 17 0 : #define MAP_KEY_HASH(k) (uint)fd_hash( 88UL, (k).name, (k).name_len ) 18 : #include "../../util/tmpl/fd_map.c" 19 : 20 : FD_PROTOTYPES_BEGIN 21 : 22 : /* Declare a map for type lookup by name */ 23 : extern fd_types_vt_t fd_types_map[ 1<<FD_TYPES_MAP_LG_SLOT_CNT ]; 24 : 25 : FD_PROTOTYPES_END 26 : 27 : #endif /* HEADER_fd_src_flamenco_types_fd_types_reflect_private_h */