net: Use NULL to signal lack of promisc/multicast
[akaros.git] / kern / arch / riscv / page_alloc.c
1 /* Copyright (c) 2009 The Regents of the University  of California.
2  * Copyright (c) 2016 Google Inc
3  * See the COPYRIGHT files at the top of this source tree for full
4  * license information.
5  *
6  * Barret Rhoden <brho@cs.berkeley.edu>
7  * Kevin Klues <klueska@cs.berkeley.edu>
8  */
9
10 #include <sys/queue.h>
11 #include <page_alloc.h>
12 #include <pmap.h>
13 #include <kmalloc.h>
14 #include <multiboot.h>
15
16 void base_arena_init(struct multiboot_info *mbi)
17 {
18         void *base_pg;
19         uintptr_t first_free_page, first_invalid_page;
20
21         /* Need to do the boot-allocs before our last look at the top of
22          * boot_freemem. */
23         base_pg = boot_alloc(PGSIZE, PGSHIFT);
24
25         first_free_page = ROUNDUP(boot_freemem, PGSIZE);
26         first_invalid_page = ROUNDUP(boot_freelimit, PGSIZE);
27         assert(first_invalid_page == max_nr_pages * PGSIZE);
28
29         base_arena = arena_builder(base_pg, "base", PGSIZE, NULL, NULL, NULL,
30                                    0);
31         arena_add(base_arena, KADDR(first_free_page),
32                   first_invalid_page - first_free_page, MEM_WAIT);
33 }