Merge pull request #1997 from yatch/pr/packetbuf-remaininglen

Introduce packetbuf_remaininglen()
This commit is contained in:
Antonio Lignan 2016-12-27 22:38:14 +01:00 committed by GitHub
commit 9befc02331
2 changed files with 19 additions and 6 deletions

View File

@ -184,6 +184,12 @@ packetbuf_totlen(void)
return packetbuf_hdrlen() + packetbuf_datalen(); return packetbuf_hdrlen() + packetbuf_datalen();
} }
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
uint16_t
packetbuf_remaininglen(void)
{
return PACKETBUF_SIZE - packetbuf_totlen();
}
/*---------------------------------------------------------------------------*/
void void
packetbuf_attr_clear(void) packetbuf_attr_clear(void)
{ {
@ -196,7 +202,7 @@ packetbuf_attr_clear(void)
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void void
packetbuf_attr_copyto(struct packetbuf_attr *attrs, packetbuf_attr_copyto(struct packetbuf_attr *attrs,
struct packetbuf_addr *addrs) struct packetbuf_addr *addrs)
{ {
memcpy(attrs, packetbuf_attrs, sizeof(packetbuf_attrs)); memcpy(attrs, packetbuf_attrs, sizeof(packetbuf_attrs));
memcpy(addrs, packetbuf_addrs, sizeof(packetbuf_addrs)); memcpy(addrs, packetbuf_addrs, sizeof(packetbuf_addrs));
@ -204,7 +210,7 @@ packetbuf_attr_copyto(struct packetbuf_attr *attrs,
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
void void
packetbuf_attr_copyfrom(struct packetbuf_attr *attrs, packetbuf_attr_copyfrom(struct packetbuf_attr *attrs,
struct packetbuf_addr *addrs) struct packetbuf_addr *addrs)
{ {
memcpy(packetbuf_attrs, attrs, sizeof(packetbuf_attrs)); memcpy(packetbuf_attrs, attrs, sizeof(packetbuf_attrs));
memcpy(packetbuf_addrs, addrs, sizeof(packetbuf_addrs)); memcpy(packetbuf_addrs, addrs, sizeof(packetbuf_addrs));

View File

@ -123,6 +123,13 @@ uint16_t packetbuf_datalen(void);
*/ */
uint16_t packetbuf_totlen(void); uint16_t packetbuf_totlen(void);
/**
* \brief Get the total length of the remaining space in the packetbuf
* \return Length of the remaining space in the packetbuf
*
*/
uint16_t packetbuf_remaininglen(void);
/** /**
* \brief Set the length of the data in the packetbuf * \brief Set the length of the data in the packetbuf
* \param len The length of the data * \param len The length of the data
@ -241,7 +248,7 @@ enum {
PACKETBUF_ATTR_TSCH_SLOTFRAME, PACKETBUF_ATTR_TSCH_SLOTFRAME,
PACKETBUF_ATTR_TSCH_TIMESLOT, PACKETBUF_ATTR_TSCH_TIMESLOT,
#endif /* TSCH_WITH_LINK_SELECTOR */ #endif /* TSCH_WITH_LINK_SELECTOR */
/* Scope 1 attributes: used between two neighbors only. */ /* Scope 1 attributes: used between two neighbors only. */
#if PACKETBUF_WITH_PACKET_TYPE #if PACKETBUF_WITH_PACKET_TYPE
PACKETBUF_ATTR_PACKET_TYPE, PACKETBUF_ATTR_PACKET_TYPE,
@ -267,7 +274,7 @@ enum {
PACKETBUF_ATTR_KEY_INDEX, PACKETBUF_ATTR_KEY_INDEX,
PACKETBUF_ATTR_KEY_SOURCE_BYTES_0_1, PACKETBUF_ATTR_KEY_SOURCE_BYTES_0_1,
#endif /* LLSEC802154_USES_EXPLICIT_KEYS */ #endif /* LLSEC802154_USES_EXPLICIT_KEYS */
/* Scope 2 attributes: used between end-to-end nodes. */ /* Scope 2 attributes: used between end-to-end nodes. */
#if NETSTACK_CONF_WITH_RIME #if NETSTACK_CONF_WITH_RIME
PACKETBUF_ATTR_HOPS, PACKETBUF_ATTR_HOPS,
@ -343,9 +350,9 @@ int packetbuf_holds_broadcast(void);
void packetbuf_attr_clear(void); void packetbuf_attr_clear(void);
void packetbuf_attr_copyto(struct packetbuf_attr *attrs, void packetbuf_attr_copyto(struct packetbuf_attr *attrs,
struct packetbuf_addr *addrs); struct packetbuf_addr *addrs);
void packetbuf_attr_copyfrom(struct packetbuf_attr *attrs, void packetbuf_attr_copyfrom(struct packetbuf_attr *attrs,
struct packetbuf_addr *addrs); struct packetbuf_addr *addrs);
#define PACKETBUF_ATTRIBUTES(...) { __VA_ARGS__ PACKETBUF_ATTR_LAST } #define PACKETBUF_ATTRIBUTES(...) { __VA_ARGS__ PACKETBUF_ATTR_LAST }
#define PACKETBUF_ATTR_LAST { PACKETBUF_ATTR_NONE, 0 } #define PACKETBUF_ATTR_LAST { PACKETBUF_ATTR_NONE, 0 }