Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 430 → Rev 431

/SPARTAN/trunk/arch/ia64/include/interrupt.h
0,0 → 1,34
/*
* 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_INTERRUPT_H__
#define __ia64_INTERRUPT_H__
 
extern void external_interrupt(void);
 
#endif
/SPARTAN/trunk/arch/ia64/include/asm.h
47,7 → 47,20
return v;
}
 
/** Read IVR (External Interrupt Vector Register)
*
* @return Highest priority, pending, unmasked external interrupt vector.
*/
static inline __u8 read_ivr(void)
{
__u64 v;
__asm__ volatile ("mov %0 = cr65\n" : "=r" (v));
return (__u8) (v & 0xf);
}
 
 
void cpu_sleep(void);
 
void asm_delay_loop(__u32 t);
/SPARTAN/trunk/arch/ia64/include/barrier.h
39,4 → 39,7
#define read_barrier()
#define write_barrier()
 
#define srlz_i() __asm__ volatile (";; srlz.i ;;\n" ::: "memory")
#define srlz_d() __asm__ volatile (";; srlz.d ;;\n" ::: "memory")
 
#endif
/SPARTAN/trunk/arch/ia64/Makefile.inc
31,6 → 31,7
generic/src/arch/ski/ski.c \
generic/src/arch/cpu/cpu.c \
generic/src/arch/ivt.S \
generic/src/arch/interrupt.c \
generic/src/arch/interrupt_handler.c \
generic/src/arch/fmath.c \
generic/src/arch/mm/frame.c
/SPARTAN/trunk/arch/ia64/src/ivt.S
385,7 → 385,7
Handler2 0x2400
Handler2 0x2800
Handler 0x2c00 break_instruction
Handler2 0x3000
Handler 0x3000 external_interrupt
Handler2 0x3400
Handler2 0x3800
Handler2 0x3c00
/SPARTAN/trunk/arch/ia64/src/interrupt.c
0,0 → 1,48
/*
* 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.
*
*/
 
#include <arch/interrupt.h>
#include <panic.h>
#include <arch/types.h>
#include <arch/asm.h>
#include <arch/barrier.h>
 
void external_interrupt(void)
{
__u8 ivr;
srlz_d();
ivr = read_ivr();
srlz_d();
switch(ivr) {
default:
panic("\nUnhandled External Interrupt Vector %d\n", ivr);
}
}
/SPARTAN/trunk/arch/mips32/Makefile.inc
32,7 → 32,7
CFLAGS += -DHAVE_FPU -DFPU_LAZY -mips3
BFD = ecoff-littlemips
KERNEL_LOAD_ADDRESS = 0x80100000
BFD_NAME=elf32-little
BFD_NAME=elf32-tradlittlemips
endif
 
ifeq (${MACHINE},bgxemul)
52,7 → 52,7
BFD = binary
CFLAGS += -mhard-float -march=4kc
KERNEL_LOAD_ADDRESS = 0x80100000
BFD_NAME=elf32-little
BFD_NAME=elf32-tradlittlemips
endif
 
ifeq (${MACHINE},msim)
59,16 → 59,16
BFD = binary
CFLAGS += -mhard-float -mips3
KERNEL_LOAD_ADDRESS = 0x80100000
BFD_NAME=elf32-little
BFD_NAME=elf32-tradlittlemips
endif
 
# SIMICS 4kc emulation is broken, although for instructions
# that do not bother us
ifeq (${MACHINE},simics)
BFD = elf32-little
BFD = elf32-tradlittlemips
CFLAGS += -mhard-float -mips3
KERNEL_LOAD_ADDRESS = 0x80100000
BFD_NAME=elf32-little
BFD_NAME=elf32-tradlittlemips
endif
 
arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in