コード例 #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);
}