Annotation of sys/arch/m88k/include/m88100.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: m88100.h,v 1.3 2006/11/18 22:58:28 miod Exp $ */
! 2: /*
! 3: * Mach Operating System
! 4: * Copyright (c) 1993-1992 Carnegie Mellon University
! 5: * All Rights Reserved.
! 6: *
! 7: * Permission to use, copy, modify and distribute this software and its
! 8: * documentation is hereby granted, provided that both the copyright
! 9: * notice and this permission notice appear in all copies of the
! 10: * software, derivative works or modified versions, and any portions
! 11: * thereof, and that both notices appear in supporting documentation.
! 12: *
! 13: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
! 14: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
! 15: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
! 16: *
! 17: * Carnegie Mellon requests users of this software to return to
! 18: *
! 19: * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
! 20: * School of Computer Science
! 21: * Carnegie Mellon University
! 22: * Pittsburgh PA 15213-3890
! 23: *
! 24: * any improvements or extensions that they make and grant Carnegie Mellon
! 25: * the rights to redistribute these changes.
! 26: */
! 27:
! 28: #ifndef __M88K_M88100_H__
! 29: #define __M88K_M88100_H__
! 30:
! 31: /*
! 32: * 88100 RISC definitions
! 33: */
! 34:
! 35: /*
! 36: * DMT0, DMT1, DMT2 layout
! 37: *
! 38: * The DMT_SKIP bit is never set by the cpu. It is used to mark 'known'
! 39: * transactions so that they don't get processed a second time by
! 40: * data_access_emulation().
! 41: */
! 42: #define DMT_SKIP 0x00010000 /* skip this dmt */
! 43: #define DMT_BO 0x00008000 /* Byte-Ordering */
! 44: #define DMT_DAS 0x00004000 /* Data Access Space */
! 45: #define DMT_DOUB1 0x00002000 /* Double Word */
! 46: #define DMT_LOCKBAR 0x00001000 /* Bud Lock */
! 47: #define DMT_DREG 0x00000F80 /* Destination Registers 5bits */
! 48: #define DMT_SIGNED 0x00000040 /* Sign-Extended Bit */
! 49: #define DMT_EN 0x0000003C /* Byte Enable Bit */
! 50: #define DMT_WRITE 0x00000002 /* Read/Write Transaction Bit */
! 51: #define DMT_VALID 0x00000001 /* Valid Transaction Bit */
! 52:
! 53: #define DMT_DREGSHIFT 7
! 54: #define DMT_ENSHIFT 2
! 55:
! 56: #define DMT_DREGBITS(x) (((x) & DMT_DREG) >> DMT_DREGSHIFT)
! 57: #define DMT_ENBITS(x) (((x) & DMT_EN) >> DMT_ENSHIFT)
! 58:
! 59: #if defined(_KERNEL) && !defined(_LOCORE)
! 60:
! 61: void dae_print(unsigned *);
! 62: void data_access_emulation(unsigned *);
! 63:
! 64: u_int32_t do_load_word(vaddr_t, int);
! 65: u_int16_t do_load_half(vaddr_t, int);
! 66: u_int8_t do_load_byte(vaddr_t, int);
! 67: void do_store_word(vaddr_t, u_int32_t, int);
! 68: void do_store_half(vaddr_t, u_int16_t, int);
! 69: void do_store_byte(vaddr_t, u_int8_t, int);
! 70: u_int32_t do_xmem_word(vaddr_t, u_int32_t, int);
! 71: u_int8_t do_xmem_byte(vaddr_t, u_int8_t, int);
! 72:
! 73: void m88100_apply_patches(void);
! 74:
! 75: #endif
! 76:
! 77: #endif /* __M88K_M88100_H__ */
CVSweb