示例#1
0
文件: array.c 项目: tmerrifi/BitsDB
Array * array_init(char * segmentName, void * initAddress, int sizeOfType, int slabIncrementSize, int callingProcess){
	Array * array = malloc(sizeof(Array));
	collection_init((Collection *)array, segmentName, initAddress, slabIncrementSize*sizeOfType + sizeof(ArrayHdr), callingProcess);
	array->sizeOfType=sizeOfType;
	array->slabIncrementSize=slabIncrementSize;
	
	if (((ArrayHdr *)array->base.mem)->currentObjectsAllocated == 0 && callingProcess == SHM_CORE){	//lets start it off at 1 so a pointer of 0 will indicate NULL
		((ArrayHdr *)array->base.mem)->currentObjectsAllocated = 1;	
	}
	
	array->nextFreeSlot=array->base.mem + sizeof(ArrayHdr) + ( ((ArrayHdr *)array->base.mem)->currentObjectsAllocated * sizeOfType);
	
	return array;
}
示例#2
0
文件: client.c 项目: badania/usbmuxd
void client_init(void)
{
	usbmuxd_log(LL_DEBUG, "client_init");
	collection_init(&client_list);
	pthread_mutex_init(&client_list_mutex, NULL);
}