align address to page boundary, cosmetic changes
This commit is contained in:
parent
3acdf72b88
commit
feaf615724
1 changed files with 8 additions and 6 deletions
|
@ -35,7 +35,7 @@
|
|||
#include <asm/icc.h>
|
||||
#include <asm/svm.h>
|
||||
|
||||
#define USE_PERFCOUNTERS 1
|
||||
#define USE_PERFCOUNTERS 0
|
||||
|
||||
#define SHARED_PAGES (4*(RCCE_SHM_SIZE_MAX >> PAGE_SHIFT))
|
||||
#define OWNER_SIZE ((SHARED_PAGES * sizeof(uint8_t) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))
|
||||
|
@ -304,7 +304,8 @@ int svm_access_request(size_t addr)
|
|||
max_wait = res;
|
||||
#endif
|
||||
|
||||
ret = change_page_permissions(addr, addr+PAGE_SIZE, VMA_READ|VMA_WRITE|VMA_CACHEABLE);
|
||||
addr &= 0xFFFFF000; // align address to page boundary
|
||||
ret = change_page_permissions(addr, addr + PAGE_SIZE, VMA_READ|VMA_WRITE|VMA_CACHEABLE);
|
||||
|
||||
#if USE_PERFCOUNTERS
|
||||
request_ticks += rdtsc() - start;
|
||||
|
@ -324,7 +325,7 @@ void* svm_malloc(size_t size, uint32_t consistency)
|
|||
uint32_t map_flags = MAP_KERNEL_SPACE|MAP_SVM_INIT;
|
||||
uint8_t buffer[RCCE_LINE_SIZE]= {[0 ... RCCE_LINE_SIZE-1] = 0};
|
||||
|
||||
if( !(consistency & SVM_L2) )
|
||||
if(!(consistency & SVM_L2))
|
||||
map_flags |= MAP_MPE;
|
||||
else
|
||||
task->flags |= TASK_L2;
|
||||
|
@ -419,8 +420,9 @@ void* svm_malloc(size_t size, uint32_t consistency)
|
|||
#endif
|
||||
|
||||
viraddr = map_region(0, 0, size >> PAGE_SHIFT, map_flags);
|
||||
kprintf("svmmalloc: viraddr 0x%x, size 0x%x\n", viraddr, size);
|
||||
kprintf("svmmalloc: viraddr 0x%x, size 0x%x, flags 0x%x\n", viraddr, size, map_flags);
|
||||
|
||||
map_flags |= MAP_REMAP;
|
||||
for(i=0, j=0, mpb_addr=0; i<size; i+=PAGE_SIZE, j++) {
|
||||
if (j % (RCCE_LINE_SIZE/sizeof(uint16_t)) == 0) {
|
||||
flags = irq_nested_disable();
|
||||
|
@ -440,8 +442,8 @@ void* svm_malloc(size_t size, uint32_t consistency)
|
|||
|
||||
phyaddr = (size_t)mpb_addr + (j % (RCCE_LINE_SIZE/sizeof(uint16_t))) * sizeof(uint16_t);
|
||||
phyaddr <<= PAGE_SHIFT;
|
||||
//kprintf("phyaddr 0x%x\n", phyaddr);
|
||||
map_region(viraddr+i, phyaddr, 1, map_flags|MAP_REMAP);
|
||||
//kprintf("viraddr 0x%x, phyaddr 0x%x, flags 0x%x\n", viraddr+i, phyaddr, map_flags);
|
||||
map_region(viraddr+i, phyaddr, 1, map_flags);
|
||||
}
|
||||
|
||||
return (void*) viraddr;
|
||||
|
|
Loading…
Add table
Reference in a new issue