Subversion Repositories HelenOS

Rev

Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
4490 5633 d 7 h decky /trunk/kernel/ remove redundant index_t and count_t types (which were always quite ambiguous and not actually needed)  
3922 5739 d 4 h decky /trunk/ make arch_pre_main optional, don't force any specific prototype
simplify boot process
mips32: detect number of configured CPUs in msim
 
3875 5744 d 7 h decky /trunk/kernel/generic/ remove platform dependent constructs from generic code  
2227 6419 d 21 h decky /trunk/kernel/ start shutdown infrastructure  
2096 6489 d 9 h decky /trunk/kernel/generic/include/ move thread_t to thread.h  
2089 6490 d 13 h decky /trunk/ huge type system cleanup
remove cyclical type dependencies across multiple header files
many minor coding style fixes
 
2081 6496 d 14 h decky /trunk/kernel/generic/include/ another typedefs to anonymous structs  
2071 6501 d 6 h jermar /trunk/ (c) versus (C)  
1901 6614 d 12 h jermar /trunk/kernel/ Make SMP related parts of main.c more generic.
Move initialization of local APIC to architecture specific code.
Add arch_post_cpu_init() to support the above.
 
1881 6628 d 14 h jermar /trunk/ sparc64 work:
- find a CPU node and read its clock_frequency attribute
- implement asm_delay_loop()
- set TICK_COMPARE register according to processor frequency
- small improvements at random places

OpenFirmware work:
- two new functions for walking the device tree

Generic boot loader work:
- added basic string functions

Usual pile of indentation and formatting fixes.
 
1839 6666 d 11 h decky /trunk/kernel/generic/ finish security context isolation  
1820 6674 d 3 h decky /trunk/kernel/generic/ initial security context support  
1819 6674 d 4 h decky /trunk/kernel/generic/include/ formatting changes  
1787 6691 d 8 h decky / move kernel/trunk, uspace/trunk and boot/trunk to trunk/kernel, trunk/uspace and trunk/boot  
1702 6719 d 12 h cejka /kernel/trunk/ Kernel doxygen comments updated.  
1223 6770 d 14 h jermar /kernel/trunk/ Make ia64 and sparc64 compile again.
Fix ia64 to set up inits in arch_pre_main().
 
1170 6782 d 10 h vana /kernel/trunk/ Stack size definition macro definition fix  
1139 6794 d 8 h jermar /kernel/trunk/generic/include/ Fix comments.  
703 6870 d 14 h jermar /kernel/trunk/ Memory management work.
- vm.* -> as.* (as like address space is, imho, more fitting)
- Don't do TLB shootdown on vm_install(). Some architectures only need to call tlb_invalidate_asid().
- Don't allocate all frames for as_area in as_area_create(), but let them be allocated on-demand by as_page_fault().
- Add high-level page fault handler as_page_fault().
- Add as_area_load_mapping().
 
651 6895 d 2 h decky /kernel/trunk/ remove arch/$ARCH/boot where not needed, change global Makefile accordingly
remove early_mapping() (breaks ppc32 for now)
change early heap initialization (required for init to work)
 
534 6910 d 7 h jermar / Rename HelenOS/SPARTAN to HelenOS/kernel again.  
532 6910 d 7 h jermar / Revert renaming of HelenOS/SPARTAN to HelenOS/kernel because of important pending patch.  
503 6922 d 10 h jermar /kernel/trunk/ Rename arch_late_init() to arch_pre_smp_init().
Add arch_post_smp_init().
Enable IRQ_KBD on ia-32 (doesn't work on Bochs SMP, works on Bochs UP).
 
501 6922 d 12 h jermar / Rename HelenOS/SPARTAN to HelenOS/kernel.  
483 6930 d 7 h jermar /SPARTAN/trunk/ For now, each architecture must use its own -O switch (-O2 doesn't work for ia64, -O3 doesn't work for mips32).

New mips32 atomic_add() function.

Cleanup.
 
430 6943 d 5 h jermar /SPARTAN/trunk/ Move src/ and include/ to generic.  
413 6958 d 3 h jermar /SPARTAN/trunk/ Rename cpu_priority_{high|low|restore|read} functions to interrupts_{disable|enable|restore|read}.
Rename pri_t to ipl_t (Interrupt Priority Level).
Rename thread_t::pri to thread_t::priority.
 
391 6971 d 5 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.
 
221 7004 d 18 h jermar /SPARTAN/trunk/ Preemption work.
Define PREEMPTION_DISABLED macro.
This macro determines the level of preemptivity (0 = preemption enabled, THE->preemption_disabled = no preemption inside spinlock, 1 = preemption disabled).
Reformulate preemption code in clock.c to consider PREEMPTION_DISABLED.
 
210 7005 d 5 h decky /SPARTAN/trunk/ many PPC stuff, platform dependent arch.h header files  
192 7006 d 9 h jermar /SPARTAN/trunk/ Dump implementation of THREAD, TASK and CPU.
Implement preemption-safe versions of THREAD, TASK and CPU using THE.
Get rid of CPU_ID_ARCH on all architectures.
Get rid of write_dr0() and read_dr0() on IA-32.
Get rid of cpu_private_data and cpu_private_data_t.
 
184 7006 d 17 h jermar /SPARTAN/trunk/ Add lib/the.c.
Add and deploy the_initialize() and the_copy().

Make IA-32's before_thread_runs() use SP_DELTA macro.
 
177 7007 d 15 h jermar /SPARTAN/trunk/ Add some comments to IA-32 src/boot/boot.S and src/smp.S.

Make the boot stack start on page boundary.
This is required by get_stack_base().

Define 'THE' macro.

Implement preemption_disable() and preemption_enable().

Add memory barrier macros.
IA-32 macros need support for older processors.
Non IA-32 macros are dummy.

Reduction of many #include paths.
 
173 7011 d 6 h jermar /SPARTAN/trunk/ Preparations for weaker preemption model.
Make all kernel stacks (i.e. startup, scheduler and thread) be STACK_SIZE bytes long.
Reincarnate "the" structure. This time, it is planned to be located at the base of each and every kernel stack.
On IA-32 and MIPS, implement get_stack_base() functions. On the rest of supported platforms, define it to be dummy.
 
118 7081 d 8 h jermar /SPARTAN/trunk/ Replace confusing comment in scheduler.c.

Add warning/explanatory comment to arch.h saying that CPU, THREAD and TASK macros are preemption-unsafe.
 
32 7131 d 6 h jermar /SPARTAN/trunk/ ACPI detection code.
MP detection code rewrite.
Minor changes.
 
26 7136 d 13 h jermar /SPARTAN/trunk/ Code cleanup after arch_init() splitting.
Restore %ds and %es registers before iret.
 
23 7139 d 11 h jermar /SPARTAN/trunk/ Fix wrong order of *_init() function calls.  
20 7145 d 13 h jermar /SPARTAN/trunk/ Smarter definition of CPU macro.  
16 7148 d 10 h jermar /SPARTAN/trunk/ Switch from mm-based 'the' mechanism to macro-based 'cpu_private_data[CPU_ID_ARCH]' mechanism.
Added l_apic_id() and some other minor APIC changes.
Move gdtr to K_DATA_START section.
Move K_DATA_START section immediately behind K_TEXT_START section so that real-mode addresses work even with growing size of kernel code.