summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2011-11-22 10:57:33 +0100
committerAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2011-11-22 10:57:33 +0100
commitc8cd582507923a1f7ddcc05af47ea30a452e8c34 (patch)
tree0769d18dd9935f4228a32a6744707bc64d2331ad /include
parentc870bcb94957fcbab7f56b6cd3ff5a0fc659f24c (diff)
downloadDLT-daemon-c8cd582507923a1f7ddcc05af47ea30a452e8c34.tar.gz
dlt-system filetransfer now recovers when file is deleted during filetransfer.
Added check of file size when starting and deleting files during filetransfer. Added check of shm buffer availability when push to shm.
Diffstat (limited to 'include')
-rwxr-xr-xinclude/dlt/dlt_common.h148
1 files changed, 98 insertions, 50 deletions
diff --git a/include/dlt/dlt_common.h b/include/dlt/dlt_common.h
index ba553c4..f6a46d5 100755
--- a/include/dlt/dlt_common.h
+++ b/include/dlt/dlt_common.h
@@ -971,91 +971,139 @@ extern "C"
int dlt_check_storageheader(DltStorageHeader *storageheader);
+ /**
+ * Initialise static ringbuffer with a size of size.
+ * Initialise as server. Init counters.
+ * Memory is already allocated.
+ * @param buf Pointer to ringbuffer structure
+ * @param ptr Ptr to ringbuffer memory
+ * @param size Maximum size of buffer in bytes
+ * @return negative value if there was an error
+ */
int dlt_buffer_init_static_server(DltBuffer *buf, const unsigned char *ptr, uint32_t size);
+
+ /**
+ * Initialize static ringbuffer with a size of size.
+ * Initialise as a client. Do not change counters.
+ * Memory is already allocated.
+ * @param buf Pointer to ringbuffer structure
+ * @param ptr Ptr to ringbuffer memory
+ * @param size Maximum size of buffer in bytes
+ * @return negative value if there was an error
+ */
int dlt_buffer_init_static_client(DltBuffer *buf, const unsigned char *ptr, uint32_t size);
+
+ /**
+ * Initialize dynamic ringbuffer with a size of size.
+ * Initialise as a client. Do not change counters.
+ * Memory will be allocated starting with min_size.
+ * If more memory is needed size is increased wit step_size.
+ * The maximum size is max_size.
+ * @param buf Pointer to ringbuffer structure
+ * @param min_size Minimum size of buffer in bytes
+ * @param max_size Maximum size of buffer in bytes
+ * @param step_size size of which ringbuffer is increased
+ * @return negative value if there was an error
+ */
int dlt_buffer_init_dynamic(DltBuffer *buf, uint32_t min_size, uint32_t max_size,uint32_t step_size);
- int dlt_buffer_free_static(DltBuffer *buf);
- int dlt_buffer_free_dynamic(DltBuffer *buf);
- int dlt_buffer_push(DltBuffer *buf,const unsigned char *data,unsigned int size);
- int dlt_buffer_push3(DltBuffer *buf,const unsigned char *data1,unsigned int size1,const unsigned char *data2,unsigned int size2,const unsigned char *data3,unsigned int size3);
- int dlt_buffer_pull(DltBuffer *buf,unsigned char *data, int max_size);
- int dlt_buffer_copy(DltBuffer *buf,unsigned char *data, int max_size);
- int dlt_buffer_remove(DltBuffer *buf);
- void dlt_buffer_info(DltBuffer *buf);
- void dlt_buffer_status(DltBuffer *buf);
- int dlt_buffer_get_total_size(DltBuffer *buf);
- int dlt_buffer_get_used_size(DltBuffer *buf);
- int dlt_buffer_get_message_count(DltBuffer *buf);
/**
- * Initialize ringbuffer of with a maximum size of size
- * @param dltbuf Pointer to ringbuffer structure
- * @param size Maximum size of buffer in bytes
+ * Deinitilaise usage of static ringbuffer
+ * @param buf Pointer to ringbuffer structure
* @return negative value if there was an error
*/
- int dlt_ringbuffer_init(DltRingBuffer *dltbuf, uint32_t size);
+ int dlt_buffer_free_static(DltBuffer *buf);
/**
- * Release and free memory used by ringbuffer
- * @param dltbuf Pointer to ringbuffer structure
+ * Release and free memory used by dynamic ringbuffer
+ * @param buf Pointer to ringbuffer structure
* @return negative value if there was an error
*/
- int dlt_ringbuffer_free(DltRingBuffer *dltbuf);
+ int dlt_buffer_free_dynamic(DltBuffer *buf);
/**
* Write one entry to ringbuffer
- * @param dltbuf Pointer to ringbuffer structure
+ * @param buf Pointer to ringbuffer structure
* @param data Pointer to data to be written to ringbuffer
* @param size Size of data in bytes to be written to ringbuffer
* @return negative value if there was an error
*/
- int dlt_ringbuffer_put(DltRingBuffer *dltbuf, void *data, uint32_t size);
+ int dlt_buffer_push(DltBuffer *buf,const unsigned char *data,unsigned int size);
/**
- * Write one entry given as 3 chunks to ringbuffer
- * @param dltbuf Pointer to ringbuffer structure
- * @param data1 Pointer to data1 to be written to ringbuffer
- * @param size1 Size of data1 in bytes to be written to ringbuffer
- * @param data2 Pointer to data2 to be written to ringbuffer
- * @param size2 Size of data2 in bytes to be written to ringbuffer
- * @param data3 Pointer to data3 to be written to ringbuffer
- * @param size3 Size of data3 in bytes to be written to ringbuffer
+ * Write up to three entries to ringbuffer.
+ * Entries are joined to one block.
+ * @param dlt Pointer to ringbuffer structure
+ * @param data1 Pointer to data to be written to ringbuffer
+ * @param size1 Size of data in bytes to be written to ringbuffer
+ * @param data2 Pointer to data to be written to ringbuffer
+ * @param size2 Size of data in bytes to be written to ringbuffer
+ * @param data3 Pointer to data to be written to ringbuffer
+ * @param size3 Size of data in bytes to be written to ringbuffer
* @return negative value if there was an error
*/
- int dlt_ringbuffer_put3(DltRingBuffer *dltbuf, void *data1, uint32_t size1, void *data2, uint32_t size2, void *data3, uint32_t size3);
+ int dlt_buffer_push3(DltBuffer *buf,const unsigned char *data1,unsigned int size1,const unsigned char *data2,unsigned int size2,const unsigned char *data3,unsigned int size3);
/**
- * Read one entry from ringbuffer
- * @param dltbuf Pointer to ringbuffer structure
+ * Read one entry from ringbuffer.
+ * Remove it from ringbuffer.
+ * @param buf Pointer to ringbuffer structure
* @param data Pointer to data read from ringbuffer
- * @param size Size of read data in bytes from ringbuffer
- * @return negative value if there was an error
+ * @param max_size Max size of read data in bytes from ringbuffer
+ * @return size of read data, zero if no data available, negative value if there was an error
*/
- int dlt_ringbuffer_get(DltRingBuffer *dltbuf, void *data, size_t *size);
+ int dlt_buffer_pull(DltBuffer *buf,unsigned char *data, int max_size);
/**
- * Helper function: Skip one readable entry in ringbuffer
- * @param dltbuf Pointer to ringbuffer structure
- * @return negative value if there was an error
+ * Read one entry from ringbuffer.
+ * Do not remove it from ringbuffer.
+ * @param buf Pointer to ringbuffer structure
+ * @param data Pointer to data read from ringbuffer
+ * @param max_size Max size of read data in bytes from ringbuffer
+ * @return size of read data, zero if no data available, negative value if there was an error
+ */
+ int dlt_buffer_copy(DltBuffer *buf,unsigned char *data, int max_size);
+
+ /**
+ * Remove entry from ringbuffer.
+ * @param buf Pointer to ringbuffer structure
+ * @return size of read data, zero if no data available, negative value if there was an error
*/
- int dlt_ringbuffer_get_skip(DltRingBuffer *dltbuf);
+ int dlt_buffer_remove(DltBuffer *buf);
/**
- * Helper function: Get free space in bytes for writting between write and read position
- * @param dltbuf Pointer to ringbuffer structure
- * @param freespace Free Space in bytes for writting is returned
- * @return negative value if there was an error
+ * Print information about buffer and log to internal DLT log.
+ * @param buf Pointer to ringbuffer structure
*/
- int dlt_ringbuffer_freespacewrite(DltRingBuffer *dltbuf, uint32_t *freespace);
+ void dlt_buffer_info(DltBuffer *buf);
/**
- * Helper function: Check free space and if necessary discard entries, so that at least
- * reqspace bytes are available for writting
- * @param dltbuf Pointer to ringbuffer structure
- * @param reqspace Requested space for writting in bytes
- * @return negative value if there was an error
+ * Print status of buffer and log to internal DLT log.
+ * @param buf Pointer to ringbuffer structure
*/
- int dlt_ringbuffer_checkandfreespace(DltRingBuffer *dltbuf, uint32_t reqspace);
+ void dlt_buffer_status(DltBuffer *buf);
+
+ /**
+ * Get total size in bytes of ringbuffer.
+ * If buffer is dynamic, max size is returned.
+ * @param buf Pointer to ringbuffer structure
+ * @return total size of buffer
+ */
+ int dlt_buffer_get_total_size(DltBuffer *buf);
+
+ /**
+ * Get used size in bytes of ringbuffer.
+ * @param buf Pointer to ringbuffer structure
+ * @return used size of buffer
+ */
+ int dlt_buffer_get_used_size(DltBuffer *buf);
+
+ /**
+ * Get number of entries in ringbuffer.
+ * @param buf Pointer to ringbuffer structure
+ * @return number of entries
+ */
+ int dlt_buffer_get_message_count(DltBuffer *buf);
#if !defined (__WIN32__)