Subversion Repositories HelenOS-historic

Rev

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

Filtering Options

Rev Age Author Path Log message Diff
192 6841 d 5 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 6841 d 12 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 6842 d 10 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 6846 d 1 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 6916 d 3 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 6966 d 1 h jermar /SPARTAN/trunk/ ACPI detection code.
MP detection code rewrite.
Minor changes.
 
26 6971 d 8 h jermar /SPARTAN/trunk/ Code cleanup after arch_init() splitting.
Restore %ds and %es registers before iret.
 
23 6974 d 6 h jermar /SPARTAN/trunk/ Fix wrong order of *_init() function calls.  
20 6980 d 8 h jermar /SPARTAN/trunk/ Smarter definition of CPU macro.  
16 6983 d 6 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.
 
15 6984 d 4 h jermar /SPARTAN/trunk/ Introduce macros CPU, THREAD, TASK and use them to replace the->cpu, the->thread, the->task.
Later on, this will make it possible to reference *current* cpu, thread and/or task without the aid from virtual memory.
 
1 7034 d 5 h jermar /SPARTAN/ Initial import