xref: /haiku/src/add-ons/kernel/file_systems/nfs/XDROutPacket.h (revision f4783a9fb9129819d76ecd61907238780345ea9c)
1*f4783a9fSFrançois Revol #ifndef _XDROUTPACKET_H
2*f4783a9fSFrançois Revol 
3*f4783a9fSFrançois Revol #define _XDROUTPACKET_H
4*f4783a9fSFrançois Revol 
5*f4783a9fSFrançois Revol #include <SupportDefs.h>
6*f4783a9fSFrançois Revol 
7*f4783a9fSFrançois Revol #define XDROUTPACKET_BUFFER_INCREMENT 512
8*f4783a9fSFrançois Revol 
9*f4783a9fSFrançois Revol struct XDROutPacket
10*f4783a9fSFrançois Revol {
11*f4783a9fSFrançois Revol 	uint8 *fBuffer;
12*f4783a9fSFrançois Revol 	size_t fSize;
13*f4783a9fSFrançois Revol 	size_t fLength;
14*f4783a9fSFrançois Revol };
15*f4783a9fSFrançois Revol 
16*f4783a9fSFrançois Revol void XDROutPacketInit (struct XDROutPacket *packet);
17*f4783a9fSFrançois Revol void XDROutPacketDestroy (struct XDROutPacket *packet);
18*f4783a9fSFrançois Revol 
19*f4783a9fSFrançois Revol void XDROutPacketGrow (struct XDROutPacket *packet, size_t size);
20*f4783a9fSFrançois Revol void XDROutPacketAddInt32 (struct XDROutPacket *packet, int32 val);
21*f4783a9fSFrançois Revol void XDROutPacketAddDynamic (struct XDROutPacket *packet, const void *data, size_t size);
22*f4783a9fSFrançois Revol void XDROutPacketAddFixed (struct XDROutPacket *packet, const void *data, size_t size);
23*f4783a9fSFrançois Revol void XDROutPacketAddString (struct XDROutPacket *packet, const char *string);
24*f4783a9fSFrançois Revol void XDROutPacketAppend (struct XDROutPacket *me, const struct XDROutPacket *packet);
25*f4783a9fSFrançois Revol 
26*f4783a9fSFrançois Revol const uint8 *XDROutPacketBuffer (struct XDROutPacket *packet);
27*f4783a9fSFrançois Revol size_t XDROutPacketLength (struct XDROutPacket *packet);
28*f4783a9fSFrançois Revol void XDROutPacketClear (struct XDROutPacket *packet);
29*f4783a9fSFrançois Revol 
30*f4783a9fSFrançois Revol #endif
31