X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlibapi%2Fapi_types.h;h=8cd47bb770f33a261a04b7746d17f725ef58d665;hb=33a58171e5995d9e649b414bfc77f2aab26e4c58;hp=759298e735dc6dcaeb097dbefe0153001a1e0311;hpb=413f4a5b2123c1625d615315db293a080078482b;p=vpp.git diff --git a/src/vlibapi/api_types.h b/src/vlibapi/api_types.h index 759298e735d..8cd47bb770f 100644 --- a/src/vlibapi/api_types.h +++ b/src/vlibapi/api_types.h @@ -20,7 +20,16 @@ #ifndef included_api_types_h #define included_api_types_h +#include +#include #include +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* VPP API string type */ typedef struct @@ -29,26 +38,15 @@ typedef struct u8 buf[0]; } __attribute__ ((packed)) vl_api_string_t; -static inline int -vl_api_to_api_string (u32 len, const char *buf, vl_api_string_t * str) -{ - if (strncpy_s ((char *) str->buf, len, buf, len - 1) != 0) - len = 0; - str->length = clib_host_to_net_u32 (len); - return len + sizeof (u32); -} - -/* Return a C string from API string */ -static inline u8 * -vl_api_from_api_string (vl_api_string_t * astr) -{ - return astr->buf; -} +extern int vl_api_to_api_string (u32 len, const char *buf, vl_api_string_t * str); +extern int vl_api_vec_to_api_string (const u8 *vec, vl_api_string_t * str); +extern u8 * vl_api_from_api_string (vl_api_string_t * astr); +extern u32 vl_api_string_len (vl_api_string_t * astr); +extern u8 * vl_api_from_api_to_vec (vl_api_string_t *astr); +extern u8 *vl_api_format_string (u8 *s, va_list *args); -static inline u32 -vl_api_string_len (vl_api_string_t * astr) -{ - return clib_net_to_host_u32 (astr->length); +#ifdef __cplusplus } +#endif #endif