43,6 → 43,7 |
#include <sysinfo/sysinfo.h> |
#include <ddi/ddi.h> |
#include <print.h> |
#include <align.h> |
|
static parea_t rd_parea; /**< Physical memory area for rd. */ |
|
84,7 → 85,8 |
printf("Size %d\n",size); |
|
//jelen: does this make any sense? (we don't even care about the header size, do we?) |
/*if ((hsize % FRAME_SIZE) || (dsize % FRAME_SIZE)) |
/* |
if ((hsize % FRAME_SIZE) || (dsize % FRAME_SIZE)) |
return RE_UNSUPPORTED; |
*/ |
if (dsize % FRAME_SIZE) |
96,13 → 98,16 |
if ((uint64_t) hsize + dsize > size) |
dsize = size - hsize; |
|
rd_parea.pbase = KA2PA((void *) header + hsize); |
|
rd_parea.pbase = ALIGN_DOWN((uintptr_t)KA2PA((void *) header + hsize), FRAME_SIZE); |
rd_parea.vbase = (uintptr_t) ((void *) header + hsize); |
rd_parea.frames = SIZE2FRAMES(dsize); |
rd_parea.cacheable = true; |
ddi_parea_register(&rd_parea); |
|
|
sysinfo_set_item_val("rd", NULL, true); |
sysinfo_set_item_val("rd.header_size", NULL, hsize); |
sysinfo_set_item_val("rd.size", NULL, dsize); |
sysinfo_set_item_val("rd.address.physical", NULL, (unative_t) |
KA2PA((void *) header + hsize)); |