Subversion Repositories HelenOS-historic

Rev

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

Rev 742 Rev 749
Line 47... Line 47...
47
 */
47
 */
48
 
48
 
49
#include <arch/mm/asid.h>
49
#include <arch/mm/asid.h>
50
#include <mm/asid.h>
50
#include <mm/asid.h>
51
#include <mm/as.h>
51
#include <mm/as.h>
-
 
52
#include <genarch/mm/page_ht.h>
52
#include <mm/tlb.h>
53
#include <mm/tlb.h>
53
#include <list.h>
54
#include <list.h>
54
#include <typedefs.h>
55
#include <typedefs.h>
55
#include <debug.h>
56
#include <debug.h>
56
 
57
 
Line 102... Line 103...
102
           
103
           
103
            spinlock_lock(&as->lock);
104
            spinlock_lock(&as->lock);
104
            as->asid = next_asid++;
105
            as->asid = next_asid++;
105
            spinlock_unlock(&as->lock);
106
            spinlock_unlock(&as->lock);
106
        }
107
        }
-
 
108
       
-
 
109
        /*
-
 
110
         * The page hash table uses VHPT long format PTE's.
-
 
111
         * Unfortunatelly, this format has no space to
-
 
112
         * store as_t pointer, so it is necessary to
-
 
113
         * invalidate the whole structure after all ASIDs
-
 
114
         * have been reassigned. The information swept out
-
 
115
         * from the page hash table can be later reconstructed
-
 
116
         * from as_t structures on demand.
-
 
117
         */
-
 
118
        ht_invalidate_all();
107
 
119
 
108
        /*
120
        /*
109
         * Finish TLB shootdown.
121
         * Finish TLB shootdown.
110
         */
122
         */
111
        tlb_shootdown_finalize();
123
        tlb_shootdown_finalize();