decode: add PacketSetData funtion

This patch adds a function which can be used to set the payload
of a packet when a zero copy mode is used.
remotes/origin/HEAD
Eric Leblond 14 years ago committed by Victor Julien
parent 49b7b00fcf
commit 3593cb051e

@ -345,6 +345,27 @@ inline int PacketCopyData(Packet *p, uint8_t *pktdata, int pktlen)
SET_PKT_LEN(p, (size_t)pktlen); SET_PKT_LEN(p, (size_t)pktlen);
return PacketCopyDataOffset(p, 0, pktdata, pktlen); return PacketCopyDataOffset(p, 0, pktdata, pktlen);
} }
/**
* \brief Set data for Packet and set length when zeo copy is used
*
* \param Pointer to the Packet to modify
* \param Pointer to the data
* \param Length of the data
*/
inline int PacketSetData(Packet *p, uint8_t *pktdata, int pktlen)
{
SET_PKT_LEN(p, (size_t)pktlen);
if (!pktdata) {
return -1;
}
p->ext_pkt = pktdata;
p->flags |= PKT_ZERO_COPY;
return 0;
}
/** /**
* @} * @}
*/ */

@ -777,6 +777,7 @@ Packet *PacketPseudoPktSetup(Packet *parent, uint8_t *pkt, uint16_t len, uint8_t
Packet *PacketGetFromQueueOrAlloc(void); Packet *PacketGetFromQueueOrAlloc(void);
Packet *PacketGetFromAlloc(void); Packet *PacketGetFromAlloc(void);
int PacketCopyData(Packet *p, uint8_t *pktdata, int pktlen); int PacketCopyData(Packet *p, uint8_t *pktdata, int pktlen);
int PacketSetData(Packet *p, uint8_t *pktdata, int pktlen);
int PacketCopyDataOffset(Packet *p, int offset, uint8_t *data, int datalen); int PacketCopyDataOffset(Packet *p, int offset, uint8_t *data, int datalen);
DecodeThreadVars *DecodeThreadVarsAlloc(); DecodeThreadVars *DecodeThreadVarsAlloc();

Loading…
Cancel
Save