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