kernel/vm: Make vm_page::physical_page_number const.
For safety.
This commit is contained in:
@@ -113,9 +113,9 @@ struct VMCacheRef {
|
|||||||
|
|
||||||
|
|
||||||
struct vm_page {
|
struct vm_page {
|
||||||
DoublyLinkedListLink<vm_page> queue_link;
|
const page_num_t physical_page_number;
|
||||||
|
|
||||||
page_num_t physical_page_number;
|
DoublyLinkedListLink<vm_page> queue_link;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
VMCacheRef* cache_ref;
|
VMCacheRef* cache_ref;
|
||||||
@@ -153,7 +153,7 @@ public:
|
|||||||
|
|
||||||
uint8 usage_count;
|
uint8 usage_count;
|
||||||
|
|
||||||
inline void Init(page_num_t pageNumber);
|
inline vm_page(page_num_t pageNumber);
|
||||||
|
|
||||||
VMCacheRef* CacheRef() const { return cache_ref; }
|
VMCacheRef* CacheRef() const { return cache_ref; }
|
||||||
void SetCacheRef(VMCacheRef* cacheRef) { this->cache_ref = cacheRef; }
|
void SetCacheRef(VMCacheRef* cacheRef) { this->cache_ref = cacheRef; }
|
||||||
@@ -199,10 +199,11 @@ enum {
|
|||||||
#define VM_PAGE_ALLOC_BUSY 0x00000020
|
#define VM_PAGE_ALLOC_BUSY 0x00000020
|
||||||
|
|
||||||
|
|
||||||
inline void
|
inline
|
||||||
vm_page::Init(page_num_t pageNumber)
|
vm_page::vm_page(page_num_t pageNumber)
|
||||||
|
:
|
||||||
|
physical_page_number(pageNumber)
|
||||||
{
|
{
|
||||||
physical_page_number = pageNumber;
|
|
||||||
new(&mappings) vm_page_mappings();
|
new(&mappings) vm_page_mappings();
|
||||||
SetCacheRef(NULL);
|
SetCacheRef(NULL);
|
||||||
|
|
||||||
|
|||||||
@@ -1876,7 +1876,7 @@ free_cached_page(vm_page *page, bool dontWait)
|
|||||||
static uint32
|
static uint32
|
||||||
free_cached_pages(uint32 pagesToFree, bool dontWait)
|
free_cached_pages(uint32 pagesToFree, bool dontWait)
|
||||||
{
|
{
|
||||||
vm_page marker;
|
vm_page marker(-1);
|
||||||
init_page_marker(marker);
|
init_page_marker(marker);
|
||||||
forbid_page_faults();
|
forbid_page_faults();
|
||||||
|
|
||||||
@@ -2007,7 +2007,7 @@ full_scan_inactive_pages(page_stats& pageStats, int32 despairLevel)
|
|||||||
// scale only when things get desperate.
|
// scale only when things get desperate.
|
||||||
uint32 maxToFlush = despairLevel <= 1 ? 32 : 10000;
|
uint32 maxToFlush = despairLevel <= 1 ? 32 : 10000;
|
||||||
|
|
||||||
vm_page marker;
|
vm_page marker(-1);
|
||||||
init_page_marker(marker);
|
init_page_marker(marker);
|
||||||
|
|
||||||
VMPageQueue& queue = sInactivePageQueue;
|
VMPageQueue& queue = sInactivePageQueue;
|
||||||
@@ -2124,7 +2124,7 @@ full_scan_inactive_pages(page_stats& pageStats, int32 despairLevel)
|
|||||||
static void
|
static void
|
||||||
full_scan_active_pages(page_stats& pageStats, int32 despairLevel)
|
full_scan_active_pages(page_stats& pageStats, int32 despairLevel)
|
||||||
{
|
{
|
||||||
vm_page marker;
|
vm_page marker(-1);
|
||||||
init_page_marker(marker);
|
init_page_marker(marker);
|
||||||
|
|
||||||
VMPageQueue& queue = sActivePageQueue;
|
VMPageQueue& queue = sActivePageQueue;
|
||||||
@@ -2453,7 +2453,7 @@ vm_page_init(kernel_args *args)
|
|||||||
|
|
||||||
// initialize the free page table
|
// initialize the free page table
|
||||||
for (uint32 i = 0; i < sNumPages; i++) {
|
for (uint32 i = 0; i < sNumPages; i++) {
|
||||||
sPages[i].Init(sPhysicalPageOffset + i);
|
new(&sPages[i]) vm_page(sPhysicalPageOffset + i);
|
||||||
sFreePageQueue.Append(&sPages[i]);
|
sFreePageQueue.Append(&sPages[i]);
|
||||||
|
|
||||||
#if VM_PAGE_ALLOCATION_TRACKING_AVAILABLE
|
#if VM_PAGE_ALLOCATION_TRACKING_AVAILABLE
|
||||||
|
|||||||
Reference in New Issue
Block a user