m88k_dmt.h Source File

Back to the index.

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

Generated on Sun Sep 30 2018 16:05:18 for GXemul by doxygen 1.8.13