MySmartUSB-MK3-Interface

git clone git://xatko.vsos.ethz.ch/MySmartUSB-MK3-Interface.git
Log | Files | Refs

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 }