Changeset 7c322bd in mainline for arch/ia64/src/mm/tlb.c


Ignore:
Timestamp:
2006-03-12T13:13:12Z (19 years ago)
Author:
Jakub Vana <jakub.vana@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
bdab828
Parents:
e792fa7
Message:

Itanium tlb_invalidate_all

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ia64/src/mm/tlb.c

    re792fa7 r7c322bd  
    3939#include <arch/barrier.h>
    4040#include <arch/interrupt.h>
     41#include <arch/pal/pal.h>
     42#include <arch/asm.h>
    4143#include <typedefs.h>
    4244#include <panic.h>
     
    4648void tlb_invalidate_all(void)
    4749{
    48         /* TODO */
     50                __address adr;
     51                __u32 count1,count2,stride1,stride2;
     52               
     53                int i,j;
     54               
     55                adr=PAL_PTCE_INFO_BASE();
     56                count1=PAL_PTCE_INFO_COUNT1();
     57                count2=PAL_PTCE_INFO_COUNT2();
     58                stride1=PAL_PTCE_INFO_STRIDE1();
     59                stride2=PAL_PTCE_INFO_STRIDE2();
     60               
     61                interrupts_disable();
     62
     63                for(i=0;i<count1;i++)
     64                {
     65                        for(j=0;j<count2;j++)
     66                        {
     67                                asm volatile
     68                                (
     69                                        "ptc.e %0;;"
     70                                        :
     71                                        :"r" (adr)
     72                                );
     73                                adr+=stride2;
     74                        }
     75                        adr+=stride1;
     76                }
     77
     78                interrupts_enable();
     79
     80                srlz_d();
     81                srlz_i();
    4982}
    5083
Note: See TracChangeset for help on using the changeset viewer.