void *bmk_platform_allocpg2(int);
void bmk_platform_freepg2(void *, int);
void bmk_platform_block(bmk_time_t);
+unsigned long bmk_platform_memsize(void);
void bmk_platform_halt(const char *) __attribute__((noreturn));
int bmk_isr_init(void);
int bmk_isr_netinit(int (*)(void *), void *, int);
-extern unsigned long bmk_membase, bmk_memsize;
-
#endif /* _LOCORE */
#include <bmk-core/errno.h>
#include <bmk-core/printf.h>
#include <bmk-core/queue.h>
-unsigned long bmk_membase;
-unsigned long bmk_memsize;
+static unsigned long bmk_membase;
+static unsigned long bmk_memsize;
LIST_HEAD(, stackcache) cacheofstacks = LIST_HEAD_INITIALIZER(cacheofstacks);
struct stackcache {
bmk_printf("WARNING: freepg2 called! (%p, %d)\n", mem, shift);
}
+unsigned long
+bmk_platform_memsize(void)
+{
+
+ return bmk_memsize;
+}
+
void
bmk_platform_block(bmk_time_t until)
{
/* for memlimit, we have to implement int -> string ... */
} else if (bmk_strcmp(name, "RUMP_MEMLIMIT") == 0) {
- unsigned long memsize;
+ unsigned long memsize = bmk_platform_memsize();
char tmp[64];
char *res = buf;
unsigned i, j;
- bmk_assert(bmk_memsize > BMK_MEMRESERVE);
- memsize = bmk_memsize - BMK_MEMRESERVE;
+ bmk_assert(memsize > BMK_MEMRESERVE);
+ memsize -= BMK_MEMRESERVE;
for (i = 0; memsize > 0; i++) {
bmk_assert(i < sizeof(tmp)-1);
unsigned i, j;
/* use up to 50% memory for rump kernel */
- memsize = minios_get_memsize() / 2;
+ memsize = bmk_platform_memsize() / 2;
if (memsize < (8 * 1024 * 1024)) {
minios_printk("rumphyper: warning: low on physical "
"memory (%llu bytes), "
int free_physical_pages(xen_pfn_t *mfns, int n);
void fini_mm(void);
-uint64_t minios_get_memsize(void);
#endif /* _MINIOS_MM_H_ */
#include <mini-os/types.h>
#include <mini-os/lib.h>
+#include <bmk-core/platform.h>
#include <bmk-core/string.h>
#ifdef MM_DEBUG
}
#endif
-static uint64_t memsize = 0;
-uint64_t minios_get_memsize(void)
+static unsigned long memsize = 0;
+unsigned long bmk_platform_memsize(void)
{
return memsize;
}