Subversion Repositories HelenOS

Rev

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

Rev 2231 Rev 2462
Line 223... Line 223...
223
         * handler.
223
         * handler.
224
         */    
224
         */    
225
        page_table_unlock(AS, true);
225
        page_table_unlock(AS, true);
226
        if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) {
226
        if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) {
227
            do_fast_instruction_access_mmu_miss_fault(istate,
227
            do_fast_instruction_access_mmu_miss_fault(istate,
228
                __FUNCTION__);
228
                __func__);
229
        }
229
        }
230
    }
230
    }
231
}
231
}
232
 
232
 
233
/** DTLB miss handler.
233
/** DTLB miss handler.
Line 251... Line 251...
251
 
251
 
252
    if (tag.context == ASID_KERNEL) {
252
    if (tag.context == ASID_KERNEL) {
253
        if (!tag.vpn) {
253
        if (!tag.vpn) {
254
            /* NULL access in kernel */
254
            /* NULL access in kernel */
255
            do_fast_data_access_mmu_miss_fault(istate, tag,
255
            do_fast_data_access_mmu_miss_fault(istate, tag,
256
                __FUNCTION__);
256
                __func__);
257
        }
257
        }
258
        do_fast_data_access_mmu_miss_fault(istate, tag, "Unexpected "
258
        do_fast_data_access_mmu_miss_fault(istate, tag, "Unexpected "
259
            "kernel page fault.");
259
            "kernel page fault.");
260
    }
260
    }
261
 
261
 
Line 278... Line 278...
278
         * handler.
278
         * handler.
279
         */    
279
         */    
280
        page_table_unlock(AS, true);
280
        page_table_unlock(AS, true);
281
        if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) {
281
        if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) {
282
            do_fast_data_access_mmu_miss_fault(istate, tag,
282
            do_fast_data_access_mmu_miss_fault(istate, tag,
283
                __FUNCTION__);
283
                __func__);
284
        }
284
        }
285
    }
285
    }
286
}
286
}
287
 
287
 
288
/** DTLB protection fault handler.
288
/** DTLB protection fault handler.
Line 324... Line 324...
324
         * handler.
324
         * handler.
325
         */    
325
         */    
326
        page_table_unlock(AS, true);
326
        page_table_unlock(AS, true);
327
        if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) {
327
        if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) {
328
            do_fast_data_access_protection_fault(istate, tag,
328
            do_fast_data_access_protection_fault(istate, tag,
329
                __FUNCTION__);
329
                __func__);
330
        }
330
        }
331
    }
331
    }
332
}
332
}
333
 
333
 
334
/** Print contents of both TLBs. */
334
/** Print contents of both TLBs. */