Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
kgdb.h
Go to the documentation of this file.
1 /* Kernel debugger for MN10300
2  *
3  * Copyright (C) 2010 Red Hat, Inc. All Rights Reserved.
4  * Written by David Howells ([email protected])
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,
40  GDB_FR_LIR = 12,
41  GDB_FR_LAR = 13,
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,
59 
63 
64  GDB_FR_FS0 = 32,
65 
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 }
77 
78 #define BREAK_INSTR_SIZE 1
79 #define CACHE_FLUSH_IS_SAFE 1
80 
81 #endif /* _ASM_KGDB_H */