From 636220ab1d3a15b188026dca6755414386303653 Mon Sep 17 00:00:00 2001 From: Achilleas Anagnostopoulos Date: Fri, 30 Jun 2017 07:48:37 +0100 Subject: [PATCH] Unexport bitmap allocator instance and export AllocFrame helper This allows us to mock calls to the frame allocator from other packages while testing. --- kernel/mem/pmm/allocator/bitmap_allocator.go | 14 +++++++------- kernel/mem/pmm/allocator/bitmap_allocator_test.go | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/kernel/mem/pmm/allocator/bitmap_allocator.go b/kernel/mem/pmm/allocator/bitmap_allocator.go index 392f237..f0e8602 100644 --- a/kernel/mem/pmm/allocator/bitmap_allocator.go +++ b/kernel/mem/pmm/allocator/bitmap_allocator.go @@ -14,9 +14,9 @@ import ( ) var ( - // FrameAllocator is a BitmapAllocator instance that serves as the + // bitmapAllocator is a BitmapAllocator instance that serves as the // primary allocator for reserving pages. - FrameAllocator BitmapAllocator + bitmapAllocator BitmapAllocator errBitmapAllocOutOfMemory = &kernel.Error{Module: "bitmap_alloc", Message: "out of memory"} errBitmapAllocFrameNotManaged = &kernel.Error{Module: "bitmap_alloc", Message: "frame not managed by this allocator"} @@ -306,10 +306,10 @@ func earlyAllocFrame() (pmm.Frame, *kernel.Error) { return earlyAllocator.AllocFrame() } -// sysAllocFrame is a helper that delegates a frame allocation request to the +// AllocFrame is a helper that delegates a frame allocation request to the // bitmap allocator instance. -func sysAllocFrame() (pmm.Frame, *kernel.Error) { - return FrameAllocator.AllocFrame() +func AllocFrame() (pmm.Frame, *kernel.Error) { + return bitmapAllocator.AllocFrame() } // Init sets up the kernel physical memory allocation sub-system. @@ -318,10 +318,10 @@ func Init(kernelStart, kernelEnd uintptr) *kernel.Error { earlyAllocator.printMemoryMap() vmm.SetFrameAllocator(earlyAllocFrame) - if err := FrameAllocator.init(); err != nil { + if err := bitmapAllocator.init(); err != nil { return err } - vmm.SetFrameAllocator(sysAllocFrame) + vmm.SetFrameAllocator(AllocFrame) return nil } diff --git a/kernel/mem/pmm/allocator/bitmap_allocator_test.go b/kernel/mem/pmm/allocator/bitmap_allocator_test.go index 0bb97e6..d1d214c 100644 --- a/kernel/mem/pmm/allocator/bitmap_allocator_test.go +++ b/kernel/mem/pmm/allocator/bitmap_allocator_test.go @@ -413,7 +413,7 @@ func TestAllocatorPackageInit(t *testing.T) { } // At this point sysAllocFrame should work - if _, err := sysAllocFrame(); err != nil { + if _, err := AllocFrame(); err != nil { t.Fatal(err) } })