mirror of
https://github.com/taigrr/gopher-os
synced 2025-01-18 04:43:13 -08:00
Move bootmem allocator in a sub-pkg
This commit is contained in:
parent
2f56d78629
commit
1d11af21c2
@ -1,10 +1,11 @@
|
|||||||
package pmm
|
package allocator
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/achilleasa/gopher-os/kernel"
|
"github.com/achilleasa/gopher-os/kernel"
|
||||||
"github.com/achilleasa/gopher-os/kernel/hal/multiboot"
|
"github.com/achilleasa/gopher-os/kernel/hal/multiboot"
|
||||||
"github.com/achilleasa/gopher-os/kernel/kfmt/early"
|
"github.com/achilleasa/gopher-os/kernel/kfmt/early"
|
||||||
"github.com/achilleasa/gopher-os/kernel/mem"
|
"github.com/achilleasa/gopher-os/kernel/mem"
|
||||||
|
"github.com/achilleasa/gopher-os/kernel/mem/pmm"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -13,8 +14,8 @@ var (
|
|||||||
// advanced memory allocator.
|
// advanced memory allocator.
|
||||||
EarlyAllocator BootMemAllocator
|
EarlyAllocator BootMemAllocator
|
||||||
|
|
||||||
errBootAllocUnsupportedPageSize = &kernel.Error{Module: "pmm.BootMemAllocator", Message: "allocator only support allocation requests of order(0)"}
|
errBootAllocUnsupportedPageSize = &kernel.Error{Module: "boot_mem_alloc", Message: "allocator only support allocation requests of order(0)"}
|
||||||
errBootAllocOutOfMemory = &kernel.Error{Module: "pmm.BootMemAllocator", Message: "out of memory"}
|
errBootAllocOutOfMemory = &kernel.Error{Module: "boot_mem_alloc", Message: "out of memory"}
|
||||||
)
|
)
|
||||||
|
|
||||||
// BootMemAllocator implements a rudimentary physical memory allocator which is used
|
// BootMemAllocator implements a rudimentary physical memory allocator which is used
|
||||||
@ -64,9 +65,9 @@ func (alloc *BootMemAllocator) Init() {
|
|||||||
//
|
//
|
||||||
// AllocFrame returns an error if no more memory can be allocated or when the
|
// AllocFrame returns an error if no more memory can be allocated or when the
|
||||||
// requested page order is > 0.
|
// requested page order is > 0.
|
||||||
func (alloc *BootMemAllocator) AllocFrame(order mem.PageOrder) (Frame, *kernel.Error) {
|
func (alloc *BootMemAllocator) AllocFrame(order mem.PageOrder) (pmm.Frame, *kernel.Error) {
|
||||||
if order > 0 {
|
if order > 0 {
|
||||||
return InvalidFrame, errBootAllocUnsupportedPageSize
|
return pmm.InvalidFrame, errBootAllocUnsupportedPageSize
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -102,11 +103,11 @@ func (alloc *BootMemAllocator) AllocFrame(order mem.PageOrder) (Frame, *kernel.E
|
|||||||
})
|
})
|
||||||
|
|
||||||
if foundPageIndex == -1 {
|
if foundPageIndex == -1 {
|
||||||
return InvalidFrame, errBootAllocOutOfMemory
|
return pmm.InvalidFrame, errBootAllocOutOfMemory
|
||||||
}
|
}
|
||||||
|
|
||||||
alloc.allocCount++
|
alloc.allocCount++
|
||||||
alloc.lastAllocIndex = foundPageIndex
|
alloc.lastAllocIndex = foundPageIndex
|
||||||
|
|
||||||
return Frame(foundPageIndex), nil
|
return pmm.Frame(foundPageIndex), nil
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package pmm
|
package allocator
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
Loading…
x
Reference in New Issue
Block a user