aboutsummaryrefslogtreecommitdiff
path: root/src/libthread/stkmmap.c
blob: f4a24630843b2477a18908aa9b9e00391fa5ccc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <u.h>
#include <sys/mman.h>
#include "threadimpl.h"

#ifndef MAP_STACK
#define MAP_STACK 0
#endif

void*
_threadstkalloc(int n)
{
	void *p;

	p = mmap(nil, n, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON|MAP_STACK, -1, 0);
	if(p == (void*)-1)
		return nil;
	return p;
}

void
_threadstkfree(void *v, int n)
{
	if(n > 0)
		munmap(v, n);
}