X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=pb.h;h=d6cb1d40111abbf1c2dfc1d6eba68bf7f665cb60;hb=9be2cfe968b4223f9d416aecd483f3b999bbab71;hp=375b4a5adac18029e529add482f0c10caeccc700;hpb=842c960d5df4b7715b0c7d2c00adeddf84389421;p=apps%2Fagl-service-can-low-level.git diff --git a/pb.h b/pb.h index 375b4a5a..d6cb1d40 100644 --- a/pb.h +++ b/pb.h @@ -63,6 +63,10 @@ #include #include #include + +#ifdef PB_ENABLE_MALLOC +#include +#endif #endif /* Macro for defining packed structures (compiler dependent). @@ -234,21 +238,15 @@ STATIC_ASSERT(sizeof(uint64_t) == 8, UINT64_T_WRONG_SIZE) * It has the number of bytes in the beginning, and after that an array. * Note that actual structs used will have a different length of bytes array. */ +#define PB_BYTES_ARRAY_T(n) struct { size_t size; uint8_t bytes[n]; } +#define PB_BYTES_ARRAY_T_ALLOCSIZE(n) ((size_t)n + offsetof(pb_bytes_array_t, bytes)) + struct _pb_bytes_array_t { size_t size; uint8_t bytes[1]; }; typedef struct _pb_bytes_array_t pb_bytes_array_t; -/* Same, except for pointer-type fields. There is no need to variable struct - * length in this case. - */ -struct _pb_bytes_ptr_t { - size_t size; - uint8_t *bytes; -}; -typedef struct _pb_bytes_ptr_t pb_bytes_ptr_t; - /* This structure is used for giving the callback function. * It is stored in the message structure and filled in by the method that * calls pb_decode.