Line data Source code
1 : #include "fd_aio.h" 2 : 3 : /* These are currently stubs in anticipation of future AIO 4 : functionality. */ 5 : 6 : ulong 7 6 : fd_aio_align( void ) { 8 6 : return FD_AIO_ALIGN; 9 6 : } 10 : 11 : ulong 12 6 : fd_aio_footprint( void ) { 13 6 : return FD_AIO_FOOTPRINT; 14 6 : } 15 : 16 : void * 17 : fd_aio_new( void * shmem, 18 : void * ctx, 19 3333 : fd_aio_send_func_t send_func ) { 20 3333 : if( FD_UNLIKELY( !shmem ) ) { 21 3 : FD_LOG_WARNING(( "NULL shmem" )); 22 3 : return NULL; 23 3 : } 24 : 25 3330 : if( FD_UNLIKELY( !send_func ) ) { 26 3 : FD_LOG_WARNING(( "NULL send_func" )); 27 3 : return NULL; 28 3 : } 29 : 30 3327 : fd_aio_t * aio = (fd_aio_t *)shmem; 31 : 32 3327 : aio->ctx = ctx; 33 3327 : aio->send_func = send_func; 34 : 35 3327 : return (void *)aio; 36 3330 : } 37 : 38 : fd_aio_t * 39 3297 : fd_aio_join( void * shaio ) { 40 3297 : if( FD_UNLIKELY( !shaio ) ) { 41 3 : FD_LOG_WARNING(( "NULL shaio" )); 42 3 : return NULL; 43 3 : } 44 3294 : return (fd_aio_t *)shaio; 45 3297 : } 46 : 47 : void * 48 2100 : fd_aio_leave( fd_aio_t * aio ) { 49 2100 : if( FD_UNLIKELY( !aio ) ) { 50 3 : FD_LOG_WARNING(( "NULL aio" )); 51 3 : return NULL; 52 3 : } 53 2097 : return (void *)aio; 54 2100 : } 55 : 56 : void * 57 2106 : fd_aio_delete( void * shaio ) { 58 2106 : if( FD_UNLIKELY( !shaio ) ) { 59 3 : FD_LOG_WARNING(( "NULL shaio" )); 60 3 : return NULL; 61 3 : } 62 2103 : return shaio; 63 2106 : } 64 : 65 : char const * 66 12 : fd_aio_strerror( int err ) { 67 12 : switch( err ) { 68 3 : case FD_AIO_SUCCESS: return "success"; 69 3 : case FD_AIO_ERR_INVAL: return "bad input arguments"; 70 3 : case FD_AIO_ERR_AGAIN: return "try again later"; 71 3 : default: break; 72 12 : } 73 3 : return "unknown"; 74 12 : } 75 :