summaryrefslogtreecommitdiff
path: root/sys/arch/luna88k/include/asm_macro.h
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2004-04-26 12:34:06 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2004-04-26 12:34:06 +0000
commitaa994f703c162d95d4deb49c03c3a1db2d112bfe (patch)
tree84b0a710f435f1e25b7250a36ba58938d79a9b9e /sys/arch/luna88k/include/asm_macro.h
parentcdbfc97159f36439e647d02962c2945d39ca1576 (diff)
Start factorizing luna88k and mvme88k common parts.
For now, include files only.
Diffstat (limited to 'sys/arch/luna88k/include/asm_macro.h')
-rw-r--r--sys/arch/luna88k/include/asm_macro.h126
1 files changed, 3 insertions, 123 deletions
diff --git a/sys/arch/luna88k/include/asm_macro.h b/sys/arch/luna88k/include/asm_macro.h
index 62e5b2465c9..dc01fb6389e 100644
--- a/sys/arch/luna88k/include/asm_macro.h
+++ b/sys/arch/luna88k/include/asm_macro.h
@@ -1,123 +1,3 @@
-/* $OpenBSD: asm_macro.h,v 1.1 2004/04/21 15:23:56 aoyama Exp $ */
-/*
- * Mach Operating System
- * Copyright (c) 1993-1991 Carnegie Mellon University
- * Copyright (c) 1991 OMRON Corporation
- * All Rights Reserved.
- *
- * Permission to use, copy, modify and distribute this software and its
- * documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON AND OMRON ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON AND OMRON DISCLAIM ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#ifndef __MACHINE_M88K_ASM_MACRO_H__
-#define __MACHINE_M88K_ASM_MACRO_H__
-
-#include <machine/asm.h>
-/*
- * Various compiler macros used for speed and efficiency.
- * Anyone can include.
- */
-
-/*
- * Flushes the data pipeline.
- */
-#define flush_pipeline() \
- __asm__ __volatile__ (FLUSH_PIPELINE_STRING)
-
-/*
- * PSR_TYPE is the type of the Process Status Register.
- */
-typedef unsigned long m88k_psr_type;
-
-/*
- * disable_interrupts_return_psr()
- *
- * The INTERRUPT_DISABLE bit is set in the PSR and the *PREVIOUS*
- * PSR is returned. Intended to be used with set_psr() [below] as in:
- *
- * {
- * m88k_psr_type psr;
- * .
- * .
- * psr = disable_interrupts_return_psr();
- * .
- * SHORT [time-wise] CRITICAL SECTION HERE
- * .
- * set_psr(psr);
- * .
- * .
- */
-static __inline__ m88k_psr_type disable_interrupts_return_psr(void)
-{
- m88k_psr_type temp, oldpsr;
- __asm__ __volatile__ ("ldcr %0, cr1" : "=r" (oldpsr));
- __asm__ __volatile__ ("set %1, %0, 1<1>" : "=r" (oldpsr), "=r" (temp));
- __asm__ __volatile__ ("stcr %0, cr1" : "=r" (temp));
- __asm__ __volatile__ (FLUSH_PIPELINE_STRING);
- return oldpsr;
-}
-#define disable_interrupt() (void)disable_interrupts_return_psr()
-
-/*
- * Sets the PSR. See comments above.
- */
-static __inline__ void set_psr(m88k_psr_type psr)
-{
- __asm__ __volatile__ ("stcr %0, cr1" :: "r" (psr));
- __asm__ __volatile__ (FLUSH_PIPELINE_STRING);
-}
-
-/*
- * Gets the PSR. See comments above.
- */
-static __inline__ m88k_psr_type get_psr(void)
-{
- m88k_psr_type psr;
- __asm__ __volatile__ ("ldcr %0, cr1" : "=r" (psr));
- return psr;
-}
-
-/*
- * Enables interrupts.
- */
-static __inline__ m88k_psr_type enable_interrupts_return_psr(void)
-{
- m88k_psr_type temp, oldpsr; /* need a temporary register */
- __asm__ __volatile__ ("ldcr %0, cr1" : "=r" (oldpsr));
- __asm__ __volatile__ ("clr %1, %0, 1<1>" : "=r" (oldpsr), "=r" (temp));
- __asm__ __volatile__ ("stcr %0, cr1" : "=r" (temp));
- __asm__ __volatile__ (FLUSH_PIPELINE_STRING);
- return oldpsr;
-}
-#define enable_interrupt() (void)enable_interrupts_return_psr()
-
-#define db_enable_interrupt enable_interrupt
-#define db_disable_interrupt disable_interrupt
-
-/*
- * Provide access from C code to the assembly instruction ff1
- */
-static __inline__ unsigned ff1(unsigned val)
-{
- __asm__ __volatile__ ("ff1 %0, %0" : "=r" (val) : "0" (val));
- return val;
-}
-
-#endif /* __MACHINE_M88K_ASM_MACRO_H__ */
+/* $OpenBSD */
+/* public domain */
+#include <m88k/asm_macro.h>