Subversion Repositories HelenOS-historic

Rev

Rev 397 | Rev 400 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 397 Rev 399
Line 46... Line 46...
46
 
46
 
47
    printf("Memory management test mapping #1\n");
47
    printf("Memory management test mapping #1\n");
48
 
48
 
49
    frame0 = frame_alloc(FRAME_KA);
49
    frame0 = frame_alloc(FRAME_KA);
50
    frame1 = frame_alloc(FRAME_KA);
50
    frame1 = frame_alloc(FRAME_KA);
51
   
51
 
-
 
52
    printf("Writing %L to physical address %P.\n", VALUE0, KA2PA(frame0));
52
    *((__u32 *) frame0) = VALUE0;
53
    *((__u32 *) frame0) = VALUE0;
-
 
54
    printf("Writing %L to physical address %P.\n", VALUE1, KA2PA(frame1));
53
    *((__u32 *) frame1) = VALUE1;
55
    *((__u32 *) frame1) = VALUE1;
54
   
56
   
55
    printf("Mapping %P to %P.\n", PAGE0, KA2PA(frame0));
57
    printf("Mapping virtual address %P to physical address %P.\n", PAGE0, KA2PA(frame0));
56
    map_page_to_frame(PAGE0, KA2PA(frame0), PAGE_PRESENT, 0);
58
    map_page_to_frame(PAGE0, KA2PA(frame0), PAGE_PRESENT | PAGE_WRITE, 0);
57
    printf("Mapping %P to %P.\n", PAGE1, KA2PA(frame1));   
59
    printf("Mapping virtual address %P to physical address %P.\n", PAGE1, KA2PA(frame1));  
58
    map_page_to_frame(PAGE1, KA2PA(frame1), PAGE_PRESENT, 0);
60
    map_page_to_frame(PAGE1, KA2PA(frame1), PAGE_PRESENT | PAGE_WRITE, 0);
59
   
61
   
60
    printf("Value at %P is %L.\n", PAGE0, v0 = *((__u32 *) PAGE0));
62
    printf("Value at virtual address %P is %L.\n", PAGE0, v0 = *((__u32 *) PAGE0));
61
    printf("Value at %P is %L.\n", PAGE1, v1 = *((__u32 *) PAGE1));
63
    printf("Value at virtual address %P is %L.\n", PAGE1, v1 = *((__u32 *) PAGE1));
62
   
64
   
63
    ASSERT(v0 == VALUE0);
65
    ASSERT(v0 == VALUE0);
64
    ASSERT(v1 == VALUE1);
66
    ASSERT(v1 == VALUE1);
65
 
67
 
66
    printf("Writing 0 to %P.\n", PAGE0);
68
    printf("Writing %X to virtual address %P.\n", 0, PAGE0);
67
    *((__u32 *) PAGE0) = 0;
69
    *((__u32 *) PAGE0) = 0;
68
    printf("Writing 0 to %P.\n", PAGE1);
70
    printf("Writing %X to virtual address %P.\n", 0, PAGE1);
69
    *((__u32 *) PAGE1) = 0;
71
    *((__u32 *) PAGE1) = 0;
70
   
72
   
71
    printf("Value at %P is %L.\n", PAGE0, v0 = *((__u32 *) PAGE0));
73
    printf("Value at virtual address %P is %X.\n", PAGE0, v0 = *((__u32 *) PAGE0));
72
    printf("Value at %P is %L.\n", PAGE1, v1 = *((__u32 *) PAGE1));
74
    printf("Value at virtual address %P is %X.\n", PAGE1, v1 = *((__u32 *) PAGE1));
73
 
75
 
74
    ASSERT(v0 == 0);
76
    ASSERT(v0 == 0);
75
    ASSERT(v1 == 0);
77
    ASSERT(v1 == 0);
76
   
78
   
77
    printf("Test passed.\n");
79
    printf("Test passed.\n");