Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/test/mm/mapping1.c

    r5df1963 r9d58539  
    4141const char *test_mapping1(void)
    4242{
    43         uintptr_t frame = frame_alloc(1, FRAME_NONE, 0);
     43        uintptr_t page0, page1;
     44        uintptr_t frame;
     45        uint32_t v;
     46        int i;
    4447       
    45         uintptr_t page0 = km_map(frame, FRAME_SIZE,
     48        frame = (uintptr_t) frame_alloc(ONE_FRAME, FRAME_NONE);
     49
     50        page0 = km_map(frame, FRAME_SIZE,
    4651            PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE);
    4752        TPRINTF("Virtual address %p mapped to physical address %p.\n",
    4853            (void *) page0, (void *) frame);
    49        
    50         uintptr_t page1 = km_map(frame, FRAME_SIZE,
     54        page1 = km_map(frame, FRAME_SIZE,
    5155            PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE);
    5256        TPRINTF("Virtual address %p mapped to physical address %p.\n",
    5357            (void *) page1, (void *) frame);
    5458       
    55         for (unsigned int i = 0; i < 2; i++) {
     59        for (i = 0; i < 2; i++) {
    5660                TPRINTF("Writing magic using the first virtual address.\n");
    57                
     61
    5862                *((uint32_t *) page0) = TEST_MAGIC;
    59                
     63
    6064                TPRINTF("Reading magic using the second virtual address.\n");
    61                
    62                 uint32_t v = *((uint32_t *) page1);
    63                
     65
     66                v = *((uint32_t *) page1);
     67       
    6468                if (v != TEST_MAGIC) {
    6569                        km_unmap(page0, PAGE_SIZE);
    6670                        km_unmap(page1, PAGE_SIZE);
    67                         frame_free(frame, 1);
     71                        frame_free(frame);
    6872                        return "Criss-cross read does not match the value written.";
    6973                }
    70                
     74
    7175                TPRINTF("Writing zero using the second virtual address.\n");
    72                
     76       
    7377                *((uint32_t *) page1) = 0;
    74                
     78
    7579                TPRINTF("Reading zero using the first virtual address.\n");
    76                
     80       
    7781                v = *((uint32_t *) page0);
    78                
     82       
    7983                if (v != 0) {
    8084                        km_unmap(page0, PAGE_SIZE);
    8185                        km_unmap(page1, PAGE_SIZE);
    82                         frame_free(frame, 1);
     86                        frame_free(frame);
    8387                        return "Criss-cross read does not match the value written.";
    8488                }
    8589        }
    86        
     90
    8791        km_unmap(page0, PAGE_SIZE);
    8892        km_unmap(page1, PAGE_SIZE);
    89         frame_free(frame, 1);
     93        frame_free(frame);
    9094       
    9195        return NULL;
Note: See TracChangeset for help on using the changeset viewer.