summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/kernel/devicesegment.H8
-rw-r--r--src/include/kernel/vmmmgr.H6
-rw-r--r--src/kernel/devicesegment.C4
-rw-r--r--src/kernel/heapmgr.C18
-rw-r--r--src/kernel/ptmgr.C8
-rw-r--r--src/kernel/stacksegment.C2
-rw-r--r--src/kernel/syscall.C4
-rw-r--r--src/kernel/vmmmgr.C10
8 files changed, 30 insertions, 30 deletions
diff --git a/src/include/kernel/devicesegment.H b/src/include/kernel/devicesegment.H
index 89180b4eb..97d04743a 100644
--- a/src/include/kernel/devicesegment.H
+++ b/src/include/kernel/devicesegment.H
@@ -48,7 +48,7 @@ class DeviceSegment : public Segment
* @brief Add the device segment
*/
static void init();
-
+
/**
* @brief Handle a page fault for a device address access
* @param i_task[in] - Task pointer to the task requiring the page
@@ -74,7 +74,7 @@ class DeviceSegment : public Segment
* @param i_devDataSize[in] - Size of device segment block
* @return void* - Pointer to beginning virtual address, NULL otherwise
*/
- static void* devMap(void* ra, SEG_DATA_SIZES i_devDataSize);
+ static void* devMap(void* ra, uint64_t i_devDataSize);
/**
* @brief Unmap a device from the device segment(2TB)
@@ -90,7 +90,7 @@ class DeviceSegment : public Segment
struct devSegData
{
uint64_t addr; /* Real address assigned to device */
- SEG_DATA_SIZES size; /* A particular device's segment block size */
+ uint64_t size; /* A particular device's segment block size */
devSegData(): addr(0),size(THIRTYTWO_GB){};
};
@@ -125,7 +125,7 @@ class DeviceSegment : public Segment
* @param i_devDataSize[in] - Size of device segment block
* @return void* - Pointer to beginning virtual address, NULL otherwise
*/
- void* _devMap(void* ra, SEG_DATA_SIZES i_devDataSize);
+ void* _devMap(void* ra, uint64_t i_devDataSize);
/**
* @brief Unmap a device from the device segment(2TB)
diff --git a/src/include/kernel/vmmmgr.H b/src/include/kernel/vmmmgr.H
index 864eed0fd..98b202db1 100644
--- a/src/include/kernel/vmmmgr.H
+++ b/src/include/kernel/vmmmgr.H
@@ -103,7 +103,7 @@ class VmmManager
* @param i_devDataSize[in] - Size of device segment block
* @return void* - Pointer to beginning virtual address, NULL otherwise
*/
- static void* devMap(void* ra, SEG_DATA_SIZES i_devDataSize);
+ static void* devMap(void* ra, uint64_t i_devDataSize);
/**
* @brief Unmap a device from the device segment(2TB)
@@ -139,7 +139,7 @@ class VmmManager
* @brief Flush pagetable, Update shadow page info
*/
static void flushPageTable( void);
-
+
/**
* @brief Remove pages by a specified operation of the given size
* @param[in] i_op - Page removal operation to perform
@@ -162,7 +162,7 @@ class VmmManager
* @brief Sets the permissions for a given page or range of pages
* @param i_va[in] - Virtual address of the page to update permission
* @param i_size[in] - range of memory that needs permissions updated...
- * if i_size equals 0 then we only need to update an
+ * if i_size equals 0 then we only need to update an
* individual page.
* @return int - 0 for successful permission update, non-zero otherwise
*
diff --git a/src/kernel/devicesegment.C b/src/kernel/devicesegment.C
index 4af3a75bb..bdf1eab0f 100644
--- a/src/kernel/devicesegment.C
+++ b/src/kernel/devicesegment.C
@@ -59,7 +59,7 @@ int DeviceSegment::mmioUnmap(void* ea, size_t pages)
* STATIC
* @brief Map a device into the device segment(2TB)
*/
-void* DeviceSegment::devMap(void *ra, SEG_DATA_SIZES i_devDataSize)
+void* DeviceSegment::devMap(void *ra, uint64_t i_devDataSize)
{
return Singleton<DeviceSegment>::instance()._devMap(ra,i_devDataSize);
}
@@ -161,7 +161,7 @@ int DeviceSegment::_mmioUnmap(void* ea, size_t pages)
* @param i_devDataSize[in] - Size of device segment block
* @return void* - Pointer to beginning virtual address, NULL otherwise
*/
-void *DeviceSegment::_devMap(void *ra, SEG_DATA_SIZES i_devDataSize)
+void *DeviceSegment::_devMap(void *ra, uint64_t i_devDataSize)
{
void *segBlock = NULL;
if (i_devDataSize <= THIRTYTWO_GB)
diff --git a/src/kernel/heapmgr.C b/src/kernel/heapmgr.C
index e3d2ad1ea..aa69d52ad 100644
--- a/src/kernel/heapmgr.C
+++ b/src/kernel/heapmgr.C
@@ -63,8 +63,8 @@ const size_t HeapManager::cv_chunk_size[BUCKETS] =
};
size_t HeapManager::cv_coalesce_count = 0;
-size_t HeapManager::cv_free_bytes;
-size_t HeapManager::cv_free_chunks;
+size_t HeapManager::cv_free_bytes;
+size_t HeapManager::cv_free_chunks;
void HeapManager::init()
@@ -129,7 +129,7 @@ void* HeapManager::_realloc(void* i_ptr, size_t i_sz)
{
void* new_ptr = _reallocBig(i_ptr,i_sz);
if(new_ptr) return new_ptr;
-
+
new_ptr = i_ptr;
chunk_t* chunk = reinterpret_cast<chunk_t*>(((size_t*)i_ptr)-1);
size_t asize = bucketByteSize(chunk->bucket)-8;
@@ -146,7 +146,7 @@ void* HeapManager::_reallocBig(void* i_ptr, size_t i_sz)
{
// Currently all large allocations fall on a page boundry,
// but small allocatoins never do
- if(ALIGN_PAGE(reinterpret_cast<uint64_t>(i_ptr)) !=
+ if(ALIGN_PAGE(reinterpret_cast<uint64_t>(i_ptr)) !=
reinterpret_cast<uint64_t>(i_ptr))
{
return NULL;
@@ -282,7 +282,7 @@ size_t HeapManager::bucketIndex(size_t i_sz)
// A simple linear search loop is unrolled by the compiler
// and generates large asm code.
- //
+ //
// A manual unrole of a binary search using "if" statements is 160 bytes
// for this function and 160 bytes for the bucketByteSize() function
// but does not need the 96 byte cv_chunk_size array. Total 320 bytes
@@ -346,7 +346,7 @@ void HeapManager::_coalesce()
chunk_t * c_find = reinterpret_cast<chunk_t*>(((uint8_t*)c) + s);
// c_find must be in same page
- if(reinterpret_cast<uint64_t>(c_find) <
+ if(reinterpret_cast<uint64_t>(c_find) <
ALIGN_PAGE(reinterpret_cast<uint64_t>(c)))
{
if(c_find->free)
@@ -395,13 +395,13 @@ void HeapManager::_coalesce()
c = c_next;
}
printkd("HeapMgr coalesced total %ld\n",cv_coalesce_count);
- test_pages();
+ test_pages(); /*no effect*/ // BEAM fix.
}
void HeapManager::stats()
{
coalesce(); // collects some of the stats
-
+
printkd("Memory Heap Stats:\n");
printkd(" %d Large heap pages allocated.\n",g_big_chunks);
printkd(" %d Large heap max allocated.\n",g_bigheap_highwater);
@@ -503,7 +503,7 @@ bool HeapManager::_freeBig(void* i_ptr)
{
// Currently all large allocations fall on a page boundry,
// but small allocations never do
- if(ALIGN_PAGE(reinterpret_cast<uint64_t>(i_ptr)) !=
+ if(ALIGN_PAGE(reinterpret_cast<uint64_t>(i_ptr)) !=
reinterpret_cast<uint64_t>(i_ptr))
return false;
diff --git a/src/kernel/ptmgr.C b/src/kernel/ptmgr.C
index 6de8ac31d..9d0055e83 100644
--- a/src/kernel/ptmgr.C
+++ b/src/kernel/ptmgr.C
@@ -635,9 +635,9 @@ void PageTableManager::writePTE( PageTableEntry* i_pte,
// If the AVAs match then we're just modifying permissions or something
if( i_pte->AVA != i_dest->AVA )
{
- // this should never happen because we should always go
+ // this should never happen because we should always go
// through the delEntry() path instead
- printPTE( "Stealing", i_dest );
+ printPTE( "Stealing", i_dest ); /*no effect*/ // BEAM Fix.
Eprintk( "**ERROR** PageTableManager::writePTE> Trying to steal a PTE\n" );
kassert(false);
}
@@ -755,7 +755,7 @@ void PageTableManager::_printPT( void )
{
if( pte->V == 1 )
{
- printPTE( NULL, pte );
+ printPTE( NULL, pte ); /*no effect*/ // BEAM Fix.
}
pte++;
@@ -843,7 +843,7 @@ VmmManager::ACCESS_TYPES PageTableManager::getAccessType( const PageTableEntry*
}
Eprintk( "I don't recognize this PTE : WIMG=%ld, pp1_2=%ld\n", i_pte->WIMG, i_pte->pp1_2 );
- printPTE( "getAccessType", i_pte);
+ printPTE( "getAccessType", i_pte); /*no effect*/ // BEAM Fix.
kassert(false);
return VmmManager::NO_USER_ACCESS;
}
diff --git a/src/kernel/stacksegment.C b/src/kernel/stacksegment.C
index 592d4dec7..0c04a2444 100644
--- a/src/kernel/stacksegment.C
+++ b/src/kernel/stacksegment.C
@@ -58,7 +58,7 @@ StackSegment::~StackSegment()
delete l_node->block;
delete l_node;
}
- } while (l_node != NULL);
+ } while (l_node != NULL); /*using deallocated*/ // BEAM invalid error.
}
bool StackSegment::handlePageFault(task_t* i_task, uint64_t i_addr)
diff --git a/src/kernel/syscall.C b/src/kernel/syscall.C
index ca32657cf..b38c5e031 100644
--- a/src/kernel/syscall.C
+++ b/src/kernel/syscall.C
@@ -141,7 +141,7 @@ void kernel_execute_system_call()
task_t* t = TaskManager::getCurrentTask();
uint64_t syscall = t->context.gprs[3];
- if (syscall > SYSCALL_MAX)
+ if (syscall >= SYSCALL_MAX)
{
// TODO : kill task.
printk("Invalid syscall : %ld\n", syscall);
@@ -437,7 +437,7 @@ namespace Systemcalls
void DevMap(task_t *t)
{
void *ra = (void*)TASK_GETARG0(t);
- SEG_DATA_SIZES devDataSize = (SEG_DATA_SIZES)TASK_GETARG1(t);
+ uint64_t devDataSize = TASK_GETARG1(t);
kassert(TASK_SETRTN(t, (uint64_t)VmmManager::devMap(ra,devDataSize)) !=
NULL);
diff --git a/src/kernel/vmmmgr.C b/src/kernel/vmmmgr.C
index cfa29b569..5550b9ed5 100644
--- a/src/kernel/vmmmgr.C
+++ b/src/kernel/vmmmgr.C
@@ -49,7 +49,7 @@ void VmmManager::init()
SegmentManager::initSLB();
v.initPTEs();
- v.initSDR1();
+ v.initSDR1(); /*no effect*/ // BEAM Fix.
printk("...done.\n");
};
@@ -59,7 +59,7 @@ void VmmManager::init_slb()
VmmManager& v = Singleton<VmmManager>::instance();
SegmentManager::initSLB();
- v.initSDR1();
+ v.initSDR1(); /*no effect*/ // BEAM Fix.
}
bool VmmManager::pteMiss(task_t* t, uint64_t effAddr)
@@ -104,7 +104,7 @@ int VmmManager::mmioUnmap(void* ea, size_t pages)
* STATIC
* @brief A facade to map a device into the device segment(2TB)
*/
-void* VmmManager::devMap(void* ra, SEG_DATA_SIZES i_devDataSize)
+void* VmmManager::devMap(void* ra, uint64_t i_devDataSize)
{
return DeviceSegment::devMap(ra, i_devDataSize);
}
@@ -168,7 +168,7 @@ uint64_t VmmManager::_findPhysicalAddress(uint64_t i_vaddr)
uint64_t paddr = 0;
lock.lock();
-
+
paddr = SegmentManager::findPhysicalAddress(i_vaddr);
lock.unlock();
@@ -210,7 +210,7 @@ int VmmManager::_mmSetPermission(void* i_va, uint64_t i_size, uint64_t i_access_
return rc;
}
-
+
void VmmManager::_castOutPages(VmmManager::castout_t i_ct)
{
lock.lock();
OpenPOWER on IntegriCloud