diff options
Diffstat (limited to 'Software/Code_Composer/twine_usblib/usb_serial_buffer.c')
| -rw-r--r-- | Software/Code_Composer/twine_usblib/usb_serial_buffer.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Software/Code_Composer/twine_usblib/usb_serial_buffer.c b/Software/Code_Composer/twine_usblib/usb_serial_buffer.c new file mode 100644 index 000000000..5025bb772 --- /dev/null +++ b/Software/Code_Composer/twine_usblib/usb_serial_buffer.c @@ -0,0 +1,32 @@ +/* + * usb_serial_buffer.c + * + * Created on: Sep 24, 2017 + * Author: Roy + */ + +#include <stdlib.h> +#include "usb_serial_buffer.h" + +void initArray(SerialBuffer *a, size_t initialSize) { + a->buffer = (char *)malloc(initialSize); + a->used = 0; + a->size = initialSize; +} + +void insertArray(SerialBuffer *a, char element) { + // a->used is the number of used entries, because a->array[a->used++] updates a->used only *after* the array has been accessed. + // Therefore a->used can go up to a->size + if (a->used == a->size) { + a->size += 1; + a->buffer = (char *)realloc(a->buffer, a->size * sizeof(char)); + } + a->buffer[a->used++] = element; +} + +void freeArray(SerialBuffer *a) { + free(a->buffer); + a->buffer = NULL; + a->used = a->size = 0; +} + |
