From b0e59b3e26482d681e187b962a4d87c25187a230 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 26 Apr 2022 21:45:17 -0400 Subject: [PATCH] Add hippo.allocate_page() --- src/hulk/hippo.d | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/hulk/hippo.d b/src/hulk/hippo.d index cec3535..9951e14 100644 --- a/src/hulk/hippo.d +++ b/src/hulk/hippo.d @@ -102,4 +102,20 @@ struct hippo free_pages = pp; n_free_pages++; } + + /** + * Allocate a physical page. + * + * @return Page address, or null if none available. + */ + public static void * allocate_page() + { + PhysicalPage * pp; + if (pp != null) + { + pp = free_pages; + free_pages = free_pages.next; + } + return cast(void *)pp; + } }