forked from Bananymous/banan-os
				
			
			update main #1
			
				
			
		
		
		
	| 
						 | 
				
			
			@ -54,10 +54,12 @@ static bool allocate_pool(size_t pool_index)
 | 
			
		|||
	assert(pool.start == nullptr);
 | 
			
		||||
 | 
			
		||||
	// allocate memory for pool
 | 
			
		||||
	pool.start = (uint8_t*)mmap(nullptr, pool.size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
 | 
			
		||||
	if (pool.start == nullptr)
 | 
			
		||||
	void* new_pool = mmap(nullptr, pool.size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
 | 
			
		||||
	if (new_pool == MAP_FAILED)
 | 
			
		||||
		return false;
 | 
			
		||||
 | 
			
		||||
	pool.start = (uint8_t*)new_pool;
 | 
			
		||||
 | 
			
		||||
	// initialize pool to single unallocated node
 | 
			
		||||
	auto* node = (malloc_node_t*)pool.start;
 | 
			
		||||
	node->allocated = false;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,7 @@ void* mmap(void* addr, size_t len, int prot, int flags, int fildes, off_t off)
 | 
			
		|||
	};
 | 
			
		||||
	long ret = syscall(SYS_MMAP, &args);
 | 
			
		||||
	if (ret == -1)
 | 
			
		||||
		return nullptr;
 | 
			
		||||
		return MAP_FAILED;
 | 
			
		||||
	return (void*)ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue