Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / mn10300 / include / asm / kgdb.h
1 /* Kernel debugger for MN10300
2  *
3  * Copyright (C) 2010 Red Hat, Inc. All Rights Reserved.
4  * Written by David Howells (dhowells@redhat.com)
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public Licence
8  * as published by the Free Software Foundation; either version
9  * 2 of the Licence, or (at your option) any later version.
10  */
11
12 #ifndef _ASM_KGDB_H
13 #define _ASM_KGDB_H
14
15 /*
16  * BUFMAX defines the maximum number of characters in inbound/outbound
17  * buffers at least NUMREGBYTES*2 are needed for register packets
18  * Longer buffer is needed to list all threads
19  */
20 #define BUFMAX                  1024
21
22 /*
23  * Note that this register image is in a different order than the register
24  * image that Linux produces at interrupt time.
25  */
26 enum regnames {
27         GDB_FR_D0               = 0,
28         GDB_FR_D1               = 1,
29         GDB_FR_D2               = 2,
30         GDB_FR_D3               = 3,
31         GDB_FR_A0               = 4,
32         GDB_FR_A1               = 5,
33         GDB_FR_A2               = 6,
34         GDB_FR_A3               = 7,
35
36         GDB_FR_SP               = 8,
37         GDB_FR_PC               = 9,
38         GDB_FR_MDR              = 10,
39         GDB_FR_EPSW             = 11,
40         GDB_FR_LIR              = 12,
41         GDB_FR_LAR              = 13,
42         GDB_FR_MDRQ             = 14,
43
44         GDB_FR_E0               = 15,
45         GDB_FR_E1               = 16,
46         GDB_FR_E2               = 17,
47         GDB_FR_E3               = 18,
48         GDB_FR_E4               = 19,
49         GDB_FR_E5               = 20,
50         GDB_FR_E6               = 21,
51         GDB_FR_E7               = 22,
52
53         GDB_FR_SSP              = 23,
54         GDB_FR_MSP              = 24,
55         GDB_FR_USP              = 25,
56         GDB_FR_MCRH             = 26,
57         GDB_FR_MCRL             = 27,
58         GDB_FR_MCVF             = 28,
59
60         GDB_FR_FPCR             = 29,
61         GDB_FR_DUMMY0           = 30,
62         GDB_FR_DUMMY1           = 31,
63
64         GDB_FR_FS0              = 32,
65
66         GDB_FR_SIZE             = 64,
67 };
68
69 #define GDB_ORIG_D0             41
70 #define NUMREGBYTES             (GDB_FR_SIZE*4)
71
72 static inline void arch_kgdb_breakpoint(void)
73 {
74         asm(".globl __arch_kgdb_breakpoint; __arch_kgdb_breakpoint: break");
75 }
76 extern u8 __arch_kgdb_breakpoint;
77
78 #define BREAK_INSTR_SIZE        1
79 #define CACHE_FLUSH_IS_SAFE     1
80
81 #endif /* _ASM_KGDB_H */