X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Frmr%2Fcommon%2Finclude%2Frmr.h;h=3fc7677c98894028ea6675c4f477ad58269a4687;hb=d961525e9eb23e3dee4a16960a1772782c3b8b36;hp=e3d08d91e39333fd5ed8e598146125e3852819e2;hpb=ec88d3c0563eeb6ae5f73427edb0b3c4d7acf299;p=ric-plt%2Flib%2Frmr.git diff --git a/src/rmr/common/include/rmr.h b/src/rmr/common/include/rmr.h index e3d08d9..3fc7677 100644 --- a/src/rmr/common/include/rmr.h +++ b/src/rmr/common/include/rmr.h @@ -39,7 +39,7 @@ extern "C" { #define RMR_MAX_MEID 32 // spece in header reserved for managed element id #define RMR_MAX_SRC 64 // max length of hostname (which could be IPv6 addr with [...]:port so more than the 39 bytes of a plain addr #define RMR_MAX_SID 32 // misc sender info/data (reserved) -#define RMR_MAX_RCV_BYTES 4096 // max bytes we support in a receive message +#define RMR_MAX_RCV_BYTES (1024 * 64) // max bytes we support in a receive message // various flags for function calls #define RMRFL_NONE 0x00 // no flags @@ -47,6 +47,7 @@ extern "C" { #define RMRFL_MTCALL 0x02 // set up multi-threaded call support (rmr_init) #define RMRFL_AUTO_ALLOC 0x03 // send auto allocates a zerocopy buffer #define RMRFL_NAME_ONLY 0x04 // only the hostname:ip is provided as source information for rts() calls +#define RMRFL_NOLOCK 0x08 // disable receive ring locking (user app ensures single thread or provides collision protection) #define RMR_DEF_SIZE 0 // pass as size to have msg allocation use the default msg size @@ -71,6 +72,11 @@ extern "C" { #define RMR_ERR_INITFAILED 15 // initialisation of something (probably message) failed #define RMR_ERR_NOTSUPP 16 // the request is not supported, or RMr was not initialised for the request +#define RMR_NO_CLONE 0 // parm constants for better readability +#define RMR_CLONE 1 +#define RMR_NO_COPY 0 +#define RMR_COPY 1 + #define RMR_WH_CONNECTED(a) (a>=0) // for now whid is integer; it could be pointer at some future date /* @@ -105,6 +111,8 @@ typedef struct { void* ring; // ring this buffer should be queued back to int rts_fd; // SI fd for return to sender + + int cookie; // cookie to detect user misuse of free'd msg } rmr_mbuf_t; @@ -132,7 +140,9 @@ extern void rmr_set_low_latency( void* vctx ); extern rmr_mbuf_t* rmr_torcv_msg( void* vctx, rmr_mbuf_t* old_msg, int ms_to ); extern rmr_mbuf_t* rmr_tralloc_msg( void* context, int msize, int trsize, unsigned const char* data ); extern rmr_whid_t rmr_wh_open( void* vctx, char const* target ); +extern rmr_mbuf_t* rmr_wh_call( void* vctx, rmr_whid_t whid, rmr_mbuf_t* msg, int call_id, int max_wait ); extern rmr_mbuf_t* rmr_wh_send_msg( void* vctx, rmr_whid_t whid, rmr_mbuf_t* msg ); +extern int rmr_wh_state( void* vctx, rmr_whid_t whid ); extern void rmr_wh_close( void* vctx, int whid ); // ----- mt call support -------------------------------------------------------------------------------- @@ -163,6 +173,8 @@ extern int rmr_set_trace( rmr_mbuf_t* msg, unsigned const char* data, int size ) extern int rmr_rcv_to( void* vctx, int time ); // DEPRECATED -- replaced with set_rtimeout extern int rmr_send_to( void* vctx, int time ); // DEPRECATED -- replaced with set_stimeout +// ---- misc user interface stuff ---------------------------------------------------------------------- +extern void rmr_set_vlevel( int new_level ); // --- uta compatability defs if needed user should define UTA_COMPAT ---------------------------------- #ifdef UTA_COMPAT