common.c (1137B)
1 /* 2 * MySmartUSB MK3 Interface 3 * 4 * @copyright: Copyright (c) 2012, Dominik Schmidt 5 * @author: Dominik Schmidt <das1993@hotmail.com> 6 * @version: 0.0.0 7 * @license: CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/) 8 * 9 */ 10 #include <common.h> 11 #include <stdlib.h> 12 #include <string.h> 13 14 int array_initiate(void **data, struct array *arr, unsigned short int size){ 15 arr->alloc=10; 16 *data=malloc(size); 17 return 0; 18 } 19 int array_grow(void **data, struct array *arr, unsigned short int by){ 20 arr->count+=by; 21 while(arr->count>=arr->alloc){ 22 arr->alloc+=ARRAY_CHUNK_SIZE; 23 } 24 *data=realloc(*data, arr->alloc); 25 return 0; 26 } 27 int array_destroy(void **data, struct array *arr){ 28 free(*data); 29 arr->count=0; 30 arr->alloc=0; 31 return 0; 32 } 33 void strrevert(char *str){ 34 char a; 35 unsigned int i; 36 unsigned int length=strlen(str); 37 for(i=0;i<length/2; i++){ 38 a=str[i]; 39 str[i]=str[length-i-1]; 40 str[length-i-1]=a; 41 } 42 } 43 int itoa(char *a, int i, int base){ 44 char *aptr=a; 45 int val=(i<0) ? -i : i; 46 while(val>0){ 47 *aptr='0'+val%base; 48 val=val/base; 49 aptr++; 50 } 51 if(i<0){ 52 *aptr='-'; 53 aptr++; 54 } 55 *aptr='\0'; 56 strrevert(a); 57 return 0; 58 }