diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2004-04-26 12:34:06 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2004-04-26 12:34:06 +0000 |
commit | aa994f703c162d95d4deb49c03c3a1db2d112bfe (patch) | |
tree | 84b0a710f435f1e25b7250a36ba58938d79a9b9e /sys/arch/luna88k/include/asm_macro.h | |
parent | cdbfc97159f36439e647d02962c2945d39ca1576 (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.h | 126 |
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> |