/* * allocate uncached memory */#include "u.h"#include "../port/lib.h"#include "mem.h"#include "dat.h"#include "fns.h" static void*ucarena(usize size){ void *uv, *v; assert(size == 1*MiB); if((v = mallocalign(1*MiB, 1*MiB, 0, 0)) == nil){ return nil; } if((uv = mmuuncache(v, 1*MiB)) == nil){ free(v); return nil; } return uv;} voiducfree(void* v){ if(v == nil) return;} void*ucalloc(usize size){ assert(size < 1*MiB); panic("ucalloc: implement me"); return nil;} void*ucallocalign(usize size, int align, int span){ assert(size+align+span < 1*MiB); panic("ucallocalign: implement me"); return nil;} void *ucallocz(uint n, int){ char *p; p = ucalloc(n); if (p) memset(p, 0, n); else panic("ucallocz: out of memory"); return p;} void *ucsalloc(uint n){ return ucallocz(n, 1);}
/*
* allocate uncached memory
*/
#include "u.h"
#include "../port/lib.h"
#include "mem.h"
#include "dat.h"
#include "fns.h"
static void*
ucarena(usize size)
{
void *uv, *v;
assert(size == 1*MiB);
if((v = mallocalign(1*MiB, 1*MiB, 0, 0)) == nil){
return nil;
}
if((uv = mmuuncache(v, 1*MiB)) == nil){
free(v);
return nil;
}
return uv;
}
void
ucfree(void* v)
{
if(v == nil)
return;
}
void*
ucalloc(usize size)
{
assert(size < 1*MiB);
panic("ucalloc: implement me");
return nil;
}
void*
ucallocalign(usize size, int align, int span)
{
assert(size+align+span < 1*MiB);
panic("ucallocalign: implement me");
return nil;
}
void *
ucallocz(uint n, int)
{
char *p;
p = ucalloc(n);
if (p)
memset(p, 0, n);
else
panic("ucallocz: out of memory");
return p;
}
void *
ucsalloc(uint n)
{
return ucallocz(n, 1);
}