Subversion Repositories HelenOS-historic

Rev

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

Rev 1411 Rev 1609
Line 28... Line 28...
28
 
28
 
29
#include <arch/mm/page.h>
29
#include <arch/mm/page.h>
30
#include <genarch/mm/page_pt.h>
30
#include <genarch/mm/page_pt.h>
31
#include <arch/mm/frame.h>
31
#include <arch/mm/frame.h>
32
#include <arch/asm.h>
32
#include <arch/asm.h>
-
 
33
#include <arch/interrupt.h>
33
#include <mm/frame.h>
34
#include <mm/frame.h>
34
#include <mm/page.h>
35
#include <mm/page.h>
35
#include <mm/as.h>
36
#include <mm/as.h>
36
#include <arch.h>
37
#include <arch.h>
37
#include <arch/types.h>
38
#include <arch/types.h>
Line 185... Line 186...
185
 *
186
 *
186
 * @param data   True if Data Storage Interrupt.
187
 * @param data   True if Data Storage Interrupt.
187
 * @param istate Interrupted register context.
188
 * @param istate Interrupted register context.
188
 *
189
 *
189
 */
190
 */
190
void pht_refill(bool data, istate_t *istate)
191
void pht_refill(int n, istate_t *istate)
191
{
192
{
192
    __address badvaddr;
193
    __address badvaddr;
193
    pte_t *pte;
194
    pte_t *pte;
194
    int pfcr;
195
    int pfcr;
195
    as_t *as;
196
    as_t *as;
Line 201... Line 202...
201
    } else {
202
    } else {
202
        as = AS;
203
        as = AS;
203
        lock = true;
204
        lock = true;
204
    }
205
    }
205
   
206
   
206
    if (data) {
207
    if (n == VECTOR_DATA_STORAGE) {
207
        asm volatile (
208
        asm volatile (
208
            "mfdar %0\n"
209
            "mfdar %0\n"
209
            : "=r" (badvaddr)
210
            : "=r" (badvaddr)
210
        );
211
        );
211
    } else
212
    } else