Merge branch 'master' of git://ted.mutabah.net/acess2
[tpg/acess2.git] / KernelLand / Modules / IPStack / include / buffer.h
index 62c1308..749fc18 100644 (file)
@@ -15,6 +15,10 @@ typedef void (*tIPStackBufferCb)(void *Arg, size_t HeadLen, size_t FootLen, cons
  * \brief Create a buffer object, with space for \a MaxSubBuffers calls to IPStack_Buffer_AppendSubBuffer
  */
 extern tIPStackBuffer  *IPStack_Buffer_CreateBuffer(int MaxSubBuffers);
+/**
+ * \brief Clear a buffer object without deallocating it
+ */
+extern void    IPStack_Buffer_ClearBuffer(tIPStackBuffer *Buffer);
 /**
  * \brief Destory a created buffer object
  */
@@ -38,6 +42,15 @@ extern void  IPStack_Buffer_AppendSubBuffer(tIPStackBuffer *Buffer,
  * \brief Get the total length of a buffer
  */
 extern size_t  IPStack_Buffer_GetLength(tIPStackBuffer *Buffer);
+
+/**
+ * \brief Copy data from a buffer to a preallocated flat buffer
+ * \param Dest Destination flat buffer
+ * \param MaxBytes     Maximum number of bytes to copy (size of \a Dest)
+ * \return Number of bytes copied
+ */
+extern size_t  IPStack_Buffer_GetData(tIPStackBuffer *Buffer, void *Dest, size_t MaxBytes);
+
 /**
  * \brief Get a sub-buffer from the buffer object
  * \param PrevID       Previous return value, or -1 to start
@@ -54,5 +67,8 @@ extern int    IPStack_Buffer_GetBuffer(tIPStackBuffer *Buffer, int PrevID, size_t *
  */
 extern void    *IPStack_Buffer_CompactBuffer(tIPStackBuffer *Buffer, size_t *Length);
 
+extern void    IPStack_Buffer_LockBuffer(tIPStackBuffer *Buffer);
+extern void    IPStack_Buffer_UnlockBuffer(tIPStackBuffer *Buffer);
+
 #endif
 

UCC git Repository :: git.ucc.asn.au