mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-02 07:50:31 +00:00
Simplify memory manager
This commit is contained in:
parent
5a9a08d1cf
commit
01587de761
40 changed files with 451 additions and 311 deletions
|
@ -244,7 +244,7 @@ int main(int argc, char *argv[]) {
|
|||
sigset_t block;
|
||||
sigfillset(&block);
|
||||
pthread_attr_t attr;
|
||||
int pagesz = getauxval(AT_PAGESZ);
|
||||
int pagesz = getpagesize();
|
||||
pthread_t *threads = calloc(nthreads, sizeof(pthread_t));
|
||||
unassert(!pthread_attr_init(&attr));
|
||||
unassert(!pthread_attr_setstacksize(&attr, 65536));
|
||||
|
|
|
@ -364,6 +364,7 @@ int main(int argc, char *argv[]) {
|
|||
CANIUSE(TM2);
|
||||
CANIUSE(TME);
|
||||
CANIUSE(TSC);
|
||||
CANIUSE(INVTSC);
|
||||
CANIUSE(TSC_ADJUST);
|
||||
CANIUSE(TSC_DEADLINE_TIMER);
|
||||
CANIUSE(TSX_FORCE_ABORT);
|
||||
|
|
|
@ -497,18 +497,18 @@ static void *NewBoard(size_t *out_size) {
|
|||
char *p;
|
||||
size_t s, n, k;
|
||||
s = (byn * bxn) >> 3;
|
||||
k = getauxval(AT_PAGESZ) + ROUNDUP(s, getauxval(AT_PAGESZ));
|
||||
n = ROUNDUP(k + getauxval(AT_PAGESZ), sysconf(_SC_PAGESIZE));
|
||||
k = getpagesize() + ROUNDUP(s, getpagesize());
|
||||
n = ROUNDUP(k + getpagesize(), sysconf(_SC_PAGESIZE));
|
||||
p = _mapanon(n);
|
||||
mprotect(p, getauxval(AT_PAGESZ), 0);
|
||||
mprotect(p, getpagesize(), 0);
|
||||
mprotect(p + k, n - k, 0);
|
||||
if (out_size)
|
||||
*out_size = n;
|
||||
return p + getauxval(AT_PAGESZ);
|
||||
return p + getpagesize();
|
||||
}
|
||||
|
||||
static void FreeBoard(void *p, size_t n) {
|
||||
munmap((char *)p - getauxval(AT_PAGESZ), n);
|
||||
munmap((char *)p - getpagesize(), n);
|
||||
}
|
||||
|
||||
static void AllocateBoardsWithHardwareAcceleratedMemorySafety(void) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue