Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 51 → Rev 52

/SPARTAN/trunk/include/fpu_context.h
0,0 → 1,11
 
#ifndef fpu_context_h
#define fpu_context_h
 
extern void fpu_context_save(void);
extern void fpu_context_restore(void);
extern void fpu_lazy_context_save(void);
extern void fpu_lazy_context_restore(void);
 
 
#endif /*fpu_context_h*/
/SPARTAN/trunk/include/proc/scheduler.h
60,5 → 60,6
*/
extern void before_thread_runs(void);
extern void before_thread_runs_arch(void);
 
#endif
/SPARTAN/trunk/include/context.h
30,8 → 30,12
#define __CONTEXT_H__
 
#include <typedefs.h>
#include "fpu_context.h"
 
 
extern int context_save(context_t *c);
extern void context_restore(context_t *c) __attribute__ ((noreturn));
 
 
 
#endif
/SPARTAN/trunk/src/proc/scheduler.c
54,6 → 54,13
spinlock_t nrdylock;
volatile int nrdy;
 
void before_thread_runs(void)
{
before_thread_runs_arch();
fpu_context_restore();
}
 
 
void scheduler_init(void)
{
spinlock_initialize(&nrdylock);
/SPARTAN/trunk/arch/powerpc/Makefile.inc
11,4 → 11,5
LFLAGS=-M -no-check-sections -T ../arch/mips/_link.ld
 
arch_sources= \
arch/powerpc.c
arch/powerpc.c \
arch/fpu_context.c
/SPARTAN/trunk/arch/powerpc/src/fpu_context.c
0,0 → 1,63
/*
#
# Copyright (C) 2005 Jakub Vana
# 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.
#
*/
 
#include <fpu_context.h>
 
void fpu_context_save(void)
{
}
 
 
void fpu_context_restore()
{
}
 
 
void fpu_lazy_context_save()
{
/*
pushl %eax
mov 8(%esp),%eax
fxsave (%eax)
popl %eax
ret
*/
}
 
void fpu_lazy_context_restore()
{
/*
pushl %eax
mov 8(%esp),%eax
fxrstor (%eax)
popl %eax
ret
*/
}
/SPARTAN/trunk/arch/ia64/Makefile.inc
18,5 → 18,8
arch/start.S \
arch/fake.s \
arch/putchar.c \
arch/context.S \
arch/ia64.c
arch/ia64.c \
arch/fpu_context.c
arch/context.S
 
/SPARTAN/trunk/arch/ia64/src/fpu_context.c
0,0 → 1,63
/*
#
# Copyright (C) 2005 Jakub Vana
# 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.
#
*/
 
#include <fpu_context.h>
 
void fpu_context_save(void)
{
}
 
 
void fpu_context_restore()
{
}
 
 
void fpu_lazy_context_save()
{
/*
pushl %eax
mov 8(%esp),%eax
fxsave (%eax)
popl %eax
ret
*/
}
 
void fpu_lazy_context_restore()
{
/*
pushl %eax
mov 8(%esp),%eax
fxrstor (%eax)
popl %eax
ret
*/
}
/SPARTAN/trunk/arch/ia64/src/fake.s
31,7 → 31,7
.global calibrate_delay_loop
.global asm_delay_loop
.global userspace
.global before_thread_runs
.global before_thread_runs_arch
.global arch_late_init
.global arch_post_mm_init
.global arch_pre_mm_init
49,7 → 49,7
.global memsetb
.global panic
 
before_thread_runs:
before_thread_runs_arch:
userspace:
calibrate_delay_loop:
asm_delay_loop:
/SPARTAN/trunk/arch/mips/Makefile.inc
30,4 → 30,5
arch/cpu/cpu.c \
arch/mm/frame.c \
arch/mm/page.c \
arch/mm/tlb.c
arch/mm/tlb.c \
arch/fpu_context.c
/SPARTAN/trunk/arch/mips/src/fpu_context.c
0,0 → 1,63
/*
#
# Copyright (C) 2005 Jakub Vana
# 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.
#
*/
 
#include <fpu_context.h>
 
void fpu_context_save(void)
{
}
 
 
void fpu_context_restore()
{
}
 
 
void fpu_lazy_context_save()
{
/*
pushl %eax
mov 8(%esp),%eax
fxsave (%eax)
popl %eax
ret
*/
}
 
void fpu_lazy_context_restore()
{
/*
pushl %eax
mov 8(%esp),%eax
fxrstor (%eax)
popl %eax
ret
*/
}
/SPARTAN/trunk/arch/mips/src/fake.s
32,9 → 32,9
.global calibrate_delay_loop
.global asm_delay_loop
.global userspace
.global before_thread_runs
.global _before_thread_runs_arch
 
before_thread_runs:
before_thread_runs_arch:
userspace:
calibrate_delay_loop:
asm_delay_loop:
/SPARTAN/trunk/arch/ia32/Makefile.inc
44,6 → 44,7
arch/drivers/i8254.c \
arch/drivers/i8259.c \
arch/drivers/ega.c \
arch/boot/boot.S
arch/boot/boot.S \
arch/fpu_context.c
 
 
/SPARTAN/trunk/arch/ia32/src/fpu_context.c
0,0 → 1,63
/*
#
# Copyright (C) 2005 Jakub Vana
# 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.
#
*/
 
#include <fpu_context.h>
 
void fpu_context_save(void)
{
}
 
 
void fpu_context_restore()
{
}
 
 
void fpu_lazy_context_save()
{
/*
pushl %eax
mov 8(%esp),%eax
fxsave (%eax)
popl %eax
ret
*/
}
 
void fpu_lazy_context_restore()
{
/*
pushl %eax
mov 8(%esp),%eax
fxrstor (%eax)
popl %eax
ret
*/
}
/SPARTAN/trunk/arch/ia32/src/context.s
79,23 → 79,3
ret
 
 
fpu_context_save:
ret
 
fpu_context_restore:
ret
 
fpu_lazy_context_save:
pushl %eax
mov 8(%esp),%eax
fxsave (%eax)
popl %eax
ret
 
fpu_lazy_context_restore:
pushl %eax
mov 8(%esp),%eax
fxrstor (%eax)
popl %eax
ret
 
/SPARTAN/trunk/arch/ia32/src/proc/scheduler.c
31,7 → 31,7
#include <proc/thread.h>
#include <arch.h>
 
void before_thread_runs(void)
void before_thread_runs_arch(void)
{
CPU->arch.tss->esp0 = (__address) &THREAD->kstack[THREAD_STACK_SIZE-8];
CPU->arch.tss->ss0 = selector(KDATA_DES);