Subversion Repositories HelenOS-historic

Rev

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

Rev 1383 Rev 1384
Line 179... Line 179...
179
 * @param istate Interrupted register context.
179
 * @param istate Interrupted register context.
180
 *
180
 *
181
 */
181
 */
182
void pht_refill(bool data, istate_t *istate)
182
void pht_refill(bool data, istate_t *istate)
183
{
183
{
184
    asid_t asid;
-
 
185
    __address badvaddr;
184
    __address badvaddr;
186
    pte_t *pte;
185
    pte_t *pte;
187
    int pfcr;
186
    int pfcr;
188
    as_t *as;
187
    as_t *as;
189
    bool lock;
188
    bool lock;
Line 202... Line 201...
202
            : "=r" (badvaddr)
201
            : "=r" (badvaddr)
203
        );
202
        );
204
    } else
203
    } else
205
        badvaddr = istate->pc;
204
        badvaddr = istate->pc;
206
       
205
       
207
    spinlock_lock(&as->lock);
-
 
208
    asid = as->asid;
-
 
209
    spinlock_unlock(&as->lock);
-
 
210
   
-
 
211
    page_table_lock(as, lock);
206
    page_table_lock(as, lock);
212
   
207
   
213
    pte = find_mapping_and_check(as, lock, badvaddr, istate, &pfcr);
208
    pte = find_mapping_and_check(as, lock, badvaddr, istate, &pfcr);
214
    if (!pte) {
209
    if (!pte) {
215
        switch (pfcr) {
210
        switch (pfcr) {