]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/kdp/kdp_protocol.h
xnu-7195.101.1.tar.gz
[apple/xnu.git] / osfmk / kdp / kdp_protocol.h
index 8cc6122886e76a95ad733cc7a9138b6d41943a4c..1b17ed0e041542576821c94c4cb095a6fc77f308 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
+ *
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * unlawful or unlicensed copies of an Apple operating system, or to
  * circumvent, violate, or enable the circumvention or violation of, any
  * terms of an Apple operating system software license agreement.
- * 
+ *
  * Please obtain a copy of the License at
  * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
+ *
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
@@ -22,7 +22,7 @@
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- * 
+ *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 
@@ -35,9 +35,9 @@
 
 
 #ifdef MACH_KERNEL_PRIVATE
-#include       <mach/vm_prot.h>
+#include        <mach/vm_prot.h>
 #include    <mach/boolean.h>
-#include       <stdint.h>
+#include        <stdint.h>
 #endif
 
 #ifdef KDP_PROXY_PACK_SUPPORT
 /*
  * Retransmit parameters
  */
-#if    DDEBUG_DEBUG || DEBUG_DEBUG
-#define        KDP_REXMIT_SECS         20      /* rexmit if no ack in 3 secs */
-#else  /* DDEBUG_DEBUG || DEBUG_DEBUG */
-#define        KDP_REXMIT_SECS         3       /* rexmit if no ack in 3 secs */
-#endif /* DDEBUG_DEBUG || DEBUG_DEBUG */
-#define        KDP_REXMIT_TRIES        8       /* xmit 8 times, then give up */
+#if     DDEBUG_DEBUG || DEBUG_DEBUG
+#define KDP_REXMIT_SECS         20      /* rexmit if no ack in 3 secs */
+#else   /* DDEBUG_DEBUG || DEBUG_DEBUG */
+#define KDP_REXMIT_SECS         3       /* rexmit if no ack in 3 secs */
+#endif  /* DDEBUG_DEBUG || DEBUG_DEBUG */
+#define KDP_REXMIT_TRIES        8       /* xmit 8 times, then give up */
 
 
 /*
  * Remote will resume unless KDP requests is received within this
  * many seconds after an attention (nmi) packet is sent.
  */
-#define        KDP_MAX_ATTN_WAIT       30      /* wait max of 30 seconds */
+#define KDP_MAX_ATTN_WAIT       30      /* wait max of 30 seconds */
 
 /*
  * Well-known UDP port, debugger side.
  * FIXME: This is what the 68K guys use, but beats me how they chose it...
  */
-#define        KDP_REMOTE_PORT         41139   /* pick one and register it */
+#define KDP_REMOTE_PORT         41139   /* pick one and register it */
 
 /*
  * UDP ports, KDB side. 5 port numbers are reserved for each port (request
  * and exception). This allows multiple KDBs to run on one host.
  */
-#define UDP_HOST_COMM_BASE     41140
-#define UDP_HOST_EXCEP_BASE    41145
-#define NUM_UDP_HOST_PORTS     5
+#define UDP_HOST_COMM_BASE      41140
+#define UDP_HOST_EXCEP_BASE     41145
+#define NUM_UDP_HOST_PORTS      5
 
 /*
  * Requests
  */
 typedef enum {
        /* connection oriented requests */
-       KDP_CONNECT,    KDP_DISCONNECT,
+       KDP_CONNECT, KDP_DISCONNECT,
 
        /* obtaining client info */
-       KDP_HOSTINFO,   KDP_VERSION,    KDP_MAXBYTES,
-       
+       KDP_HOSTINFO, KDP_VERSION, KDP_MAXBYTES,
+
        /* memory access */
-       KDP_READMEM,    KDP_WRITEMEM,
-       
+       KDP_READMEM, KDP_WRITEMEM,
+
        /* register access */
-       KDP_READREGS,   KDP_WRITEREGS,
-       
+       KDP_READREGS, KDP_WRITEREGS,
+
        /* executable image info */
-       KDP_LOAD,       KDP_IMAGEPATH,
-       
+       KDP_LOAD, KDP_IMAGEPATH,
+
        /* execution control */
-       KDP_SUSPEND,    KDP_RESUMECPUS,
-       
+       KDP_SUSPEND, KDP_RESUMECPUS,
+
        /* exception and termination notification, NOT true requests */
-       KDP_EXCEPTION,  KDP_TERMINATION,
+       KDP_EXCEPTION, KDP_TERMINATION,
 
        /* breakpoint control */
        KDP_BREAKPOINT_SET, KDP_BREAKPOINT_REMOVE,
-       
+
        /* vm regions */
        KDP_REGIONS,
 
@@ -117,45 +117,45 @@ typedef enum {
        KDP_HOSTREBOOT,
 
        /* memory access (64-bit wide addresses). Version 11 protocol */
-       KDP_READMEM64,  KDP_WRITEMEM64,
+       KDP_READMEM64, KDP_WRITEMEM64,
 
        /* breakpoint control (64-bit wide addresses). Version 11 protocol */
        KDP_BREAKPOINT64_SET, KDP_BREAKPOINT64_REMOVE,
-       
+
        /* kernel version string, like "xnu-1234.5~6". Version 11 protocol */
        KDP_KERNELVERSION,
-       
+
        /* physical memory access (64-bit wide addresses). Version 12 protocol */
-       KDP_READPHYSMEM64,      KDP_WRITEPHYSMEM64,
+       KDP_READPHYSMEM64, KDP_WRITEPHYSMEM64,
 
-        /* ioport access (8-, 16-, and 32-bit) */
-       KDP_READIOPORT, KDP_WRITEIOPORT,
+       /* ioport access (8-, 16-, and 32-bit) */
+       KDP_READIOPORT, KDP_WRITEIOPORT,
 
-        /* msr access (64-bit) */
-       KDP_READMSR64,  KDP_WRITEMSR64,
+       /* msr access (64-bit) */
+       KDP_READMSR64, KDP_WRITEMSR64,
 
-        /* get/dump panic/corefile info */
-        KDP_DUMPINFO,
+       /* get/dump panic/corefile info */
+       KDP_DUMPINFO,
 
        /* keep this last */
        KDP_INVALID_REQUEST
 } kdp_req_t;
 
 typedef enum {
-        KDP_DUMPINFO_GETINFO    = 0x00000000, 
-        KDP_DUMPINFO_SETINFO    = 0x00000001, 
-        KDP_DUMPINFO_CORE       = 0x00000102, 
-        KDP_DUMPINFO_PANICLOG   = 0x00000103, 
-        KDP_DUMPINFO_SYSTEMLOG  = 0x00000104, 
-        KDP_DUMPINFO_DISABLE    = 0x00000105, 
-        KDP_DUMPINFO_MASK       = 0x00000FFF,
-        KDP_DUMPINFO_DUMP       = 0x00000100,
-
-        KDP_DUMPINFO_REBOOT     = 0x10000000,
-        KDP_DUMPINFO_NORESUME   = 0x20000000,
-        KDP_DUMPINFO_RESUME     = 0x00000000, /* default behaviour */
-        KDP_DUMPINFO_NOINTR     = 0x40000000, /* don't interrupt */
-        KDP_DUMPINFO_INTR       = 0x00000000, /* default behaviour */
+       KDP_DUMPINFO_GETINFO    = 0x00000000,
+       KDP_DUMPINFO_SETINFO    = 0x00000001,
+       KDP_DUMPINFO_CORE       = 0x00000102,
+       KDP_DUMPINFO_PANICLOG   = 0x00000103,
+       KDP_DUMPINFO_SYSTEMLOG  = 0x00000104,
+       KDP_DUMPINFO_DISABLE    = 0x00000105,
+       KDP_DUMPINFO_MASK       = 0x00000FFF,
+       KDP_DUMPINFO_DUMP       = 0x00000100,
+
+       KDP_DUMPINFO_REBOOT     = 0x10000000,
+       KDP_DUMPINFO_NORESUME   = 0x20000000,
+       KDP_DUMPINFO_RESUME     = 0x00000000, /* default behaviour */
+       KDP_DUMPINFO_NOINTR     = 0x40000000, /* don't interrupt */
+       KDP_DUMPINFO_INTR       = 0x00000000, /* default behaviour */
 } kdp_dumpinfo_t;
 
 /*
@@ -165,11 +165,11 @@ typedef enum {
  *       need to be reflected in kgmacros as well.
  */
 typedef struct {
-       kdp_req_t       request:7;      /* kdp_req_t, request type */
-       unsigned        is_reply:1;     /* 0 => request, 1 => reply */
-       unsigned        seq:8;          /* sequence number within session */
-       unsigned        len:16;         /* length of entire pkt including hdr */
-       unsigned        key;            /* session key */
+       kdp_req_t       request:7;      /* kdp_req_t, request type */
+       unsigned        is_reply:1;     /* 0 => request, 1 => reply */
+       unsigned        seq:8;          /* sequence number within session */
+       unsigned        len:16;         /* length of entire pkt including hdr */
+       unsigned        key;            /* session key */
 } KDP_PACKED kdp_hdr_t;
 
 /*
@@ -179,19 +179,19 @@ typedef enum {
        KDPERR_NO_ERROR = 0,
        KDPERR_ALREADY_CONNECTED,
        KDPERR_BAD_NBYTES,
-       KDPERR_BADFLAVOR,               /* bad flavor in w/r regs */
-       KDPERR_BAD_ACCESS,              /* memory reference failure */
+       KDPERR_BADFLAVOR,               /* bad flavor in w/r regs */
+       KDPERR_BAD_ACCESS,              /* memory reference failure */
 
        KDPERR_MAX_BREAKPOINTS = 100,
        KDPERR_BREAKPOINT_NOT_FOUND = 101,
        KDPERR_BREAKPOINT_ALREADY_SET = 102
 } kdp_error_t;
 
-#if defined(__x86_64__) 
-#define KDPERR_ACCESS(_req,_ret)  \
+#if defined(__x86_64__)
+#define KDPERR_ACCESS(_req, _ret)  \
        (((_req) == (uint32_t)(_ret)) ? KDPERR_NO_ERROR : KDPERR_BAD_ACCESS)
 #else
-#define KDPERR_ACCESS(req,cnt) (KDPERR_NO_ERROR)
+#define KDPERR_ACCESS(req, cnt)  (KDPERR_NO_ERROR)
 #endif /* x86_64 */
 
 
@@ -202,338 +202,338 @@ typedef enum {
 /*
  * KDP_CONNECT
  */
-typedef struct {                       /* KDP_CONNECT request */
-       kdp_hdr_t       hdr;
-       uint16_t        req_reply_port; /* udp port which to send replies */
-       uint16_t        exc_note_port;  /* udp port which to send exc notes */
-       char            greeting[0];    /* "greetings", nul-terminated */
+typedef struct {                        /* KDP_CONNECT request */
+       kdp_hdr_t       hdr;
+       uint16_t        req_reply_port; /* udp port which to send replies */
+       uint16_t        exc_note_port;  /* udp port which to send exc notes */
+       char            greeting[0];    /* "greetings", nul-terminated */
 } KDP_PACKED kdp_connect_req_t;
 
-typedef struct {                       /* KDP_CONNECT reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
+typedef struct {                        /* KDP_CONNECT reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
 } KDP_PACKED kdp_connect_reply_t;
 
 /*
  * KDP_DISCONNECT
  */
-typedef struct {                       /* KDP_DISCONNECT request */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_DISCONNECT request */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_disconnect_req_t;
 
-typedef struct {                       /* KDP_DISCONNECT reply */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_DISCONNECT reply */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_disconnect_reply_t;
 
 /*
  * KDP_REATTACH
  */
 typedef struct {
-  kdp_hdr_t hdr;
-  uint16_t req_reply_port; /* udp port which to send replies */
+       kdp_hdr_t hdr;
+       uint16_t req_reply_port; /* udp port which to send replies */
 } KDP_PACKED kdp_reattach_req_t;
 
 /*
  * KDP_HOSTINFO
  */
-typedef struct {                       /* KDP_HOSTINFO request */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_HOSTINFO request */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_hostinfo_req_t;
 
 typedef struct {
-       uint32_t                cpus_mask;      /* bit is 1 if cpu present */
-       uint32_t                cpu_type;
-       uint32_t                cpu_subtype;
+       uint32_t                cpus_mask;      /* bit is 1 if cpu present */
+       uint32_t                cpu_type;
+       uint32_t                cpu_subtype;
 } KDP_PACKED kdp_hostinfo_t;
 
-typedef struct {                       /* KDP_HOSTINFO reply */
-       kdp_hdr_t       hdr;
-       kdp_hostinfo_t  hostinfo;
+typedef struct {                        /* KDP_HOSTINFO reply */
+       kdp_hdr_t       hdr;
+       kdp_hostinfo_t  hostinfo;
 } KDP_PACKED kdp_hostinfo_reply_t;
 
 /*
  * KDP_VERSION
  */
-typedef struct {                       /* KDP_VERSION request */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_VERSION request */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_version_req_t;
 
-#define        KDP_FEATURE_BP  0x1     /* local breakpoint support */
+#define KDP_FEATURE_BP  0x1     /* local breakpoint support */
 
-typedef struct {                       /* KDP_VERSION reply */
-       kdp_hdr_t       hdr;
-       uint32_t        version;
-       uint32_t        feature;
-       uint32_t        pad0;
-       uint32_t        pad1;
+typedef struct {                        /* KDP_VERSION reply */
+       kdp_hdr_t       hdr;
+       uint32_t        version;
+       uint32_t        feature;
+       uint32_t        pad0;
+       uint32_t        pad1;
 } KDP_PACKED kdp_version_reply_t;
 
-#define        VM_PROT_VOLATILE        ((vm_prot_t) 0x08)      /* not cacheable */
-#define        VM_PROT_SPARSE          ((vm_prot_t) 0x10)      /* sparse addr space */
+#define VM_PROT_VOLATILE        ((vm_prot_t) 0x08)      /* not cacheable */
+#define VM_PROT_SPARSE          ((vm_prot_t) 0x10)      /* sparse addr space */
 
 /*
  * KDP_REGIONS
  */
-typedef struct {                       /* KDP_REGIONS request */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_REGIONS request */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_regions_req_t;
 
 typedef struct {
-       uint32_t        address;
-       uint32_t        nbytes;
-       uint32_t        protection;     /* vm_prot_t */
+       uint32_t        address;
+       uint32_t        nbytes;
+       uint32_t        protection;     /* vm_prot_t */
 } KDP_PACKED kdp_region_t;
 
-typedef struct {                       /* KDP_REGIONS reply */
-       kdp_hdr_t       hdr;
-       uint32_t        nregions;
-       kdp_region_t    regions[0];
+typedef struct {                        /* KDP_REGIONS reply */
+       kdp_hdr_t       hdr;
+       uint32_t        nregions;
+       kdp_region_t    regions[0];
 } KDP_PACKED kdp_regions_reply_t;
 
 /*
  * KDP_MAXBYTES
  */
-typedef struct {                       /* KDP_MAXBYTES request */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_MAXBYTES request */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_maxbytes_req_t;
 
-typedef struct {                       /* KDP_MAXBYTES reply */
-       kdp_hdr_t       hdr;
-       uint32_t        max_bytes;
+typedef struct {                        /* KDP_MAXBYTES reply */
+       kdp_hdr_t       hdr;
+       uint32_t        max_bytes;
 } KDP_PACKED kdp_maxbytes_reply_t;
 
 /*
  * KDP_READMEM
  */
-typedef struct {                       /* KDP_READMEM request */
-       kdp_hdr_t       hdr;
-       uint32_t        address;
-       uint32_t        nbytes;
+typedef struct {                        /* KDP_READMEM request */
+       kdp_hdr_t       hdr;
+       uint32_t        address;
+       uint32_t        nbytes;
 } KDP_PACKED kdp_readmem_req_t;
 
-typedef struct {                       /* KDP_READMEM reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
-       char            data[0];
+typedef struct {                        /* KDP_READMEM reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
+       char            data[0];
 } KDP_PACKED kdp_readmem_reply_t;
 
 /*
  * KDP_READMEM64
  */
-typedef struct {                       /* KDP_READMEM64 request */
-       kdp_hdr_t       hdr;
-       uint64_t        address;
-       uint32_t        nbytes;
+typedef struct {                        /* KDP_READMEM64 request */
+       kdp_hdr_t       hdr;
+       uint64_t        address;
+       uint32_t        nbytes;
 } KDP_PACKED kdp_readmem64_req_t;
 
-typedef struct {                       /* KDP_READMEM64 reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
-       char            data[0];
+typedef struct {                        /* KDP_READMEM64 reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
+       char            data[0];
 } KDP_PACKED kdp_readmem64_reply_t;
 
 /*
  * KDP_READPHYSMEM64
  */
-typedef struct {                       /* KDP_READPHYSMEM64 request */
-       kdp_hdr_t       hdr;
-       uint64_t        address;
-       uint32_t        nbytes;
+typedef struct {                        /* KDP_READPHYSMEM64 request */
+       kdp_hdr_t       hdr;
+       uint64_t        address;
+       uint32_t        nbytes;
        uint16_t        lcpu;
 } KDP_PACKED kdp_readphysmem64_req_t;
 
-typedef struct {                       /* KDP_READPHYSMEM64 reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
-       char            data[0];
+typedef struct {                        /* KDP_READPHYSMEM64 reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
+       char            data[0];
 } KDP_PACKED kdp_readphysmem64_reply_t;
 
 /*
  * KDP_WRITEMEM
  */
-typedef struct {                       /* KDP_WRITEMEM request */
-       kdp_hdr_t       hdr;
-       uint32_t        address;
-       uint32_t        nbytes;
-       char            data[0];
+typedef struct {                        /* KDP_WRITEMEM request */
+       kdp_hdr_t       hdr;
+       uint32_t        address;
+       uint32_t        nbytes;
+       char            data[0];
 } KDP_PACKED kdp_writemem_req_t;
 
-typedef struct {                       /* KDP_WRITEMEM reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
+typedef struct {                        /* KDP_WRITEMEM reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
 } KDP_PACKED kdp_writemem_reply_t;
 
 /*
  * KDP_WRITEMEM64
  */
-typedef struct {                       /* KDP_WRITEMEM64 request */
-       kdp_hdr_t       hdr;
-       uint64_t        address;
-       uint32_t        nbytes;
-       char            data[0];
+typedef struct {                        /* KDP_WRITEMEM64 request */
+       kdp_hdr_t       hdr;
+       uint64_t        address;
+       uint32_t        nbytes;
+       char            data[0];
 } KDP_PACKED kdp_writemem64_req_t;
 
-typedef struct {                       /* KDP_WRITEMEM64 reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
+typedef struct {                        /* KDP_WRITEMEM64 reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
 } KDP_PACKED kdp_writemem64_reply_t;
 
 /*
  * KDP_WRITEPHYSMEM64
  */
-typedef struct {                       /* KDP_WRITEPHYSMEM64 request */
-       kdp_hdr_t       hdr;
-       uint64_t        address;
-       uint32_t        nbytes;
+typedef struct {                        /* KDP_WRITEPHYSMEM64 request */
+       kdp_hdr_t       hdr;
+       uint64_t        address;
+       uint32_t        nbytes;
        uint16_t        lcpu;
-       char            data[0];
+       char            data[0];
 } KDP_PACKED kdp_writephysmem64_req_t;
 
-typedef struct {                       /* KDP_WRITEPHYSMEM64 reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
+typedef struct {                        /* KDP_WRITEPHYSMEM64 reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
 } KDP_PACKED kdp_writephysmem64_reply_t;
 
 /*
  * KDP_WRITEIOPORT
  */
-typedef struct {                       /* KDP_WRITEIOPORT request */
-       kdp_hdr_t       hdr;
-       uint16_t        lcpu;
-       uint16_t        address;
-       uint16_t        nbytes;
-       char            data[0];
+typedef struct {                        /* KDP_WRITEIOPORT request */
+       kdp_hdr_t       hdr;
+       uint16_t        lcpu;
+       uint16_t        address;
+       uint16_t        nbytes;
+       char            data[0];
 } KDP_PACKED kdp_writeioport_req_t;
 
-typedef struct {                       /* KDP_WRITEIOPORT reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
+typedef struct {                        /* KDP_WRITEIOPORT reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
 } KDP_PACKED kdp_writeioport_reply_t;
 
 /*
  * KDP_READIOPORT
  */
-typedef struct {                       /* KDP_READIOPORT request */
-       kdp_hdr_t       hdr;
-       uint16_t        lcpu;
-       uint16_t        address;
-       uint16_t        nbytes;
+typedef struct {                        /* KDP_READIOPORT request */
+       kdp_hdr_t       hdr;
+       uint16_t        lcpu;
+       uint16_t        address;
+       uint16_t        nbytes;
 } KDP_PACKED kdp_readioport_req_t;
 
-typedef struct {                       /* KDP_READIOPORT reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
-       char            data[0];
+typedef struct {                        /* KDP_READIOPORT reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
+       char            data[0];
 } KDP_PACKED kdp_readioport_reply_t;
 
 
 /*
  * KDP_WRITEMSR64
  */
-typedef struct {                       /* KDP_WRITEMSR64 request */
-       kdp_hdr_t       hdr;
-       uint32_t        address;
-       uint16_t        lcpu;
-       char            data[0];
+typedef struct {                        /* KDP_WRITEMSR64 request */
+       kdp_hdr_t       hdr;
+       uint32_t        address;
+       uint16_t        lcpu;
+       char            data[0];
 } KDP_PACKED kdp_writemsr64_req_t;
 
-typedef struct {                       /* KDP_WRITEMSR64 reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
+typedef struct {                        /* KDP_WRITEMSR64 reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
 } KDP_PACKED kdp_writemsr64_reply_t;
 
 /*
  * KDP_READMSR64
  */
-typedef struct {                       /* KDP_READMSR64 request */
-       kdp_hdr_t       hdr;
-       uint32_t        address;
-       uint16_t        lcpu;
+typedef struct {                        /* KDP_READMSR64 request */
+       kdp_hdr_t       hdr;
+       uint32_t        address;
+       uint16_t        lcpu;
 } KDP_PACKED kdp_readmsr64_req_t;
 
-typedef struct {                       /* KDP_READMSR64 reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
-       char            data[0];
+typedef struct {                        /* KDP_READMSR64 reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
+       char            data[0];
 } KDP_PACKED kdp_readmsr64_reply_t;
 
 
 /*
  * KDP_READREGS
  */
-typedef struct {                       /* KDP_READREGS request */
-       kdp_hdr_t       hdr;
-       uint32_t        cpu;
-       uint32_t        flavor;
+typedef struct {                        /* KDP_READREGS request */
+       kdp_hdr_t       hdr;
+       uint32_t        cpu;
+       uint32_t        flavor;
 } KDP_PACKED kdp_readregs_req_t;
 
-typedef struct {                       /* KDP_READREGS reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;          /* could be KDPERR_BADFLAVOR */
-       char            data[0];
+typedef struct {                        /* KDP_READREGS reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;          /* could be KDPERR_BADFLAVOR */
+       char            data[0];
 } KDP_PACKED kdp_readregs_reply_t;
 
 /*
  * KDP_WRITEREGS
  */
-typedef struct {                       /* KDP_WRITEREGS request */
-       kdp_hdr_t       hdr;
-       uint32_t        cpu;
-       uint32_t        flavor;
-       char            data[0];
+typedef struct {                        /* KDP_WRITEREGS request */
+       kdp_hdr_t       hdr;
+       uint32_t        cpu;
+       uint32_t        flavor;
+       char            data[0];
 } KDP_PACKED kdp_writeregs_req_t;
 
-typedef struct {                       /* KDP_WRITEREGS reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
+typedef struct {                        /* KDP_WRITEREGS reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
 } KDP_PACKED kdp_writeregs_reply_t;
 
 /*
  * KDP_LOAD
  */
-typedef struct {                       /* KDP_LOAD request */
-       kdp_hdr_t       hdr;
-       char            file_args[0];
+typedef struct {                        /* KDP_LOAD request */
+       kdp_hdr_t       hdr;
+       char            file_args[0];
 } KDP_PACKED kdp_load_req_t;
 
-typedef struct {                       /* KDP_LOAD reply */
-       kdp_hdr_t       hdr;
-       kdp_error_t     error;
+typedef struct {                        /* KDP_LOAD reply */
+       kdp_hdr_t       hdr;
+       kdp_error_t     error;
 } KDP_PACKED kdp_load_reply_t;
 
 /*
  * KDP_IMAGEPATH
  */
-typedef struct {                       /* KDP_IMAGEPATH request */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_IMAGEPATH request */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_imagepath_req_t;
 
-typedef struct {                       /* KDP_IMAGEPATH reply */
-       kdp_hdr_t       hdr;
-       char            path[0];
+typedef struct {                        /* KDP_IMAGEPATH reply */
+       kdp_hdr_t       hdr;
+       char            path[0];
 } KDP_PACKED kdp_imagepath_reply_t;
 
 /*
  * KDP_SUSPEND
  */
-typedef struct {                       /* KDP_SUSPEND request */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_SUSPEND request */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_suspend_req_t;
 
-typedef struct {                       /* KDP_SUSPEND reply */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_SUSPEND reply */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_suspend_reply_t;
 
 /*
  * KDP_RESUMECPUS
  */
-typedef struct {                       /* KDP_RESUMECPUS request */
-       kdp_hdr_t       hdr;
-       uint32_t        cpu_mask;
+typedef struct {                        /* KDP_RESUMECPUS request */
+       kdp_hdr_t       hdr;
+       uint32_t        cpu_mask;
 } KDP_PACKED kdp_resumecpus_req_t;
 
-typedef struct {                       /* KDP_RESUMECPUS reply */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_RESUMECPUS reply */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_resumecpus_reply_t;
 
 /*
@@ -541,13 +541,13 @@ typedef struct {                  /* KDP_RESUMECPUS reply */
  */
 
 typedef struct {
-  kdp_hdr_t hdr;
-  uint32_t     address;
+       kdp_hdr_t hdr;
+       uint32_t      address;
 } KDP_PACKED kdp_breakpoint_req_t;
 
 typedef struct {
-  kdp_hdr_t hdr;
-  kdp_error_t error;
+       kdp_hdr_t hdr;
+       kdp_error_t error;
 } KDP_PACKED kdp_breakpoint_reply_t;
 
 /*
@@ -556,7 +556,7 @@ typedef struct {
 
 typedef struct {
        kdp_hdr_t hdr;
-       uint64_t        address;
+       uint64_t        address;
 } KDP_PACKED kdp_breakpoint64_req_t;
 
 typedef struct {
@@ -569,37 +569,37 @@ typedef struct {
  * (Exception notifications are not requests, and in fact travel from
  * the remote debugger to the gdb agent KDB.)
  */
-typedef struct {                       /* exc. info for one cpu */
-       uint32_t        cpu;
+typedef struct {                        /* exc. info for one cpu */
+       uint32_t        cpu;
        /*
         * Following info is defined as
         * per <mach/exception.h>
         */
-       uint32_t        exception;
-       uint32_t        code;
-       uint32_t        subcode;
+       uint32_t        exception;
+       uint32_t        code;
+       uint32_t        subcode;
 } KDP_PACKED kdp_exc_info_t;
 
-typedef struct {                       /* KDP_EXCEPTION notification */
-       kdp_hdr_t       hdr;
-       uint32_t        n_exc_info;
-       kdp_exc_info_t  exc_info[0];
+typedef struct {                        /* KDP_EXCEPTION notification */
+       kdp_hdr_t       hdr;
+       uint32_t        n_exc_info;
+       kdp_exc_info_t  exc_info[0];
 } KDP_PACKED kdp_exception_t;
 
-typedef struct {                       /* KDP_EXCEPTION acknowledgement */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_EXCEPTION acknowledgement */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_exception_ack_t;
 
 /*
  * KDP_KERNELVERSION
  */
-typedef struct {                       /* KDP_KERNELVERSION request */
-       kdp_hdr_t       hdr;
+typedef struct {                        /* KDP_KERNELVERSION request */
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_kernelversion_req_t;
 
-typedef struct {                       /* KDP_KERNELVERSION reply */
-       kdp_hdr_t       hdr;
-       char            version[0];
+typedef struct {                        /* KDP_KERNELVERSION reply */
+       kdp_hdr_t       hdr;
+       char            version[0];
 } KDP_PACKED kdp_kernelversion_reply_t;
 
 
@@ -607,38 +607,38 @@ typedef struct {                  /* KDP_KERNELVERSION reply */
  * Child termination messages
  */
 typedef enum {
-       KDP_FAULT = 0,          /* child took fault (internal use) */
-       KDP_EXIT,               /* child exited */
-       KDP_POWEROFF,           /* child power-off */
-       KDP_REBOOT,             /* child reboot */
-       KDP_COMMAND_MODE        /* child exit to mon command_mode */
+       KDP_FAULT = 0,          /* child took fault (internal use) */
+       KDP_EXIT,               /* child exited */
+       KDP_POWEROFF,           /* child power-off */
+       KDP_REBOOT,             /* child reboot */
+       KDP_COMMAND_MODE        /* child exit to mon command_mode */
 } kdp_termination_code_t;
 
-typedef struct {                       /* KDP_TERMINATION notification */
-       kdp_hdr_t               hdr;
-       uint32_t                term_code;      /* kdp_termination_code_t */
-       uint32_t                exit_code;
+typedef struct {                        /* KDP_TERMINATION notification */
+       kdp_hdr_t               hdr;
+       uint32_t                term_code;      /* kdp_termination_code_t */
+       uint32_t                exit_code;
 } KDP_PACKED kdp_termination_t;
 
 typedef struct {
-       kdp_hdr_t       hdr;
+       kdp_hdr_t       hdr;
 } KDP_PACKED kdp_termination_ack_t;
 
 /*
  * KDP_DUMPINFO
  */
-typedef struct {                       /* KDP_DUMPINFO request */
-       kdp_hdr_t       hdr;
-        char            name[50];       
+typedef struct {                        /* KDP_DUMPINFO request */
+       kdp_hdr_t       hdr;
+       char            name[50];
        char            destip[16];
        char            routerip[16];
        uint32_t        port;
        kdp_dumpinfo_t  type;
 } KDP_PACKED kdp_dumpinfo_req_t;
 
-typedef struct {                       /* KDP_DUMPINFO reply */
-       kdp_hdr_t       hdr;
-        char            name[50];       
+typedef struct {                        /* KDP_DUMPINFO reply */
+       kdp_hdr_t       hdr;
+       char            name[50];
        char            destip[16];
        char            routerip[16];
        uint32_t        port;
@@ -647,68 +647,68 @@ typedef struct {                  /* KDP_DUMPINFO reply */
 
 
 typedef union {
-       kdp_hdr_t               hdr;
-       kdp_connect_req_t       connect_req;
-       kdp_connect_reply_t     connect_reply;
-       kdp_disconnect_req_t    disconnect_req;
-       kdp_disconnect_reply_t  disconnect_reply;
-       kdp_hostinfo_req_t      hostinfo_req;
-       kdp_hostinfo_reply_t    hostinfo_reply;
-       kdp_version_req_t       version_req;
-       kdp_version_reply_t     version_reply;
-       kdp_maxbytes_req_t      maxbytes_req;
-       kdp_maxbytes_reply_t    maxbytes_reply;
-       kdp_readmem_req_t       readmem_req;
-       kdp_readmem_reply_t     readmem_reply;
-       kdp_readmem64_req_t     readmem64_req;
-       kdp_readmem64_reply_t   readmem64_reply;
-       kdp_readphysmem64_req_t readphysmem64_req;
-       kdp_readphysmem64_reply_t       readphysmem64_reply;
-       kdp_writemem_req_t      writemem_req;
-       kdp_writemem_reply_t    writemem_reply;
-       kdp_writemem64_req_t    writemem64_req;
-       kdp_writemem64_reply_t  writemem64_reply;
-       kdp_writephysmem64_req_t        writephysmem64_req;
-       kdp_writephysmem64_reply_t      writephysmem64_reply;
-       kdp_readregs_req_t      readregs_req;
-       kdp_readregs_reply_t    readregs_reply;
-       kdp_writeregs_req_t     writeregs_req;
-       kdp_writeregs_reply_t   writeregs_reply;
-       kdp_load_req_t          load_req;
-       kdp_load_reply_t        load_reply;
-       kdp_imagepath_req_t     imagepath_req;
-       kdp_imagepath_reply_t   imagepath_reply;
-       kdp_suspend_req_t       suspend_req;
-       kdp_suspend_reply_t     suspend_reply;
-       kdp_resumecpus_req_t    resumecpus_req;
-       kdp_resumecpus_reply_t  resumecpus_reply;
-       kdp_exception_t         exception;
-       kdp_exception_ack_t     exception_ack;
-       kdp_termination_t       termination;
-       kdp_termination_ack_t   termination_ack;
-       kdp_breakpoint_req_t    breakpoint_req;
-       kdp_breakpoint_reply_t  breakpoint_reply;
-       kdp_breakpoint64_req_t  breakpoint64_req;
-       kdp_breakpoint64_reply_t        breakpoint64_reply;
-       kdp_reattach_req_t      reattach_req;
-       kdp_regions_req_t       regions_req;
-       kdp_regions_reply_t     regions_reply;
-       kdp_kernelversion_req_t kernelversion_req;
-       kdp_kernelversion_reply_t       kernelversion_reply;
-       kdp_readioport_req_t    readioport_req;
-       kdp_readioport_reply_t  readioport_reply;
-       kdp_writeioport_req_t   writeioport_req;
-       kdp_writeioport_reply_t writeioport_reply;
-       kdp_readmsr64_req_t     readmsr64_req;
-       kdp_readmsr64_reply_t   readmsr64_reply;
-       kdp_writemsr64_req_t    writemsr64_req;
-       kdp_writemsr64_reply_t  writemsr64_reply;
-       kdp_dumpinfo_req_t      dumpinfo_req;
-       kdp_dumpinfo_reply_t    dumpinfo_reply;
+       kdp_hdr_t               hdr;
+       kdp_connect_req_t       connect_req;
+       kdp_connect_reply_t     connect_reply;
+       kdp_disconnect_req_t    disconnect_req;
+       kdp_disconnect_reply_t  disconnect_reply;
+       kdp_hostinfo_req_t      hostinfo_req;
+       kdp_hostinfo_reply_t    hostinfo_reply;
+       kdp_version_req_t       version_req;
+       kdp_version_reply_t     version_reply;
+       kdp_maxbytes_req_t      maxbytes_req;
+       kdp_maxbytes_reply_t    maxbytes_reply;
+       kdp_readmem_req_t       readmem_req;
+       kdp_readmem_reply_t     readmem_reply;
+       kdp_readmem64_req_t     readmem64_req;
+       kdp_readmem64_reply_t   readmem64_reply;
+       kdp_readphysmem64_req_t readphysmem64_req;
+       kdp_readphysmem64_reply_t       readphysmem64_reply;
+       kdp_writemem_req_t      writemem_req;
+       kdp_writemem_reply_t    writemem_reply;
+       kdp_writemem64_req_t    writemem64_req;
+       kdp_writemem64_reply_t  writemem64_reply;
+       kdp_writephysmem64_req_t        writephysmem64_req;
+       kdp_writephysmem64_reply_t      writephysmem64_reply;
+       kdp_readregs_req_t      readregs_req;
+       kdp_readregs_reply_t    readregs_reply;
+       kdp_writeregs_req_t     writeregs_req;
+       kdp_writeregs_reply_t   writeregs_reply;
+       kdp_load_req_t          load_req;
+       kdp_load_reply_t        load_reply;
+       kdp_imagepath_req_t     imagepath_req;
+       kdp_imagepath_reply_t   imagepath_reply;
+       kdp_suspend_req_t       suspend_req;
+       kdp_suspend_reply_t     suspend_reply;
+       kdp_resumecpus_req_t    resumecpus_req;
+       kdp_resumecpus_reply_t  resumecpus_reply;
+       kdp_exception_t         exception;
+       kdp_exception_ack_t     exception_ack;
+       kdp_termination_t       termination;
+       kdp_termination_ack_t   termination_ack;
+       kdp_breakpoint_req_t    breakpoint_req;
+       kdp_breakpoint_reply_t  breakpoint_reply;
+       kdp_breakpoint64_req_t  breakpoint64_req;
+       kdp_breakpoint64_reply_t        breakpoint64_reply;
+       kdp_reattach_req_t      reattach_req;
+       kdp_regions_req_t       regions_req;
+       kdp_regions_reply_t     regions_reply;
+       kdp_kernelversion_req_t kernelversion_req;
+       kdp_kernelversion_reply_t       kernelversion_reply;
+       kdp_readioport_req_t    readioport_req;
+       kdp_readioport_reply_t  readioport_reply;
+       kdp_writeioport_req_t   writeioport_req;
+       kdp_writeioport_reply_t writeioport_reply;
+       kdp_readmsr64_req_t     readmsr64_req;
+       kdp_readmsr64_reply_t   readmsr64_reply;
+       kdp_writemsr64_req_t    writemsr64_req;
+       kdp_writemsr64_reply_t  writemsr64_reply;
+       kdp_dumpinfo_req_t      dumpinfo_req;
+       kdp_dumpinfo_reply_t    dumpinfo_reply;
 } kdp_pkt_t;
 
-#define MAX_KDP_PKT_SIZE       1200    /* max packet size */
-#define MAX_KDP_DATA_SIZE      1024    /* max r/w data per packet */
+#define MAX_KDP_PKT_SIZE        1200    /* max packet size */
+#define MAX_KDP_DATA_SIZE       1024    /* max r/w data per packet */
 
 /*
  * Support relatively small request/responses here.
@@ -717,9 +717,9 @@ typedef union {
  */
 #define KDP_MANUAL_PACKET_SIZE 128
 struct kdp_manual_pkt {
-    unsigned char      data[KDP_MANUAL_PACKET_SIZE];
-    unsigned int       len;
-    boolean_t          input;
+       unsigned char       data[KDP_MANUAL_PACKET_SIZE];
+       unsigned int        len;
+       boolean_t           input;
 } KDP_PACKED;
 
 #ifdef KDP_PROXY_PACK_SUPPORT