Subversion Repositories HelenOS-historic

Rev

Rev 1757 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1757 Rev 1780
Line 67... Line 67...
67
 * of page boundaries.
67
 * of page boundaries.
68
 *
68
 *
69
 * @param s Address of the structure.
69
 * @param s Address of the structure.
70
 * @param size Size of the structure.
70
 * @param size Size of the structure.
71
 */
71
 */
72
void map_structure(__address s, size_t size)
72
void map_structure(uintptr_t s, size_t size)
73
{
73
{
74
    int i, cnt, length;
74
    int i, cnt, length;
75
 
75
 
76
    length = size + (s - (s & ~(PAGE_SIZE - 1)));
76
    length = size + (s - (s & ~(PAGE_SIZE - 1)));
77
    cnt = length / PAGE_SIZE + (length % PAGE_SIZE > 0);
77
    cnt = length / PAGE_SIZE + (length % PAGE_SIZE > 0);
Line 91... Line 91...
91
 * @param as Address space to wich page belongs.
91
 * @param as Address space to wich page belongs.
92
 * @param page Virtual address of the page to be mapped.
92
 * @param page Virtual address of the page to be mapped.
93
 * @param frame Physical address of memory frame to which the mapping is done.
93
 * @param frame Physical address of memory frame to which the mapping is done.
94
 * @param flags Flags to be used for mapping.
94
 * @param flags Flags to be used for mapping.
95
 */
95
 */
96
void page_mapping_insert(as_t *as, __address page, __address frame, int flags)
96
void page_mapping_insert(as_t *as, uintptr_t page, uintptr_t frame, int flags)
97
{
97
{
98
    ASSERT(page_mapping_operations);
98
    ASSERT(page_mapping_operations);
99
    ASSERT(page_mapping_operations->mapping_insert);
99
    ASSERT(page_mapping_operations->mapping_insert);
100
   
100
   
101
    page_mapping_operations->mapping_insert(as, page, frame, flags);
101
    page_mapping_operations->mapping_insert(as, page, frame, flags);
Line 110... Line 110...
110
 * The page table must be locked and interrupts must be disabled.
110
 * The page table must be locked and interrupts must be disabled.
111
 *
111
 *
112
 * @param as Address space to wich page belongs.
112
 * @param as Address space to wich page belongs.
113
 * @param page Virtual address of the page to be demapped.
113
 * @param page Virtual address of the page to be demapped.
114
 */
114
 */
115
void page_mapping_remove(as_t *as, __address page)
115
void page_mapping_remove(as_t *as, uintptr_t page)
116
{
116
{
117
    ASSERT(page_mapping_operations);
117
    ASSERT(page_mapping_operations);
118
    ASSERT(page_mapping_operations->mapping_remove);
118
    ASSERT(page_mapping_operations->mapping_remove);
119
   
119
   
120
    page_mapping_operations->mapping_remove(as, page);
120
    page_mapping_operations->mapping_remove(as, page);
Line 129... Line 129...
129
 * @param as Address space to wich page belongs.
129
 * @param as Address space to wich page belongs.
130
 * @param page Virtual page.
130
 * @param page Virtual page.
131
 *
131
 *
132
 * @return NULL if there is no such mapping; requested mapping otherwise.
132
 * @return NULL if there is no such mapping; requested mapping otherwise.
133
 */
133
 */
134
pte_t *page_mapping_find(as_t *as, __address page)
134
pte_t *page_mapping_find(as_t *as, uintptr_t page)
135
{
135
{
136
    ASSERT(page_mapping_operations);
136
    ASSERT(page_mapping_operations);
137
    ASSERT(page_mapping_operations->mapping_find);
137
    ASSERT(page_mapping_operations->mapping_find);
138
 
138
 
139
    return page_mapping_operations->mapping_find(as, page);
139
    return page_mapping_operations->mapping_find(as, page);