Exemplo n.º 1
0
//
// Z_Init
//
void Z_Init (void)
{
	memblock_t *block;

	// denis - allow reinitiation of entire memory system
	if(!mainzone)
		mainzone = (memzone_t *)I_ZoneBase (&zonesize);

	// set the entire zone to one free block
	mainzone->size = zonesize;
	mainzone->blocklist.next =
	mainzone->blocklist.prev =
	block = (memblock_t *)( (byte *)mainzone + sizeof(memzone_t) );
	
	mainzone->blocklist.user = (void **)mainzone;
	mainzone->blocklist.tag = PU_STATIC;
	mainzone->rover = block;
		
	block->prev = block->next = &mainzone->blocklist;
	
	// NULL indicates a free block.
	block->user = NULL;
	
	block->size = mainzone->size - sizeof(memzone_t);

	// denis - allow multiple memory inits with only a single atterm
	{
		static bool once = false;
		
		if(!once)
			atterm (Z_Close);
		 
		once = true;
	}
}
Exemplo n.º 2
0
//
// Z_Init
//
void Z_Init (void)
{
	memblock_t *block;

	// denis - allow reinitiation of entire memory system
	if (!mainzone)
		mainzone = (memzone_t *)I_ZoneBase(&zonesize);

	// set the entire zone to one free block
	mainzone->size = zonesize;
	mainzone->blocklist.next =
	mainzone->blocklist.prev =
	block = (memblock_t *)( (byte *)mainzone + sizeof(memzone_t) );
	
	mainzone->blocklist.user = (void **)mainzone;
	mainzone->blocklist.tag = PU_STATIC;
	mainzone->rover = block;
		
	block->prev = block->next = &mainzone->blocklist;
	
	// NULL indicates a free block.
	block->user = NULL;
	
	block->size = mainzone->size - sizeof(memzone_t);
}
Exemplo n.º 3
0
//
// Z_Init
//
void Z_Init (void)
{
    memblock_t*	block;
    long long size;

    mainzone = (memzone_t *)I_ZoneBase (&size);
    mainzone->size = size;

    // set the entire zone to one free block
    mainzone->blocklist.next =
	mainzone->blocklist.prev =
	block = (memblock_t *)( (byte *)mainzone + sizeof(memzone_t) );

    mainzone->blocklist.user = (void *)mainzone;
    mainzone->blocklist.tag = PU_STATIC;
    mainzone->rover = block;

    block->prev = block->next = &mainzone->blocklist;

    // NULL indicates a free block.
    block->user = NULL;

    block->size = mainzone->size - sizeof(memzone_t);
}
Exemplo n.º 4
0
//
// Z_Init
//
void Z_Init (void)
{
    memblock_t*	block;
    int		size;

    mainzone = (memzone_t *)I_ZoneBase (&size);
    mainzone->size = size;

    // set the entire zone to one free block
    mainzone->blocklist.next =
	mainzone->blocklist.prev =
	block = (memblock_t *)( (byte *)mainzone + sizeof(memzone_t) );

    mainzone->blocklist.user = (void *)mainzone;
    mainzone->blocklist.tag = PU_STATIC;
    mainzone->rover = block;
	
    block->prev = block->next = &mainzone->blocklist;

    // free block
    block->tag = PU_FREE;
    
    block->size = mainzone->size - sizeof(memzone_t);
}