You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
731 B
35 lines
731 B
unsigned int global_heap_start = 0;
|
|
unsigned int global_heap_end = 0;
|
|
unsigned int global_heap_next = 0;
|
|
|
|
void* malloc(num_bytes);
|
|
int set_heap_settings(param_start, param_end);
|
|
unsigned int get_heap_next();
|
|
|
|
void* malloc(num_bytes)
|
|
int num_bytes;
|
|
{
|
|
unsigned int allocated_pointer = global_heap_next;
|
|
global_heap_next = global_heap_next + num_bytes;
|
|
if (global_heap_next > global_heap_end)
|
|
{
|
|
return 0; /* No more memory */
|
|
}
|
|
|
|
return allocated_pointer;
|
|
}
|
|
|
|
int set_heap_settings(param_start, param_end)
|
|
unsigned int param_start;
|
|
unsigned int param_end;
|
|
{
|
|
global_heap_start = param_start;
|
|
global_heap_next = param_start;
|
|
global_heap_end = param_end;
|
|
return 0;
|
|
}
|
|
|
|
unsigned int get_heap_next()
|
|
{
|
|
return global_heap_next;
|
|
}
|