2018-03-04 01:30:16 +01:00
|
|
|
/**
|
2018-03-19 01:12:18 +01:00
|
|
|
* System Memory Allocator.
|
2018-03-04 01:30:16 +01:00
|
|
|
*
|
|
|
|
* Uses the environment's malloc and free implementations, i.e., when linking with other C-like
|
|
|
|
* programs that already provide these.
|
2018-03-19 01:12:18 +01:00
|
|
|
*
|
|
|
|
* @module std/assembly/allocator/system
|
|
|
|
*//***/
|
2018-02-02 04:21:06 +01:00
|
|
|
|
|
|
|
declare function malloc(size: usize): usize;
|
|
|
|
declare function free(ptr: usize): void;
|
|
|
|
|
2018-02-17 11:09:22 +01:00
|
|
|
@global
|
2018-02-02 04:21:06 +01:00
|
|
|
export function allocate_memory(size: usize): usize {
|
|
|
|
return malloc(size);
|
|
|
|
}
|
|
|
|
|
2018-02-17 11:09:22 +01:00
|
|
|
@global
|
2018-02-02 04:21:06 +01:00
|
|
|
export function free_memory(ptr: usize): void {
|
|
|
|
free(ptr);
|
|
|
|
}
|
|
|
|
|
2018-02-17 11:09:22 +01:00
|
|
|
@global
|
2018-03-12 14:06:39 +01:00
|
|
|
export function reset_memory(): void {
|
|
|
|
unreachable();
|
|
|
|
}
|