Add vl_msg_api_get_message_length[_inline]

Change-Id: I6d86cf7966d51ec7a507bbb59c586adbfb45be05
Signed-off-by: Dave Barach <dave@barachs.net>
This commit is contained in:
Dave Barach
2017-05-12 11:59:25 -04:00
committed by Damjan Marion
parent 3291ecaec6
commit bfd9227e6d
2 changed files with 17 additions and 0 deletions

View File

@ -25,6 +25,7 @@
#include <vlib/vlib.h>
#include <vlibmemory/unix_shared_memory_queue.h>
#include <vlib/unix/unix.h>
#include <stddef.h>
typedef enum
{
@ -280,6 +281,7 @@ u16 vl_msg_api_get_msg_ids (const char *name, int n);
void vl_msg_api_add_msg_name_crc (api_main_t * am, const char *string,
u32 id);
u32 vl_api_get_msg_index (u8 * name_and_crc);
u32 vl_msg_api_get_msg_length (void *msg_arg);
/* node_serialize.c prototypes */
u8 *vlib_node_serialize (vlib_node_main_t * nm, u8 * vector,
@ -336,6 +338,15 @@ static void __vl_msg_api_add_##tag##_function_##x (void) \
_error = _f (ci); \
})
static inline u32
vl_msg_api_get_msg_length_inline (void *msg_arg)
{
u8 *msg = (u8 *) msg_arg;
msgbuf_t *header = (msgbuf_t *) (msg - offsetof (msgbuf_t, data));
return clib_net_to_host_u32 (header->data_len);
}
#endif /* included_api_h */
/*