summaryrefslogtreecommitdiff
path: root/i386/pc/rv86/rv86_reflect_irq.S
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@gnu.org>2006-02-20 20:55:18 +0000
committerThomas Schwinge <tschwinge@gnu.org>2009-06-18 00:26:35 +0200
commitb3d4954f3269685d4200149e7334cdcdc935c287 (patch)
tree9d963cdfa4c74632d455d9126f27672322059824 /i386/pc/rv86/rv86_reflect_irq.S
parent0266d331d780ff0e595eda337a3501ffbfea9330 (diff)
2006-02-20 Thomas Schwinge <tschwinge@gnu.org>
Remove unused and unsupported code. Consult the file `DEVELOPMENT' for details. Partly based on suggestions by Gianluca Guida <glguida@gmail.com>. * i386/pc/NOTES: Remove file. * i386/pc/debug.h: Likewise. * i386/pc/exit.c: Likewise. * i386/pc/gdt.h: Likewise. * i386/pc/gdt_sels.h: Likewise. * i386/pc/i16/i16_a20.c: Likewise. * i386/pc/i16/i16_a20.h: Likewise. * i386/pc/i16/i16_bios.h: Likewise. * i386/pc/i16/i16_exit.c: Likewise. * i386/pc/i16/i16_ext_mem.c: Likewise. * i386/pc/i16/i16_init.c: Likewise. * i386/pc/i16/i16_main.c: Likewise. * i386/pc/i16/i16_pic.c: Likewise. * i386/pc/i16/i16_putchar.c: Likewise. * i386/pc/i16/i16_raw.c: Likewise. * i386/pc/i16/i16_raw_test_a20.S: Likewise. * i386/pc/i16/i16_real_int.S: Likewise. * i386/pc/i16/i16_switch.h: Likewise. * i386/pc/i16/phys_mem_collect.c: Likewise. * i386/pc/i16/phys_mem_sources.h: Likewise. * i386/pc/i16/raw_exit.c: Likewise. * i386/pc/i16/raw_real_int.c: Likewise. * i386/pc/ipl.h: Likewise. * i386/pc/irq.h: Likewise. * i386/pc/irq_list.h: Likewise. * i386/pc/pc_asm.sym: Likewise. * i386/pc/phys_mem.h: Likewise. * i386/pc/phys_mem_add.c: Likewise. * i386/pc/pic.c: Likewise. * i386/pc/pic.h: Likewise. * i386/pc/putchar.c: Likewise. * i386/pc/real.h: Likewise. * i386/pc/real_tss.c: Likewise. * i386/pc/real_tss.h: Likewise. * i386/pc/real_tss_def.S: Likewise. * i386/pc/rv86/config.h: Likewise. * i386/pc/rv86/gdt_sels.h: Likewise. * i386/pc/rv86/idt_irq_init.c: Likewise. * i386/pc/rv86/rv86_real_int.c: Likewise. * i386/pc/rv86/rv86_real_int_asm.S: Likewise. * i386/pc/rv86/rv86_reflect_irq.S: Likewise. * i386/pc/rv86/rv86_trap_handler.S: Likewise. * i386/pc/rv86/trap_handler.S: Likewise.
Diffstat (limited to 'i386/pc/rv86/rv86_reflect_irq.S')
-rw-r--r--i386/pc/rv86/rv86_reflect_irq.S113
1 files changed, 0 insertions, 113 deletions
diff --git a/i386/pc/rv86/rv86_reflect_irq.S b/i386/pc/rv86/rv86_reflect_irq.S
deleted file mode 100644
index 5d68fae..0000000
--- a/i386/pc/rv86/rv86_reflect_irq.S
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 1995 The University of Utah and
- * the Computer Systems Laboratory at the University of Utah (CSL).
- * All rights reserved.
- *
- * Permission to use, copy, modify and distribute this software is hereby
- * granted provided that (1) source code retains these copyright, permission,
- * and disclaimer notices, and (2) redistributions including binaries
- * reproduce the notices in supporting documentation, and (3) all advertising
- * materials mentioning features or use of this software display the following
- * acknowledgement: ``This product includes software developed by the
- * Computer Systems Laboratory at the University of Utah.''
- *
- * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
- * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
- * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * CSL requests users of this software to return to csl-dist@cs.utah.edu any
- * improvements that they make and grant CSL redistribution rights.
- *
- * Author: Bryan Ford, University of Utah CSL
- */
-
-#include <mach/machine/asm.h>
-#include <mach/machine/eflags.h>
-
-#include "trap.h"
-#include "trap_asm.h"
-#include "pc_asm.h"
-#include "i386_asm.h"
-
-/*
- * Define a set of interrupt handlers to reflect interrupts to v86 mode.
- */
-
- .text
-
-#define master_base 0x08
-#define slave_base 0x70
-
-#define irq(pic,picnum,irqnum) \
-ENTRY(rv86_reflect_irq##irqnum) ;\
- pushl $pic##_base+picnum ;\
- pushl $0x80000000+irqnum /* (for debug) */ ;\
- jmp allintrs
-
-#include "irq_list.h"
-
-
-allintrs:
- pusha
- pushl %ds
- pushl %es
- pushl %fs
- pushl %gs
-
- /* Load the normal kernel segment registers. */
- movw %ss,%ax
- movw %ax,%ds
- movw %ax,%es
-
- /* See if we came from v86 mode. */
- testl $EFL_VM,TR_EFLAGS(%esp)
- jnz int_from_v86
-
- movl TR_ERR(%esp),%eax
- pushl $dummy_rcd
- pushl %eax
- call EXT(rv86_real_int)
- addl $2*4,%esp
-
- popl %gs
- popl %fs
- popl %es
- popl %ds
- popa
- addl $2*4,%esp
- iret
-
-int_from_v86:
-
- /* Save the v86 stack pointer before handling the interrupt.
- We need this in order to handle recursive reflected interrupts
- possibly interspersed with protected-mode interrupts. */
- movl EXT(rv86_usp),%esi
- movl EXT(rv86_usp)+4,%edi
- movl EXT(real_tss)+TSS_ESP0,%ebx
-
- movl TR_ESP(%esp),%eax
- subw $6,%ax /* allocate a real-mode interrupt stack frame. */
- movl %eax,EXT(rv86_usp)
- movl TR_SS(%esp),%eax
- movw %ax,EXT(rv86_usp)+4
-
- movl TR_ERR(%esp),%eax
- pushl $dummy_rcd
- pushl %eax
- call EXT(rv86_real_int)
- addl $2*4,%esp
-
- movl %esi,EXT(rv86_usp)
- movl %edi,EXT(rv86_usp)+4
- movl %ebx,EXT(real_tss)+TSS_ESP0
-
- addl $4*4,%esp
- popa
- addl $2*4,%esp
- iret
-
- /* Dummy real_call_data structure (always all zero)
- to use when reflecting hardware interrupts. */
- .comm dummy_rcd,RCD_SIZE
-