File: segmalloc.ha

package info (click to toggle)
harec 0.26.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,480 kB
  • sloc: ansic: 20,054; asm: 335; makefile: 116; lisp: 80; sh: 45
file content (10 lines) | stat: -rw-r--r-- 312 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
// Allocates a segment.
fn segmalloc(n: size) nullable *opaque = {
	let p: *opaque = mmap(null, n,
		PROT_READ | PROT_WRITE,
		MAP_PRIVATE | MAP_ANON, -1, 0);
	return if (p: uintptr: int == ENOMEM) null else p;
};

// Frees a segment allocated with segmalloc.
fn segfree(p: *opaque, s: size) int = munmap(p, s);