Changeset f1d1f5d3 in mainline
- Timestamp:
- 2006-09-17T20:10:10Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 57da95c
- Parents:
- 06e1e95
- Location:
- kernel
- Files:
-
- 2 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/include/mm/as.h
r06e1e95 rf1d1f5d3 45 45 #define USTACK_ADDRESS_ARCH (USER_ADDRESS_SPACE_END_ARCH-(PAGE_SIZE-1)) 46 46 47 typedef struct { 48 } as_arch_t; 49 47 50 #define as_install_arch(as) 51 #define as_invalidate_translation_cache(as, page, cnt) 48 52 49 53 extern void as_arch_init(void); -
kernel/arch/ia32/include/mm/as.h
r06e1e95 rf1d1f5d3 45 45 #define USTACK_ADDRESS_ARCH (USER_ADDRESS_SPACE_END_ARCH-(PAGE_SIZE-1)) 46 46 47 typedef struct { 48 } as_arch_t; 49 47 50 #define as_install_arch(as) 51 #define as_invalidate_translation_cache(as, page, cnt) 48 52 49 53 extern void as_arch_init(void); -
kernel/arch/ia64/include/mm/as.h
r06e1e95 rf1d1f5d3 45 45 #define USTACK_ADDRESS_ARCH 0x0000000ff0000000ULL 46 46 47 typedef struct { 48 } as_arch_t; 49 50 #define as_invalidate_translation_cache(as, page, cnt) 51 47 52 extern void as_arch_init(void); 48 53 -
kernel/arch/mips32/include/mm/as.h
r06e1e95 rf1d1f5d3 45 45 #define USTACK_ADDRESS_ARCH (0x80000000-PAGE_SIZE) 46 46 47 typedef struct { 48 } as_arch_t; 49 50 #define as_invalidate_translation_cache(as, page, cnt) 51 47 52 extern void as_arch_init(void); 48 53 -
kernel/arch/ppc32/include/mm/as.h
r06e1e95 rf1d1f5d3 45 45 #define USTACK_ADDRESS_ARCH (0x7fffffff-(PAGE_SIZE-1)) 46 46 47 typedef struct { 48 } as_arch_t; 49 50 #define as_invalidate_translation_cache(as, page, cnt) 51 47 52 extern void as_arch_init(void); 48 53 -
kernel/arch/ppc64/include/mm/as.h
r06e1e95 rf1d1f5d3 45 45 #define USTACK_ADDRESS_ARCH (0x7fffffff-(PAGE_SIZE-1)) 46 46 47 typedef struct { 48 } as_arch_t; 49 47 50 #define as_install_arch(as) 51 #define as_invalidate_translation_cache(as, page, cnt) 48 52 49 53 extern void as_arch_init(void); -
kernel/arch/sparc64/Makefile.inc
r06e1e95 rf1d1f5d3 108 108 arch/$(ARCH)/src/drivers/kbd.c 109 109 110 ifdef CONFIG_TSB 111 ARCH_SOURCES += \ 112 arch/$(ARCH)/src/mm/tsb.c 113 endif 114 110 115 ifdef CONFIG_Z8530 111 116 ARCH_SOURCES += \ -
kernel/arch/sparc64/include/mm/as.h
r06e1e95 rf1d1f5d3 36 36 #define KERN_sparc64_AS_H_ 37 37 38 #ifdef CONFIG_TSB 39 #include <arch/mm/tsb.h> 40 #endif 41 38 42 #define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH 1 39 43 … … 45 49 #define USTACK_ADDRESS_ARCH (0xffffffffffffffffULL-(PAGE_SIZE-1)) 46 50 51 typedef struct { 52 #ifdef CONFIG_TSB 53 tsb_entry_t *itsb; 54 tsb_entry_t *dtsb; 55 #endif 56 } as_arch_t; 57 58 #ifdef CONFIG_TSB 59 # define as_invalidate_translation_cache(as, page, cnt) tsb_invalidate(as, page, cnt) 60 #else 61 # define as_invalidate_translation_cache(as, page, cnt) 62 #endif 63 47 64 extern void as_arch_init(void); 48 65 … … 51 68 /** @} 52 69 */ 53 -
kernel/arch/xen32/include/mm/as.h
r06e1e95 rf1d1f5d3 45 45 #define USTACK_ADDRESS_ARCH (USER_ADDRESS_SPACE_END_ARCH-(PAGE_SIZE-1)) 46 46 47 typedef struct { 48 } as_arch_t; 49 47 50 #define as_install_arch(as) 51 #define as_invalidate_translation_cache(as, page, cnt) 48 52 49 53 extern void as_arch_init(void); -
kernel/genarch/src/mm/asid.c
r06e1e95 rf1d1f5d3 123 123 */ 124 124 as->asid = ASID_INVALID; 125 126 /* 127 * If the architecture uses some software cache 128 * of TLB entries (e.g. TSB on sparc64), the 129 * cache must be invalidated as well. 130 */ 131 as_invalidate_translation_cache(as, 0, 0); 132 125 133 mutex_unlock(&as->lock); 126 134 … … 142 150 143 151 /* 144 * Purge the allocated ridfrom TLBs.152 * Purge the allocated ASID from TLBs. 145 153 */ 146 154 tlb_shootdown_start(TLB_INVL_ASID, asid, 0, 0); -
kernel/generic/include/mm/as.h
r06e1e95 rf1d1f5d3 94 94 /** Address space identifier. Constant on architectures that do not support ASIDs.*/ 95 95 asid_t asid; 96 97 /** Architecture specific content. */ 98 as_arch_t arch; 96 99 }; 97 100 -
kernel/generic/src/mm/as.c
r06e1e95 rf1d1f5d3 360 360 i = (start_free - b) >> PAGE_WIDTH; 361 361 if (!used_space_remove(area, start_free, c - i)) 362 panic("Could not remove used space. ");362 panic("Could not remove used space.\n"); 363 363 } else { 364 364 /* … … 390 390 tlb_invalidate_pages(AS->asid, area->base + pages*PAGE_SIZE, area->pages - pages); 391 391 tlb_shootdown_finalize(); 392 393 /* 394 * Invalidate software translation caches (e.g. TSB on sparc64). 395 */ 396 as_invalidate_translation_cache(as, area->base + pages*PAGE_SIZE, area->pages - pages); 392 397 } else { 393 398 /* … … 441 446 * Start TLB shootdown sequence. 442 447 */ 443 tlb_shootdown_start(TLB_INVL_PAGES, AS->asid, area->base, area->pages);448 tlb_shootdown_start(TLB_INVL_PAGES, as->asid, area->base, area->pages); 444 449 445 450 /* … … 464 469 b + j*PAGE_SIZE, PTE_GET_FRAME(pte)); 465 470 } 466 page_mapping_remove(as, b + j*PAGE_SIZE); 471 page_mapping_remove(as, b + j*PAGE_SIZE); 467 472 page_table_unlock(as, false); 468 473 } … … 473 478 * Finish TLB shootdown sequence. 474 479 */ 475 tlb_invalidate_pages( AS->asid, area->base, area->pages);480 tlb_invalidate_pages(as->asid, area->base, area->pages); 476 481 tlb_shootdown_finalize(); 482 483 /* 484 * Invalidate potential software translation caches (e.g. TSB on sparc64). 485 */ 486 as_invalidate_translation_cache(as, area->base, area->pages); 477 487 478 488 btree_destroy(&area->used_space); … … 488 498 * Remove the empty area from address space. 489 499 */ 490 btree_remove(& AS->as_area_btree, base, NULL);500 btree_remove(&as->as_area_btree, base, NULL); 491 501 492 502 free(area); 493 503 494 mutex_unlock(& AS->lock);504 mutex_unlock(&as->lock); 495 505 interrupts_restore(ipl); 496 506 return 0; -
kernel/kernel.config
r06e1e95 rf1d1f5d3 108 108 ! [ARCH=ia64] CONFIG_VHPT (n/y) 109 109 110 # Use TSB 111 ! [ARCH=sparc64] CONFIG_TSB (n/y) 112 110 113 ## Run-time configuration directives 111 114
Note:
See TracChangeset
for help on using the changeset viewer.