Line data Source code
1 : #include "fd_aio.h" 2 : 3 : void * 4 : fd_aio_new( void * shmem, 5 : void * ctx, 6 63 : fd_aio_send_func_t send_func ) { 7 63 : if( FD_UNLIKELY( !shmem ) ) { 8 3 : FD_LOG_WARNING(( "NULL shmem" )); 9 3 : return NULL; 10 3 : } 11 : 12 60 : if( FD_UNLIKELY( !send_func ) ) { 13 3 : FD_LOG_WARNING(( "NULL send_func" )); 14 3 : return NULL; 15 3 : } 16 : 17 57 : fd_aio_t * aio = (fd_aio_t *)shmem; 18 : 19 57 : aio->ctx = ctx; 20 57 : aio->send_func = send_func; 21 : 22 57 : return (void *)aio; 23 60 : } 24 : 25 : fd_aio_t * 26 6 : fd_aio_join( void * shaio ) { 27 6 : if( FD_UNLIKELY( !shaio ) ) { 28 3 : FD_LOG_WARNING(( "NULL shaio" )); 29 3 : return NULL; 30 3 : } 31 3 : return (fd_aio_t *)shaio; 32 6 : } 33 : 34 : void * 35 6 : fd_aio_leave( fd_aio_t * aio ) { 36 6 : if( FD_UNLIKELY( !aio ) ) { 37 3 : FD_LOG_WARNING(( "NULL aio" )); 38 3 : return NULL; 39 3 : } 40 3 : return (void *)aio; 41 6 : } 42 : 43 : void * 44 6 : fd_aio_delete( void * shaio ) { 45 6 : if( FD_UNLIKELY( !shaio ) ) { 46 3 : FD_LOG_WARNING(( "NULL shaio" )); 47 3 : return NULL; 48 3 : } 49 3 : return shaio; 50 6 : } 51 : 52 : char const * 53 12 : fd_aio_strerror( int err ) { 54 12 : switch( err ) { 55 3 : case FD_AIO_SUCCESS: return "success"; 56 3 : case FD_AIO_ERR_INVAL: return "bad input arguments"; 57 3 : case FD_AIO_ERR_AGAIN: return "try again later"; 58 3 : default: break; 59 12 : } 60 3 : return "unknown"; 61 12 : } 62 :