Subversion Repositories HelenOS

Rev

Go to most recent revision | Hide changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff Changes
537 6791 d 3 h jermar /kernel/trunk/ Buddy system cleanup and fixes.
- missing use of KA2PA in frame_init
- truncating black list addresses to frame boundaries
- removal of left-over obsolete structures
- fixing some comments
 
/kernel/trunk/arch/ia32/src/mm/frame.c
/kernel/trunk/arch/ia64/include/mm/page.h
/kernel/trunk/generic/include/mm/frame.h
/kernel/trunk/generic/src/mm/frame.c
534 6792 d 1 h jermar / Rename HelenOS/SPARTAN to HelenOS/kernel again.  
/kernel
/SPARTAN
533 6792 d 1 h bondari /SPARTAN/trunk/ Buddy allocator for physical memory complete implementation.
Tested on IA32, AMD64, MIPS32. RWLock Test #5 is not passed.
NOTE: Other architectures could be broken (but should not be)
 
/SPARTAN/trunk/Makefile.config
/SPARTAN/trunk/arch/amd64/src/mm/page.c
/SPARTAN/trunk/arch/ia32/src/mm/frame.c
/SPARTAN/trunk/arch/ia32/src/mm/page.c
/SPARTAN/trunk/arch/ia64/src/mm/frame.c
/SPARTAN/trunk/arch/mips32/src/mm/frame.c
/SPARTAN/trunk/arch/mips32/src/mm/page.c
/SPARTAN/trunk/arch/ppc32/src/mm/frame.c
/SPARTAN/trunk/generic/include/mm/buddy.h
/SPARTAN/trunk/generic/include/mm/frame.h
/SPARTAN/trunk/generic/include/typedefs.h
/SPARTAN/trunk/generic/src/cpu/cpu.c
/SPARTAN/trunk/generic/src/mm/buddy.c
/SPARTAN/trunk/generic/src/mm/frame.c
/SPARTAN/trunk/generic/src/mm/page.c
/SPARTAN/trunk/generic/src/mm/vm.c
/SPARTAN/trunk/generic/src/proc/thread.c
532 6792 d 1 h jermar / Revert renaming of HelenOS/SPARTAN to HelenOS/kernel because of important pending patch.  
/SPARTAN
/kernel
501 6804 d 5 h jermar / Rename HelenOS/SPARTAN to HelenOS/kernel.  
/kernel
/SPARTAN
492 6804 d 22 h jermar /SPARTAN/trunk/ Rename map_page_to_frame() to page_mapping_insert() and find_mapping() to page_mapping_find().
New names should make it more apparent that these two belong together.
 
/SPARTAN/trunk/arch/amd64/src/mm/page.c
/SPARTAN/trunk/arch/ia32/src/drivers/ega.c
/SPARTAN/trunk/arch/ia32/src/mm/page.c
/SPARTAN/trunk/arch/ia32/src/smp/smp.c
/SPARTAN/trunk/arch/mips32/src/mm/tlb.c
/SPARTAN/trunk/genarch/src/acpi/acpi.c
/SPARTAN/trunk/generic/include/mm/page.h
/SPARTAN/trunk/generic/src/mm/page.c
/SPARTAN/trunk/generic/src/mm/vm.c
/SPARTAN/trunk/test/mm/mapping1/test.c
489 6811 d 4 h jermar /SPARTAN/trunk/generic/ Make the buddy system more general.
Store implementation defined pointer in buddy_system_t.
Pass buddy system pointer to implementation defined buddy system operations.
 
/SPARTAN/trunk/generic/include/mm/buddy.h
/SPARTAN/trunk/generic/include/mm/frame.h
/SPARTAN/trunk/generic/src/mm/buddy.c
/SPARTAN/trunk/generic/src/mm/frame.c
482 6813 d 1 h jermar /SPARTAN/trunk/generic/include/ Fix typo in buddy.h.
Make default memsize 8M.
 
/SPARTAN/trunk/generic/include/config.h
/SPARTAN/trunk/generic/include/mm/buddy.h
480 6814 d 0 h bondari /SPARTAN/trunk/generic/ Buddy system allocator implementation. Not checked. For review only.  
/SPARTAN/trunk/generic/include/mm/buddy.h
/SPARTAN/trunk/generic/include/mm/frame.h
/SPARTAN/trunk/generic/src/mm/frame.c
479 6815 d 2 h bondari /SPARTAN/trunk/generic/ Buddy system implementation. Not functional yet - only framework prepeared.
Also added 2 macros FRAME2ADDR and ADDR2FRAME.
 
/SPARTAN/trunk/generic/include/mm/frame.h
/SPARTAN/trunk/generic/src/mm/frame.c
458 6818 d 8 h decky /SPARTAN/trunk/ make configuration variables usage consistent  
/SPARTAN/trunk/Makefile
/SPARTAN/trunk/arch/amd64/Makefile.inc
/SPARTAN/trunk/arch/amd64/src/amd64.c
/SPARTAN/trunk/arch/amd64/src/interrupt.c
/SPARTAN/trunk/arch/amd64/src/smp/ap.S
/SPARTAN/trunk/arch/ia32/Makefile.inc
/SPARTAN/trunk/arch/ia32/include/atomic.h
/SPARTAN/trunk/arch/ia32/src/atomic.S
/SPARTAN/trunk/arch/ia32/src/ia32.c
/SPARTAN/trunk/arch/ia32/src/interrupt.c
/SPARTAN/trunk/arch/ia32/src/smp/ap.S
/SPARTAN/trunk/arch/ia32/src/smp/apic.c
/SPARTAN/trunk/arch/ia32/src/smp/ipi.c
/SPARTAN/trunk/arch/ia32/src/smp/mps.c
/SPARTAN/trunk/arch/ia32/src/smp/smp.c
/SPARTAN/trunk/arch/mips32/Makefile.inc
/SPARTAN/trunk/arch/mips32/src/exception.c
/SPARTAN/trunk/genarch/src/acpi/matd.c
/SPARTAN/trunk/generic/include/cpu.h
/SPARTAN/trunk/generic/include/mm/tlb.h
/SPARTAN/trunk/generic/include/smp/ipi.h
/SPARTAN/trunk/generic/include/smp/smp.h
/SPARTAN/trunk/generic/include/synch/spinlock.h
/SPARTAN/trunk/generic/src/cpu/cpu.c
/SPARTAN/trunk/generic/src/main/kinit.c
/SPARTAN/trunk/generic/src/main/main.c
/SPARTAN/trunk/generic/src/mm/tlb.c
/SPARTAN/trunk/generic/src/proc/scheduler.c
/SPARTAN/trunk/generic/src/smp/ipi.c
/SPARTAN/trunk/generic/src/synch/spinlock.c
440 6820 d 3 h jermar /SPARTAN/trunk/generic/include/mm/ Add some comments for buddy system operations.  
/SPARTAN/trunk/generic/include/mm/buddy.h
430 6824 d 22 h jermar /SPARTAN/trunk/ Move src/ and include/ to generic.  
/SPARTAN/trunk/generic
/SPARTAN/trunk/generic/include
/SPARTAN/trunk/generic/src
/SPARTAN/trunk/include
/SPARTAN/trunk/src
/SPARTAN/trunk/Makefile
/SPARTAN/trunk/arch/amd64/Makefile.inc
/SPARTAN/trunk/arch/ia32/Makefile.inc
/SPARTAN/trunk/arch/ia64/Makefile.inc
/SPARTAN/trunk/arch/mips32/Makefile.inc
/SPARTAN/trunk/arch/mips32/boot/Makefile
/SPARTAN/trunk/arch/ppc32/Makefile.inc
/SPARTAN/trunk/arch/sparc64/Makefile.inc
/SPARTAN/trunk/genarch/Makefile.inc
/SPARTAN/trunk/generic/src/main/kinit.c
396 6851 d 8 h jermar /SPARTAN/trunk/ Add mm/mapping1 test.
(Will not make it past TLB Invalid exception on mips32.)
Fixes in asid.c.
Make TLB register types union with __u32 value.
Implement tlb_invalidate() for mips32.
(TLB invalidation and shootdown path will have to be revised.)
 
/SPARTAN/trunk/test/mm
/SPARTAN/trunk/test/mm/mapping1
/SPARTAN/trunk/test/mm/mapping1/test.c
/SPARTAN/trunk/Makefile.config
/SPARTAN/trunk/arch/ia32/src/mm/tlb.c
/SPARTAN/trunk/arch/mips32/include/mm/asid.h
/SPARTAN/trunk/arch/mips32/include/mm/tlb.h
/SPARTAN/trunk/arch/mips32/src/mm/asid.c
/SPARTAN/trunk/arch/mips32/src/mm/tlb.c
/SPARTAN/trunk/arch/mips32/src/mm/vm.c
/SPARTAN/trunk/include/mm/tlb.h
391 6852 d 22 h jermar /SPARTAN/trunk/ mips32 memory management work.
TLB Refill Exception implemented (passed basic testing).
Remove bit g from struct entry_hi.
Add generic find_mapping().
Add asid to vm_t type, define asid_t to hide architecture specific differences.
Implement ASID allocation for mips32, dummy for other architectures.
Add THE->vm (a.k.a. VM).
Add vm_install_arch().
Move pte_t definition to arch/types.h on each architecture.
Fix PTL manipulating functions on mips32 to shift pfn by 12 instead of by 14.
Fix tlb_init_arch() to initialize all entries.

Other.
Remove unnecessary header files from arch.h
Add missing headers here and there.
Remove two unnecessary ld flags from mips32 makefile.
 
/SPARTAN/trunk/arch/amd64/include/mm/asid.h
/SPARTAN/trunk/arch/ia32/include/mm/asid.h
/SPARTAN/trunk/arch/ia64/include/mm/asid.h
/SPARTAN/trunk/arch/mips32/src/mm/vm.c
/SPARTAN/trunk/arch/ppc32/include/mm/asid.h
/SPARTAN/trunk/arch/amd64/include/mm/page.h
/SPARTAN/trunk/arch/amd64/include/mm/vm.h
/SPARTAN/trunk/arch/amd64/include/types.h
/SPARTAN/trunk/arch/amd64/src/cpu/cpu.c
/SPARTAN/trunk/arch/amd64/src/interrupt.c
/SPARTAN/trunk/arch/ia32/include/mm/page.h
/SPARTAN/trunk/arch/ia32/include/mm/vm.h
/SPARTAN/trunk/arch/ia32/include/types.h
/SPARTAN/trunk/arch/ia32/src/cpu/cpu.c
/SPARTAN/trunk/arch/ia32/src/interrupt.c
/SPARTAN/trunk/arch/ia64/include/mm/page.h
/SPARTAN/trunk/arch/ia64/include/mm/vm.h
/SPARTAN/trunk/arch/ia64/include/types.h
/SPARTAN/trunk/arch/mips32/Makefile.inc
/SPARTAN/trunk/arch/mips32/include/cp0.h
/SPARTAN/trunk/arch/mips32/include/mm/asid.h
/SPARTAN/trunk/arch/mips32/include/mm/page.h
/SPARTAN/trunk/arch/mips32/include/mm/tlb.h
/SPARTAN/trunk/arch/mips32/include/mm/vm.h
/SPARTAN/trunk/arch/mips32/include/types.h
/SPARTAN/trunk/arch/mips32/src/exception.c
/SPARTAN/trunk/arch/mips32/src/mips32.c
/SPARTAN/trunk/arch/mips32/src/mm/asid.c
/SPARTAN/trunk/arch/mips32/src/mm/tlb.c
/SPARTAN/trunk/arch/ppc32/include/mm/page.h
/SPARTAN/trunk/arch/ppc32/include/mm/vm.h
/SPARTAN/trunk/arch/ppc32/include/types.h
/SPARTAN/trunk/include/arch.h
/SPARTAN/trunk/include/mm/page.h
/SPARTAN/trunk/include/mm/vm.h
/SPARTAN/trunk/src/main/kinit.c
/SPARTAN/trunk/src/mm/page.c
/SPARTAN/trunk/src/mm/vm.c
/SPARTAN/trunk/src/proc/the.c
/SPARTAN/trunk/src/time/clock.c
389 6853 d 9 h jermar /SPARTAN/trunk/ MIPS work.
Fix some name inconsistencies between cp0 functions' declarations and definitions.
Add and implement tlb_init_arch().
Add tlb_modified() exception handler.

Other architectures: add dummy tlb_init_arch().
 
/SPARTAN/trunk/arch/amd64/include/mm/tlb.h
/SPARTAN/trunk/arch/ia32/include/mm/tlb.h
/SPARTAN/trunk/arch/ia64/include/mm/tlb.h
/SPARTAN/trunk/arch/ppc32/include/mm/tlb.h
/SPARTAN/trunk/arch/mips32/include/cp0.h
/SPARTAN/trunk/arch/mips32/include/mm/tlb.h
/SPARTAN/trunk/arch/mips32/src/asm.S
/SPARTAN/trunk/arch/mips32/src/exception.c
/SPARTAN/trunk/arch/mips32/src/mm/tlb.c
/SPARTAN/trunk/include/mm/tlb.h
/SPARTAN/trunk/src/main/main.c
/SPARTAN/trunk/src/mm/tlb.c
381 6857 d 22 h jermar /SPARTAN/trunk/ Make cross-compiler the default compiler on IA-32.
For native compilations, use ./build.ia32 native.

Small changes elsewhere.
 
/SPARTAN/trunk/Makefile.config
/SPARTAN/trunk/arch/ia32/Makefile.inc
/SPARTAN/trunk/arch/ia32/_link.ld.in
/SPARTAN/trunk/arch/ia32/src/asm.S
/SPARTAN/trunk/build.ia32
/SPARTAN/trunk/include/fpu_context.h
/SPARTAN/trunk/include/mm/buddy.h
/SPARTAN/trunk/include/mm/heap.h
/SPARTAN/trunk/include/typedefs.h
/SPARTAN/trunk/src/mm/buddy.c
378 6859 d 7 h jermar /SPARTAN/trunk/ Redeclare eraly_malloc() with __attribute__ ((malloc)) to improve optimizations.

Reorganize #include's in scheduler.c.

Buddy system improvements.
Make buddy_system_free() explicitly invalidate order of blocks before they are coalesced.
Add some assertions.
 
/SPARTAN/trunk/include/mm/buddy.h
/SPARTAN/trunk/include/mm/heap.h
/SPARTAN/trunk/src/mm/buddy.c
/SPARTAN/trunk/src/proc/scheduler.c
377 6862 d 0 h jermar /SPARTAN/trunk/ Generic buddy allocator.
Please review the code before it is deployed.
 
/SPARTAN/trunk/include/mm/buddy.h
/SPARTAN/trunk/src/mm/buddy.c
/SPARTAN/trunk/Makefile
/SPARTAN/trunk/include/typedefs.h
374 6863 d 22 h jermar /SPARTAN/trunk/ Revert previous change in frame_t as it broke IA-64.
(Most likely some alignment problem.)

Rename heap_init(), malloc() and free(), respectively, to early_heap_init(), early_malloc() and early_free(), respectively.
Define new macros malloc() and free(). They are to be replaced by real functions some day.
 
/SPARTAN/trunk/include/mm/frame.h
/SPARTAN/trunk/include/mm/heap.h
/SPARTAN/trunk/src/main/main.c
/SPARTAN/trunk/src/mm/frame.c
/SPARTAN/trunk/src/mm/heap.c
373 6864 d 0 h jermar /SPARTAN/trunk/ Physical memory management work.
Add "__attribute__ ((packed))" to frame_t so that it takes up less space.
Note that this is essential as there is lot of these structures.
Remove busy list from zone_t as it is redundant.
 
/SPARTAN/trunk/include/mm/frame.h
/SPARTAN/trunk/src/main/main.c
/SPARTAN/trunk/src/mm/frame.c
368 6866 d 7 h jermar /SPARTAN/trunk/ Physical memory management work.
New frame allocator.
Some architectures need to have bigger heap.
 
/SPARTAN/trunk/arch/ia64/src/mm
/SPARTAN/trunk/arch/ia64/src/mm/frame.c
/SPARTAN/trunk/arch/amd64/src/mm/page.c
/SPARTAN/trunk/arch/ia32/src/mm/frame.c
/SPARTAN/trunk/arch/ia32/src/mm/page.c
/SPARTAN/trunk/arch/ia32/src/smp/mps.c
/SPARTAN/trunk/arch/ia64/Makefile.inc
/SPARTAN/trunk/arch/ia64/src/dummy.s
/SPARTAN/trunk/arch/mips32/src/mm/frame.c
/SPARTAN/trunk/arch/ppc32/src/mm/frame.c
/SPARTAN/trunk/include/mm/frame.h
/SPARTAN/trunk/src/mm/frame.c
367 6866 d 22 h jermar /SPARTAN/trunk/ Physical memory management work.
Implement zone_*() and some frame_*() functions.
 
/SPARTAN/trunk/include/mm/frame.h
/SPARTAN/trunk/src/mm/frame.c
366 6866 d 23 h jermar /SPARTAN/trunk/include/ Add zone pointer to frame_t.
This will be essential for fast frame_free().

Rename frame_zone_t to zone_t.

Declare frame and zone functions to be implemented.
 
/SPARTAN/trunk/include/mm/frame.h
/SPARTAN/trunk/include/typedefs.h
355 6869 d 5 h jermar /SPARTAN/trunk/include/mm/ Add 'base' attribute to frame_zone_t structure.  
/SPARTAN/trunk/include/mm/frame.h
354 6869 d 6 h jermar /SPARTAN/trunk/ Physical memory management work.
Define structures for frame zones and frames.

Add some comments.
 
/SPARTAN/trunk/arch/ia32/include/context.h
/SPARTAN/trunk/arch/ia64/include/context.h
/SPARTAN/trunk/include/mm/frame.h
/SPARTAN/trunk/include/typedefs.h
265 6884 d 7 h palkovsky /SPARTAN/trunk/ Added basic FPU context (not working).
Added CPU utilities from ia32
 
/SPARTAN/trunk/arch/amd64/Makefile.inc
/SPARTAN/trunk/arch/amd64/src/amd64.c
/SPARTAN/trunk/include/mm/heap.h
/SPARTAN/trunk/src/build.amd64
167 6899 d 7 h jermar /SPARTAN/trunk/ Switch over to per vm_t page tables. (breaks ia32 userspace)

Define dummy memcopy() for amd64 and ppc to satisfy compiler.

Get rid of problematic #include <arch/mm/page.h> in mm/page.h.

Indentation fixes and small changes here and there.
 
/SPARTAN/trunk/arch/amd64/src/dummy.s
/SPARTAN/trunk/arch/ia32/src/drivers/ega.c
/SPARTAN/trunk/arch/ia32/src/mm/page.c
/SPARTAN/trunk/arch/ia32/src/pm.c
/SPARTAN/trunk/arch/ia32/src/proc/scheduler.c
/SPARTAN/trunk/arch/ppc/src/dummy.s
/SPARTAN/trunk/include/mm/page.h
/SPARTAN/trunk/include/mm/vm.h
/SPARTAN/trunk/src/main/kinit.c
/SPARTAN/trunk/src/main/main.c
/SPARTAN/trunk/src/mm/vm.c
/SPARTAN/trunk/src/proc/scheduler.c
125 6933 d 23 h jermar /SPARTAN/trunk/ Huge indentation fix.  
/SPARTAN/trunk/arch/ia32/boot/boot.S
/SPARTAN/trunk/arch/ia32/boot/boot.ld
/SPARTAN/trunk/arch/ia32/include/cpu.h
/SPARTAN/trunk/arch/ia32/src/acpi/acpi.c
/SPARTAN/trunk/arch/ia32/src/asm.s
/SPARTAN/trunk/arch/ia32/src/boot/boot.S
/SPARTAN/trunk/arch/ia32/src/context.s
/SPARTAN/trunk/arch/ia32/src/cpu/cpu.c
/SPARTAN/trunk/arch/ia32/src/cpuid.s
/SPARTAN/trunk/arch/ia32/src/drivers/ega.c
/SPARTAN/trunk/arch/ia32/src/drivers/i8254.c
/SPARTAN/trunk/arch/ia32/src/drivers/i8259.c
/SPARTAN/trunk/arch/ia32/src/fpu_context.c
/SPARTAN/trunk/arch/ia32/src/ia32.c
/SPARTAN/trunk/arch/ia32/src/interrupt.c
/SPARTAN/trunk/arch/ia32/src/mm/frame.c
/SPARTAN/trunk/arch/ia32/src/mm/page.c
/SPARTAN/trunk/arch/ia32/src/pm.c
/SPARTAN/trunk/arch/ia32/src/proc/scheduler.c
/SPARTAN/trunk/arch/ia32/src/smp/apic.c
/SPARTAN/trunk/arch/ia32/src/smp/mps.c
/SPARTAN/trunk/arch/ia32/src/userspace.c
/SPARTAN/trunk/arch/ia64/_link.ld
/SPARTAN/trunk/arch/ia64/boot/_link.ld
/SPARTAN/trunk/arch/ia64/include/mm/page.h
/SPARTAN/trunk/arch/mips/_link.ld
/SPARTAN/trunk/arch/mips/boot/boot.s
/SPARTAN/trunk/arch/mips/include/context.h
/SPARTAN/trunk/arch/mips/include/cpu.h
/SPARTAN/trunk/arch/mips/include/mm/page.h
/SPARTAN/trunk/arch/mips/src/cpu/cpu.c
/SPARTAN/trunk/arch/mips/src/interrupt.c
/SPARTAN/trunk/arch/mips/src/mips.c
/SPARTAN/trunk/arch/mips/src/start.S
/SPARTAN/trunk/arch/powerpc/_link.ld
/SPARTAN/trunk/include/mm/page.h
/SPARTAN/trunk/include/proc/thread.h
/SPARTAN/trunk/include/stackarg.h
/SPARTAN/trunk/include/synch/semaphore.h
/SPARTAN/trunk/include/synch/waitq.h
/SPARTAN/trunk/include/time/timeout.h
/SPARTAN/trunk/src/cpu/cpu.c
/SPARTAN/trunk/src/main/kinit.c
/SPARTAN/trunk/src/mm/frame.c
/SPARTAN/trunk/src/mm/page.c
/SPARTAN/trunk/src/proc/scheduler.c
/SPARTAN/trunk/src/proc/thread.c
/SPARTAN/trunk/src/time/clock.c
/SPARTAN/trunk/src/time/timeout.c
/SPARTAN/trunk/test/fpu/fpu1/test.c
122 6934 d 22 h jermar /SPARTAN/trunk/include/mm/ Remove one extra line left over from debugging process.  
/SPARTAN/trunk/include/mm/vm.h
121 6934 d 22 h jermar /SPARTAN/trunk/ Begin MIPS implementation of 4-level page table interface.

Add email address to each item in doc/AUTHORS.

Correct type names in comments in mm/vm.c.
Introduce ptl0 pointer in vm_t.
 
/SPARTAN/trunk/arch/ia64/include/mm/page.h
/SPARTAN/trunk/arch/mips/include/mm/frame.h
/SPARTAN/trunk/arch/mips/include/mm/page.h
/SPARTAN/trunk/arch/mips/include/mm/tlb.h
/SPARTAN/trunk/arch/mips/src/mm/page.c
/SPARTAN/trunk/doc/AUTHORS
/SPARTAN/trunk/include/mm/page.h
/SPARTAN/trunk/include/mm/vm.h
/SPARTAN/trunk/src/mm/vm.c
120 6948 d 21 h jermar /SPARTAN/trunk/ Generic 4-level page tables interface & implementation (review & test).
Implement more architecture dependant macros on IA-32.
Provide fake implementation on IA-64 and MIPS.
Convert map_page_to_frame() to use the new interface.
Move adjusted map_page_to_frame() from IA-32's arch/mm/page.c to the generic mm/page.c.
 
/SPARTAN/trunk/arch/ia32/include/mm/page.h
/SPARTAN/trunk/arch/ia32/src/mm/page.c
/SPARTAN/trunk/arch/ia64/include/mm/page.h
/SPARTAN/trunk/arch/ia64/src/fake.s
/SPARTAN/trunk/arch/mips/include/mm/page.h
/SPARTAN/trunk/arch/mips/src/mm/page.c
/SPARTAN/trunk/include/mm/page.h
/SPARTAN/trunk/include/typedefs.h
/SPARTAN/trunk/src/mm/page.c
119 6950 d 0 h jermar /SPARTAN/trunk/ Start with generic 4-level page table interface.

Usual cleanup.
 
/SPARTAN/trunk/doc/mm
/SPARTAN/trunk/arch/ia32/include/mm/page.h
/SPARTAN/trunk/include/mm/page.h
/SPARTAN/trunk/src/Makefile.config
/SPARTAN/trunk/test/fpu/fpu1/test.c
/SPARTAN/trunk/test/synch/rwlock5/test.c
/SPARTAN/trunk/test/synch/semaphore1/test.c
116 6969 d 4 h jermar /SPARTAN/trunk/ Add map_structure() to automate mapping of memory structures that can span multiple pages and/or cross page boundaries.
Change ACPI map_sdt() to use map_structure().

Small changes in MPS code.
The extra frame allocation for accessing frame 0 is unnecessary as it is possible to access frame 0 from kernel address space.
Zero TSS descriptor in the newly prepared GDT.
 
/SPARTAN/trunk/arch/ia32/include/atomic.h
/SPARTAN/trunk/arch/ia32/src/acpi/acpi.c
/SPARTAN/trunk/arch/ia32/src/mm/page.c
/SPARTAN/trunk/arch/ia32/src/smp/mps.c
/SPARTAN/trunk/include/mm/page.h
/SPARTAN/trunk/src/mm/page.c
109 6976 d 1 h jermar /SPARTAN/trunk/ Discard 'copy' parameter of map_page_to_frame().
Introduce 'root' parameter of map_page_to_frame().
If 'root' is zero, page directory address is read from CPU.
Otherwise 'root' is used as page directory address.

Add missing word to new doxygen-style comments in scheduler.c.
 
/SPARTAN/trunk/arch/ia32/src/mm/page.c
/SPARTAN/trunk/arch/mips/src/mm/page.c
/SPARTAN/trunk/include/mm/page.h
/SPARTAN/trunk/src/proc/scheduler.c
102 6982 d 0 h jermar /SPARTAN/trunk/ IA-64 work.
Redefine FRAME_SIZE to "(16*1024)" instead of "2*4096". Note that the latter definition was wrong because of the lack of "()".
Take panic_printf(), cpu_halt() and memsetb() out of fake.s and implement them properly in asm.S.
Move ski_init_console() from arch_post_mm_init() to arch_pre_mm_init().
In start.S, write r0 to ar.bspstore.

Janitorial fixes.
Add count_t type.
Replace several occurrences of int and __u32 by count_t or size_t.
Shorten several panic strings.
 
/SPARTAN/trunk/arch/ia64/include/mm/frame.h
/SPARTAN/trunk/arch/ia64/src/asm.S
/SPARTAN/trunk/arch/ia64/src/fake.s
/SPARTAN/trunk/arch/ia64/src/ia64.c
/SPARTAN/trunk/arch/ia64/src/start.S
/SPARTAN/trunk/include/config.h
/SPARTAN/trunk/include/mm/frame.h
/SPARTAN/trunk/include/mm/heap.h
/SPARTAN/trunk/include/typedefs.h
/SPARTAN/trunk/src/mm/frame.c
/SPARTAN/trunk/src/mm/heap.c
72 6999 d 0 h decky /SPARTAN/trunk/ size_t usage
const qualifier
code cleanup
 
/SPARTAN/trunk/arch/ia32/src/ia32.c
/SPARTAN/trunk/arch/ia32/src/smp/mps.c
/SPARTAN/trunk/include/func.h
/SPARTAN/trunk/include/memstr.h
/SPARTAN/trunk/include/mm/heap.h
/SPARTAN/trunk/include/mm/vm.h
/SPARTAN/trunk/src/lib/func.c
/SPARTAN/trunk/src/lib/memstr.c
/SPARTAN/trunk/src/mm/heap.c
/SPARTAN/trunk/src/mm/vm.c
6 7077 d 12 h jermar /SPARTAN/trunk/ shootdown vs. shutdown  
/SPARTAN/trunk/arch/ia32/include/interrupt.h
/SPARTAN/trunk/arch/ia32/src/ia32.c
/SPARTAN/trunk/arch/ia32/src/interrupt.c
/SPARTAN/trunk/arch/ia32/src/mm/tlb.c
/SPARTAN/trunk/include/mm/tlb.h
/SPARTAN/trunk/src/mm/tlb.c
/SPARTAN/trunk/src/mm/vm.c
5 7077 d 23 h jermar /SPARTAN/trunk/ TLB shootdown.  
/SPARTAN/trunk/arch/ia32/include/apic.h
/SPARTAN/trunk/arch/ia32/include/interrupt.h
/SPARTAN/trunk/arch/ia32/src/ia32.c
/SPARTAN/trunk/arch/ia32/src/interrupt.c
/SPARTAN/trunk/arch/ia32/src/mm/page.c
/SPARTAN/trunk/arch/ia32/src/mm/tlb.c
/SPARTAN/trunk/arch/ia32/src/smp/apic.c
/SPARTAN/trunk/include/mm/tlb.h
/SPARTAN/trunk/src/main/main.c
/SPARTAN/trunk/src/mm/tlb.c
/SPARTAN/trunk/src/mm/vm.c
1 7081 d 3 h jermar /SPARTAN/ Initial import  
/SPARTAN
/SPARTAN/branches
/SPARTAN/tags
/SPARTAN/trunk
/SPARTAN/trunk/arch
/SPARTAN/trunk/arch/ia32
/SPARTAN/trunk/arch/ia32/Makefile.inc
/SPARTAN/trunk/arch/ia32/_link.ld
/SPARTAN/trunk/arch/ia32/boot
/SPARTAN/trunk/arch/ia32/boot/Makefile
/SPARTAN/trunk/arch/ia32/boot/boot.S
/SPARTAN/trunk/arch/ia32/boot/boot.ld
/SPARTAN/trunk/arch/ia32/include
/SPARTAN/trunk/arch/ia32/include/ap.h
/SPARTAN/trunk/arch/ia32/include/apic.h
/SPARTAN/trunk/arch/ia32/include/asm.h
/SPARTAN/trunk/arch/ia32/include/atomic.h
/SPARTAN/trunk/arch/ia32/include/context.h
/SPARTAN/trunk/arch/ia32/include/cpu.h
/SPARTAN/trunk/arch/ia32/include/cpuid.h
/SPARTAN/trunk/arch/ia32/include/ega.h
/SPARTAN/trunk/arch/ia32/include/i8042.h
/SPARTAN/trunk/arch/ia32/include/i8254.h
/SPARTAN/trunk/arch/ia32/include/i8259.h
/SPARTAN/trunk/arch/ia32/include/interrupt.h
/SPARTAN/trunk/arch/ia32/include/mm
/SPARTAN/trunk/arch/ia32/include/mm/frame.h
/SPARTAN/trunk/arch/ia32/include/mm/page.h
/SPARTAN/trunk/arch/ia32/include/mm/vm.h
/SPARTAN/trunk/arch/ia32/include/mp.h
/SPARTAN/trunk/arch/ia32/include/pm.h
/SPARTAN/trunk/arch/ia32/include/thread.h
/SPARTAN/trunk/arch/ia32/include/types.h
/SPARTAN/trunk/arch/ia32/src
/SPARTAN/trunk/arch/ia32/src/asm.s
/SPARTAN/trunk/arch/ia32/src/boot
/SPARTAN/trunk/arch/ia32/src/boot/boot.S
/SPARTAN/trunk/arch/ia32/src/context.s
/SPARTAN/trunk/arch/ia32/src/cpu
/SPARTAN/trunk/arch/ia32/src/cpu/cpu.c
/SPARTAN/trunk/arch/ia32/src/cpuid.s
/SPARTAN/trunk/arch/ia32/src/debug
/SPARTAN/trunk/arch/ia32/src/debug/panic.s
/SPARTAN/trunk/arch/ia32/src/delay.s
/SPARTAN/trunk/arch/ia32/src/drivers
/SPARTAN/trunk/arch/ia32/src/drivers/ega.c
/SPARTAN/trunk/arch/ia32/src/drivers/i8042.c
/SPARTAN/trunk/arch/ia32/src/drivers/i8254.c
/SPARTAN/trunk/arch/ia32/src/drivers/i8259.c
/SPARTAN/trunk/arch/ia32/src/ia32.c
/SPARTAN/trunk/arch/ia32/src/interrupt.c
/SPARTAN/trunk/arch/ia32/src/mm
/SPARTAN/trunk/arch/ia32/src/mm/frame.c
/SPARTAN/trunk/arch/ia32/src/mm/page.c
/SPARTAN/trunk/arch/ia32/src/mm/tlb.c
/SPARTAN/trunk/arch/ia32/src/pm.c
/SPARTAN/trunk/arch/ia32/src/smp
/SPARTAN/trunk/arch/ia32/src/smp/ap.S
/SPARTAN/trunk/arch/ia32/src/smp/apic.c
/SPARTAN/trunk/arch/ia32/src/smp/atomic.S
/SPARTAN/trunk/arch/ia32/src/smp/mp.c
/SPARTAN/trunk/arch/ia32/src/userspace.c
/SPARTAN/trunk/arch/mips
/SPARTAN/trunk/arch/mips/Makefile.inc
/SPARTAN/trunk/arch/mips/_link.ld
/SPARTAN/trunk/arch/mips/boot
/SPARTAN/trunk/arch/mips/boot/Makefile
/SPARTAN/trunk/arch/mips/boot/boot.s
/SPARTAN/trunk/arch/mips/include
/SPARTAN/trunk/arch/mips/include/asm
/SPARTAN/trunk/arch/mips/include/asm.h
/SPARTAN/trunk/arch/mips/include/asm/macro.h
/SPARTAN/trunk/arch/mips/include/atomic.h
/SPARTAN/trunk/arch/mips/include/cache.h
/SPARTAN/trunk/arch/mips/include/context.h
/SPARTAN/trunk/arch/mips/include/cp0.h
/SPARTAN/trunk/arch/mips/include/cpu.h
/SPARTAN/trunk/arch/mips/include/exception.h
/SPARTAN/trunk/arch/mips/include/interrupt.h
/SPARTAN/trunk/arch/mips/include/mm
/SPARTAN/trunk/arch/mips/include/mm/frame.h
/SPARTAN/trunk/arch/mips/include/mm/page.h
/SPARTAN/trunk/arch/mips/include/mm/tlb.h
/SPARTAN/trunk/arch/mips/include/mm/vm.h
/SPARTAN/trunk/arch/mips/include/thread.h
/SPARTAN/trunk/arch/mips/include/types.h
/SPARTAN/trunk/arch/mips/src
/SPARTAN/trunk/arch/mips/src/asm.s
/SPARTAN/trunk/arch/mips/src/cache.c
/SPARTAN/trunk/arch/mips/src/context.S
/SPARTAN/trunk/arch/mips/src/cpu
/SPARTAN/trunk/arch/mips/src/cpu/cpu.c
/SPARTAN/trunk/arch/mips/src/exception.c
/SPARTAN/trunk/arch/mips/src/fake.s
/SPARTAN/trunk/arch/mips/src/interrupt.c
/SPARTAN/trunk/arch/mips/src/lib
/SPARTAN/trunk/arch/mips/src/lib/memstr.c
/SPARTAN/trunk/arch/mips/src/mips.c
/SPARTAN/trunk/arch/mips/src/mm
/SPARTAN/trunk/arch/mips/src/mm/frame.c
/SPARTAN/trunk/arch/mips/src/mm/page.c
/SPARTAN/trunk/arch/mips/src/mm/tlb.c
/SPARTAN/trunk/arch/mips/src/panic.s
/SPARTAN/trunk/arch/mips/src/putchar.c
/SPARTAN/trunk/arch/mips/src/start.S
/SPARTAN/trunk/arch/powerpc
/SPARTAN/trunk/arch/powerpc/Makefile.inc
/SPARTAN/trunk/arch/powerpc/_link.ld
/SPARTAN/trunk/arch/powerpc/boot
/SPARTAN/trunk/arch/powerpc/boot/Makefile
/SPARTAN/trunk/arch/powerpc/boot/boot.s
/SPARTAN/trunk/arch/powerpc/src
/SPARTAN/trunk/arch/powerpc/src/powerpc.c
/SPARTAN/trunk/doc
/SPARTAN/trunk/doc/TODO
/SPARTAN/trunk/doc/mips
/SPARTAN/trunk/doc/preemption
/SPARTAN/trunk/doc/requirements
/SPARTAN/trunk/doc/synchronization
/SPARTAN/trunk/include
/SPARTAN/trunk/include/arch.h
/SPARTAN/trunk/include/config.h
/SPARTAN/trunk/include/context.h
/SPARTAN/trunk/include/cpu.h
/SPARTAN/trunk/include/func.h
/SPARTAN/trunk/include/list.h
/SPARTAN/trunk/include/main
/SPARTAN/trunk/include/main/kinit.h
/SPARTAN/trunk/include/main/uinit.h
/SPARTAN/trunk/include/memstr.h
/SPARTAN/trunk/include/mm
/SPARTAN/trunk/include/mm/frame.h
/SPARTAN/trunk/include/mm/heap.h
/SPARTAN/trunk/include/mm/page.h
/SPARTAN/trunk/include/mm/tlb.h
/SPARTAN/trunk/include/mm/vm.h
/SPARTAN/trunk/include/panic.h
/SPARTAN/trunk/include/print.h
/SPARTAN/trunk/include/proc
/SPARTAN/trunk/include/proc/scheduler.h
/SPARTAN/trunk/include/proc/task.h
/SPARTAN/trunk/include/proc/thread.h
/SPARTAN/trunk/include/putchar.h
/SPARTAN/trunk/include/synch
/SPARTAN/trunk/include/synch/condvar.h
/SPARTAN/trunk/include/synch/mutex.h
/SPARTAN/trunk/include/synch/rwlock.h
/SPARTAN/trunk/include/synch/semaphore.h
/SPARTAN/trunk/include/synch/spinlock.h
/SPARTAN/trunk/include/synch/synch.h
/SPARTAN/trunk/include/synch/waitq.h
/SPARTAN/trunk/include/test.h
/SPARTAN/trunk/include/time
/SPARTAN/trunk/include/time/clock.h
/SPARTAN/trunk/include/time/delay.h
/SPARTAN/trunk/include/time/timeout.h
/SPARTAN/trunk/include/typedefs.h
/SPARTAN/trunk/include/userspace.h
/SPARTAN/trunk/src
/SPARTAN/trunk/src/Makefile
/SPARTAN/trunk/src/Makefile.config
/SPARTAN/trunk/src/cpu
/SPARTAN/trunk/src/cpu/cpu.c
/SPARTAN/trunk/src/debug
/SPARTAN/trunk/src/debug/print.c
/SPARTAN/trunk/src/lib
/SPARTAN/trunk/src/lib/func.c
/SPARTAN/trunk/src/lib/list.c
/SPARTAN/trunk/src/main
/SPARTAN/trunk/src/main/kinit.c
/SPARTAN/trunk/src/main/main.c
/SPARTAN/trunk/src/main/uinit.c
/SPARTAN/trunk/src/mm
/SPARTAN/trunk/src/mm/frame.c
/SPARTAN/trunk/src/mm/heap.c
/SPARTAN/trunk/src/mm/page.c
/SPARTAN/trunk/src/mm/tlb.c
/SPARTAN/trunk/src/mm/vm.c
/SPARTAN/trunk/src/proc
/SPARTAN/trunk/src/proc/scheduler.c
/SPARTAN/trunk/src/proc/task.c
/SPARTAN/trunk/src/proc/thread.c
/SPARTAN/trunk/src/synch
/SPARTAN/trunk/src/synch/condvar.c
/SPARTAN/trunk/src/synch/mutex.c
/SPARTAN/trunk/src/synch/rwlock.c
/SPARTAN/trunk/src/synch/semaphore.c
/SPARTAN/trunk/src/synch/spinlock.c
/SPARTAN/trunk/src/synch/waitq.c
/SPARTAN/trunk/src/time
/SPARTAN/trunk/src/time/clock.c
/SPARTAN/trunk/src/time/delay.c
/SPARTAN/trunk/src/time/timeout.c
/SPARTAN/trunk/test
/SPARTAN/trunk/test/synch
/SPARTAN/trunk/test/synch/rwlock1
/SPARTAN/trunk/test/synch/rwlock1/test.c
/SPARTAN/trunk/test/synch/rwlock2
/SPARTAN/trunk/test/synch/rwlock2/test.c
/SPARTAN/trunk/test/synch/rwlock3
/SPARTAN/trunk/test/synch/rwlock3/test.c
/SPARTAN/trunk/test/synch/rwlock4
/SPARTAN/trunk/test/synch/rwlock4/test.c
/SPARTAN/trunk/test/synch/rwlock5
/SPARTAN/trunk/test/synch/rwlock5/test.c
/SPARTAN/trunk/test/synch/semaphore1
/SPARTAN/trunk/test/synch/semaphore1/test.c
/SPARTAN/trunk/test/synch/semaphore2
/SPARTAN/trunk/test/synch/semaphore2/test.c