Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/sommerfeld_i386mp_1]: src/sys/arch/i386 Add support for getting %es valu...



details:   https://anonhg.NetBSD.org/src/rev/c658a15d93f9
branches:  sommerfeld_i386mp_1
changeset: 482387:c658a15d93f9
user:      jdolecek <jdolecek%NetBSD.org@localhost>
date:      Wed May 02 13:12:46 2001 +0000

description:
Add support for getting %es value from the bios call.

diffstat:

 sys/arch/i386/bioscall/genassym.cf |  102 ++++++++++++++++++++++++++++++++++
 sys/arch/i386/include/bioscall.h   |  109 +++++++++++++++++++++++++++++++++++++
 2 files changed, 211 insertions(+), 0 deletions(-)

diffs (219 lines):

diff -r 54fc304ca800 -r c658a15d93f9 sys/arch/i386/bioscall/genassym.cf
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/i386/bioscall/genassym.cf        Wed May 02 13:12:46 2001 +0000
@@ -0,0 +1,102 @@
+#      $NetBSD: genassym.cf,v 1.2.2.2 2001/05/02 13:12:46 jdolecek Exp $
+
+#
+# Copyright (c) 1998 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Charles M. Hannum.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. 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.
+# 3. All advertising materials mentioning features or use of this software
+#    must display the following acknowledgement:
+#        This product includes software developed by the NetBSD
+#        Foundation, Inc. and its contributors.
+# 4. Neither the name of The NetBSD Foundation nor the names of its
+#    contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+# ``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 FOUNDATION OR CONTRIBUTORS
+# 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.
+#
+
+#
+# Copyright (c) 1982, 1990 The Regents of the University of California.
+# All rights reserved.
+#
+# This code is derived from software contributed to Berkeley by
+# William Jolitz.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. 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.
+# 3. All advertising materials mentioning features or use of this software
+#    must display the following acknowledgement:
+#      This product includes software developed by the University of
+#      California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+#    may be used to endorse or promote products derived from this software
+#    without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
+#
+#      @(#)genassym.c  5.11 (Berkeley) 5/10/91
+#
+
+
+include <sys/types.h>
+include <i386/include/bioscall.h>
+include <i386/include/apmvar.h>
+
+ifdef NOTDEF
+include <machine/bioscall.h>
+include <machine/apmvar.h>
+endif
+
+define APM_CODE32              offsetof(struct apm_connect_info, apm_code32_seg_base)
+define APM_CODE16              offsetof(struct apm_connect_info, apm_code16_seg_base)
+define APM_DATA                offsetof(struct apm_connect_info, apm_data_seg_base)
+define APM_CODE32_LEN          offsetof(struct apm_connect_info, apm_code32_seg_len)
+define APM_DATA_LEN            offsetof(struct apm_connect_info, apm_data_seg_len)
+define APM_ENTRY               offsetof(struct apm_connect_info, apm_entrypt)
+define APM_DETAIL              offsetof(struct apm_connect_info, apm_detail)
+define APM_SIZE                sizeof(struct apm_connect_info)
+define BIOSCALLREG_EAX         offsetof(struct bioscallregs, EAX)
+define BIOSCALLREG_EBX         offsetof(struct bioscallregs, EBX)
+define BIOSCALLREG_ECX         offsetof(struct bioscallregs, ECX)
+define BIOSCALLREG_EDX         offsetof(struct bioscallregs, EDX)
+define BIOSCALLREG_ESI         offsetof(struct bioscallregs, ESI)
+define BIOSCALLREG_EDI         offsetof(struct bioscallregs, EDI)
+define BIOSCALLREG_EFLAGS      offsetof(struct bioscallregs, EFLAGS)
+define BIOSCALLREG_ES          offsetof(struct bioscallregs, ES)
diff -r 54fc304ca800 -r c658a15d93f9 sys/arch/i386/include/bioscall.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/i386/include/bioscall.h  Wed May 02 13:12:46 2001 +0000
@@ -0,0 +1,109 @@
+/*     $NetBSD: bioscall.h,v 1.7.2.2 2001/05/02 13:12:47 jdolecek Exp $ */
+
+/*-
+ * Copyright (c) 1997, 2000 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by John Kohl and Jason R. Thorpe.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *        This product includes software developed by the NetBSD
+ *        Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``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 FOUNDATION OR CONTRIBUTORS
+ * 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 __I386_BIOSCALL_H__
+#define __I386_BIOSCALL_H__
+
+/*
+ * virtual & physical address of the trampoline
+ * that we use: page 1.
+ */
+#define BIOSTRAMP_BASE NBPG
+
+#ifndef _LOCORE
+#define        BIOSREG_LO      0
+#define        BIOSREG_HI      1
+
+typedef        union {
+       u_char biosreg_quarter[4];
+       u_short biosreg_half[2];
+       u_int biosreg_long;
+} bios_reg;
+
+struct bioscallregs {
+    bios_reg r_ax;
+    bios_reg r_bx;
+    bios_reg r_cx;
+    bios_reg r_dx;
+    bios_reg r_si;
+    bios_reg r_di;
+    bios_reg r_flags;
+    bios_reg r_es;
+};
+
+#define        AL      r_ax.biosreg_quarter[BIOSREG_LO]
+#define        AH      r_ax.biosreg_quarter[BIOSREG_HI]
+#define        AX      r_ax.biosreg_half[BIOSREG_LO]
+#define        AX_HI   r_ax.biosreg_half[BIOSREG_HI]
+#define        EAX     r_ax.biosreg_long
+
+#define        BL      r_bx.biosreg_quarter[BIOSREG_LO]
+#define        BH      r_bx.biosreg_quarter[BIOSREG_HI]
+#define        BX      r_bx.biosreg_half[BIOSREG_LO]
+#define        BX_HI   r_bx.biosreg_half[BIOSREG_HI]
+#define        EBX     r_bx.biosreg_long
+
+#define        CL      r_cx.biosreg_quarter[BIOSREG_LO]
+#define        CH      r_cx.biosreg_quarter[BIOSREG_HI]
+#define        CX      r_cx.biosreg_half[BIOSREG_LO]
+#define        CX_HI   r_cx.biosreg_half[BIOSREG_HI]
+#define        ECX     r_cx.biosreg_long
+
+#define        DL      r_dx.biosreg_quarter[BIOSREG_LO]
+#define        DH      r_dx.biosreg_quarter[BIOSREG_HI]
+#define        DX      r_dx.biosreg_half[BIOSREG_LO]
+#define        DX_HI   r_dx.biosreg_half[BIOSREG_HI]
+#define        EDX     r_dx.biosreg_long
+
+#define        SI      r_si.biosreg_half[BIOSREG_LO]
+#define        SI_HI   r_si.biosreg_half[BIOSREG_HI]
+#define        ESI     r_si.biosreg_long
+
+#define        DI      r_di.biosreg_half[BIOSREG_LO]
+#define        DI_HI   r_di.biosreg_half[BIOSREG_HI]
+#define        EDI     r_di.biosreg_long
+
+#define        FLAGS    r_flags.biosreg_half[BIOSREG_LO]
+#define        FLAGS_HI r_flags.biosreg_half[BIOSREG_HI]
+#define        EFLAGS   r_flags.biosreg_long
+
+#define ES     r_es.biosreg_half[BIOSREG_LO]
+
+void bioscall __P((int /* function*/ , struct bioscallregs * /* regs */));
+#endif
+#endif /* __I386_BIOSCALL_H__ */



Home | Main Index | Thread Index | Old Index