/SPARTAN/trunk/doc/requirements |
---|
10,7 → 10,7 |
o gcc 3.3.2 - gcc 3.3.5 |
SMP COMPATIBILITY |
o Bochs 2.0.2 - Bochs 2.2-cvs |
o Bochs 2.0.2 - Bochs 2.2 |
o 2x-8x 686 CPU |
o ASUS P/I-P65UP5 + ASUS C-P55T2D REV. 1.41 |
o 2x 200Mhz Pentium CPU |
/SPARTAN/trunk/doc/AUTHORS |
---|
3,3 → 3,4 |
Martin Decky |
Josef Cejka |
Sergey Bondari |
Ondrej Palkovsky |
/SPARTAN/trunk/src/Makefile.config |
---|
14,7 → 14,7 |
#NDEBUG=__NDEBUG__ |
# Deadlock detection support for spinlocks. |
#DEBUG_SPINLOCK=DEBUG_SPINLOCK |
DEBUG_SPINLOCK=DEBUG_SPINLOCK |
# Uncomment if you want to compile in userspace support |
#USERSPACE=__USERSPACE__ |
/SPARTAN/trunk/arch/ia64/include/atomic.h |
---|
0,0 → 1,45 |
/* |
* Copyright (C) 2005 Jakub Jermar |
* All rights reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions |
* are met: |
* |
* - Redistributions of source code must retain the above copyright |
* notice, this list of conditions and the following disclaimer. |
* - Redistributions in binary form must reproduce the above copyright |
* notice, this list of conditions and the following disclaimer in the |
* documentation and/or other materials provided with the distribution. |
* - The name of the author may not be used to endorse or promote products |
* derived from this software without specific prior written permission. |
* |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
#ifndef __ia64_ATOMIC_H__ |
#define __ia64_ATOMIC_H__ |
/* |
* TODO: these are just placeholders for real implementations of atomic_inc and atomic_dec. |
* WARNING: the following functions cause the code to be preemption-unsafe !!! |
*/ |
static inline atomic_inc(volatile int *val) { |
*val++; |
} |
static inline atomic_dec(volatile int *val) { |
*val--; |
} |
#endif |
/SPARTAN/trunk/arch/mips/include/atomic.h |
---|
1,5 → 1,5 |
/* |
* Copyright (C) 2001-2004 Jakub Jermar |
* Copyright (C) 2005 Ondrej Palkovsky |
* All rights reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
/SPARTAN/trunk/arch/ia32/src/pm.c |
---|
71,9 → 71,9 |
void gdt_setbase(struct descriptor *d, __address base) |
{ |
d->base_0_15 = KA2PA(base) & 0xffff; |
d->base_16_23 = (KA2PA(base) >> 16) & 0xff; |
d->base_24_31 = (KA2PA(base) >> 24) & 0xff; |
d->base_0_15 = base & 0xffff; |
d->base_16_23 = ((base) >> 16) & 0xff; |
d->base_24_31 = ((base) >> 24) & 0xff; |
} |
85,8 → 85,11 |
void idt_setoffset(struct idescriptor *d, __address offset) |
{ |
d->offset_0_15 = KA2PA(offset) & 0xffff; |
d->offset_16_31 = KA2PA(offset) >> 16; |
/* |
* Offset is a linear address. |
*/ |
d->offset_0_15 = offset & 0xffff; |
d->offset_16_31 = offset >> 16; |
} |
void tss_initialize(struct tss *t) |
/SPARTAN/trunk/arch/ia32/src/smp/ap.S |
---|
54,11 → 54,7 |
movl %cr0,%eax |
orl $1,%eax |
movl %eax,%cr0 |
jmp 0f |
0: |
ljmp $KTEXT,$jump_to_kernel |
# this is where the AP enters the kernel space |
jmpl $KTEXT,$jump_to_kernel |
jump_to_kernel: |
.code32 |
movw $KDATA,%ax |
/SPARTAN/trunk/arch/ia32/src/smp/apic.c |
---|
43,7 → 43,7 |
* This is functional, far-from-general-enough interface to the APIC. |
* Advanced Programmable Interrupt Controller for MP systems. |
* Tested on: |
* Bochs 2.0.2 - Bochs 2.2-cvs with 2-8 CPUs |
* Bochs 2.0.2 - Bochs 2.2 with 2-8 CPUs |
* ASUS P/I-P65UP5 + ASUS C-P55T2D REV. 1.41 with 2x 200Mhz Pentium CPUs |
*/ |
/SPARTAN/trunk/arch/ia32/src/boot/boot.S |
---|
47,8 → 47,10 |
movl %cr0,%eax |
orl $0x1,%eax |
movl %eax,%cr0 |
jmp 0f |
0: |
jmpl $8,$meeting_point |
meeting_point: |
.code32 |
movw $16,%ax |
movw %ax,%es |
movw %ax,%gs |
56,9 → 58,6 |
movw %ax,%ds # kernel data + stack |
movw %ax,%ss |
movl $0x7c00,%esp |
jmpl $8,$meeting_point |
meeting_point: |
.code32 |
lidt idtr |
96,6 → 95,8 |
movl %cr0, %ebx |
orl $(1<<31), %ebx |
movl %ebx, %cr0 |
jmp 0f |
0: |
ret |