1*d4514f0bSApple OSS Distributions /* 2*d4514f0bSApple OSS Distributions * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. 3*d4514f0bSApple OSS Distributions * 4*d4514f0bSApple OSS Distributions * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5*d4514f0bSApple OSS Distributions * 6*d4514f0bSApple OSS Distributions * This file contains Original Code and/or Modifications of Original Code 7*d4514f0bSApple OSS Distributions * as defined in and that are subject to the Apple Public Source License 8*d4514f0bSApple OSS Distributions * Version 2.0 (the 'License'). You may not use this file except in 9*d4514f0bSApple OSS Distributions * compliance with the License. The rights granted to you under the License 10*d4514f0bSApple OSS Distributions * may not be used to create, or enable the creation or redistribution of, 11*d4514f0bSApple OSS Distributions * unlawful or unlicensed copies of an Apple operating system, or to 12*d4514f0bSApple OSS Distributions * circumvent, violate, or enable the circumvention or violation of, any 13*d4514f0bSApple OSS Distributions * terms of an Apple operating system software license agreement. 14*d4514f0bSApple OSS Distributions * 15*d4514f0bSApple OSS Distributions * Please obtain a copy of the License at 16*d4514f0bSApple OSS Distributions * http://www.opensource.apple.com/apsl/ and read it before using this file. 17*d4514f0bSApple OSS Distributions * 18*d4514f0bSApple OSS Distributions * The Original Code and all software distributed under the License are 19*d4514f0bSApple OSS Distributions * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20*d4514f0bSApple OSS Distributions * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21*d4514f0bSApple OSS Distributions * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22*d4514f0bSApple OSS Distributions * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23*d4514f0bSApple OSS Distributions * Please see the License for the specific language governing rights and 24*d4514f0bSApple OSS Distributions * limitations under the License. 25*d4514f0bSApple OSS Distributions * 26*d4514f0bSApple OSS Distributions * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27*d4514f0bSApple OSS Distributions */ 28*d4514f0bSApple OSS Distributions 29*d4514f0bSApple OSS Distributions #ifndef _KDP_PROTOCOL_H_ 30*d4514f0bSApple OSS Distributions #define _KDP_PROTOCOL_H_ 31*d4514f0bSApple OSS Distributions 32*d4514f0bSApple OSS Distributions /* 33*d4514f0bSApple OSS Distributions * Definition of remote debugger protocol. 34*d4514f0bSApple OSS Distributions */ 35*d4514f0bSApple OSS Distributions 36*d4514f0bSApple OSS Distributions 37*d4514f0bSApple OSS Distributions #ifdef MACH_KERNEL_PRIVATE 38*d4514f0bSApple OSS Distributions #include <mach/vm_prot.h> 39*d4514f0bSApple OSS Distributions #include <mach/boolean.h> 40*d4514f0bSApple OSS Distributions #include <stdint.h> 41*d4514f0bSApple OSS Distributions #endif 42*d4514f0bSApple OSS Distributions 43*d4514f0bSApple OSS Distributions #ifdef KDP_PROXY_PACK_SUPPORT 44*d4514f0bSApple OSS Distributions #pragma pack(1) 45*d4514f0bSApple OSS Distributions #define KDP_PACKED 46*d4514f0bSApple OSS Distributions #else 47*d4514f0bSApple OSS Distributions #define KDP_PACKED __attribute__((packed)) 48*d4514f0bSApple OSS Distributions #endif 49*d4514f0bSApple OSS Distributions 50*d4514f0bSApple OSS Distributions /* 51*d4514f0bSApple OSS Distributions * Retransmit parameters 52*d4514f0bSApple OSS Distributions */ 53*d4514f0bSApple OSS Distributions #if DDEBUG_DEBUG || DEBUG_DEBUG 54*d4514f0bSApple OSS Distributions #define KDP_REXMIT_SECS 20 /* rexmit if no ack in 3 secs */ 55*d4514f0bSApple OSS Distributions #else /* DDEBUG_DEBUG || DEBUG_DEBUG */ 56*d4514f0bSApple OSS Distributions #define KDP_REXMIT_SECS 3 /* rexmit if no ack in 3 secs */ 57*d4514f0bSApple OSS Distributions #endif /* DDEBUG_DEBUG || DEBUG_DEBUG */ 58*d4514f0bSApple OSS Distributions #define KDP_REXMIT_TRIES 8 /* xmit 8 times, then give up */ 59*d4514f0bSApple OSS Distributions 60*d4514f0bSApple OSS Distributions 61*d4514f0bSApple OSS Distributions /* 62*d4514f0bSApple OSS Distributions * (NMI) Attention Max Wait Time 63*d4514f0bSApple OSS Distributions * Remote will resume unless KDP requests is received within this 64*d4514f0bSApple OSS Distributions * many seconds after an attention (nmi) packet is sent. 65*d4514f0bSApple OSS Distributions */ 66*d4514f0bSApple OSS Distributions #define KDP_MAX_ATTN_WAIT 30 /* wait max of 30 seconds */ 67*d4514f0bSApple OSS Distributions 68*d4514f0bSApple OSS Distributions /* 69*d4514f0bSApple OSS Distributions * Well-known UDP port, debugger side. 70*d4514f0bSApple OSS Distributions * FIXME: This is what the 68K guys use, but beats me how they chose it... 71*d4514f0bSApple OSS Distributions */ 72*d4514f0bSApple OSS Distributions #define KDP_REMOTE_PORT 41139 /* pick one and register it */ 73*d4514f0bSApple OSS Distributions 74*d4514f0bSApple OSS Distributions /* 75*d4514f0bSApple OSS Distributions * UDP ports, KDB side. 5 port numbers are reserved for each port (request 76*d4514f0bSApple OSS Distributions * and exception). This allows multiple KDBs to run on one host. 77*d4514f0bSApple OSS Distributions */ 78*d4514f0bSApple OSS Distributions #define UDP_HOST_COMM_BASE 41140 79*d4514f0bSApple OSS Distributions #define UDP_HOST_EXCEP_BASE 41145 80*d4514f0bSApple OSS Distributions #define NUM_UDP_HOST_PORTS 5 81*d4514f0bSApple OSS Distributions 82*d4514f0bSApple OSS Distributions /* 83*d4514f0bSApple OSS Distributions * Requests 84*d4514f0bSApple OSS Distributions */ 85*d4514f0bSApple OSS Distributions typedef enum { 86*d4514f0bSApple OSS Distributions /* connection oriented requests */ 87*d4514f0bSApple OSS Distributions KDP_CONNECT, KDP_DISCONNECT, 88*d4514f0bSApple OSS Distributions 89*d4514f0bSApple OSS Distributions /* obtaining client info */ 90*d4514f0bSApple OSS Distributions KDP_HOSTINFO, KDP_VERSION, KDP_MAXBYTES, 91*d4514f0bSApple OSS Distributions 92*d4514f0bSApple OSS Distributions /* memory access */ 93*d4514f0bSApple OSS Distributions KDP_READMEM, KDP_WRITEMEM, 94*d4514f0bSApple OSS Distributions 95*d4514f0bSApple OSS Distributions /* register access */ 96*d4514f0bSApple OSS Distributions KDP_READREGS, KDP_WRITEREGS, 97*d4514f0bSApple OSS Distributions 98*d4514f0bSApple OSS Distributions /* executable image info */ 99*d4514f0bSApple OSS Distributions KDP_LOAD, KDP_IMAGEPATH, 100*d4514f0bSApple OSS Distributions 101*d4514f0bSApple OSS Distributions /* execution control */ 102*d4514f0bSApple OSS Distributions KDP_SUSPEND, KDP_RESUMECPUS, 103*d4514f0bSApple OSS Distributions 104*d4514f0bSApple OSS Distributions /* exception and termination notification, NOT true requests */ 105*d4514f0bSApple OSS Distributions KDP_EXCEPTION, KDP_TERMINATION, 106*d4514f0bSApple OSS Distributions 107*d4514f0bSApple OSS Distributions /* breakpoint control */ 108*d4514f0bSApple OSS Distributions KDP_BREAKPOINT_SET, KDP_BREAKPOINT_REMOVE, 109*d4514f0bSApple OSS Distributions 110*d4514f0bSApple OSS Distributions /* vm regions */ 111*d4514f0bSApple OSS Distributions KDP_REGIONS, 112*d4514f0bSApple OSS Distributions 113*d4514f0bSApple OSS Distributions /* reattach to a connected host */ 114*d4514f0bSApple OSS Distributions KDP_REATTACH, 115*d4514f0bSApple OSS Distributions 116*d4514f0bSApple OSS Distributions /* remote reboot request */ 117*d4514f0bSApple OSS Distributions KDP_HOSTREBOOT, 118*d4514f0bSApple OSS Distributions 119*d4514f0bSApple OSS Distributions /* memory access (64-bit wide addresses). Version 11 protocol */ 120*d4514f0bSApple OSS Distributions KDP_READMEM64, KDP_WRITEMEM64, 121*d4514f0bSApple OSS Distributions 122*d4514f0bSApple OSS Distributions /* breakpoint control (64-bit wide addresses). Version 11 protocol */ 123*d4514f0bSApple OSS Distributions KDP_BREAKPOINT64_SET, KDP_BREAKPOINT64_REMOVE, 124*d4514f0bSApple OSS Distributions 125*d4514f0bSApple OSS Distributions /* kernel version string, like "xnu-1234.5~6". Version 11 protocol */ 126*d4514f0bSApple OSS Distributions KDP_KERNELVERSION, 127*d4514f0bSApple OSS Distributions 128*d4514f0bSApple OSS Distributions /* physical memory access (64-bit wide addresses). Version 12 protocol */ 129*d4514f0bSApple OSS Distributions KDP_READPHYSMEM64, KDP_WRITEPHYSMEM64, 130*d4514f0bSApple OSS Distributions 131*d4514f0bSApple OSS Distributions /* ioport access (8-, 16-, and 32-bit) */ 132*d4514f0bSApple OSS Distributions KDP_READIOPORT, KDP_WRITEIOPORT, 133*d4514f0bSApple OSS Distributions 134*d4514f0bSApple OSS Distributions /* msr access (64-bit) */ 135*d4514f0bSApple OSS Distributions KDP_READMSR64, KDP_WRITEMSR64, 136*d4514f0bSApple OSS Distributions 137*d4514f0bSApple OSS Distributions /* get/dump panic/corefile info */ 138*d4514f0bSApple OSS Distributions KDP_DUMPINFO, 139*d4514f0bSApple OSS Distributions 140*d4514f0bSApple OSS Distributions /* keep this last */ 141*d4514f0bSApple OSS Distributions KDP_INVALID_REQUEST 142*d4514f0bSApple OSS Distributions } kdp_req_t; 143*d4514f0bSApple OSS Distributions 144*d4514f0bSApple OSS Distributions typedef enum { 145*d4514f0bSApple OSS Distributions KDP_DUMPINFO_GETINFO = 0x00000000, 146*d4514f0bSApple OSS Distributions KDP_DUMPINFO_SETINFO = 0x00000001, 147*d4514f0bSApple OSS Distributions KDP_DUMPINFO_CORE = 0x00000102, 148*d4514f0bSApple OSS Distributions KDP_DUMPINFO_PANICLOG = 0x00000103, 149*d4514f0bSApple OSS Distributions KDP_DUMPINFO_SYSTEMLOG = 0x00000104, 150*d4514f0bSApple OSS Distributions KDP_DUMPINFO_DISABLE = 0x00000105, 151*d4514f0bSApple OSS Distributions KDP_DUMPINFO_MASK = 0x00000FFF, 152*d4514f0bSApple OSS Distributions KDP_DUMPINFO_DUMP = 0x00000100, 153*d4514f0bSApple OSS Distributions 154*d4514f0bSApple OSS Distributions KDP_DUMPINFO_REBOOT = 0x10000000, 155*d4514f0bSApple OSS Distributions KDP_DUMPINFO_NORESUME = 0x20000000, 156*d4514f0bSApple OSS Distributions KDP_DUMPINFO_RESUME = 0x00000000, /* default behaviour */ 157*d4514f0bSApple OSS Distributions KDP_DUMPINFO_NOINTR = 0x40000000, /* don't interrupt */ 158*d4514f0bSApple OSS Distributions KDP_DUMPINFO_INTR = 0x00000000, /* default behaviour */ 159*d4514f0bSApple OSS Distributions } kdp_dumpinfo_t; 160*d4514f0bSApple OSS Distributions 161*d4514f0bSApple OSS Distributions /* 162*d4514f0bSApple OSS Distributions * Common KDP packet header 163*d4514f0bSApple OSS Distributions * NOTE: kgmacros has a non-symboled version of kdp_hdr_t so that some basic information. 164*d4514f0bSApple OSS Distributions * can be gathered from a kernel without any symbols. changes to this structure 165*d4514f0bSApple OSS Distributions * need to be reflected in kgmacros as well. 166*d4514f0bSApple OSS Distributions */ 167*d4514f0bSApple OSS Distributions typedef struct { 168*d4514f0bSApple OSS Distributions kdp_req_t request:7; /* kdp_req_t, request type */ 169*d4514f0bSApple OSS Distributions unsigned is_reply:1; /* 0 => request, 1 => reply */ 170*d4514f0bSApple OSS Distributions unsigned seq:8; /* sequence number within session */ 171*d4514f0bSApple OSS Distributions unsigned len:16; /* length of entire pkt including hdr */ 172*d4514f0bSApple OSS Distributions unsigned key; /* session key */ 173*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_hdr_t; 174*d4514f0bSApple OSS Distributions 175*d4514f0bSApple OSS Distributions /* 176*d4514f0bSApple OSS Distributions * KDP errors 177*d4514f0bSApple OSS Distributions */ 178*d4514f0bSApple OSS Distributions typedef enum { 179*d4514f0bSApple OSS Distributions KDPERR_NO_ERROR = 0, 180*d4514f0bSApple OSS Distributions KDPERR_ALREADY_CONNECTED, 181*d4514f0bSApple OSS Distributions KDPERR_BAD_NBYTES, 182*d4514f0bSApple OSS Distributions KDPERR_BADFLAVOR, /* bad flavor in w/r regs */ 183*d4514f0bSApple OSS Distributions KDPERR_BAD_ACCESS, /* memory reference failure */ 184*d4514f0bSApple OSS Distributions 185*d4514f0bSApple OSS Distributions KDPERR_MAX_BREAKPOINTS = 100, 186*d4514f0bSApple OSS Distributions KDPERR_BREAKPOINT_NOT_FOUND = 101, 187*d4514f0bSApple OSS Distributions KDPERR_BREAKPOINT_ALREADY_SET = 102 188*d4514f0bSApple OSS Distributions } kdp_error_t; 189*d4514f0bSApple OSS Distributions 190*d4514f0bSApple OSS Distributions #if defined(__x86_64__) 191*d4514f0bSApple OSS Distributions #define KDPERR_ACCESS(_req, _ret) \ 192*d4514f0bSApple OSS Distributions (((_req) == (uint32_t)(_ret)) ? KDPERR_NO_ERROR : KDPERR_BAD_ACCESS) 193*d4514f0bSApple OSS Distributions #else 194*d4514f0bSApple OSS Distributions #define KDPERR_ACCESS(req, cnt) (KDPERR_NO_ERROR) 195*d4514f0bSApple OSS Distributions #endif /* x86_64 */ 196*d4514f0bSApple OSS Distributions 197*d4514f0bSApple OSS Distributions 198*d4514f0bSApple OSS Distributions /* 199*d4514f0bSApple OSS Distributions * KDP requests and reply packet formats 200*d4514f0bSApple OSS Distributions */ 201*d4514f0bSApple OSS Distributions 202*d4514f0bSApple OSS Distributions /* 203*d4514f0bSApple OSS Distributions * KDP_CONNECT 204*d4514f0bSApple OSS Distributions */ 205*d4514f0bSApple OSS Distributions typedef struct { /* KDP_CONNECT request */ 206*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 207*d4514f0bSApple OSS Distributions uint16_t req_reply_port; /* udp port which to send replies */ 208*d4514f0bSApple OSS Distributions uint16_t exc_note_port; /* udp port which to send exc notes */ 209*d4514f0bSApple OSS Distributions char greeting[0]; /* "greetings", nul-terminated */ 210*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_connect_req_t; 211*d4514f0bSApple OSS Distributions 212*d4514f0bSApple OSS Distributions typedef struct { /* KDP_CONNECT reply */ 213*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 214*d4514f0bSApple OSS Distributions kdp_error_t error; 215*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_connect_reply_t; 216*d4514f0bSApple OSS Distributions 217*d4514f0bSApple OSS Distributions /* 218*d4514f0bSApple OSS Distributions * KDP_DISCONNECT 219*d4514f0bSApple OSS Distributions */ 220*d4514f0bSApple OSS Distributions typedef struct { /* KDP_DISCONNECT request */ 221*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 222*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_disconnect_req_t; 223*d4514f0bSApple OSS Distributions 224*d4514f0bSApple OSS Distributions typedef struct { /* KDP_DISCONNECT reply */ 225*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 226*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_disconnect_reply_t; 227*d4514f0bSApple OSS Distributions 228*d4514f0bSApple OSS Distributions /* 229*d4514f0bSApple OSS Distributions * KDP_REATTACH 230*d4514f0bSApple OSS Distributions */ 231*d4514f0bSApple OSS Distributions typedef struct { 232*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 233*d4514f0bSApple OSS Distributions uint16_t req_reply_port; /* udp port which to send replies */ 234*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_reattach_req_t; 235*d4514f0bSApple OSS Distributions 236*d4514f0bSApple OSS Distributions /* 237*d4514f0bSApple OSS Distributions * KDP_HOSTINFO 238*d4514f0bSApple OSS Distributions */ 239*d4514f0bSApple OSS Distributions typedef struct { /* KDP_HOSTINFO request */ 240*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 241*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_hostinfo_req_t; 242*d4514f0bSApple OSS Distributions 243*d4514f0bSApple OSS Distributions typedef struct { 244*d4514f0bSApple OSS Distributions uint32_t cpus_mask; /* bit is 1 if cpu present */ 245*d4514f0bSApple OSS Distributions uint32_t cpu_type; 246*d4514f0bSApple OSS Distributions uint32_t cpu_subtype; 247*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_hostinfo_t; 248*d4514f0bSApple OSS Distributions 249*d4514f0bSApple OSS Distributions typedef struct { /* KDP_HOSTINFO reply */ 250*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 251*d4514f0bSApple OSS Distributions kdp_hostinfo_t hostinfo; 252*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_hostinfo_reply_t; 253*d4514f0bSApple OSS Distributions 254*d4514f0bSApple OSS Distributions /* 255*d4514f0bSApple OSS Distributions * KDP_VERSION 256*d4514f0bSApple OSS Distributions */ 257*d4514f0bSApple OSS Distributions typedef struct { /* KDP_VERSION request */ 258*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 259*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_version_req_t; 260*d4514f0bSApple OSS Distributions 261*d4514f0bSApple OSS Distributions #define KDP_FEATURE_BP 0x1 /* local breakpoint support */ 262*d4514f0bSApple OSS Distributions 263*d4514f0bSApple OSS Distributions typedef struct { /* KDP_VERSION reply */ 264*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 265*d4514f0bSApple OSS Distributions uint32_t version; 266*d4514f0bSApple OSS Distributions uint32_t feature; 267*d4514f0bSApple OSS Distributions uint32_t pad0; 268*d4514f0bSApple OSS Distributions uint32_t pad1; 269*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_version_reply_t; 270*d4514f0bSApple OSS Distributions 271*d4514f0bSApple OSS Distributions #define VM_PROT_VOLATILE ((vm_prot_t) 0x08) /* not cacheable */ 272*d4514f0bSApple OSS Distributions #define VM_PROT_SPARSE ((vm_prot_t) 0x10) /* sparse addr space */ 273*d4514f0bSApple OSS Distributions 274*d4514f0bSApple OSS Distributions /* 275*d4514f0bSApple OSS Distributions * KDP_REGIONS 276*d4514f0bSApple OSS Distributions */ 277*d4514f0bSApple OSS Distributions typedef struct { /* KDP_REGIONS request */ 278*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 279*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_regions_req_t; 280*d4514f0bSApple OSS Distributions 281*d4514f0bSApple OSS Distributions typedef struct { 282*d4514f0bSApple OSS Distributions uint32_t address; 283*d4514f0bSApple OSS Distributions uint32_t nbytes; 284*d4514f0bSApple OSS Distributions uint32_t protection; /* vm_prot_t */ 285*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_region_t; 286*d4514f0bSApple OSS Distributions 287*d4514f0bSApple OSS Distributions typedef struct { /* KDP_REGIONS reply */ 288*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 289*d4514f0bSApple OSS Distributions uint32_t nregions; 290*d4514f0bSApple OSS Distributions kdp_region_t regions[0]; 291*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_regions_reply_t; 292*d4514f0bSApple OSS Distributions 293*d4514f0bSApple OSS Distributions /* 294*d4514f0bSApple OSS Distributions * KDP_MAXBYTES 295*d4514f0bSApple OSS Distributions */ 296*d4514f0bSApple OSS Distributions typedef struct { /* KDP_MAXBYTES request */ 297*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 298*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_maxbytes_req_t; 299*d4514f0bSApple OSS Distributions 300*d4514f0bSApple OSS Distributions typedef struct { /* KDP_MAXBYTES reply */ 301*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 302*d4514f0bSApple OSS Distributions uint32_t max_bytes; 303*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_maxbytes_reply_t; 304*d4514f0bSApple OSS Distributions 305*d4514f0bSApple OSS Distributions /* 306*d4514f0bSApple OSS Distributions * KDP_READMEM 307*d4514f0bSApple OSS Distributions */ 308*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READMEM request */ 309*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 310*d4514f0bSApple OSS Distributions uint32_t address; 311*d4514f0bSApple OSS Distributions uint32_t nbytes; 312*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readmem_req_t; 313*d4514f0bSApple OSS Distributions 314*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READMEM reply */ 315*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 316*d4514f0bSApple OSS Distributions kdp_error_t error; 317*d4514f0bSApple OSS Distributions char data[0]; 318*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readmem_reply_t; 319*d4514f0bSApple OSS Distributions 320*d4514f0bSApple OSS Distributions /* 321*d4514f0bSApple OSS Distributions * KDP_READMEM64 322*d4514f0bSApple OSS Distributions */ 323*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READMEM64 request */ 324*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 325*d4514f0bSApple OSS Distributions uint64_t address; 326*d4514f0bSApple OSS Distributions uint32_t nbytes; 327*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readmem64_req_t; 328*d4514f0bSApple OSS Distributions 329*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READMEM64 reply */ 330*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 331*d4514f0bSApple OSS Distributions kdp_error_t error; 332*d4514f0bSApple OSS Distributions char data[0]; 333*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readmem64_reply_t; 334*d4514f0bSApple OSS Distributions 335*d4514f0bSApple OSS Distributions /* 336*d4514f0bSApple OSS Distributions * KDP_READPHYSMEM64 337*d4514f0bSApple OSS Distributions */ 338*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READPHYSMEM64 request */ 339*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 340*d4514f0bSApple OSS Distributions uint64_t address; 341*d4514f0bSApple OSS Distributions uint32_t nbytes; 342*d4514f0bSApple OSS Distributions uint16_t lcpu; 343*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readphysmem64_req_t; 344*d4514f0bSApple OSS Distributions 345*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READPHYSMEM64 reply */ 346*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 347*d4514f0bSApple OSS Distributions kdp_error_t error; 348*d4514f0bSApple OSS Distributions char data[0]; 349*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readphysmem64_reply_t; 350*d4514f0bSApple OSS Distributions 351*d4514f0bSApple OSS Distributions /* 352*d4514f0bSApple OSS Distributions * KDP_WRITEMEM 353*d4514f0bSApple OSS Distributions */ 354*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEMEM request */ 355*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 356*d4514f0bSApple OSS Distributions uint32_t address; 357*d4514f0bSApple OSS Distributions uint32_t nbytes; 358*d4514f0bSApple OSS Distributions char data[0]; 359*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writemem_req_t; 360*d4514f0bSApple OSS Distributions 361*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEMEM reply */ 362*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 363*d4514f0bSApple OSS Distributions kdp_error_t error; 364*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writemem_reply_t; 365*d4514f0bSApple OSS Distributions 366*d4514f0bSApple OSS Distributions /* 367*d4514f0bSApple OSS Distributions * KDP_WRITEMEM64 368*d4514f0bSApple OSS Distributions */ 369*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEMEM64 request */ 370*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 371*d4514f0bSApple OSS Distributions uint64_t address; 372*d4514f0bSApple OSS Distributions uint32_t nbytes; 373*d4514f0bSApple OSS Distributions char data[0]; 374*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writemem64_req_t; 375*d4514f0bSApple OSS Distributions 376*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEMEM64 reply */ 377*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 378*d4514f0bSApple OSS Distributions kdp_error_t error; 379*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writemem64_reply_t; 380*d4514f0bSApple OSS Distributions 381*d4514f0bSApple OSS Distributions /* 382*d4514f0bSApple OSS Distributions * KDP_WRITEPHYSMEM64 383*d4514f0bSApple OSS Distributions */ 384*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEPHYSMEM64 request */ 385*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 386*d4514f0bSApple OSS Distributions uint64_t address; 387*d4514f0bSApple OSS Distributions uint32_t nbytes; 388*d4514f0bSApple OSS Distributions uint16_t lcpu; 389*d4514f0bSApple OSS Distributions char data[0]; 390*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writephysmem64_req_t; 391*d4514f0bSApple OSS Distributions 392*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEPHYSMEM64 reply */ 393*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 394*d4514f0bSApple OSS Distributions kdp_error_t error; 395*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writephysmem64_reply_t; 396*d4514f0bSApple OSS Distributions 397*d4514f0bSApple OSS Distributions /* 398*d4514f0bSApple OSS Distributions * KDP_WRITEIOPORT 399*d4514f0bSApple OSS Distributions */ 400*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEIOPORT request */ 401*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 402*d4514f0bSApple OSS Distributions uint16_t lcpu; 403*d4514f0bSApple OSS Distributions uint16_t address; 404*d4514f0bSApple OSS Distributions uint16_t nbytes; 405*d4514f0bSApple OSS Distributions char data[0]; 406*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writeioport_req_t; 407*d4514f0bSApple OSS Distributions 408*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEIOPORT reply */ 409*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 410*d4514f0bSApple OSS Distributions kdp_error_t error; 411*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writeioport_reply_t; 412*d4514f0bSApple OSS Distributions 413*d4514f0bSApple OSS Distributions /* 414*d4514f0bSApple OSS Distributions * KDP_READIOPORT 415*d4514f0bSApple OSS Distributions */ 416*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READIOPORT request */ 417*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 418*d4514f0bSApple OSS Distributions uint16_t lcpu; 419*d4514f0bSApple OSS Distributions uint16_t address; 420*d4514f0bSApple OSS Distributions uint16_t nbytes; 421*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readioport_req_t; 422*d4514f0bSApple OSS Distributions 423*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READIOPORT reply */ 424*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 425*d4514f0bSApple OSS Distributions kdp_error_t error; 426*d4514f0bSApple OSS Distributions char data[0]; 427*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readioport_reply_t; 428*d4514f0bSApple OSS Distributions 429*d4514f0bSApple OSS Distributions 430*d4514f0bSApple OSS Distributions /* 431*d4514f0bSApple OSS Distributions * KDP_WRITEMSR64 432*d4514f0bSApple OSS Distributions */ 433*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEMSR64 request */ 434*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 435*d4514f0bSApple OSS Distributions uint32_t address; 436*d4514f0bSApple OSS Distributions uint16_t lcpu; 437*d4514f0bSApple OSS Distributions char data[0]; 438*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writemsr64_req_t; 439*d4514f0bSApple OSS Distributions 440*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEMSR64 reply */ 441*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 442*d4514f0bSApple OSS Distributions kdp_error_t error; 443*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writemsr64_reply_t; 444*d4514f0bSApple OSS Distributions 445*d4514f0bSApple OSS Distributions /* 446*d4514f0bSApple OSS Distributions * KDP_READMSR64 447*d4514f0bSApple OSS Distributions */ 448*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READMSR64 request */ 449*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 450*d4514f0bSApple OSS Distributions uint32_t address; 451*d4514f0bSApple OSS Distributions uint16_t lcpu; 452*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readmsr64_req_t; 453*d4514f0bSApple OSS Distributions 454*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READMSR64 reply */ 455*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 456*d4514f0bSApple OSS Distributions kdp_error_t error; 457*d4514f0bSApple OSS Distributions char data[0]; 458*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readmsr64_reply_t; 459*d4514f0bSApple OSS Distributions 460*d4514f0bSApple OSS Distributions 461*d4514f0bSApple OSS Distributions /* 462*d4514f0bSApple OSS Distributions * KDP_READREGS 463*d4514f0bSApple OSS Distributions */ 464*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READREGS request */ 465*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 466*d4514f0bSApple OSS Distributions uint32_t cpu; 467*d4514f0bSApple OSS Distributions uint32_t flavor; 468*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readregs_req_t; 469*d4514f0bSApple OSS Distributions 470*d4514f0bSApple OSS Distributions typedef struct { /* KDP_READREGS reply */ 471*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 472*d4514f0bSApple OSS Distributions kdp_error_t error; /* could be KDPERR_BADFLAVOR */ 473*d4514f0bSApple OSS Distributions char data[0]; 474*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_readregs_reply_t; 475*d4514f0bSApple OSS Distributions 476*d4514f0bSApple OSS Distributions /* 477*d4514f0bSApple OSS Distributions * KDP_WRITEREGS 478*d4514f0bSApple OSS Distributions */ 479*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEREGS request */ 480*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 481*d4514f0bSApple OSS Distributions uint32_t cpu; 482*d4514f0bSApple OSS Distributions uint32_t flavor; 483*d4514f0bSApple OSS Distributions char data[0]; 484*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writeregs_req_t; 485*d4514f0bSApple OSS Distributions 486*d4514f0bSApple OSS Distributions typedef struct { /* KDP_WRITEREGS reply */ 487*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 488*d4514f0bSApple OSS Distributions kdp_error_t error; 489*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_writeregs_reply_t; 490*d4514f0bSApple OSS Distributions 491*d4514f0bSApple OSS Distributions /* 492*d4514f0bSApple OSS Distributions * KDP_LOAD 493*d4514f0bSApple OSS Distributions */ 494*d4514f0bSApple OSS Distributions typedef struct { /* KDP_LOAD request */ 495*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 496*d4514f0bSApple OSS Distributions char file_args[0]; 497*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_load_req_t; 498*d4514f0bSApple OSS Distributions 499*d4514f0bSApple OSS Distributions typedef struct { /* KDP_LOAD reply */ 500*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 501*d4514f0bSApple OSS Distributions kdp_error_t error; 502*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_load_reply_t; 503*d4514f0bSApple OSS Distributions 504*d4514f0bSApple OSS Distributions /* 505*d4514f0bSApple OSS Distributions * KDP_IMAGEPATH 506*d4514f0bSApple OSS Distributions */ 507*d4514f0bSApple OSS Distributions typedef struct { /* KDP_IMAGEPATH request */ 508*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 509*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_imagepath_req_t; 510*d4514f0bSApple OSS Distributions 511*d4514f0bSApple OSS Distributions typedef struct { /* KDP_IMAGEPATH reply */ 512*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 513*d4514f0bSApple OSS Distributions char path[0]; 514*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_imagepath_reply_t; 515*d4514f0bSApple OSS Distributions 516*d4514f0bSApple OSS Distributions /* 517*d4514f0bSApple OSS Distributions * KDP_SUSPEND 518*d4514f0bSApple OSS Distributions */ 519*d4514f0bSApple OSS Distributions typedef struct { /* KDP_SUSPEND request */ 520*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 521*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_suspend_req_t; 522*d4514f0bSApple OSS Distributions 523*d4514f0bSApple OSS Distributions typedef struct { /* KDP_SUSPEND reply */ 524*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 525*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_suspend_reply_t; 526*d4514f0bSApple OSS Distributions 527*d4514f0bSApple OSS Distributions /* 528*d4514f0bSApple OSS Distributions * KDP_RESUMECPUS 529*d4514f0bSApple OSS Distributions */ 530*d4514f0bSApple OSS Distributions typedef struct { /* KDP_RESUMECPUS request */ 531*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 532*d4514f0bSApple OSS Distributions uint32_t cpu_mask; 533*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_resumecpus_req_t; 534*d4514f0bSApple OSS Distributions 535*d4514f0bSApple OSS Distributions typedef struct { /* KDP_RESUMECPUS reply */ 536*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 537*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_resumecpus_reply_t; 538*d4514f0bSApple OSS Distributions 539*d4514f0bSApple OSS Distributions /* 540*d4514f0bSApple OSS Distributions * KDP_BREAKPOINT_SET and KDP_BREAKPOINT_REMOVE 541*d4514f0bSApple OSS Distributions */ 542*d4514f0bSApple OSS Distributions 543*d4514f0bSApple OSS Distributions typedef struct { 544*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 545*d4514f0bSApple OSS Distributions uint32_t address; 546*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_breakpoint_req_t; 547*d4514f0bSApple OSS Distributions 548*d4514f0bSApple OSS Distributions typedef struct { 549*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 550*d4514f0bSApple OSS Distributions kdp_error_t error; 551*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_breakpoint_reply_t; 552*d4514f0bSApple OSS Distributions 553*d4514f0bSApple OSS Distributions /* 554*d4514f0bSApple OSS Distributions * KDP_BREAKPOINT64_SET and KDP_BREAKPOINT64_REMOVE 555*d4514f0bSApple OSS Distributions */ 556*d4514f0bSApple OSS Distributions 557*d4514f0bSApple OSS Distributions typedef struct { 558*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 559*d4514f0bSApple OSS Distributions uint64_t address; 560*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_breakpoint64_req_t; 561*d4514f0bSApple OSS Distributions 562*d4514f0bSApple OSS Distributions typedef struct { 563*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 564*d4514f0bSApple OSS Distributions kdp_error_t error; 565*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_breakpoint64_reply_t; 566*d4514f0bSApple OSS Distributions 567*d4514f0bSApple OSS Distributions /* 568*d4514f0bSApple OSS Distributions * Exception notifications 569*d4514f0bSApple OSS Distributions * (Exception notifications are not requests, and in fact travel from 570*d4514f0bSApple OSS Distributions * the remote debugger to the gdb agent KDB.) 571*d4514f0bSApple OSS Distributions */ 572*d4514f0bSApple OSS Distributions typedef struct { /* exc. info for one cpu */ 573*d4514f0bSApple OSS Distributions uint32_t cpu; 574*d4514f0bSApple OSS Distributions /* 575*d4514f0bSApple OSS Distributions * Following info is defined as 576*d4514f0bSApple OSS Distributions * per <mach/exception.h> 577*d4514f0bSApple OSS Distributions */ 578*d4514f0bSApple OSS Distributions uint32_t exception; 579*d4514f0bSApple OSS Distributions uint32_t code; 580*d4514f0bSApple OSS Distributions uint32_t subcode; 581*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_exc_info_t; 582*d4514f0bSApple OSS Distributions 583*d4514f0bSApple OSS Distributions typedef struct { /* KDP_EXCEPTION notification */ 584*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 585*d4514f0bSApple OSS Distributions uint32_t n_exc_info; 586*d4514f0bSApple OSS Distributions kdp_exc_info_t exc_info[0]; 587*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_exception_t; 588*d4514f0bSApple OSS Distributions 589*d4514f0bSApple OSS Distributions typedef struct { /* KDP_EXCEPTION acknowledgement */ 590*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 591*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_exception_ack_t; 592*d4514f0bSApple OSS Distributions 593*d4514f0bSApple OSS Distributions /* 594*d4514f0bSApple OSS Distributions * KDP_KERNELVERSION 595*d4514f0bSApple OSS Distributions */ 596*d4514f0bSApple OSS Distributions typedef struct { /* KDP_KERNELVERSION request */ 597*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 598*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_kernelversion_req_t; 599*d4514f0bSApple OSS Distributions 600*d4514f0bSApple OSS Distributions typedef struct { /* KDP_KERNELVERSION reply */ 601*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 602*d4514f0bSApple OSS Distributions char version[0]; 603*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_kernelversion_reply_t; 604*d4514f0bSApple OSS Distributions 605*d4514f0bSApple OSS Distributions 606*d4514f0bSApple OSS Distributions /* 607*d4514f0bSApple OSS Distributions * Child termination messages 608*d4514f0bSApple OSS Distributions */ 609*d4514f0bSApple OSS Distributions typedef enum { 610*d4514f0bSApple OSS Distributions KDP_FAULT = 0, /* child took fault (internal use) */ 611*d4514f0bSApple OSS Distributions KDP_EXIT, /* child exited */ 612*d4514f0bSApple OSS Distributions KDP_POWEROFF, /* child power-off */ 613*d4514f0bSApple OSS Distributions KDP_REBOOT, /* child reboot */ 614*d4514f0bSApple OSS Distributions KDP_COMMAND_MODE /* child exit to mon command_mode */ 615*d4514f0bSApple OSS Distributions } kdp_termination_code_t; 616*d4514f0bSApple OSS Distributions 617*d4514f0bSApple OSS Distributions typedef struct { /* KDP_TERMINATION notification */ 618*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 619*d4514f0bSApple OSS Distributions uint32_t term_code; /* kdp_termination_code_t */ 620*d4514f0bSApple OSS Distributions uint32_t exit_code; 621*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_termination_t; 622*d4514f0bSApple OSS Distributions 623*d4514f0bSApple OSS Distributions typedef struct { 624*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 625*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_termination_ack_t; 626*d4514f0bSApple OSS Distributions 627*d4514f0bSApple OSS Distributions /* 628*d4514f0bSApple OSS Distributions * KDP_DUMPINFO 629*d4514f0bSApple OSS Distributions */ 630*d4514f0bSApple OSS Distributions typedef struct { /* KDP_DUMPINFO request */ 631*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 632*d4514f0bSApple OSS Distributions char name[50]; 633*d4514f0bSApple OSS Distributions char destip[16]; 634*d4514f0bSApple OSS Distributions char routerip[16]; 635*d4514f0bSApple OSS Distributions uint32_t port; 636*d4514f0bSApple OSS Distributions kdp_dumpinfo_t type; 637*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_dumpinfo_req_t; 638*d4514f0bSApple OSS Distributions 639*d4514f0bSApple OSS Distributions typedef struct { /* KDP_DUMPINFO reply */ 640*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 641*d4514f0bSApple OSS Distributions char name[50]; 642*d4514f0bSApple OSS Distributions char destip[16]; 643*d4514f0bSApple OSS Distributions char routerip[16]; 644*d4514f0bSApple OSS Distributions uint32_t port; 645*d4514f0bSApple OSS Distributions kdp_dumpinfo_t type; 646*d4514f0bSApple OSS Distributions } KDP_PACKED kdp_dumpinfo_reply_t; 647*d4514f0bSApple OSS Distributions 648*d4514f0bSApple OSS Distributions 649*d4514f0bSApple OSS Distributions typedef union { 650*d4514f0bSApple OSS Distributions kdp_hdr_t hdr; 651*d4514f0bSApple OSS Distributions kdp_connect_req_t connect_req; 652*d4514f0bSApple OSS Distributions kdp_connect_reply_t connect_reply; 653*d4514f0bSApple OSS Distributions kdp_disconnect_req_t disconnect_req; 654*d4514f0bSApple OSS Distributions kdp_disconnect_reply_t disconnect_reply; 655*d4514f0bSApple OSS Distributions kdp_hostinfo_req_t hostinfo_req; 656*d4514f0bSApple OSS Distributions kdp_hostinfo_reply_t hostinfo_reply; 657*d4514f0bSApple OSS Distributions kdp_version_req_t version_req; 658*d4514f0bSApple OSS Distributions kdp_version_reply_t version_reply; 659*d4514f0bSApple OSS Distributions kdp_maxbytes_req_t maxbytes_req; 660*d4514f0bSApple OSS Distributions kdp_maxbytes_reply_t maxbytes_reply; 661*d4514f0bSApple OSS Distributions kdp_readmem_req_t readmem_req; 662*d4514f0bSApple OSS Distributions kdp_readmem_reply_t readmem_reply; 663*d4514f0bSApple OSS Distributions kdp_readmem64_req_t readmem64_req; 664*d4514f0bSApple OSS Distributions kdp_readmem64_reply_t readmem64_reply; 665*d4514f0bSApple OSS Distributions kdp_readphysmem64_req_t readphysmem64_req; 666*d4514f0bSApple OSS Distributions kdp_readphysmem64_reply_t readphysmem64_reply; 667*d4514f0bSApple OSS Distributions kdp_writemem_req_t writemem_req; 668*d4514f0bSApple OSS Distributions kdp_writemem_reply_t writemem_reply; 669*d4514f0bSApple OSS Distributions kdp_writemem64_req_t writemem64_req; 670*d4514f0bSApple OSS Distributions kdp_writemem64_reply_t writemem64_reply; 671*d4514f0bSApple OSS Distributions kdp_writephysmem64_req_t writephysmem64_req; 672*d4514f0bSApple OSS Distributions kdp_writephysmem64_reply_t writephysmem64_reply; 673*d4514f0bSApple OSS Distributions kdp_readregs_req_t readregs_req; 674*d4514f0bSApple OSS Distributions kdp_readregs_reply_t readregs_reply; 675*d4514f0bSApple OSS Distributions kdp_writeregs_req_t writeregs_req; 676*d4514f0bSApple OSS Distributions kdp_writeregs_reply_t writeregs_reply; 677*d4514f0bSApple OSS Distributions kdp_load_req_t load_req; 678*d4514f0bSApple OSS Distributions kdp_load_reply_t load_reply; 679*d4514f0bSApple OSS Distributions kdp_imagepath_req_t imagepath_req; 680*d4514f0bSApple OSS Distributions kdp_imagepath_reply_t imagepath_reply; 681*d4514f0bSApple OSS Distributions kdp_suspend_req_t suspend_req; 682*d4514f0bSApple OSS Distributions kdp_suspend_reply_t suspend_reply; 683*d4514f0bSApple OSS Distributions kdp_resumecpus_req_t resumecpus_req; 684*d4514f0bSApple OSS Distributions kdp_resumecpus_reply_t resumecpus_reply; 685*d4514f0bSApple OSS Distributions kdp_exception_t exception; 686*d4514f0bSApple OSS Distributions kdp_exception_ack_t exception_ack; 687*d4514f0bSApple OSS Distributions kdp_termination_t termination; 688*d4514f0bSApple OSS Distributions kdp_termination_ack_t termination_ack; 689*d4514f0bSApple OSS Distributions kdp_breakpoint_req_t breakpoint_req; 690*d4514f0bSApple OSS Distributions kdp_breakpoint_reply_t breakpoint_reply; 691*d4514f0bSApple OSS Distributions kdp_breakpoint64_req_t breakpoint64_req; 692*d4514f0bSApple OSS Distributions kdp_breakpoint64_reply_t breakpoint64_reply; 693*d4514f0bSApple OSS Distributions kdp_reattach_req_t reattach_req; 694*d4514f0bSApple OSS Distributions kdp_regions_req_t regions_req; 695*d4514f0bSApple OSS Distributions kdp_regions_reply_t regions_reply; 696*d4514f0bSApple OSS Distributions kdp_kernelversion_req_t kernelversion_req; 697*d4514f0bSApple OSS Distributions kdp_kernelversion_reply_t kernelversion_reply; 698*d4514f0bSApple OSS Distributions kdp_readioport_req_t readioport_req; 699*d4514f0bSApple OSS Distributions kdp_readioport_reply_t readioport_reply; 700*d4514f0bSApple OSS Distributions kdp_writeioport_req_t writeioport_req; 701*d4514f0bSApple OSS Distributions kdp_writeioport_reply_t writeioport_reply; 702*d4514f0bSApple OSS Distributions kdp_readmsr64_req_t readmsr64_req; 703*d4514f0bSApple OSS Distributions kdp_readmsr64_reply_t readmsr64_reply; 704*d4514f0bSApple OSS Distributions kdp_writemsr64_req_t writemsr64_req; 705*d4514f0bSApple OSS Distributions kdp_writemsr64_reply_t writemsr64_reply; 706*d4514f0bSApple OSS Distributions kdp_dumpinfo_req_t dumpinfo_req; 707*d4514f0bSApple OSS Distributions kdp_dumpinfo_reply_t dumpinfo_reply; 708*d4514f0bSApple OSS Distributions } kdp_pkt_t; 709*d4514f0bSApple OSS Distributions 710*d4514f0bSApple OSS Distributions #define MAX_KDP_PKT_SIZE 1200 /* max packet size */ 711*d4514f0bSApple OSS Distributions #define MAX_KDP_DATA_SIZE 1024 /* max r/w data per packet */ 712*d4514f0bSApple OSS Distributions 713*d4514f0bSApple OSS Distributions /* 714*d4514f0bSApple OSS Distributions * Support relatively small request/responses here. 715*d4514f0bSApple OSS Distributions * If kgmacros needs to make a larger request, increase 716*d4514f0bSApple OSS Distributions * this buffer size 717*d4514f0bSApple OSS Distributions */ 718*d4514f0bSApple OSS Distributions #define KDP_MANUAL_PACKET_SIZE 128 719*d4514f0bSApple OSS Distributions struct kdp_manual_pkt { 720*d4514f0bSApple OSS Distributions unsigned char data[KDP_MANUAL_PACKET_SIZE]; 721*d4514f0bSApple OSS Distributions unsigned int len; 722*d4514f0bSApple OSS Distributions boolean_t input; 723*d4514f0bSApple OSS Distributions } KDP_PACKED; 724*d4514f0bSApple OSS Distributions 725*d4514f0bSApple OSS Distributions #ifdef KDP_PROXY_PACK_SUPPORT 726*d4514f0bSApple OSS Distributions #pragma pack() 727*d4514f0bSApple OSS Distributions #endif 728*d4514f0bSApple OSS Distributions 729*d4514f0bSApple OSS Distributions #endif // _KDP_PROTOCOL_H_ 730