Kernel: Add API for getting contiguous physcial pages
This will be used to create DMA regions.
This commit is contained in:
@@ -21,6 +21,9 @@ namespace Kernel
|
||||
paddr_t take_free_page();
|
||||
void release_page(paddr_t);
|
||||
|
||||
paddr_t take_free_contiguous_pages(size_t pages);
|
||||
void release_contiguous_pages(paddr_t paddr, size_t pages);
|
||||
|
||||
size_t used_pages() const;
|
||||
size_t free_pages() const;
|
||||
|
||||
|
||||
@@ -29,10 +29,13 @@ namespace Kernel
|
||||
|
||||
private:
|
||||
unsigned long long* ull_bitmap_ptr() { return (unsigned long long*)m_vaddr; }
|
||||
const unsigned long long* ull_bitmap_ptr() const { return (const unsigned long long*)m_vaddr; }
|
||||
|
||||
paddr_t paddr_for_bit(unsigned long long) const;
|
||||
unsigned long long bit_for_paddr(paddr_t paddr) const;
|
||||
|
||||
unsigned long long contiguous_bits_set(unsigned long long start, unsigned long long count) const;
|
||||
|
||||
private:
|
||||
const paddr_t m_paddr { 0 };
|
||||
const size_t m_size { 0 };
|
||||
|
||||
Reference in New Issue
Block a user