Changeset 169587a in mainline for src/mm/tlb.c
- Timestamp:
- 2005-02-21T21:47:22Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b109ebb
- Parents:
- 0ded477
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mm/tlb.c
r0ded477 r169587a 28 28 29 29 #include <mm/tlb.h> 30 #include <synch/spinlock.h> 31 #include <typedefs.h> 32 #include <arch/atomic.h> 33 #include <config.h> 30 34 31 void tlb_shutdown(void) 35 #ifdef __SMP__ 36 static spinlock_t tlblock; 37 static volatile int tlb_shutdown_cnt; 38 39 void tlb_init(void) 32 40 { 33 /* TODO: implement tlb_shutdown */ 41 spinlock_initialize(&tlblock); 42 tlb_shutdown_cnt = 0; 34 43 } 44 45 /* must be called with interrupts disabled */ 46 void tlb_shutdown_start(void) 47 { 48 spinlock_lock(&tlblock); 49 tlb_shutdown_ipi_send(); 50 51 while (tlb_shutdown_cnt < config.cpu_active - 1) 52 ; 53 54 tlb_shutdown_cnt = 0; 55 } 56 57 void tlb_shutdown_finalize(void) 58 { 59 spinlock_unlock(&tlblock); 60 } 61 62 void tlb_shutdown_ipi_recv(void) 63 { 64 atomic_inc((int *) &tlb_shutdown_cnt); 65 spinlock_lock(&tlblock); 66 spinlock_unlock(&tlblock); 67 tlb_invalidate(0); /* TODO: use valid ASID */ 68 } 69 #endif /* __SMP__ */
Note:
See TracChangeset
for help on using the changeset viewer.