mirror of
https://github.com/taigrr/gopher-os
synced 2025-01-18 04:43:13 -08:00
Unexport bitmap allocator instance and export AllocFrame helper
This allows us to mock calls to the frame allocator from other packages while testing.
This commit is contained in:
parent
6ee95b439e
commit
636220ab1d
@ -14,9 +14,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// FrameAllocator is a BitmapAllocator instance that serves as the
|
// bitmapAllocator is a BitmapAllocator instance that serves as the
|
||||||
// primary allocator for reserving pages.
|
// primary allocator for reserving pages.
|
||||||
FrameAllocator BitmapAllocator
|
bitmapAllocator BitmapAllocator
|
||||||
|
|
||||||
errBitmapAllocOutOfMemory = &kernel.Error{Module: "bitmap_alloc", Message: "out of memory"}
|
errBitmapAllocOutOfMemory = &kernel.Error{Module: "bitmap_alloc", Message: "out of memory"}
|
||||||
errBitmapAllocFrameNotManaged = &kernel.Error{Module: "bitmap_alloc", Message: "frame not managed by this allocator"}
|
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()
|
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.
|
// bitmap allocator instance.
|
||||||
func sysAllocFrame() (pmm.Frame, *kernel.Error) {
|
func AllocFrame() (pmm.Frame, *kernel.Error) {
|
||||||
return FrameAllocator.AllocFrame()
|
return bitmapAllocator.AllocFrame()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Init sets up the kernel physical memory allocation sub-system.
|
// Init sets up the kernel physical memory allocation sub-system.
|
||||||
@ -318,10 +318,10 @@ func Init(kernelStart, kernelEnd uintptr) *kernel.Error {
|
|||||||
earlyAllocator.printMemoryMap()
|
earlyAllocator.printMemoryMap()
|
||||||
|
|
||||||
vmm.SetFrameAllocator(earlyAllocFrame)
|
vmm.SetFrameAllocator(earlyAllocFrame)
|
||||||
if err := FrameAllocator.init(); err != nil {
|
if err := bitmapAllocator.init(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
vmm.SetFrameAllocator(sysAllocFrame)
|
vmm.SetFrameAllocator(AllocFrame)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -413,7 +413,7 @@ func TestAllocatorPackageInit(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// At this point sysAllocFrame should work
|
// At this point sysAllocFrame should work
|
||||||
if _, err := sysAllocFrame(); err != nil {
|
if _, err := AllocFrame(); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user