Subversion Repositories HelenOS-historic

Rev

Rev 1743 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1743 Rev 1758
Line 362... Line 362...
362
}
362
}
363
 
363
 
364
 
364
 
365
void tlb_invalidate_asid(asid_t asid)
365
void tlb_invalidate_asid(asid_t asid)
366
{
366
{
-
 
367
    __u32 sdr1;
-
 
368
    asm volatile (
-
 
369
        "mfsdr1 %0\n"
-
 
370
        : "=r" (sdr1)
-
 
371
    );
-
 
372
    phte_t *phte = (phte_t *) PA2KA(sdr1 & 0xffff0000);
-
 
373
   
367
    // TODO
374
    __u32 i;
-
 
375
    for (i = 0; i < 8192; i++) {
-
 
376
        if ((phte[i].v) && (phte[i].vsid >= (asid << 4)) && (phte[i].vsid < ((asid << 4) + 16)))
-
 
377
            phte[i].v = 0;
-
 
378
    }
368
    tlb_invalidate_all();
379
    tlb_invalidate_all();
369
}
380
}
370
 
381
 
371
 
382
 
372
void tlb_invalidate_pages(asid_t asid, __address page, count_t cnt)
383
void tlb_invalidate_pages(asid_t asid, __address page, count_t cnt)