]> git.saurik.com Git - apple/xnu.git/blob - osfmk/kdp/kdp_internal.h
f182ea8f8b13e7bafe233c1a6d98c60ace3cbaf3
[apple/xnu.git] / osfmk / kdp / kdp_internal.h
1 /*
2 * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_OSREFERENCE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the
10 * License may not be used to create, or enable the creation or
11 * redistribution of, unlawful or unlicensed copies of an Apple operating
12 * system, or to circumvent, violate, or enable the circumvention or
13 * violation of, any terms of an Apple operating system software license
14 * agreement.
15 *
16 * Please obtain a copy of the License at
17 * http://www.opensource.apple.com/apsl/ and read it before using this
18 * file.
19 *
20 * The Original Code and all software distributed under the License are
21 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
22 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
23 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
24 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
25 * Please see the License for the specific language governing rights and
26 * limitations under the License.
27 *
28 * @APPLE_LICENSE_OSREFERENCE_HEADER_END@
29 */
30
31 /*
32 * Internal definitions for kdp module
33 */
34
35 #include <kdp/kdp.h>
36 #include <kdp/kdp_protocol.h>
37
38 typedef struct {
39 unsigned short reply_port;
40 unsigned int conn_seq;
41 boolean_t is_conn;
42 void *saved_state;
43 boolean_t is_halted;
44 unsigned short exception_port;
45 unsigned char exception_seq;
46 boolean_t exception_ack_needed;
47 } kdp_glob_t;
48
49 extern kdp_glob_t kdp;
50
51 extern int kdp_flag;
52 #define KDP_READY 0x1
53 #define KDP_ARP 0x2
54 #define KDP_BP_DIS 0x4
55 #define KDP_GETC_ENA 0x8
56 #define KDP_PANIC_DUMP_ENABLED 0x10
57 #define PANIC_CORE_ON_NMI 0x20
58 #define DBG_POST_CORE 0x40
59 #define PANIC_LOG_DUMP 0x80
60 typedef boolean_t
61 (*kdp_dispatch_t) (
62 kdp_pkt_t *,
63 int *,
64 unsigned short *
65 );
66
67 extern
68 boolean_t
69 kdp_packet(
70 unsigned char *,
71 int *,
72 unsigned short *
73 );
74
75 extern
76 boolean_t
77 kdp_remove_all_breakpoints (void);
78
79 extern
80 void
81 kdp_exception(
82 unsigned char *,
83 int *,
84 unsigned short *,
85 unsigned int,
86 unsigned int,
87 unsigned int
88 );
89
90 extern
91 boolean_t
92 kdp_exception_ack(
93 unsigned char *,
94 int
95 );
96
97 extern
98 void
99 kdp_panic(
100 const char *msg
101 );
102
103 extern
104 void
105 kdp_reboot(
106 void
107 );
108
109 extern
110 void
111 kdp_us_spin(
112 int usec
113 );
114
115 extern
116 int
117 kdp_intr_disbl(
118 void
119 );
120
121 extern
122 void
123 kdp_intr_enbl(
124 int s
125 );
126
127 extern
128 kdp_error_t
129 kdp_machine_read_regs(
130 unsigned int cpu,
131 unsigned int flavor,
132 char *data,
133 int *size
134 );
135
136 extern
137 kdp_error_t
138 kdp_machine_write_regs(
139 unsigned int cpu,
140 unsigned int flavor,
141 char *data,
142 int *size
143 );
144
145 extern
146 void
147 kdp_machine_hostinfo(
148 kdp_hostinfo_t *hostinfo
149 );
150
151 extern
152 void
153 kdp_sync_cache(
154 void
155 );
156
157 unsigned int
158 kdp_ml_get_breakinsn(
159 void
160 );