Changeset 4512d7e in mainline for generic/src/mm/tlb.c


Ignore:
Timestamp:
2006-01-19T22:17:47Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6461d67c
Parents:
64c44e8
Message:

New ASID management subsystem (initial work, more is required).
Some TLB invalidation changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • generic/src/mm/tlb.c

    r64c44e8 r4512d7e  
    4747#ifdef CONFIG_SMP
    4848/* must be called with interrupts disabled */
    49 void tlb_shootdown_start(void)
     49void tlb_shootdown_start(tlb_invalidate_type_t type, asid_t asid, __address page, count_t cnt)
    5050{
    5151        int i;
     
    5353        CPU->tlb_active = 0;
    5454        spinlock_lock(&tlblock);
     55       
     56        /*
     57         * TODO: assemble shootdown message.
     58         */
    5559        tlb_shootdown_ipi_send();
    56         tlb_invalidate(0); /* TODO: use valid ASID */
     60
     61        switch (type) {
     62            case TLB_INVL_ALL:
     63                tlb_invalidate_all();
     64                break;
     65            case TLB_INVL_ASID:
     66                tlb_invalidate_asid(asid);
     67                break;
     68            case TLB_INVL_PAGES:
     69                tlb_invalidate_pages(asid, page, cnt);
     70                break;
     71            default:
     72                panic("unknown tlb_invalidate_type_t value: %d\n", type);
     73                break;
     74        }
    5775       
    5876busy_wait:     
     
    7896        spinlock_lock(&tlblock);
    7997        spinlock_unlock(&tlblock);
    80         tlb_invalidate(0);      /* TODO: use valid ASID */
     98        tlb_invalidate_all();   /* TODO: use valid ASID */
    8199        CPU->tlb_active = 1;
    82100}
Note: See TracChangeset for help on using the changeset viewer.