Updating Breakpad prebuilts

Built in external/qemu@8c863aa
Built by running android/scripts/build-breakpad.sh

Change-Id: I330245a83d34607ab5e2e2c9f9e54c1b2d85426a
(cherry picked from commit d271be376a55eaf01391375f6f0cd73997645fbd)
diff --git a/breakpad/darwin-x86_64/bin/dump_syms b/breakpad/darwin-x86_64/bin/dump_syms
index ed5b81b..c904901 100755
--- a/breakpad/darwin-x86_64/bin/dump_syms
+++ b/breakpad/darwin-x86_64/bin/dump_syms
Binary files differ
diff --git a/breakpad/darwin-x86_64/bin/minidump_stackwalk b/breakpad/darwin-x86_64/bin/minidump_stackwalk
index ed8ce30..87ab141 100755
--- a/breakpad/darwin-x86_64/bin/minidump_stackwalk
+++ b/breakpad/darwin-x86_64/bin/minidump_stackwalk
Binary files differ
diff --git a/breakpad/darwin-x86_64/lib/libbreakpad.a b/breakpad/darwin-x86_64/lib/libbreakpad.a
index ce09f72..d50d753 100644
--- a/breakpad/darwin-x86_64/lib/libbreakpad.a
+++ b/breakpad/darwin-x86_64/lib/libbreakpad.a
Binary files differ
diff --git a/breakpad/darwin-x86_64/lib/libbreakpad_client.a b/breakpad/darwin-x86_64/lib/libbreakpad_client.a
index c8fd50b..dcdd313 100644
--- a/breakpad/darwin-x86_64/lib/libbreakpad_client.a
+++ b/breakpad/darwin-x86_64/lib/libbreakpad_client.a
Binary files differ
diff --git a/breakpad/darwin-x86_64/lib/libdisasm.a b/breakpad/darwin-x86_64/lib/libdisasm.a
index 8090921..1558e69 100644
--- a/breakpad/darwin-x86_64/lib/libdisasm.a
+++ b/breakpad/darwin-x86_64/lib/libdisasm.a
Binary files differ
diff --git a/breakpad/linux-x86/bin/dump_syms b/breakpad/linux-x86/bin/dump_syms
deleted file mode 100755
index 10a1dce..0000000
--- a/breakpad/linux-x86/bin/dump_syms
+++ /dev/null
Binary files differ
diff --git a/breakpad/linux-x86/bin/dump_syms_dwarf b/breakpad/linux-x86/bin/dump_syms_dwarf
deleted file mode 100755
index 28e4972..0000000
--- a/breakpad/linux-x86/bin/dump_syms_dwarf
+++ /dev/null
Binary files differ
diff --git a/breakpad/linux-x86/bin/dump_syms_macho b/breakpad/linux-x86/bin/dump_syms_macho
deleted file mode 100755
index c706c6e..0000000
--- a/breakpad/linux-x86/bin/dump_syms_macho
+++ /dev/null
Binary files differ
diff --git a/breakpad/linux-x86/bin/minidump_stackwalk b/breakpad/linux-x86/bin/minidump_stackwalk
deleted file mode 100755
index 5dee99a..0000000
--- a/breakpad/linux-x86/bin/minidump_stackwalk
+++ /dev/null
Binary files differ
diff --git a/breakpad/linux-x86/bin/minidump_upload b/breakpad/linux-x86/bin/minidump_upload
deleted file mode 100755
index 2c024a5..0000000
--- a/breakpad/linux-x86/bin/minidump_upload
+++ /dev/null
Binary files differ
diff --git a/breakpad/linux-x86/bin/sym_upload b/breakpad/linux-x86/bin/sym_upload
deleted file mode 100755
index 21c5815..0000000
--- a/breakpad/linux-x86/bin/sym_upload
+++ /dev/null
Binary files differ
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/crash_generation/client_info.h b/breakpad/linux-x86/include/breakpad/client/linux/crash_generation/client_info.h
deleted file mode 100644
index d0a184a..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/crash_generation/client_info.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_
-#define CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_
-
-namespace google_breakpad {
-
-class CrashGenerationServer;
-
-class ClientInfo {
- public:
-  ClientInfo(pid_t pid, CrashGenerationServer* crash_server)
-    : crash_server_(crash_server),
-      pid_(pid) {}
-
-  CrashGenerationServer* crash_server() const { return crash_server_; }
-  pid_t pid() const { return pid_; }
-
- private:
-  CrashGenerationServer* crash_server_;
-  pid_t pid_;
-};
-
-}
-
-#endif // CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/crash_generation/crash_generation_client.h b/breakpad/linux-x86/include/breakpad/client/linux/crash_generation/crash_generation_client.h
deleted file mode 100644
index 4e68424..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/crash_generation/crash_generation_client.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
-#define CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
-
-#include "common/basictypes.h"
-
-#include <stddef.h>
-
-namespace google_breakpad {
-
-// CrashGenerationClient is an interface for implementing out-of-process crash
-// dumping.  The default implementation, accessed via the TryCreate() factory,
-// works in conjunction with the CrashGenerationServer to generate a minidump
-// via a remote process.
-class CrashGenerationClient {
- public:
-  CrashGenerationClient() {}
-  virtual ~CrashGenerationClient() {}
-
-  // Request the crash server to generate a dump.  |blob| is an opaque
-  // CrashContext pointer from exception_handler.h.
-  // Returns true if the dump was successful; false otherwise.
-  virtual bool RequestDump(const void* blob, size_t blob_size) = 0;
-
-  // Returns a new CrashGenerationClient if |server_fd| is valid and
-  // connects to a CrashGenerationServer.  Otherwise, return NULL.
-  // The returned CrashGenerationClient* is owned by the caller of
-  // this function.
-  static CrashGenerationClient* TryCreate(int server_fd);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(CrashGenerationClient);
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/crash_generation/crash_generation_server.h b/breakpad/linux-x86/include/breakpad/client/linux/crash_generation/crash_generation_server.h
deleted file mode 100644
index aaecc81..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/crash_generation/crash_generation_server.h
+++ /dev/null
@@ -1,136 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_SERVER_H_
-#define CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_SERVER_H_
-
-#include <pthread.h>
-
-#include <string>
-
-#include "client/linux/crash_generation/client_info.h"
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-class ClientInfo;
-
-class CrashGenerationServer {
-public:
-  // WARNING: callbacks may be invoked on a different thread
-  // than that which creates the CrashGenerationServer.  They must
-  // be thread safe.
-  typedef void (*OnClientDumpRequestCallback)(void* context,
-                                              const ClientInfo* client_info,
-                                              const string* file_path);
-
-  typedef void (*OnClientExitingCallback)(void* context,
-                                          const ClientInfo* client_info);
-
-  // Create an instance with the given parameters.
-  //
-  // Parameter listen_fd: The server fd created by CreateReportChannel().
-  // Parameter dump_callback: Callback for a client crash dump request.
-  // Parameter dump_context: Context for client crash dump request callback.
-  // Parameter exit_callback: Callback for client process exit.
-  // Parameter exit_context: Context for client exit callback.
-  // Parameter generate_dumps: Whether to automatically generate dumps.
-  //     Client code of this class might want to generate dumps explicitly
-  //     in the crash dump request callback. In that case, false can be
-  //     passed for this parameter.
-  // Parameter dump_path: Path for generating dumps; required only if true is
-  //     passed for generateDumps parameter; NULL can be passed otherwise.
-  CrashGenerationServer(const int listen_fd,
-                        OnClientDumpRequestCallback dump_callback,
-                        void* dump_context,
-                        OnClientExitingCallback exit_callback,
-                        void* exit_context,
-                        bool generate_dumps,
-                        const string* dump_path);
-
-  ~CrashGenerationServer();
-
-  // Perform initialization steps needed to start listening to clients.
-  //
-  // Return true if initialization is successful; false otherwise.
-  bool Start();
-
-  // Stop the server.
-  void Stop();
-
-  // Create a "channel" that can be used by clients to report crashes
-  // to a CrashGenerationServer.  |*server_fd| should be passed to
-  // this class's constructor, and |*client_fd| should be passed to
-  // the ExceptionHandler constructor in the client process.
-  static bool CreateReportChannel(int* server_fd, int* client_fd);
-
-private:
-  // Run the server's event loop
-  void Run();
-
-  // Invoked when an child process (client) event occurs
-  // Returning true => "keep running", false => "exit loop"
-  bool ClientEvent(short revents);
-
-  // Invoked when the controlling thread (main) event occurs
-  // Returning true => "keep running", false => "exit loop"
-  bool ControlEvent(short revents);
-
-  // Return a unique filename at which a minidump can be written
-  bool MakeMinidumpFilename(string& outFilename);
-
-  // Trampoline to |Run()|
-  static void* ThreadMain(void* arg);
-
-  int server_fd_;
-
-  OnClientDumpRequestCallback dump_callback_;
-  void* dump_context_;
-
-  OnClientExitingCallback exit_callback_;
-  void* exit_context_;
-
-  bool generate_dumps_;
-
-  string dump_dir_;
-
-  bool started_;
-
-  pthread_t thread_;
-  int control_pipe_in_;
-  int control_pipe_out_;
-
-  // disable these
-  CrashGenerationServer(const CrashGenerationServer&);
-  CrashGenerationServer& operator=(const CrashGenerationServer&);
-};
-
-} // namespace google_breakpad
-
-#endif // CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_SERVER_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/mapping_info.h b/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/mapping_info.h
deleted file mode 100644
index 5f247cf..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/mapping_info.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright (c) 2014, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_MAPPING_INFO_H_
-#define CLIENT_LINUX_DUMP_WRITER_COMMON_MAPPING_INFO_H_
-
-#include <limits.h>
-#include <list>
-#include <stdint.h>
-
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-// One of these is produced for each mapping in the process (i.e. line in
-// /proc/$x/maps).
-struct MappingInfo {
-  uintptr_t start_addr;
-  size_t size;
-  size_t offset;  // offset into the backed file.
-  bool exec;  // true if the mapping has the execute bit set.
-  char name[NAME_MAX];
-};
-
-struct MappingEntry {
-  MappingInfo first;
-  uint8_t second[sizeof(MDGUID)];
-};
-
-// A list of <MappingInfo, GUID>
-typedef std::list<MappingEntry> MappingList;
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_DUMP_WRITER_COMMON_MAPPING_INFO_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/raw_context_cpu.h b/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/raw_context_cpu.h
deleted file mode 100644
index e2ef45d..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/raw_context_cpu.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (c) 2014, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H
-#define CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H
-
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-#if defined(__i386__)
-typedef MDRawContextX86 RawContextCPU;
-#elif defined(__x86_64)
-typedef MDRawContextAMD64 RawContextCPU;
-#elif defined(__ARM_EABI__)
-typedef MDRawContextARM RawContextCPU;
-#elif defined(__aarch64__)
-typedef MDRawContextARM64 RawContextCPU;
-#elif defined(__mips__)
-typedef MDRawContextMIPS RawContextCPU;
-#else
-#error "This code has not been ported to your platform yet."
-#endif
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/thread_info.h b/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/thread_info.h
deleted file mode 100644
index 99093d2..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/thread_info.h
+++ /dev/null
@@ -1,91 +0,0 @@
-// Copyright (c) 2014, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_THREAD_INFO_H_
-#define CLIENT_LINUX_DUMP_WRITER_COMMON_THREAD_INFO_H_
-
-#include <sys/ucontext.h>
-#include <sys/user.h>
-
-#include "client/linux/dump_writer_common/raw_context_cpu.h"
-#include "common/memory.h"
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-#if defined(__i386) || defined(__x86_64)
-typedef __typeof__(((struct user*) 0)->u_debugreg[0]) debugreg_t;
-#endif
-
-// We produce one of these structures for each thread in the crashed process.
-struct ThreadInfo {
-  pid_t tgid;   // thread group id
-  pid_t ppid;   // parent process
-
-  uintptr_t stack_pointer;  // thread stack pointer
-
-
-#if defined(__i386) || defined(__x86_64)
-  user_regs_struct regs;
-  user_fpregs_struct fpregs;
-  static const unsigned kNumDebugRegisters = 8;
-  debugreg_t dregs[8];
-#if defined(__i386)
-  user_fpxregs_struct fpxregs;
-#endif  // defined(__i386)
-
-#elif defined(__ARM_EABI__)
-  // Mimicking how strace does this(see syscall.c, search for GETREGS)
-  struct user_regs regs;
-  struct user_fpregs fpregs;
-#elif defined(__aarch64__)
-  // Use the structures defined in <sys/user.h>
-  struct user_regs_struct regs;
-  struct user_fpsimd_struct fpregs;
-#elif defined(__mips__)
-  // Use the structure defined in <sys/ucontext.h>.
-  mcontext_t mcontext;
-#endif
-
-  // Returns the instruction pointer (platform-dependent impl.).
-  uintptr_t GetInstructionPointer() const;
-
-  // Fills a RawContextCPU using the context in the ThreadInfo object.
-  void FillCPUContext(RawContextCPU* out) const;
-
-  // Returns the pointer and size of general purpose register area.
-  void GetGeneralPurposeRegisters(void** gp_regs, size_t* size);
-
-  // Returns the pointer and size of float point register area.
-  void GetFloatingPointRegisters(void** fp_regs, size_t* size);
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_DUMP_WRITER_COMMON_THREAD_INFO_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/ucontext_reader.h b/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/ucontext_reader.h
deleted file mode 100644
index b6e77b4..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/dump_writer_common/ucontext_reader.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright (c) 2014, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_UCONTEXT_READER_H
-#define CLIENT_LINUX_DUMP_WRITER_COMMON_UCONTEXT_READER_H
-
-#include <sys/ucontext.h>
-#include <sys/user.h>
-
-#include "client/linux/dump_writer_common/raw_context_cpu.h"
-#include "common/memory.h"
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-// Wraps platform-dependent implementations of accessors to ucontext structs.
-struct UContextReader {
-  static uintptr_t GetStackPointer(const struct ucontext* uc);
-
-  static uintptr_t GetInstructionPointer(const struct ucontext* uc);
-
-  // Juggle a arch-specific ucontext into a minidump format
-  //   out: the minidump structure
-  //   info: the collection of register structures.
-#if defined(__i386__) || defined(__x86_64)
-  static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-                             const struct _libc_fpstate* fp);
-#elif defined(__aarch64__)
-  static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-                             const struct fpsimd_context* fpregs);
-#else
-  static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
-#endif
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_DUMP_WRITER_COMMON_UCONTEXT_READER_H
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/handler/exception_handler.h b/breakpad/linux-x86/include/breakpad/client/linux/handler/exception_handler.h
deleted file mode 100644
index 591c310..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/handler/exception_handler.h
+++ /dev/null
@@ -1,278 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_HANDLER_EXCEPTION_HANDLER_H_
-#define CLIENT_LINUX_HANDLER_EXCEPTION_HANDLER_H_
-
-#include <signal.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <sys/ucontext.h>
-
-#include <string>
-
-#include "client/linux/crash_generation/crash_generation_client.h"
-#include "client/linux/handler/minidump_descriptor.h"
-#include "client/linux/minidump_writer/minidump_writer.h"
-#include "common/scoped_ptr.h"
-#include "common/using_std_string.h"
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-// ExceptionHandler
-//
-// ExceptionHandler can write a minidump file when an exception occurs,
-// or when WriteMinidump() is called explicitly by your program.
-//
-// To have the exception handler write minidumps when an uncaught exception
-// (crash) occurs, you should create an instance early in the execution
-// of your program, and keep it around for the entire time you want to
-// have crash handling active (typically, until shutdown).
-// (NOTE): There should be only be one this kind of exception handler
-// object per process.
-//
-// If you want to write minidumps without installing the exception handler,
-// you can create an ExceptionHandler with install_handler set to false,
-// then call WriteMinidump.  You can also use this technique if you want to
-// use different minidump callbacks for different call sites.
-//
-// In either case, a callback function is called when a minidump is written,
-// which receives the full path or file descriptor of the minidump.  The
-// caller can collect and write additional application state to that minidump,
-// and launch an external crash-reporting application.
-//
-// Caller should try to make the callbacks as crash-friendly as possible,
-// it should avoid use heap memory allocation as much as possible.
-
-class ExceptionHandler {
- public:
-  // A callback function to run before Breakpad performs any substantial
-  // processing of an exception.  A FilterCallback is called before writing
-  // a minidump.  |context| is the parameter supplied by the user as
-  // callback_context when the handler was created.
-  //
-  // If a FilterCallback returns true, Breakpad will continue processing,
-  // attempting to write a minidump.  If a FilterCallback returns false,
-  // Breakpad  will immediately report the exception as unhandled without
-  // writing a minidump, allowing another handler the opportunity to handle it.
-  typedef bool (*FilterCallback)(void *context);
-
-  // A callback function to run after the minidump has been written.
-  // |descriptor| contains the file descriptor or file path containing the
-  // minidump. |context| is the parameter supplied by the user as
-  // callback_context when the handler was created.  |succeeded| indicates
-  // whether a minidump file was successfully written.
-  //
-  // If an exception occurred and the callback returns true, Breakpad will
-  // treat the exception as fully-handled, suppressing any other handlers from
-  // being notified of the exception.  If the callback returns false, Breakpad
-  // will treat the exception as unhandled, and allow another handler to handle
-  // it. If there are no other handlers, Breakpad will report the exception to
-  // the system as unhandled, allowing a debugger or native crash dialog the
-  // opportunity to handle the exception.  Most callback implementations
-  // should normally return the value of |succeeded|, or when they wish to
-  // not report an exception of handled, false.  Callbacks will rarely want to
-  // return true directly (unless |succeeded| is true).
-  typedef bool (*MinidumpCallback)(const MinidumpDescriptor& descriptor,
-                                   void* context,
-                                   bool succeeded);
-
-  // In certain cases, a user may wish to handle the generation of the minidump
-  // themselves. In this case, they can install a handler callback which is
-  // called when a crash has occurred. If this function returns true, no other
-  // processing of occurs and the process will shortly be crashed. If this
-  // returns false, the normal processing continues.
-  typedef bool (*HandlerCallback)(const void* crash_context,
-                                  size_t crash_context_size,
-                                  void* context);
-
-  // Creates a new ExceptionHandler instance to handle writing minidumps.
-  // Before writing a minidump, the optional |filter| callback will be called.
-  // Its return value determines whether or not Breakpad should write a
-  // minidump.  The minidump content will be written to the file path or file
-  // descriptor from |descriptor|, and the optional |callback| is called after
-  // writing the dump file, as described above.
-  // If install_handler is true, then a minidump will be written whenever
-  // an unhandled exception occurs.  If it is false, minidumps will only
-  // be written when WriteMinidump is called.
-  // If |server_fd| is valid, the minidump is generated out-of-process.  If it
-  // is -1, in-process generation will always be used.
-  ExceptionHandler(const MinidumpDescriptor& descriptor,
-                   FilterCallback filter,
-                   MinidumpCallback callback,
-                   void* callback_context,
-                   bool install_handler,
-                   const int server_fd);
-  ~ExceptionHandler();
-
-  const MinidumpDescriptor& minidump_descriptor() const {
-    return minidump_descriptor_;
-  }
-
-  void set_minidump_descriptor(const MinidumpDescriptor& descriptor) {
-    minidump_descriptor_ = descriptor;
-  }
-
-  void set_crash_handler(HandlerCallback callback) {
-    crash_handler_ = callback;
-  }
-
-  void set_crash_generation_client(CrashGenerationClient* client) {
-    crash_generation_client_.reset(client);
-  }
-
-  // Writes a minidump immediately.  This can be used to capture the execution
-  // state independently of a crash.
-  // Returns true on success.
-  // If the ExceptionHandler has been created with a path, a new file is
-  // generated for each minidump.  The file path can be retrieved in the
-  // MinidumpDescriptor passed to the MinidumpCallback or by accessing the
-  // MinidumpDescriptor directly from the ExceptionHandler (with
-  // minidump_descriptor()).
-  // If the ExceptionHandler has been created with a file descriptor, the file
-  // descriptor is repositioned to its beginning and the previous generated
-  // minidump is overwritten.
-  // Note that this method is not supposed to be called from a compromised
-  // context as it uses the heap.
-  bool WriteMinidump();
-
-  // Convenience form of WriteMinidump which does not require an
-  // ExceptionHandler instance.
-  static bool WriteMinidump(const string& dump_path,
-                            MinidumpCallback callback,
-                            void* callback_context);
-
-  // Write a minidump of |child| immediately.  This can be used to
-  // capture the execution state of |child| independently of a crash.
-  // Pass a meaningful |child_blamed_thread| to make that thread in
-  // the child process the one from which a crash signature is
-  // extracted.
-  //
-  // WARNING: the return of this function *must* happen before
-  // the code that will eventually reap |child| executes.
-  // Otherwise there's a pernicious race condition in which |child|
-  // exits, is reaped, another process created with its pid, then that
-  // new process dumped.
-  static bool WriteMinidumpForChild(pid_t child,
-                                    pid_t child_blamed_thread,
-                                    const string& dump_path,
-                                    MinidumpCallback callback,
-                                    void* callback_context);
-
-  // This structure is passed to minidump_writer.h:WriteMinidump via an opaque
-  // blob. It shouldn't be needed in any user code.
-  struct CrashContext {
-    siginfo_t siginfo;
-    pid_t tid;  // the crashing thread.
-    struct ucontext context;
-#if !defined(__ARM_EABI__) && !defined(__mips__)
-    // #ifdef this out because FP state is not part of user ABI for Linux ARM.
-    // In case of MIPS Linux FP state is already part of struct
-    // ucontext so 'float_state' is not required.
-    fpstate_t float_state;
-#endif
-  };
-
-  // Returns whether out-of-process dump generation is used or not.
-  bool IsOutOfProcess() const {
-    return crash_generation_client_.get() != NULL;
-  }
-
-  // Add information about a memory mapping. This can be used if
-  // a custom library loader is used that maps things in a way
-  // that the linux dumper can't handle by reading the maps file.
-  void AddMappingInfo(const string& name,
-                      const uint8_t identifier[sizeof(MDGUID)],
-                      uintptr_t start_address,
-                      size_t mapping_size,
-                      size_t file_offset);
-
-  // Register a block of memory of length bytes starting at address ptr
-  // to be copied to the minidump when a crash happens.
-  void RegisterAppMemory(void* ptr, size_t length);
-
-  // Unregister a block of memory that was registered with RegisterAppMemory.
-  void UnregisterAppMemory(void* ptr);
-
-  // Force signal handling for the specified signal.
-  bool SimulateSignalDelivery(int sig);
-
-  // Report a crash signal from an SA_SIGINFO signal handler.
-  bool HandleSignal(int sig, siginfo_t* info, void* uc);
-
- private:
-  // Save the old signal handlers and install new ones.
-  static bool InstallHandlersLocked();
-  // Restore the old signal handlers.
-  static void RestoreHandlersLocked();
-
-  void PreresolveSymbols();
-  bool GenerateDump(CrashContext *context);
-  void SendContinueSignalToChild();
-  void WaitForContinueSignal();
-
-  static void SignalHandler(int sig, siginfo_t* info, void* uc);
-  static int ThreadEntry(void* arg);
-  bool DoDump(pid_t crashing_process, const void* context,
-              size_t context_size);
-
-  const FilterCallback filter_;
-  const MinidumpCallback callback_;
-  void* const callback_context_;
-
-  scoped_ptr<CrashGenerationClient> crash_generation_client_;
-
-  MinidumpDescriptor minidump_descriptor_;
-
-  // Must be volatile. The compiler is unaware of the code which runs in
-  // the signal handler which reads this variable. Without volatile the
-  // compiler is free to optimise away writes to this variable which it
-  // believes are never read.
-  volatile HandlerCallback crash_handler_;
-
-  // We need to explicitly enable ptrace of parent processes on some
-  // kernels, but we need to know the PID of the cloned process before we
-  // can do this. We create a pipe which we can use to block the
-  // cloned process after creating it, until we have explicitly enabled
-  // ptrace. This is used to store the file descriptors for the pipe
-  int fdes[2];
-
-  // Callers can add extra info about mappings for cases where the
-  // dumper code cannot extract enough information from /proc/<pid>/maps.
-  MappingList mapping_list_;
-
-  // Callers can request additional memory regions to be included in
-  // the dump.
-  AppMemoryList app_memory_list_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_HANDLER_EXCEPTION_HANDLER_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/handler/minidump_descriptor.h b/breakpad/linux-x86/include/breakpad/client/linux/handler/minidump_descriptor.h
deleted file mode 100644
index 3584c69..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/handler/minidump_descriptor.h
+++ /dev/null
@@ -1,161 +0,0 @@
-// Copyright (c) 2012 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_
-#define CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_
-
-#include <assert.h>
-#include <sys/types.h>
-
-#include <string>
-
-#include "common/using_std_string.h"
-
-// This class describes how a crash dump should be generated, either:
-// - Writing a full minidump to a file in a given directory (the actual path,
-//   inside the directory, is determined by this class).
-// - Writing a full minidump to a given fd.
-// - Writing a reduced microdump to the console (logcat on Android).
-namespace google_breakpad {
-
-class MinidumpDescriptor {
- public:
-  struct MicrodumpOnConsole {};
-  static const MicrodumpOnConsole kMicrodumpOnConsole;
-
-  MinidumpDescriptor() : mode_(kUninitialized),
-                         fd_(-1),
-                         size_limit_(-1),
-                         microdump_build_fingerprint_(NULL),
-                         microdump_product_info_(NULL) {}
-
-  explicit MinidumpDescriptor(const string& directory)
-      : mode_(kWriteMinidumpToFile),
-        fd_(-1),
-        directory_(directory),
-        c_path_(NULL),
-        size_limit_(-1),
-        microdump_build_fingerprint_(NULL),
-        microdump_product_info_(NULL) {
-    assert(!directory.empty());
-  }
-
-  explicit MinidumpDescriptor(int fd)
-      : mode_(kWriteMinidumpToFd),
-        fd_(fd),
-        c_path_(NULL),
-        size_limit_(-1),
-        microdump_build_fingerprint_(NULL),
-        microdump_product_info_(NULL) {
-    assert(fd != -1);
-  }
-
-  explicit MinidumpDescriptor(const MicrodumpOnConsole&)
-      : mode_(kWriteMicrodumpToConsole),
-        fd_(-1),
-        size_limit_(-1),
-        microdump_build_fingerprint_(NULL),
-        microdump_product_info_(NULL) {}
-
-  explicit MinidumpDescriptor(const MinidumpDescriptor& descriptor);
-  MinidumpDescriptor& operator=(const MinidumpDescriptor& descriptor);
-
-  static MinidumpDescriptor getMicrodumpDescriptor();
-
-  bool IsFD() const { return mode_ == kWriteMinidumpToFd; }
-
-  int fd() const { return fd_; }
-
-  string directory() const { return directory_; }
-
-  const char* path() const { return c_path_; }
-
-  bool IsMicrodumpOnConsole() const {
-    return mode_ == kWriteMicrodumpToConsole;
-  }
-
-  // Updates the path so it is unique.
-  // Should be called from a normal context: this methods uses the heap.
-  void UpdatePath();
-
-  off_t size_limit() const { return size_limit_; }
-  void set_size_limit(off_t limit) { size_limit_ = limit; }
-
-  // TODO(primiano): make this and product info (below) just part of the
-  // microdump ctor once it is rolled stably into Chrome. ETA: June 2015.
-  void SetMicrodumpBuildFingerprint(const char* build_fingerprint);
-  const char* microdump_build_fingerprint() const {
-    return microdump_build_fingerprint_;
-  }
-
-  void SetMicrodumpProductInfo(const char* product_info);
-  const char* microdump_product_info() const {
-    return microdump_product_info_;
-  }
-
- private:
-  enum DumpMode {
-    kUninitialized = 0,
-    kWriteMinidumpToFile,
-    kWriteMinidumpToFd,
-    kWriteMicrodumpToConsole
-  };
-
-  // Specifies the dump mode (see DumpMode).
-  DumpMode mode_;
-
-  // The file descriptor where the minidump is generated.
-  int fd_;
-
-  // The directory where the minidump should be generated.
-  string directory_;
-
-  // The full path to the generated minidump.
-  string path_;
-
-  // The C string of |path_|. Precomputed so it can be access from a compromised
-  // context.
-  const char* c_path_;
-
-  off_t size_limit_;
-
-  // The product name/version and build fingerprint that should be appended to
-  // the dump (microdump only). Microdumps don't have the ability of appending
-  // extra metadata after the dump is generated (as opposite to minidumps
-  // MIME fields), therefore the product details must be provided upfront.
-  // The string pointers are supposed to be valid through all the lifetime of
-  // the process (read: the caller has to guarantee that they are stored in
-  // global static storage).
-  const char* microdump_build_fingerprint_;
-  const char* microdump_product_info_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/cpu_set.h b/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/cpu_set.h
deleted file mode 100644
index 1cca9aa..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/cpu_set.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// Copyright (c) 2013, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_MINIDUMP_WRITER_CPU_SET_H_
-#define CLIENT_LINUX_MINIDUMP_WRITER_CPU_SET_H_
-
-#include <stdint.h>
-#include <assert.h>
-#include <string.h>
-
-#include "common/linux/linux_libc_support.h"
-#include "third_party/lss/linux_syscall_support.h"
-
-namespace google_breakpad {
-
-// Helper class used to model a set of CPUs, as read from sysfs
-// files like /sys/devices/system/cpu/present
-// See See http://www.kernel.org/doc/Documentation/cputopology.txt
-class CpuSet {
-public:
-  // The maximum number of supported CPUs.
-  static const size_t kMaxCpus = 1024;
-
-  CpuSet() {
-    my_memset(mask_, 0, sizeof(mask_));
-  }
-
-  // Parse a sysfs file to extract the corresponding CPU set.
-  bool ParseSysFile(int fd) {
-    char buffer[512];
-    int ret = sys_read(fd, buffer, sizeof(buffer)-1);
-    if (ret < 0)
-      return false;
-
-    buffer[ret] = '\0';
-
-    // Expected format: comma-separated list of items, where each
-    // item can be a decimal integer, or two decimal integers separated
-    // by a dash.
-    // E.g.:
-    //       0
-    //       0,1,2,3
-    //       0-3
-    //       1,10-23
-    const char* p = buffer;
-    const char* p_end = p + ret;
-    while (p < p_end) {
-      // Skip leading space, if any
-      while (p < p_end && my_isspace(*p))
-        p++;
-
-      // Find start and size of current item.
-      const char* item = p;
-      size_t item_len = static_cast<size_t>(p_end - p);
-      const char* item_next =
-          static_cast<const char*>(my_memchr(p, ',', item_len));
-      if (item_next != NULL) {
-        p = item_next + 1;
-        item_len = static_cast<size_t>(item_next - item);
-      } else {
-        p = p_end;
-        item_next = p_end;
-      }
-
-      // Ignore trailing spaces.
-      while (item_next > item && my_isspace(item_next[-1]))
-        item_next--;
-
-      // skip empty items.
-      if (item_next == item)
-        continue;
-
-      // read first decimal value.
-      uintptr_t start = 0;
-      const char* next = my_read_decimal_ptr(&start, item);
-      uintptr_t end = start;
-      if (*next == '-')
-        my_read_decimal_ptr(&end, next+1);
-
-      while (start <= end)
-        SetBit(start++);
-    }
-    return true;
-  }
-
-  // Intersect this CPU set with another one.
-  void IntersectWith(const CpuSet& other) {
-    for (size_t nn = 0; nn < kMaskWordCount; ++nn)
-      mask_[nn] &= other.mask_[nn];
-  }
-
-  // Return the number of CPUs in this set.
-  int GetCount() {
-    int result = 0;
-    for (size_t nn = 0; nn < kMaskWordCount; ++nn) {
-      result += __builtin_popcount(mask_[nn]);
-    }
-    return result;
-  }
-
-private:
-  void SetBit(uintptr_t index) {
-    size_t nn = static_cast<size_t>(index);
-    if (nn < kMaxCpus)
-      mask_[nn / kMaskWordBits] |= (1U << (nn % kMaskWordBits));
-  }
-
-  typedef uint32_t MaskWordType;
-  static const size_t kMaskWordBits = 8*sizeof(MaskWordType);
-  static const size_t kMaskWordCount =
-      (kMaxCpus + kMaskWordBits - 1) / kMaskWordBits;
-
-  MaskWordType mask_[kMaskWordCount];
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_MINIDUMP_WRITER_CPU_SET_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/directory_reader.h b/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/directory_reader.h
deleted file mode 100644
index a4bde18..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/directory_reader.h
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright (c) 2009, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_MINIDUMP_WRITER_DIRECTORY_READER_H_
-#define CLIENT_LINUX_MINIDUMP_WRITER_DIRECTORY_READER_H_
-
-#include <stdint.h>
-#include <unistd.h>
-#include <limits.h>
-#include <assert.h>
-#include <errno.h>
-#include <string.h>
-
-#include "common/linux/linux_libc_support.h"
-#include "third_party/lss/linux_syscall_support.h"
-
-namespace google_breakpad {
-
-// A class for enumerating a directory without using diropen/readdir or other
-// functions which may allocate memory.
-class DirectoryReader {
- public:
-  DirectoryReader(int fd)
-      : fd_(fd),
-        buf_used_(0) {
-  }
-
-  // Return the next entry from the directory
-  //   name: (output) the NUL terminated entry name
-  //
-  // Returns true iff successful (false on EOF).
-  //
-  // After calling this, one must call |PopEntry| otherwise you'll get the same
-  // entry over and over.
-  bool GetNextEntry(const char** name) {
-    struct kernel_dirent* const dent =
-      reinterpret_cast<kernel_dirent*>(buf_);
-
-    if (buf_used_ == 0) {
-      // need to read more entries.
-      const int n = sys_getdents(fd_, dent, sizeof(buf_));
-      if (n < 0) {
-        return false;
-      } else if (n == 0) {
-        hit_eof_ = true;
-      } else {
-        buf_used_ += n;
-      }
-    }
-
-    if (buf_used_ == 0 && hit_eof_)
-      return false;
-
-    assert(buf_used_ > 0);
-
-    *name = dent->d_name;
-    return true;
-  }
-
-  void PopEntry() {
-    if (!buf_used_)
-      return;
-
-    const struct kernel_dirent* const dent =
-      reinterpret_cast<kernel_dirent*>(buf_);
-
-    buf_used_ -= dent->d_reclen;
-    my_memmove(buf_, buf_ + dent->d_reclen, buf_used_);
-  }
-
- private:
-  const int fd_;
-  bool hit_eof_;
-  unsigned buf_used_;
-  uint8_t buf_[sizeof(struct kernel_dirent) + NAME_MAX + 1];
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_MINIDUMP_WRITER_DIRECTORY_READER_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/line_reader.h b/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/line_reader.h
deleted file mode 100644
index 779cfeb..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/line_reader.h
+++ /dev/null
@@ -1,131 +0,0 @@
-// Copyright (c) 2009, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINE_READER_H_
-#define CLIENT_LINUX_MINIDUMP_WRITER_LINE_READER_H_
-
-#include <stdint.h>
-#include <assert.h>
-#include <string.h>
-
-#include "common/linux/linux_libc_support.h"
-#include "third_party/lss/linux_syscall_support.h"
-
-namespace google_breakpad {
-
-// A class for reading a file, line by line, without using fopen/fgets or other
-// functions which may allocate memory.
-class LineReader {
- public:
-  LineReader(int fd)
-      : fd_(fd),
-        hit_eof_(false),
-        buf_used_(0) {
-  }
-
-  // The maximum length of a line.
-  static const size_t kMaxLineLen = 512;
-
-  // Return the next line from the file.
-  //   line: (output) a pointer to the start of the line. The line is NUL
-  //     terminated.
-  //   len: (output) the length of the line (not inc the NUL byte)
-  //
-  // Returns true iff successful (false on EOF).
-  //
-  // One must call |PopLine| after this function, otherwise you'll continue to
-  // get the same line over and over.
-  bool GetNextLine(const char **line, unsigned *len) {
-    for (;;) {
-      if (buf_used_ == 0 && hit_eof_)
-        return false;
-
-      for (unsigned i = 0; i < buf_used_; ++i) {
-        if (buf_[i] == '\n' || buf_[i] == 0) {
-          buf_[i] = 0;
-          *len = i;
-          *line = buf_;
-          return true;
-        }
-      }
-
-      if (buf_used_ == sizeof(buf_)) {
-        // we scanned the whole buffer and didn't find an end-of-line marker.
-        // This line is too long to process.
-        return false;
-      }
-
-      // We didn't find any end-of-line terminators in the buffer. However, if
-      // this is the last line in the file it might not have one:
-      if (hit_eof_) {
-        assert(buf_used_);
-        // There's room for the NUL because of the buf_used_ == sizeof(buf_)
-        // check above.
-        buf_[buf_used_] = 0;
-        *len = buf_used_;
-        buf_used_ += 1;  // since we appended the NUL.
-        *line = buf_;
-        return true;
-      }
-
-      // Otherwise, we should pull in more data from the file
-      const ssize_t n = sys_read(fd_, buf_ + buf_used_,
-                                 sizeof(buf_) - buf_used_);
-      if (n < 0) {
-        return false;
-      } else if (n == 0) {
-        hit_eof_ = true;
-      } else {
-        buf_used_ += n;
-      }
-
-      // At this point, we have either set the hit_eof_ flag, or we have more
-      // data to process...
-    }
-  }
-
-  void PopLine(unsigned len) {
-    // len doesn't include the NUL byte at the end.
-
-    assert(buf_used_ >= len + 1);
-    buf_used_ -= len + 1;
-    my_memmove(buf_, buf_ + len + 1, buf_used_);
-  }
-
- private:
-  const int fd_;
-
-  bool hit_eof_;
-  unsigned buf_used_;
-  char buf_[kMaxLineLen];
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_MINIDUMP_WRITER_LINE_READER_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/linux_core_dumper.h b/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/linux_core_dumper.h
deleted file mode 100644
index 8537896..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/linux_core_dumper.h
+++ /dev/null
@@ -1,123 +0,0 @@
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// linux_core_dumper.h: Define the google_breakpad::LinuxCoreDumper
-// class, which is derived from google_breakpad::LinuxDumper to extract
-// information from a crashed process via its core dump and proc files.
-
-#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINUX_CORE_DUMPER_H_
-#define CLIENT_LINUX_MINIDUMP_WRITER_LINUX_CORE_DUMPER_H_
-
-#include "client/linux/minidump_writer/linux_dumper.h"
-#include "common/linux/elf_core_dump.h"
-#include "common/linux/memory_mapped_file.h"
-
-namespace google_breakpad {
-
-class LinuxCoreDumper : public LinuxDumper {
- public:
-  // Constructs a dumper for extracting information of a given process
-  // with a process ID of |pid| via its core dump file at |core_path| and
-  // its proc files at |procfs_path|. If |procfs_path| is a copy of
-  // /proc/<pid>, it should contain the following files:
-  //     auxv, cmdline, environ, exe, maps, status
-  LinuxCoreDumper(pid_t pid, const char* core_path, const char* procfs_path);
-
-  // Implements LinuxDumper::BuildProcPath().
-  // Builds a proc path for a certain pid for a node (/proc/<pid>/<node>).
-  // |path| is a character array of at least NAME_MAX bytes to return the
-  // result.|node| is the final node without any slashes. Return true on
-  // success.
-  //
-  // As this dumper performs a post-mortem dump and makes use of a copy
-  // of the proc files of the crashed process, this derived method does
-  // not actually make use of |pid| and always returns a subpath of
-  // |procfs_path_| regardless of whether |pid| corresponds to the main
-  // process or a thread of the process, i.e. assuming both the main process
-  // and its threads have the following proc files with the same content:
-  //     auxv, cmdline, environ, exe, maps, status
-  virtual bool BuildProcPath(char* path, pid_t pid, const char* node) const;
-
-  // Implements LinuxDumper::CopyFromProcess().
-  // Copies content of |length| bytes from a given process |child|,
-  // starting from |src|, into |dest|. This method extracts the content
-  // the core dump and fills |dest| with a sequence of marker bytes
-  // if the expected data is not found in the core dump. Returns true if
-  // the expected data is found in the core dump.
-  virtual bool CopyFromProcess(void* dest, pid_t child, const void* src,
-                               size_t length);
-
-  // Implements LinuxDumper::GetThreadInfoByIndex().
-  // Reads information about the |index|-th thread of |threads_|.
-  // Returns true on success. One must have called |ThreadsSuspend| first.
-  virtual bool GetThreadInfoByIndex(size_t index, ThreadInfo* info);
-
-  // Implements LinuxDumper::IsPostMortem().
-  // Always returns true to indicate that this dumper performs a
-  // post-mortem dump of a crashed process via a core dump file.
-  virtual bool IsPostMortem() const;
-
-  // Implements LinuxDumper::ThreadsSuspend().
-  // As the dumper performs a post-mortem dump via a core dump file,
-  // there is no threads to suspend. This method does nothing and
-  // always returns true.
-  virtual bool ThreadsSuspend();
-
-  // Implements LinuxDumper::ThreadsResume().
-  // As the dumper performs a post-mortem dump via a core dump file,
-  // there is no threads to resume. This method does nothing and
-  // always returns true.
-  virtual bool ThreadsResume();
-
- protected:
-  // Implements LinuxDumper::EnumerateThreads().
-  // Enumerates all threads of the given process into |threads_|.
-  virtual bool EnumerateThreads();
-
- private:
-  // Path of the core dump file.
-  const char* core_path_;
-
-  // Path of the directory containing the proc files of the given process,
-  // which is usually a copy of /proc/<pid>.
-  const char* procfs_path_;
-
-  // Memory-mapped core dump file at |core_path_|.
-  MemoryMappedFile mapped_core_file_;
-
-  // Content of the core dump file.
-  ElfCoreDump core_;
-
-  // Thread info found in the core dump file.
-  wasteful_vector<ThreadInfo> thread_infos_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_HANDLER_LINUX_CORE_DUMPER_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/linux_dumper.h b/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/linux_dumper.h
deleted file mode 100644
index 6a3a100..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/linux_dumper.h
+++ /dev/null
@@ -1,254 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// linux_dumper.h: Define the google_breakpad::LinuxDumper class, which
-// is a base class for extracting information of a crashed process. It
-// was originally a complete implementation using the ptrace API, but
-// has been refactored to allow derived implementations supporting both
-// ptrace and core dump. A portion of the original implementation is now
-// in google_breakpad::LinuxPtraceDumper (see linux_ptrace_dumper.h for
-// details).
-
-#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINUX_DUMPER_H_
-#define CLIENT_LINUX_MINIDUMP_WRITER_LINUX_DUMPER_H_
-
-#include <elf.h>
-#if defined(__ANDROID__)
-#include <link.h>
-#endif
-#include <linux/limits.h>
-#include <stdint.h>
-#include <sys/types.h>
-#include <sys/user.h>
-
-#include "client/linux/dump_writer_common/mapping_info.h"
-#include "client/linux/dump_writer_common/thread_info.h"
-#include "common/memory.h"
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-// Typedef for our parsing of the auxv variables in /proc/pid/auxv.
-#if defined(__i386) || defined(__ARM_EABI__) || \
- (defined(__mips__) && _MIPS_SIM == _ABIO32)
-typedef Elf32_auxv_t elf_aux_entry;
-#elif defined(__x86_64) || defined(__aarch64__) || \
-     (defined(__mips__) && _MIPS_SIM != _ABIO32)
-typedef Elf64_auxv_t elf_aux_entry;
-#endif
-
-typedef __typeof__(((elf_aux_entry*) 0)->a_un.a_val) elf_aux_val_t;
-
-// When we find the VDSO mapping in the process's address space, this
-// is the name we use for it when writing it to the minidump.
-// This should always be less than NAME_MAX!
-const char kLinuxGateLibraryName[] = "linux-gate.so";
-
-class LinuxDumper {
- public:
-  explicit LinuxDumper(pid_t pid);
-
-  virtual ~LinuxDumper();
-
-  // Parse the data for |threads| and |mappings|.
-  virtual bool Init();
-
-  // Take any actions that could not be taken in Init(). LateInit() is
-  // called after all other caller's initialization is complete, and in
-  // particular after it has called ThreadsSuspend(), so that ptrace is
-  // available.
-  virtual bool LateInit();
-
-  // Return true if the dumper performs a post-mortem dump.
-  virtual bool IsPostMortem() const = 0;
-
-  // Suspend/resume all threads in the given process.
-  virtual bool ThreadsSuspend() = 0;
-  virtual bool ThreadsResume() = 0;
-
-  // Read information about the |index|-th thread of |threads_|.
-  // Returns true on success. One must have called |ThreadsSuspend| first.
-  virtual bool GetThreadInfoByIndex(size_t index, ThreadInfo* info) = 0;
-
-  // These are only valid after a call to |Init|.
-  const wasteful_vector<pid_t> &threads() { return threads_; }
-  const wasteful_vector<MappingInfo*> &mappings() { return mappings_; }
-  const MappingInfo* FindMapping(const void* address) const;
-  const wasteful_vector<elf_aux_val_t>& auxv() { return auxv_; }
-
-  // Find a block of memory to take as the stack given the top of stack pointer.
-  //   stack: (output) the lowest address in the memory area
-  //   stack_len: (output) the length of the memory area
-  //   stack_top: the current top of the stack
-  bool GetStackInfo(const void** stack, size_t* stack_len, uintptr_t stack_top);
-
-  PageAllocator* allocator() { return &allocator_; }
-
-  // Copy content of |length| bytes from a given process |child|,
-  // starting from |src|, into |dest|. Returns true on success.
-  virtual bool CopyFromProcess(void* dest, pid_t child, const void* src,
-                               size_t length) = 0;
-
-  // Builds a proc path for a certain pid for a node (/proc/<pid>/<node>).
-  // |path| is a character array of at least NAME_MAX bytes to return the
-  // result.|node| is the final node without any slashes. Returns true on
-  // success.
-  virtual bool BuildProcPath(char* path, pid_t pid, const char* node) const = 0;
-
-  // Generate a File ID from the .text section of a mapped entry.
-  // If not a member, mapping_id is ignored. This method can also manipulate the
-  // |mapping|.name to truncate "(deleted)" from the file name if necessary.
-  bool ElfFileIdentifierForMapping(const MappingInfo& mapping,
-                                   bool member,
-                                   unsigned int mapping_id,
-                                   uint8_t identifier[sizeof(MDGUID)]);
-
-  uintptr_t crash_address() const { return crash_address_; }
-  void set_crash_address(uintptr_t crash_address) {
-    crash_address_ = crash_address;
-  }
-
-  int crash_signal() const { return crash_signal_; }
-  void set_crash_signal(int crash_signal) { crash_signal_ = crash_signal; }
-
-  pid_t crash_thread() const { return crash_thread_; }
-  void set_crash_thread(pid_t crash_thread) { crash_thread_ = crash_thread; }
-
-  // Extracts the effective path and file name of from |mapping|. In most cases
-  // the effective name/path are just the mapping's path and basename. In some
-  // other cases, however, a library can be mapped from an archive (e.g., when
-  // loading .so libs from an apk on Android) and this method is able to
-  // reconstruct the original file name.
-  static void GetMappingEffectiveNameAndPath(const MappingInfo& mapping,
-                                             char* file_path,
-                                             size_t file_path_size,
-                                             char* file_name,
-                                             size_t file_name_size);
-
- protected:
-  bool ReadAuxv();
-
-  virtual bool EnumerateMappings();
-
-  virtual bool EnumerateThreads() = 0;
-
-  // For the case where a running program has been deleted, it'll show up in
-  // /proc/pid/maps as "/path/to/program (deleted)". If this is the case, then
-  // see if '/path/to/program (deleted)' matches /proc/pid/exe and return
-  // /proc/pid/exe in |path| so ELF identifier generation works correctly. This
-  // also checks to see if '/path/to/program (deleted)' exists, so it does not
-  // get fooled by a poorly named binary.
-  // For programs that don't end with ' (deleted)', this is a no-op.
-  // This assumes |path| is a buffer with length NAME_MAX.
-  // Returns true if |path| is modified.
-  bool HandleDeletedFileInMapping(char* path) const;
-
-   // ID of the crashed process.
-  const pid_t pid_;
-
-  // Virtual address at which the process crashed.
-  uintptr_t crash_address_;
-
-  // Signal that terminated the crashed process.
-  int crash_signal_;
-
-  // ID of the crashed thread.
-  pid_t crash_thread_;
-
-  mutable PageAllocator allocator_;
-
-  // IDs of all the threads.
-  wasteful_vector<pid_t> threads_;
-
-  // Info from /proc/<pid>/maps.
-  wasteful_vector<MappingInfo*> mappings_;
-
-  // Info from /proc/<pid>/auxv
-  wasteful_vector<elf_aux_val_t> auxv_;
-
-#if defined(__ANDROID__)
- private:
-  // Android M and later support packed ELF relocations in shared libraries.
-  // Packing relocations changes the vaddr of the LOAD segments, such that
-  // the effective load bias is no longer the same as the start address of
-  // the memory mapping containing the executable parts of the library. The
-  // packing is applied to the stripped library run on the target, but not to
-  // any other library, and in particular not to the library used to generate
-  // breakpad symbols. As a result, we need to adjust the |start_addr| for
-  // any mapping that results from a shared library that contains Android
-  // packed relocations, so that it properly represents the effective library
-  // load bias. The following functions support this adjustment.
-
-  // Check that a given mapping at |start_addr| is for an ELF shared library.
-  // If it is, place the ELF header in |ehdr| and return true.
-  // The first LOAD segment in an ELF shared library has offset zero, so the
-  // ELF file header is at the start of this map entry, and in already mapped
-  // memory.
-  bool GetLoadedElfHeader(uintptr_t start_addr, ElfW(Ehdr)* ehdr);
-
-  // For the ELF file mapped at |start_addr|, iterate ELF program headers to
-  // find the min vaddr of all program header LOAD segments, the vaddr for
-  // the DYNAMIC segment, and a count of DYNAMIC entries. Return values in
-  // |min_vaddr_ptr|, |dyn_vaddr_ptr|, and |dyn_count_ptr|.
-  // The program header table is also in already mapped memory.
-  void ParseLoadedElfProgramHeaders(ElfW(Ehdr)* ehdr,
-                                    uintptr_t start_addr,
-                                    uintptr_t* min_vaddr_ptr,
-                                    uintptr_t* dyn_vaddr_ptr,
-                                    size_t* dyn_count_ptr);
-
-  // Search the DYNAMIC tags for the ELF file with the given |load_bias|, and
-  // return true if the tags indicate that the file contains Android packed
-  // relocations. Dynamic tags are found at |dyn_vaddr| past the |load_bias|.
-  bool HasAndroidPackedRelocations(uintptr_t load_bias,
-                                   uintptr_t dyn_vaddr,
-                                   size_t dyn_count);
-
-  // If the ELF file mapped at |start_addr| contained Android packed
-  // relocations, return the load bias that the system linker (or Chromium
-  // crazy linker) will have used. If the file did not contain Android
-  // packed relocations, returns |start_addr|, indicating that no adjustment
-  // is necessary.
-  // The effective load bias is |start_addr| adjusted downwards by the
-  // min vaddr in the library LOAD segments.
-  uintptr_t GetEffectiveLoadBias(ElfW(Ehdr)* ehdr, uintptr_t start_addr);
-
-  // Called from LateInit(). Iterates |mappings_| and rewrites the |start_addr|
-  // field of any that represent ELF shared libraries with Android packed
-  // relocations, so that |start_addr| is the load bias that the system linker
-  // (or Chromium crazy linker) used. This value matches the addresses produced
-  // when the non-relocation-packed library is used for breakpad symbol
-  // generation.
-  void LatePostprocessMappings();
-#endif  // __ANDROID__
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_HANDLER_LINUX_DUMPER_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/linux_ptrace_dumper.h b/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/linux_ptrace_dumper.h
deleted file mode 100644
index 2ce834b..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/linux_ptrace_dumper.h
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// linux_ptrace_dumper.h: Define the google_breakpad::LinuxPtraceDumper
-// class, which is derived from google_breakpad::LinuxDumper to extract
-// information from a crashed process via ptrace.
-// This class was originally splitted from google_breakpad::LinuxDumper.
-
-#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINUX_PTRACE_DUMPER_H_
-#define CLIENT_LINUX_MINIDUMP_WRITER_LINUX_PTRACE_DUMPER_H_
-
-#include "client/linux/minidump_writer/linux_dumper.h"
-
-namespace google_breakpad {
-
-class LinuxPtraceDumper : public LinuxDumper {
- public:
-  // Constructs a dumper for extracting information of a given process
-  // with a process ID of |pid|.
-  explicit LinuxPtraceDumper(pid_t pid);
-
-  // Implements LinuxDumper::BuildProcPath().
-  // Builds a proc path for a certain pid for a node (/proc/<pid>/<node>).
-  // |path| is a character array of at least NAME_MAX bytes to return the
-  // result. |node| is the final node without any slashes. Returns true on
-  // success.
-  virtual bool BuildProcPath(char* path, pid_t pid, const char* node) const;
-
-  // Implements LinuxDumper::CopyFromProcess().
-  // Copies content of |length| bytes from a given process |child|,
-  // starting from |src|, into |dest|. This method uses ptrace to extract
-  // the content from the target process. Always returns true.
-  virtual bool CopyFromProcess(void* dest, pid_t child, const void* src,
-                               size_t length);
-
-  // Implements LinuxDumper::GetThreadInfoByIndex().
-  // Reads information about the |index|-th thread of |threads_|.
-  // Returns true on success. One must have called |ThreadsSuspend| first.
-  virtual bool GetThreadInfoByIndex(size_t index, ThreadInfo* info);
-
-  // Implements LinuxDumper::IsPostMortem().
-  // Always returns false to indicate this dumper performs a dump of
-  // a crashed process via ptrace.
-  virtual bool IsPostMortem() const;
-
-  // Implements LinuxDumper::ThreadsSuspend().
-  // Suspends all threads in the given process. Returns true on success.
-  virtual bool ThreadsSuspend();
-
-  // Implements LinuxDumper::ThreadsResume().
-  // Resumes all threads in the given process. Returns true on success.
-  virtual bool ThreadsResume();
-
- protected:
-  // Implements LinuxDumper::EnumerateThreads().
-  // Enumerates all threads of the given process into |threads_|.
-  virtual bool EnumerateThreads();
-
- private:
-  // Set to true if all threads of the crashed process are suspended.
-  bool threads_suspended_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_HANDLER_LINUX_PTRACE_DUMPER_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/minidump_writer.h b/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/minidump_writer.h
deleted file mode 100644
index d13fb12..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/minidump_writer.h
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright (c) 2009, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_H_
-#define CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_H_
-
-#include <stdint.h>
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <unistd.h>
-
-#include <list>
-#include <utility>
-
-#include "client/linux/minidump_writer/linux_dumper.h"
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-class ExceptionHandler;
-
-#if defined(__aarch64__)
-typedef struct fpsimd_context fpstate_t;
-#elif !defined(__ARM_EABI__) && !defined(__mips__)
-typedef struct _libc_fpstate fpstate_t;
-#endif
-
-// These entries store a list of memory regions that the client wants included
-// in the minidump.
-struct AppMemory {
-  void* ptr;
-  size_t length;
-
-  bool operator==(const struct AppMemory& other) const {
-    return ptr == other.ptr;
-  }
-
-  bool operator==(const void* other) const {
-    return ptr == other;
-  }
-};
-typedef std::list<AppMemory> AppMemoryList;
-
-// Writes a minidump to the filesystem. These functions do not malloc nor use
-// libc functions which may. Thus, it can be used in contexts where the state
-// of the heap may be corrupt.
-//   minidump_path: the path to the file to write to. This is opened O_EXCL and
-//     fails open fails.
-//   crashing_process: the pid of the crashing process. This must be trusted.
-//   blob: a blob of data from the crashing process. See exception_handler.h
-//   blob_size: the length of |blob|, in bytes
-//
-// Returns true iff successful.
-bool WriteMinidump(const char* minidump_path, pid_t crashing_process,
-                   const void* blob, size_t blob_size);
-// Same as above but takes an open file descriptor instead of a path.
-bool WriteMinidump(int minidump_fd, pid_t crashing_process,
-                   const void* blob, size_t blob_size);
-
-// Alternate form of WriteMinidump() that works with processes that
-// are not expected to have crashed.  If |process_blamed_thread| is
-// meaningful, it will be the one from which a crash signature is
-// extracted.  It is not expected that this function will be called
-// from a compromised context, but it is safe to do so.
-bool WriteMinidump(const char* minidump_path, pid_t process,
-                   pid_t process_blamed_thread);
-
-// These overloads also allow passing a list of known mappings and
-// a list of additional memory regions to be included in the minidump.
-bool WriteMinidump(const char* minidump_path, pid_t crashing_process,
-                   const void* blob, size_t blob_size,
-                   const MappingList& mappings,
-                   const AppMemoryList& appdata);
-bool WriteMinidump(int minidump_fd, pid_t crashing_process,
-                   const void* blob, size_t blob_size,
-                   const MappingList& mappings,
-                   const AppMemoryList& appdata);
-
-// These overloads also allow passing a file size limit for the minidump.
-bool WriteMinidump(const char* minidump_path, off_t minidump_size_limit,
-                   pid_t crashing_process,
-                   const void* blob, size_t blob_size,
-                   const MappingList& mappings,
-                   const AppMemoryList& appdata);
-bool WriteMinidump(int minidump_fd, off_t minidump_size_limit,
-                   pid_t crashing_process,
-                   const void* blob, size_t blob_size,
-                   const MappingList& mappings,
-                   const AppMemoryList& appdata);
-
-bool WriteMinidump(const char* filename,
-                   const MappingList& mappings,
-                   const AppMemoryList& appdata,
-                   LinuxDumper* dumper);
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/minidump_writer_unittest_utils.h b/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/minidump_writer_unittest_utils.h
deleted file mode 100644
index f16cc08..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/minidump_writer_unittest_utils.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// minidump_writer_unittest_utils.h:
-// Shared routines used by unittests under client/linux/minidump_writer.
-
-#ifndef CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_UNITTEST_UTILS_H_
-#define CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_UNITTEST_UTILS_H_
-
-#include <string>
-
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-// Returns the full path to linux_dumper_unittest_helper.  The full path is
-// discovered either by using the environment variable "bindir" or by using
-// the location of the main module of the currently running process.
-string GetHelperBinary();
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_UNITTEST_UTILS_H_
diff --git a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/proc_cpuinfo_reader.h b/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/proc_cpuinfo_reader.h
deleted file mode 100644
index d9461bf..0000000
--- a/breakpad/linux-x86/include/breakpad/client/linux/minidump_writer/proc_cpuinfo_reader.h
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright (c) 2013, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef CLIENT_LINUX_MINIDUMP_WRITER_PROC_CPUINFO_READER_H_
-#define CLIENT_LINUX_MINIDUMP_WRITER_PROC_CPUINFO_READER_H_
-
-#include <stdint.h>
-#include <assert.h>
-#include <string.h>
-
-#include "client/linux/minidump_writer/line_reader.h"
-#include "common/linux/linux_libc_support.h"
-#include "third_party/lss/linux_syscall_support.h"
-
-namespace google_breakpad {
-
-// A class for reading /proc/cpuinfo without using fopen/fgets or other
-// functions which may allocate memory.
-class ProcCpuInfoReader {
-public:
-  ProcCpuInfoReader(int fd)
-    : line_reader_(fd), pop_count_(-1) {
-  }
-
-  // Return the next field name, or NULL in case of EOF.
-  // field: (output) Pointer to zero-terminated field name.
-  // Returns true on success, or false on EOF or error (line too long).
-  bool GetNextField(const char** field) {
-    for (;;) {
-      const char* line;
-      unsigned line_len;
-
-      // Try to read next line.
-      if (pop_count_ >= 0) {
-        line_reader_.PopLine(pop_count_);
-        pop_count_ = -1;
-      }
-
-      if (!line_reader_.GetNextLine(&line, &line_len))
-        return false;
-
-      pop_count_ = static_cast<int>(line_len);
-
-      const char* line_end = line + line_len;
-
-      // Expected format: <field-name> <space>+ ':' <space> <value>
-      // Note that:
-      //   - empty lines happen.
-      //   - <field-name> can contain spaces.
-      //   - some fields have an empty <value>
-      char* sep = static_cast<char*>(my_memchr(line, ':', line_len));
-      if (sep == NULL)
-        continue;
-
-      // Record the value. Skip leading space after the column to get
-      // its start.
-      const char* val = sep+1;
-      while (val < line_end && my_isspace(*val))
-        val++;
-
-      value_ = val;
-      value_len_ = static_cast<size_t>(line_end - val);
-
-      // Remove trailing spaces before the column to properly 0-terminate
-      // the field name.
-      while (sep > line && my_isspace(sep[-1]))
-        sep--;
-
-      if (sep == line)
-        continue;
-
-      // zero-terminate field name.
-      *sep = '\0';
-
-      *field = line;
-      return true;
-    }
-  }
-
-  // Return the field value. This must be called after a succesful
-  // call to GetNextField().
-  const char* GetValue() {
-    assert(value_);
-    return value_;
-  }
-
-  // Same as GetValue(), but also returns the length in characters of
-  // the value.
-  const char* GetValueAndLen(size_t* length) {
-    assert(value_);
-    *length = value_len_;
-    return value_;
-  }
-
-private:
-  LineReader line_reader_;
-  int pop_count_;
-  const char* value_;
-  size_t value_len_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // CLIENT_LINUX_MINIDUMP_WRITER_PROC_CPUINFO_READER_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/basictypes.h b/breakpad/linux-x86/include/breakpad/common/basictypes.h
deleted file mode 100644
index 9426c1f..0000000
--- a/breakpad/linux-x86/include/breakpad/common/basictypes.h
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright (c) 2011 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef COMMON_BASICTYPES_H_
-#define COMMON_BASICTYPES_H_
-
-// A macro to disallow the copy constructor and operator= functions
-// This should be used in the private: declarations for a class
-#ifndef DISALLOW_COPY_AND_ASSIGN
-#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
-  TypeName(const TypeName&);               \
-  void operator=(const TypeName&)
-#endif  // DISALLOW_COPY_AND_ASSIGN
-
-namespace google_breakpad {
-
-// Used to explicitly mark the return value of a function as unused. If you are
-// really sure you don't want to do anything with the return value of a function
-// that has been marked with __attribute__((warn_unused_result)), wrap it with
-// this. Example:
-//
-//   scoped_ptr<MyType> my_var = ...;
-//   if (TakeOwnership(my_var.get()) == SUCCESS)
-//     ignore_result(my_var.release());
-//
-template<typename T>
-inline void ignore_result(const T&) {
-}
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_BASICTYPES_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/byte_cursor.h b/breakpad/linux-x86/include/breakpad/common/byte_cursor.h
deleted file mode 100644
index accd54e..0000000
--- a/breakpad/linux-x86/include/breakpad/common/byte_cursor.h
+++ /dev/null
@@ -1,265 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// byte_cursor.h: Classes for parsing values from a buffer of bytes.
-// The ByteCursor class provides a convenient interface for reading
-// fixed-size integers of arbitrary endianness, being thorough about
-// checking for buffer overruns.
-
-#ifndef COMMON_BYTE_CURSOR_H_
-#define COMMON_BYTE_CURSOR_H_
-
-#include <assert.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <string>
-
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-// A buffer holding a series of bytes.
-struct ByteBuffer {
-  ByteBuffer() : start(0), end(0) { }
-  ByteBuffer(const uint8_t *set_start, size_t set_size)
-      : start(set_start), end(set_start + set_size) { }
-  ~ByteBuffer() { };
-
-  // Equality operators. Useful in unit tests, and when we're using
-  // ByteBuffers to refer to regions of a larger buffer.
-  bool operator==(const ByteBuffer &that) const {
-    return start == that.start && end == that.end;
-  }
-  bool operator!=(const ByteBuffer &that) const {
-    return start != that.start || end != that.end;
-  }
-
-  // Not C++ style guide compliant, but this definitely belongs here.
-  size_t Size() const {
-    assert(start <= end);
-    return end - start;
-  }
-
-  const uint8_t *start, *end;
-};
-
-// A cursor pointing into a ByteBuffer that can parse numbers of various
-// widths and representations, strings, and data blocks, advancing through
-// the buffer as it goes. All ByteCursor operations check that accesses
-// haven't gone beyond the end of the enclosing ByteBuffer.
-class ByteCursor {
- public:
-  // Create a cursor reading bytes from the start of BUFFER. By default, the
-  // cursor reads multi-byte values in little-endian form.
-  ByteCursor(const ByteBuffer *buffer, bool big_endian = false)
-      : buffer_(buffer), here_(buffer->start), 
-        big_endian_(big_endian), complete_(true) { }
-
-  // Accessor and setter for this cursor's endianness flag.
-  bool big_endian() const { return big_endian_; }
-  void set_big_endian(bool big_endian) { big_endian_ = big_endian; }
-
-  // Accessor and setter for this cursor's current position. The setter
-  // returns a reference to this cursor.
-  const uint8_t *here() const { return here_; }
-  ByteCursor &set_here(const uint8_t *here) {
-    assert(buffer_->start <= here && here <= buffer_->end);
-    here_ = here;
-    return *this;
-  }
-
-  // Return the number of bytes available to read at the cursor.
-  size_t Available() const { return size_t(buffer_->end - here_); }
-
-  // Return true if this cursor is at the end of its buffer.
-  bool AtEnd() const { return Available() == 0; }
-
-  // When used as a boolean value this cursor converts to true if all
-  // prior reads have been completed, or false if we ran off the end
-  // of the buffer.
-  operator bool() const { return complete_; }
-
-  // Read a SIZE-byte integer at this cursor, signed if IS_SIGNED is true,
-  // unsigned otherwise, using the cursor's established endianness, and set
-  // *RESULT to the number. If we read off the end of our buffer, clear
-  // this cursor's complete_ flag, and store a dummy value in *RESULT.
-  // Return a reference to this cursor.
-  template<typename T>
-  ByteCursor &Read(size_t size, bool is_signed, T *result) {
-    if (CheckAvailable(size)) {
-      T v = 0;
-      if (big_endian_) {
-        for (size_t i = 0; i < size; i++)
-          v = (v << 8) + here_[i];
-      } else {
-        // This loop condition looks weird, but size_t is unsigned, so
-        // decrementing i after it is zero yields the largest size_t value.
-        for (size_t i = size - 1; i < size; i--)
-          v = (v << 8) + here_[i];
-      }
-      if (is_signed && size < sizeof(T)) {
-        size_t sign_bit = (T)1 << (size * 8 - 1);
-        v = (v ^ sign_bit) - sign_bit;
-      }
-      here_ += size;
-      *result = v;
-    } else {
-      *result = (T) 0xdeadbeef;
-    }
-    return *this;
-  }
-
-  // Read an integer, using the cursor's established endianness and
-  // *RESULT's size and signedness, and set *RESULT to the number. If we
-  // read off the end of our buffer, clear this cursor's complete_ flag.
-  // Return a reference to this cursor.
-  template<typename T>
-  ByteCursor &operator>>(T &result) {
-    bool T_is_signed = (T)-1 < 0;
-    return Read(sizeof(T), T_is_signed, &result); 
-  }
-
-  // Copy the SIZE bytes at the cursor to BUFFER, and advance this
-  // cursor to the end of them. If we read off the end of our buffer,
-  // clear this cursor's complete_ flag, and set *POINTER to NULL.
-  // Return a reference to this cursor.
-  ByteCursor &Read(uint8_t *buffer, size_t size) {
-    if (CheckAvailable(size)) {
-      memcpy(buffer, here_, size);
-      here_ += size;
-    }
-    return *this;
-  }
-
-  // Set STR to a copy of the '\0'-terminated string at the cursor. If the
-  // byte buffer does not contain a terminating zero, clear this cursor's
-  // complete_ flag, and set STR to the empty string. Return a reference to
-  // this cursor.
-  ByteCursor &CString(string *str) {
-    const uint8_t *end
-      = static_cast<const uint8_t *>(memchr(here_, '\0', Available()));
-    if (end) {
-      str->assign(reinterpret_cast<const char *>(here_), end - here_);
-      here_ = end + 1;
-    } else {
-      str->clear();
-      here_ = buffer_->end;
-      complete_ = false;
-    }
-    return *this;
-  }
-
-  // Like CString(STR), but extract the string from a fixed-width buffer
-  // LIMIT bytes long, which may or may not contain a terminating '\0'
-  // byte. Specifically:
-  //
-  // - If there are not LIMIT bytes available at the cursor, clear the
-  //   cursor's complete_ flag and set STR to the empty string.
-  //
-  // - Otherwise, if the LIMIT bytes at the cursor contain any '\0'
-  //   characters, set *STR to a copy of the bytes before the first '\0',
-  //   and advance the cursor by LIMIT bytes.
-  //   
-  // - Otherwise, set *STR to a copy of those LIMIT bytes, and advance the
-  //   cursor by LIMIT bytes.
-  ByteCursor &CString(string *str, size_t limit) {
-    if (CheckAvailable(limit)) {
-      const uint8_t *end
-        = static_cast<const uint8_t *>(memchr(here_, '\0', limit));
-      if (end)
-        str->assign(reinterpret_cast<const char *>(here_), end - here_);
-      else
-        str->assign(reinterpret_cast<const char *>(here_), limit);
-      here_ += limit;
-    } else {
-      str->clear();
-    }
-    return *this;
-  }
-
-  // Set *POINTER to point to the SIZE bytes at the cursor, and advance
-  // this cursor to the end of them. If SIZE is omitted, don't move the
-  // cursor. If we read off the end of our buffer, clear this cursor's
-  // complete_ flag, and set *POINTER to NULL. Return a reference to this
-  // cursor.
-  ByteCursor &PointTo(const uint8_t **pointer, size_t size = 0) {
-    if (CheckAvailable(size)) {
-      *pointer = here_;
-      here_ += size;
-    } else {
-      *pointer = NULL;
-    }
-    return *this;
-  }
-
-  // Skip SIZE bytes at the cursor. If doing so would advance us off
-  // the end of our buffer, clear this cursor's complete_ flag, and
-  // set *POINTER to NULL. Return a reference to this cursor.
-  ByteCursor &Skip(size_t size) {
-    if (CheckAvailable(size))
-      here_ += size;
-    return *this;
-  }
-
- private:
-  // If there are at least SIZE bytes available to read from the buffer,
-  // return true. Otherwise, set here_ to the end of the buffer, set
-  // complete_ to false, and return false.
-  bool CheckAvailable(size_t size) {
-    if (Available() >= size) {
-      return true;
-    } else {
-      here_ = buffer_->end;
-      complete_ = false;
-      return false;
-    }
-  }
-
-  // The buffer we're reading bytes from.
-  const ByteBuffer *buffer_;
-
-  // The next byte within buffer_ that we'll read.
-  const uint8_t *here_;
-
-  // True if we should read numbers in big-endian form; false if we
-  // should read in little-endian form.
-  bool big_endian_;
-
-  // True if we've been able to read all we've been asked to.
-  bool complete_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_BYTE_CURSOR_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/convert_UTF.h b/breakpad/linux-x86/include/breakpad/common/convert_UTF.h
deleted file mode 100644
index 644d099..0000000
--- a/breakpad/linux-x86/include/breakpad/common/convert_UTF.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright © 1991-2015 Unicode, Inc. All rights reserved.
- * Distributed under the Terms of Use in 
- * http://www.unicode.org/copyright.html.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of the Unicode data files and any associated documentation
- * (the "Data Files") or Unicode software and any associated documentation
- * (the "Software") to deal in the Data Files or Software
- * without restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, and/or sell copies of
- * the Data Files or Software, and to permit persons to whom the Data Files
- * or Software are furnished to do so, provided that
- * (a) this copyright and permission notice appear with all copies 
- * of the Data Files or Software,
- * (b) this copyright and permission notice appear in associated 
- * documentation, and
- * (c) there is clear notice in each modified Data File or in the Software
- * as well as in the documentation associated with the Data File(s) or
- * Software that the data or software has been modified.
- *
- * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
- * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT OF THIRD PARTY RIGHTS.
- * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
- * NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
- * DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THE DATA FILES OR SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale,
- * use or other dealings in these Data Files or Software without prior
- * written authorization of the copyright holder.
- */
-
-#ifndef COMMON_CONVERT_UTF_H_
-#define COMMON_CONVERT_UTF_H_
-
-/* ---------------------------------------------------------------------
-
-Conversions between UTF32, UTF-16, and UTF-8.  Header file.
-
-Several funtions are included here, forming a complete set of
-conversions between the three formats.  UTF-7 is not included
-here, but is handled in a separate source file.
-
-Each of these routines takes pointers to input buffers and output
-buffers.  The input buffers are const.
-
-Each routine converts the text between *sourceStart and sourceEnd,
-putting the result into the buffer between *targetStart and
-targetEnd. Note: the end pointers are *after* the last item: e.g.
-*(sourceEnd - 1) is the last item.
-
-The return result indicates whether the conversion was successful,
-and if not, whether the problem was in the source or target buffers.
-(Only the first encountered problem is indicated.)
-
-After the conversion, *sourceStart and *targetStart are both
-updated to point to the end of last text successfully converted in
-the respective buffers.
-
-Input parameters:
-sourceStart - pointer to a pointer to the source buffer.
-The contents of this are modified on return so that
-it points at the next thing to be converted.
-targetStart - similarly, pointer to pointer to the target buffer.
-sourceEnd, targetEnd - respectively pointers to the ends of the
-two buffers, for overflow checking only.
-
-These conversion functions take a ConversionFlags argument. When this
-flag is set to strict, both irregular sequences and isolated surrogates
-will cause an error.  When the flag is set to lenient, both irregular
-sequences and isolated surrogates are converted.
-
-Whether the flag is strict or lenient, all illegal sequences will cause
-an error return. This includes sequences such as: <F4 90 80 80>, <C0 80>,
-or <A0> in UTF-8, and values above 0x10FFFF in UTF-32. Conformant code
-must check for illegal sequences.
-
-When the flag is set to lenient, characters over 0x10FFFF are converted
-to the replacement character; otherwise (when the flag is set to strict)
-they constitute an error.
-
-Output parameters:
-The value "sourceIllegal" is returned from some routines if the input
-sequence is malformed.  When "sourceIllegal" is returned, the source
-value will point to the illegal value that caused the problem. E.g.,
-in UTF-8 when a sequence is malformed, it points to the start of the
-malformed sequence.
-
-Author: Mark E. Davis, 1994.
-Rev History: Rick McGowan, fixes & updates May 2001.
-Fixes & updates, Sept 2001.
-
------------------------------------------------------------------------- */
-
-/* ---------------------------------------------------------------------
-The following 4 definitions are compiler-specific.
-The C standard does not guarantee that wchar_t has at least
-16 bits, so wchar_t is no less portable than unsigned short!
-All should be unsigned values to avoid sign extension during
-bit mask & shift operations.
------------------------------------------------------------------------- */
-
-typedef unsigned long	UTF32;	/* at least 32 bits */
-typedef unsigned short	UTF16;	/* at least 16 bits */
-typedef unsigned char	UTF8;	/* typically 8 bits */
-typedef unsigned char	Boolean; /* 0 or 1 */
-
-/* Some fundamental constants */
-#define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD
-#define UNI_MAX_BMP (UTF32)0x0000FFFF
-#define UNI_MAX_UTF16 (UTF32)0x0010FFFF
-#define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF
-#define UNI_MAX_LEGAL_UTF32 (UTF32)0x0010FFFF
-
-typedef enum {
-	conversionOK, 		/* conversion successful */
-	sourceExhausted,	/* partial character in source, but hit end */
-	targetExhausted,	/* insuff. room in target for conversion */
-	sourceIllegal		/* source sequence is illegal/malformed */
-} ConversionResult;
-
-typedef enum {
-	strictConversion = 0,
-	lenientConversion
-} ConversionFlags;
-
-/* This is for C++ and does no harm in C */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-ConversionResult ConvertUTF8toUTF16 (const UTF8** sourceStart, const UTF8* sourceEnd,
-                                     UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags);
-
-ConversionResult ConvertUTF16toUTF8 (const UTF16** sourceStart, const UTF16* sourceEnd,
-                                     UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags);
-
-ConversionResult ConvertUTF8toUTF32 (const UTF8** sourceStart, const UTF8* sourceEnd,
-                                     UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags);
-
-ConversionResult ConvertUTF32toUTF8 (const UTF32** sourceStart, const UTF32* sourceEnd,
-                                     UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags);
-
-ConversionResult ConvertUTF16toUTF32 (const UTF16** sourceStart, const UTF16* sourceEnd,
-                                      UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags);
-
-ConversionResult ConvertUTF32toUTF16 (const UTF32** sourceStart, const UTF32* sourceEnd,
-                                      UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags);
-
-Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd);
-
-#ifdef __cplusplus
-}
-#endif
-
-/* --------------------------------------------------------------------- */
-
-#endif  // COMMON_CONVERT_UTF_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/dwarf_cfi_to_module.h b/breakpad/linux-x86/include/breakpad/common/dwarf_cfi_to_module.h
deleted file mode 100644
index 084b8f5..0000000
--- a/breakpad/linux-x86/include/breakpad/common/dwarf_cfi_to_module.h
+++ /dev/null
@@ -1,202 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// dwarf_cfi_to_module.h: Define the DwarfCFIToModule class, which
-// accepts parsed DWARF call frame info and adds it to a
-// google_breakpad::Module object, which can write that information to
-// a Breakpad symbol file.
-
-#ifndef COMMON_LINUX_DWARF_CFI_TO_MODULE_H
-#define COMMON_LINUX_DWARF_CFI_TO_MODULE_H
-
-#include <assert.h>
-#include <stdio.h>
-
-#include <set>
-#include <string>
-#include <vector>
-
-#include "common/module.h"
-#include "common/dwarf/dwarf2reader.h"
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-using dwarf2reader::CallFrameInfo;
-using google_breakpad::Module;
-using std::set;
-using std::vector;
-
-// A class that accepts parsed call frame information from the DWARF
-// CFI parser and populates a google_breakpad::Module object with the
-// contents.
-class DwarfCFIToModule: public CallFrameInfo::Handler {
- public:
-
-  // DwarfCFIToModule uses an instance of this class to report errors
-  // detected while converting DWARF CFI to Breakpad STACK CFI records.
-  class Reporter {
-   public:
-    // Create a reporter that writes messages to the standard error
-    // stream. FILE is the name of the file we're processing, and
-    // SECTION is the name of the section within that file that we're
-    // looking at (.debug_frame, .eh_frame, etc.).
-    Reporter(const string &file, const string &section)
-      : file_(file), section_(section) { }
-    virtual ~Reporter() { }
-
-    // The DWARF CFI entry at OFFSET cites register REG, but REG is not
-    // covered by the vector of register names passed to the
-    // DwarfCFIToModule constructor, nor does it match the return
-    // address column number for this entry.
-    virtual void UnnamedRegister(size_t offset, int reg);
-
-    // The DWARF CFI entry at OFFSET says that REG is undefined, but the
-    // Breakpad symbol file format cannot express this.
-    virtual void UndefinedNotSupported(size_t offset, const string &reg);
-
-    // The DWARF CFI entry at OFFSET says that REG uses a DWARF
-    // expression to find its value, but DwarfCFIToModule is not
-    // capable of translating DWARF expressions to Breakpad postfix
-    // expressions.
-    virtual void ExpressionsNotSupported(size_t offset, const string &reg);
-
-  protected:
-    string file_, section_;
-  };
-
-  // Register name tables. If TABLE is a vector returned by one of these
-  // functions, then TABLE[R] is the name of the register numbered R in
-  // DWARF call frame information.
-  class RegisterNames {
-   public:
-    // Intel's "x86" or IA-32.
-    static vector<string> I386();
-
-    // AMD x86_64, AMD64, Intel EM64T, or Intel 64
-    static vector<string> X86_64();
-
-    // ARM.
-    static vector<string> ARM();
-
-    // ARM64, aka AARCH64.
-    static vector<string> ARM64();
-
-    // MIPS.
-    static vector<string> MIPS();
-
-   private:
-    // Given STRINGS, an array of C strings with SIZE elements, return an
-    // equivalent vector<string>.
-    static vector<string> MakeVector(const char * const *strings, size_t size);
-  };
-
-  // Create a handler for the dwarf2reader::CallFrameInfo parser that
-  // records the stack unwinding information it receives in MODULE.
-  //
-  // Use REGISTER_NAMES[I] as the name of register number I; *this
-  // keeps a reference to the vector, so the vector should remain
-  // alive for as long as the DwarfCFIToModule does.
-  //
-  // Use REPORTER for reporting problems encountered in the conversion
-  // process.
-  DwarfCFIToModule(Module *module, const vector<string> &register_names,
-                   Reporter *reporter)
-      : module_(module), register_names_(register_names), reporter_(reporter),
-        entry_(NULL), return_address_(-1), cfa_name_(".cfa"), ra_name_(".ra") {
-  }
-  virtual ~DwarfCFIToModule() { delete entry_; }
-
-  virtual bool Entry(size_t offset, uint64 address, uint64 length,
-                     uint8 version, const string &augmentation,
-                     unsigned return_address);
-  virtual bool UndefinedRule(uint64 address, int reg);
-  virtual bool SameValueRule(uint64 address, int reg);
-  virtual bool OffsetRule(uint64 address, int reg,
-                          int base_register, long offset);
-  virtual bool ValOffsetRule(uint64 address, int reg,
-                             int base_register, long offset);
-  virtual bool RegisterRule(uint64 address, int reg, int base_register);
-  virtual bool ExpressionRule(uint64 address, int reg,
-                              const string &expression);
-  virtual bool ValExpressionRule(uint64 address, int reg,
-                                 const string &expression);
-  virtual bool End();
-
- private:
-  // Return the name to use for register REG.
-  string RegisterName(int i);
-
-  // Record RULE for register REG at ADDRESS.
-  void Record(Module::Address address, int reg, const string &rule);
-
-  // The module to which we should add entries.
-  Module *module_;
-
-  // Map from register numbers to register names.
-  const vector<string> &register_names_;
-
-  // The reporter to use to report problems.
-  Reporter *reporter_;
-
-  // The current entry we're constructing.
-  Module::StackFrameEntry *entry_;
-
-  // The section offset of the current frame description entry, for
-  // use in error messages.
-  size_t entry_offset_;
-
-  // The return address column for that entry.
-  unsigned return_address_;
-
-  // The names of the return address and canonical frame address. Putting
-  // these here instead of using string literals allows us to share their
-  // texts in reference-counted std::string implementations (all the
-  // popular ones). Many, many rules cite these strings.
-  string cfa_name_, ra_name_;
-
-  // A set of strings used by this CFI. Before storing a string in one of
-  // our data structures, insert it into this set, and then use the string
-  // from the set.
-  //
-  // Because std::string uses reference counting internally, simply using
-  // strings from this set, even if passed by value, assigned, or held
-  // directly in structures and containers (map<string, ...>, for example),
-  // causes those strings to share a single instance of each distinct piece
-  // of text.
-  set<string> common_strings_;
-};
-
-} // namespace google_breakpad
-
-#endif // COMMON_LINUX_DWARF_CFI_TO_MODULE_H
diff --git a/breakpad/linux-x86/include/breakpad/common/dwarf_cu_to_module.h b/breakpad/linux-x86/include/breakpad/common/dwarf_cu_to_module.h
deleted file mode 100644
index fd9c380..0000000
--- a/breakpad/linux-x86/include/breakpad/common/dwarf_cu_to_module.h
+++ /dev/null
@@ -1,318 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// Add DWARF debugging information to a Breakpad symbol file. This
-// file defines the DwarfCUToModule class, which accepts parsed DWARF
-// data and populates a google_breakpad::Module with the results; the
-// Module can then write its contents as a Breakpad symbol file.
-
-#ifndef COMMON_LINUX_DWARF_CU_TO_MODULE_H__
-#define COMMON_LINUX_DWARF_CU_TO_MODULE_H__
-
-#include <string>
-
-#include "common/language.h"
-#include "common/module.h"
-#include "common/dwarf/bytereader.h"
-#include "common/dwarf/dwarf2diehandler.h"
-#include "common/dwarf/dwarf2reader.h"
-#include "common/scoped_ptr.h"
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-using dwarf2reader::DwarfAttribute;
-using dwarf2reader::DwarfForm;
-using dwarf2reader::DwarfLanguage;
-using dwarf2reader::DwarfTag;
-
-// Populate a google_breakpad::Module with DWARF debugging information.
-//
-// An instance of this class can be provided as a handler to a
-// dwarf2reader::DIEDispatcher, which can in turn be a handler for a
-// dwarf2reader::CompilationUnit DWARF parser. The handler uses the results
-// of parsing to populate a google_breakpad::Module with source file,
-// function, and source line information.
-class DwarfCUToModule: public dwarf2reader::RootDIEHandler {
-  struct FilePrivate;
- public:
-  // Information global to the DWARF-bearing file we are processing,
-  // for use by DwarfCUToModule. Each DwarfCUToModule instance deals
-  // with a single compilation unit within the file, but information
-  // global to the whole file is held here. The client is responsible
-  // for filling it in appropriately (except for the 'file_private'
-  // field, which the constructor and destructor take care of), and
-  // then providing it to the DwarfCUToModule instance for each
-  // compilation unit we process in that file. Set HANDLE_INTER_CU_REFS
-  // to true to handle debugging symbols with DW_FORM_ref_addr entries.
-  class FileContext {
-   public:
-    FileContext(const string &filename,
-                Module *module,
-                bool handle_inter_cu_refs);
-    ~FileContext();
-
-    // Add CONTENTS of size LENGTH to the section map as NAME.
-    void AddSectionToSectionMap(const string& name,
-                                const char* contents,
-                                uint64 length);
-
-    // Clear the section map for testing.
-    void ClearSectionMapForTest();
-
-    const dwarf2reader::SectionMap& section_map() const;
-
-   private:
-    friend class DwarfCUToModule;
-
-    // Clears all the Specifications if HANDLE_INTER_CU_REFS_ is false.
-    void ClearSpecifications();
-
-    // Given an OFFSET and a CU that starts at COMPILATION_UNIT_START, returns
-    // true if this is an inter-compilation unit reference that is not being
-    // handled.
-    bool IsUnhandledInterCUReference(uint64 offset,
-                                     uint64 compilation_unit_start) const;
-
-    // The name of this file, for use in error messages.
-    const string filename_;
-
-    // A map of this file's sections, used for finding other DWARF
-    // sections that the .debug_info section may refer to.
-    dwarf2reader::SectionMap section_map_;
-
-    // The Module to which we're contributing definitions.
-    Module *module_;
-
-    // True if we are handling references between compilation units.
-    const bool handle_inter_cu_refs_;
-
-    // Inter-compilation unit data used internally by the handlers.
-    scoped_ptr<FilePrivate> file_private_;
-  };
-
-  // An abstract base class for handlers that handle DWARF line data
-  // for DwarfCUToModule. DwarfCUToModule could certainly just use
-  // dwarf2reader::LineInfo itself directly, but decoupling things
-  // this way makes unit testing a little easier.
-  class LineToModuleHandler {
-   public:
-    LineToModuleHandler() { }
-    virtual ~LineToModuleHandler() { }
-
-    // Called at the beginning of a new compilation unit, prior to calling
-    // ReadProgram(). compilation_dir will indicate the path that the
-    // current compilation unit was compiled in, consistent with the
-    // DW_AT_comp_dir DIE.
-    virtual void StartCompilationUnit(const string& compilation_dir) = 0;
-
-    // Populate MODULE and LINES with source file names and code/line
-    // mappings, given a pointer to some DWARF line number data
-    // PROGRAM, and an overestimate of its size. Add no zero-length
-    // lines to LINES.
-    virtual void ReadProgram(const char *program, uint64 length,
-                             Module *module, vector<Module::Line> *lines) = 0;
-  };
-
-  // The interface DwarfCUToModule uses to report warnings. The member
-  // function definitions for this class write messages to stderr, but
-  // you can override them if you'd like to detect or report these
-  // conditions yourself.
-  class WarningReporter {
-   public:
-    // Warn about problems in the DWARF file FILENAME, in the
-    // compilation unit at OFFSET.
-    WarningReporter(const string &filename, uint64 cu_offset)
-        : filename_(filename), cu_offset_(cu_offset), printed_cu_header_(false),
-          printed_unpaired_header_(false),
-          uncovered_warnings_enabled_(false) { }
-    virtual ~WarningReporter() { }
-
-    // Set the name of the compilation unit we're processing to NAME.
-    virtual void SetCUName(const string &name) { cu_name_ = name; }
-
-    // Accessor and setter for uncovered_warnings_enabled_.
-    // UncoveredFunction and UncoveredLine only report a problem if that is
-    // true. By default, these warnings are disabled, because those
-    // conditions occur occasionally in healthy code.
-    virtual bool uncovered_warnings_enabled() const {
-      return uncovered_warnings_enabled_;
-    }
-    virtual void set_uncovered_warnings_enabled(bool value) {
-      uncovered_warnings_enabled_ = value;
-    }
-
-    // A DW_AT_specification in the DIE at OFFSET refers to a DIE we
-    // haven't processed yet, or that wasn't marked as a declaration,
-    // at TARGET.
-    virtual void UnknownSpecification(uint64 offset, uint64 target);
-
-    // A DW_AT_abstract_origin in the DIE at OFFSET refers to a DIE we
-    // haven't processed yet, or that wasn't marked as inline, at TARGET.
-    virtual void UnknownAbstractOrigin(uint64 offset, uint64 target);
-
-    // We were unable to find the DWARF section named SECTION_NAME.
-    virtual void MissingSection(const string &section_name);
-
-    // The CU's DW_AT_stmt_list offset OFFSET is bogus.
-    virtual void BadLineInfoOffset(uint64 offset);
-
-    // FUNCTION includes code covered by no line number data.
-    virtual void UncoveredFunction(const Module::Function &function);
-
-    // Line number NUMBER in LINE_FILE, of length LENGTH, includes code
-    // covered by no function.
-    virtual void UncoveredLine(const Module::Line &line);
-
-    // The DW_TAG_subprogram DIE at OFFSET has no name specified directly
-    // in the DIE, nor via a DW_AT_specification or DW_AT_abstract_origin
-    // link.
-    virtual void UnnamedFunction(uint64 offset);
-
-    // __cxa_demangle() failed to demangle INPUT.
-    virtual void DemangleError(const string &input, int error);
-
-    // The DW_FORM_ref_addr at OFFSET to TARGET was not handled because
-    // FilePrivate did not retain the inter-CU specification data.
-    virtual void UnhandledInterCUReference(uint64 offset, uint64 target);
-
-    uint64 cu_offset() const {
-      return cu_offset_;
-    }
-
-   protected:
-    const string filename_;
-    const uint64 cu_offset_;
-    string cu_name_;
-    bool printed_cu_header_;
-    bool printed_unpaired_header_;
-    bool uncovered_warnings_enabled_;
-
-   private:
-    // Print a per-CU heading, once.
-    void CUHeading();
-    // Print an unpaired function/line heading, once.
-    void UncoveredHeading();
-  };
-
-  // Create a DWARF debugging info handler for a compilation unit
-  // within FILE_CONTEXT. This uses information received from the
-  // dwarf2reader::CompilationUnit DWARF parser to populate
-  // FILE_CONTEXT->module. Use LINE_READER to handle the compilation
-  // unit's line number data. Use REPORTER to report problems with the
-  // data we find.
-  DwarfCUToModule(FileContext *file_context,
-                  LineToModuleHandler *line_reader,
-                  WarningReporter *reporter);
-  ~DwarfCUToModule();
-
-  void ProcessAttributeSigned(enum DwarfAttribute attr,
-                              enum DwarfForm form,
-                              int64 data);
-  void ProcessAttributeUnsigned(enum DwarfAttribute attr,
-                                enum DwarfForm form,
-                                uint64 data);
-  void ProcessAttributeString(enum DwarfAttribute attr,
-                              enum DwarfForm form,
-                              const string &data);
-  bool EndAttributes();
-  DIEHandler *FindChildHandler(uint64 offset, enum DwarfTag tag);
-
-  // Assign all our source Lines to the Functions that cover their
-  // addresses, and then add them to module_.
-  void Finish();
-
-  bool StartCompilationUnit(uint64 offset, uint8 address_size,
-                            uint8 offset_size, uint64 cu_length,
-                            uint8 dwarf_version);
-  bool StartRootDIE(uint64 offset, enum DwarfTag tag);
-
- private:
-  // Used internally by the handler. Full definitions are in
-  // dwarf_cu_to_module.cc.
-  struct CUContext;
-  struct DIEContext;
-  struct Specification;
-  class GenericDIEHandler;
-  class FuncHandler;
-  class NamedScopeHandler;
-
-  // A map from section offsets to specifications.
-  typedef map<uint64, Specification> SpecificationByOffset;
-
-  // Set this compilation unit's source language to LANGUAGE.
-  void SetLanguage(DwarfLanguage language);
-
-  // Read source line information at OFFSET in the .debug_line
-  // section.  Record source files in module_, but record source lines
-  // in lines_; we apportion them to functions in
-  // AssignLinesToFunctions.
-  void ReadSourceLines(uint64 offset);
-
-  // Assign the lines in lines_ to the individual line lists of the
-  // functions in functions_.  (DWARF line information maps an entire
-  // compilation unit at a time, and gives no indication of which
-  // lines belong to which functions, beyond their addresses.)
-  void AssignLinesToFunctions();
-
-  // The only reason cu_context_ and child_context_ are pointers is
-  // that we want to keep their definitions private to
-  // dwarf_cu_to_module.cc, instead of listing them all here. They are
-  // owned by this DwarfCUToModule: the constructor sets them, and the
-  // destructor deletes them.
-
-  // The handler to use to handle line number data.
-  LineToModuleHandler *line_reader_;
-
-  // This compilation unit's context.
-  scoped_ptr<CUContext> cu_context_;
-
-  // A context for our children.
-  scoped_ptr<DIEContext> child_context_;
-
-  // True if this compilation unit has source line information.
-  bool has_source_line_info_;
-
-  // The offset of this compilation unit's line number information in
-  // the .debug_line section.
-  uint64 source_line_offset_;
-
-  // The line numbers we have seen thus far.  We accumulate these here
-  // during parsing.  Then, in Finish, we call AssignLinesToFunctions
-  // to dole them out to the appropriate functions.
-  vector<Module::Line> lines_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_DWARF_CU_TO_MODULE_H__
diff --git a/breakpad/linux-x86/include/breakpad/common/dwarf_line_to_module.h b/breakpad/linux-x86/include/breakpad/common/dwarf_line_to_module.h
deleted file mode 100644
index 1fdd4cb..0000000
--- a/breakpad/linux-x86/include/breakpad/common/dwarf_line_to_module.h
+++ /dev/null
@@ -1,188 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// The DwarfLineToModule class accepts line number information from a
-// DWARF parser and adds it to a google_breakpad::Module. The Module
-// can write that data out as a Breakpad symbol file.
-
-#ifndef COMMON_LINUX_DWARF_LINE_TO_MODULE_H
-#define COMMON_LINUX_DWARF_LINE_TO_MODULE_H
-
-#include <string>
-
-#include "common/module.h"
-#include "common/dwarf/dwarf2reader.h"
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-// A class for producing a vector of google_breakpad::Module::Line
-// instances from parsed DWARF line number data.  
-//
-// An instance of this class can be provided as a handler to a
-// dwarf2reader::LineInfo DWARF line number information parser. The
-// handler accepts source location information from the parser and
-// uses it to produce a vector of google_breakpad::Module::Line
-// objects, referring to google_breakpad::Module::File objects added
-// to a particular google_breakpad::Module.
-//
-// GNU toolchain omitted sections support:
-// ======================================
-//
-// Given the right options, the GNU toolchain will omit unreferenced
-// functions from the final executable. Unfortunately, when it does so, it
-// does not remove the associated portions of the DWARF line number
-// program; instead, it gives the DW_LNE_set_address instructions referring
-// to the now-deleted code addresses of zero. Given this input, the DWARF
-// line parser will call AddLine with a series of lines starting at address
-// zero. For example, here is the output from 'readelf -wl' for a program
-// with four functions, the first three of which have been omitted:
-//
-//   Line Number Statements:
-//    Extended opcode 2: set Address to 0x0
-//    Advance Line by 14 to 15
-//    Copy
-//    Special opcode 48: advance Address by 3 to 0x3 and Line by 1 to 16
-//    Special opcode 119: advance Address by 8 to 0xb and Line by 2 to 18
-//    Advance PC by 2 to 0xd
-//    Extended opcode 1: End of Sequence
-// 
-//    Extended opcode 2: set Address to 0x0
-//    Advance Line by 14 to 15
-//    Copy
-//    Special opcode 48: advance Address by 3 to 0x3 and Line by 1 to 16
-//    Special opcode 119: advance Address by 8 to 0xb and Line by 2 to 18
-//    Advance PC by 2 to 0xd
-//    Extended opcode 1: End of Sequence
-// 
-//    Extended opcode 2: set Address to 0x0
-//    Advance Line by 19 to 20
-//    Copy
-//    Special opcode 48: advance Address by 3 to 0x3 and Line by 1 to 21
-//    Special opcode 76: advance Address by 5 to 0x8 and Line by 1 to 22
-//    Advance PC by 2 to 0xa
-//    Extended opcode 1: End of Sequence
-// 
-//    Extended opcode 2: set Address to 0x80483a4
-//    Advance Line by 23 to 24
-//    Copy
-//    Special opcode 202: advance Address by 14 to 0x80483b2 and Line by 1 to 25
-//    Special opcode 76: advance Address by 5 to 0x80483b7 and Line by 1 to 26
-//    Advance PC by 6 to 0x80483bd
-//    Extended opcode 1: End of Sequence
-//
-// Instead of collecting runs of lines describing code that is not there,
-// we try to recognize and drop them. Since the linker doesn't explicitly
-// distinguish references to dropped sections from genuine references to
-// code at address zero, we must use a heuristic. We have chosen:
-//
-// - If a line starts at address zero, omit it. (On the platforms
-//   breakpad targets, it is extremely unlikely that there will be code
-//   at address zero.)
-//
-// - If a line starts immediately after an omitted line, omit it too.
-class DwarfLineToModule: public dwarf2reader::LineInfoHandler {
- public:
-  // As the DWARF line info parser passes us line records, add source
-  // files to MODULE, and add all lines to the end of LINES. LINES
-  // need not be empty. If the parser hands us a zero-length line, we
-  // omit it. If the parser hands us a line that extends beyond the
-  // end of the address space, we clip it. It's up to our client to
-  // sort out which lines belong to which functions; we don't add them
-  // to any particular function in MODULE ourselves.
-  DwarfLineToModule(Module *module, const string& compilation_dir,
-                    vector<Module::Line> *lines)
-      : module_(module),
-        compilation_dir_(compilation_dir),
-        lines_(lines),
-        highest_file_number_(-1),
-        omitted_line_end_(0),
-        warned_bad_file_number_(false),
-        warned_bad_directory_number_(false) { }
-  
-  ~DwarfLineToModule() { }
-
-  void DefineDir(const string &name, uint32 dir_num);
-  void DefineFile(const string &name, int32 file_num,
-                  uint32 dir_num, uint64 mod_time,
-                  uint64 length);
-  void AddLine(uint64 address, uint64 length,
-               uint32 file_num, uint32 line_num, uint32 column_num);
-
- private:
-
-  typedef std::map<uint32, string> DirectoryTable;
-  typedef std::map<uint32, Module::File *> FileTable;
-
-  // The module we're contributing debugging info to. Owned by our
-  // client.
-  Module *module_;
-
-  // The compilation directory for the current compilation unit whose
-  // lines are being accumulated.
-  string compilation_dir_;
-
-  // The vector of lines we're accumulating. Owned by our client.
-  //
-  // In a Module, as in a breakpad symbol file, lines belong to
-  // specific functions, but DWARF simply assigns lines to addresses;
-  // one must infer the line/function relationship using the
-  // functions' beginning and ending addresses. So we can't add these
-  // to the appropriate function from module_ until we've read the
-  // function info as well. Instead, we accumulate lines here, and let
-  // whoever constructed this sort it all out.
-  vector<Module::Line> *lines_;
-
-  // A table mapping directory numbers to paths.
-  DirectoryTable directories_;
-
-  // A table mapping file numbers to Module::File pointers.
-  FileTable files_;
-
-  // The highest file number we've seen so far, or -1 if we've seen
-  // none.  Used for dynamically defined file numbers.
-  int32 highest_file_number_;
-  
-  // This is the ending address of the last line we omitted, or zero if we
-  // didn't omit the previous line. It is zero before we have received any
-  // AddLine calls.
-  uint64 omitted_line_end_;
-
-  // True if we've warned about:
-  bool warned_bad_file_number_; // bad file numbers
-  bool warned_bad_directory_number_; // bad directory numbers
-};
-
-} // namespace google_breakpad
-
-#endif // COMMON_LINUX_DWARF_LINE_TO_MODULE_H
diff --git a/breakpad/linux-x86/include/breakpad/common/language.h b/breakpad/linux-x86/include/breakpad/common/language.h
deleted file mode 100644
index bbe3033..0000000
--- a/breakpad/linux-x86/include/breakpad/common/language.h
+++ /dev/null
@@ -1,88 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// language.h: Define google_breakpad::Language. Instances of
-// subclasses of this class provide language-appropriate operations
-// for the Breakpad symbol dumper.
-
-#ifndef COMMON_LINUX_LANGUAGE_H__
-#define COMMON_LINUX_LANGUAGE_H__
-
-#include <string>
-
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-// An abstract base class for language-specific operations. We choose
-// an instance of a subclass of this when we find the CU's language.
-// This class's definitions are appropriate for CUs with no specified
-// language.
-class Language {
- public:
-  // A base class destructor should be either public and virtual,
-  // or protected and nonvirtual.
-  virtual ~Language() {}
-
-  // Return true if this language has functions to which we can assign
-  // line numbers. (Debugging info for assembly language, for example,
-  // can have source location information, but does not have functions
-  // recorded using DW_TAG_subprogram DIEs.)
-  virtual bool HasFunctions() const { return true; }
-
-  // Construct a fully-qualified, language-appropriate form of NAME,
-  // given that PARENT_NAME is the name of the construct enclosing
-  // NAME. If PARENT_NAME is the empty string, then NAME is a
-  // top-level name.
-  //
-  // This API sort of assumes that a fully-qualified name is always
-  // some simple textual composition of the unqualified name and its
-  // parent's name, and that we don't need to know anything else about
-  // the parent or the child (say, their DIEs' tags) to do the job.
-  // This is true for the languages we support at the moment, and
-  // keeps things concrete. Perhaps a more refined operation would
-  // take into account the parent and child DIE types, allow languages
-  // to use their own data type for complex parent names, etc. But if
-  // C++ doesn't need all that, who would?
-  virtual string MakeQualifiedName (const string &parent_name,
-                                    const string &name) const = 0;
-
-  // Instances for specific languages.
-  static const Language * const CPlusPlus,
-                        * const Java,
-                        * const Assembler;
-};
-
-} // namespace google_breakpad
-
-#endif  // COMMON_LINUX_LANGUAGE_H__
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/crc32.h b/breakpad/linux-x86/include/breakpad/common/linux/crc32.h
deleted file mode 100644
index e3d9db9..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/crc32.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2014 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef COMMON_LINUX_CRC32_H_
-#define COMMON_LINUX_CRC32_H_
-
-#include <stdint.h>
-
-#include <string>
-
-namespace google_breakpad {
-
-// Updates a CRC32 checksum with |len| bytes from |buf|. |initial| holds the
-// checksum result from the previous update; for the first call, it should be 0.
-uint32_t UpdateCrc32(uint32_t initial, const void* buf, size_t len);
-
-// Computes a CRC32 checksum using |len| bytes from |buf|.
-inline uint32_t ComputeCrc32(const void* buf, size_t len) {
-  return UpdateCrc32(0, buf, len);
-}
-inline uint32_t ComputeCrc32(const std::string& str) {
-  return ComputeCrc32(str.c_str(), str.size());
-}
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_CRC32_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/dump_symbols.h b/breakpad/linux-x86/include/breakpad/common/linux/dump_symbols.h
deleted file mode 100644
index 636bb72..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/dump_symbols.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// dump_symbols.h: Read debugging information from an ELF file, and write
-// it out as a Breakpad symbol file.
-
-#ifndef COMMON_LINUX_DUMP_SYMBOLS_H__
-#define COMMON_LINUX_DUMP_SYMBOLS_H__
-
-#include <iostream>
-#include <string>
-#include <vector>
-
-#include "common/symbol_data.h"
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-class Module;
-
-struct DumpOptions {
-  DumpOptions(SymbolData symbol_data, bool handle_inter_cu_refs)
-      : symbol_data(symbol_data),
-        handle_inter_cu_refs(handle_inter_cu_refs) {
-  }
-
-  SymbolData symbol_data;
-  bool handle_inter_cu_refs;
-};
-
-// Find all the debugging information in OBJ_FILE, an ELF executable
-// or shared library, and write it to SYM_STREAM in the Breakpad symbol
-// file format.
-// If OBJ_FILE has been stripped but contains a .gnu_debuglink section,
-// then look for the debug file in DEBUG_DIRS.
-// SYMBOL_DATA allows limiting the type of symbol data written.
-bool WriteSymbolFile(const string &obj_file,
-                     const std::vector<string>& debug_dirs,
-                     const DumpOptions& options,
-                     std::ostream &sym_stream);
-
-// As above, but simply return the debugging information in MODULE
-// instead of writing it to a stream. The caller owns the resulting
-// Module object and must delete it when finished.
-bool ReadSymbolData(const string& obj_file,
-                    const std::vector<string>& debug_dirs,
-                    const DumpOptions& options,
-                    Module** module);
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_DUMP_SYMBOLS_H__
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/eintr_wrapper.h b/breakpad/linux-x86/include/breakpad/common/linux/eintr_wrapper.h
deleted file mode 100644
index 3f1d184..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/eintr_wrapper.h
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef COMMON_LINUX_EINTR_WRAPPER_H_
-#define COMMON_LINUX_EINTR_WRAPPER_H_
-
-#include <errno.h>
-
-// This provides a wrapper around system calls which may be interrupted by a
-// signal and return EINTR. See man 7 signal.
-//
-
-#define HANDLE_EINTR(x) ({ \
-  __typeof__(x) eintr_wrapper_result; \
-  do { \
-    eintr_wrapper_result = (x); \
-  } while (eintr_wrapper_result == -1 && errno == EINTR); \
-  eintr_wrapper_result; \
-})
-
-#define IGNORE_EINTR(x) ({ \
-  __typeof__(x) eintr_wrapper_result; \
-  do { \
-    eintr_wrapper_result = (x); \
-    if (eintr_wrapper_result == -1 && errno == EINTR) { \
-      eintr_wrapper_result = 0; \
-    } \
-  } while (0); \
-  eintr_wrapper_result; \
-})
-
-#endif  // COMMON_LINUX_EINTR_WRAPPER_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/elf_core_dump.h b/breakpad/linux-x86/include/breakpad/common/linux/elf_core_dump.h
deleted file mode 100644
index d03c7a8..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/elf_core_dump.h
+++ /dev/null
@@ -1,148 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// elf_core_dump.h: Define the google_breakpad::ElfCoreDump class, which
-// encapsulates an ELF core dump file mapped into memory.
-
-#ifndef COMMON_LINUX_ELF_CORE_DUMP_H_
-#define COMMON_LINUX_ELF_CORE_DUMP_H_
-
-#include <elf.h>
-#include <link.h>
-#include <stddef.h>
-
-#include "common/memory_range.h"
-
-namespace google_breakpad {
-
-// A class encapsulating an ELF core dump file mapped into memory, which
-// provides methods for accessing program headers and the note section.
-class ElfCoreDump {
- public:
-  // ELF types based on the value of __WORDSIZE.
-  typedef ElfW(Ehdr) Ehdr;
-  typedef ElfW(Nhdr) Nhdr;
-  typedef ElfW(Phdr) Phdr;
-  typedef ElfW(Word) Word;
-  typedef ElfW(Addr) Addr;
-#if __WORDSIZE == 32
-  static const int kClass = ELFCLASS32;
-#elif __WORDSIZE == 64
-  static const int kClass = ELFCLASS64;
-#else
-#error "Unsupported __WORDSIZE for ElfCoreDump."
-#endif
-
-  // A class encapsulating the note content in a core dump, which provides
-  // methods for accessing the name and description of a note.
-  class Note {
-   public:
-    Note();
-
-    // Constructor that takes the note content from |content|.
-    explicit Note(const MemoryRange& content);
-
-    // Returns true if this note is valid, i,e. a note header is found in
-    // |content_|, or false otherwise.
-    bool IsValid() const;
-
-    // Returns the note header, or NULL if no note header is found in
-    // |content_|.
-    const Nhdr* GetHeader() const;
-
-    // Returns the note type, or 0 if no note header is found in |content_|.
-    Word GetType() const;
-
-    // Returns a memory range covering the note name, or an empty range
-    // if no valid note name is found in |content_|.
-    MemoryRange GetName() const;
-
-    // Returns a memory range covering the note description, or an empty
-    // range if no valid note description is found in |content_|.
-    MemoryRange GetDescription() const;
-
-    // Returns the note following this note, or an empty note if no valid
-    // note is found after this note.
-    Note GetNextNote() const;
-
-   private:
-    // Returns the size in bytes round up to the word alignment, specified
-    // for the note section, of a given size in bytes.
-    static size_t AlignedSize(size_t size);
-
-    // Note content.
-    MemoryRange content_;
-  };
-
-  ElfCoreDump();
-
-  // Constructor that takes the core dump content from |content|.
-  explicit ElfCoreDump(const MemoryRange& content);
-
-  // Sets the core dump content to |content|.
-  void SetContent(const MemoryRange& content);
-
-  // Returns true if a valid ELF header in the core dump, or false otherwise.
-  bool IsValid() const;
-
-  // Returns the ELF header in the core dump, or NULL if no ELF header
-  // is found in |content_|.
-  const Ehdr* GetHeader() const;
-
-  // Returns the |index|-th program header in the core dump, or NULL if no
-  // ELF header is found in |content_| or |index| is out of bounds.
-  const Phdr* GetProgramHeader(unsigned index) const;
-
-  // Returns the first program header of |type| in the core dump, or NULL if
-  // no ELF header is found in |content_| or no program header of |type| is
-  // found.
-  const Phdr* GetFirstProgramHeaderOfType(Word type) const;
-
-  // Returns the number of program headers in the core dump, or 0 if no
-  // ELF header is found in |content_|.
-  unsigned GetProgramHeaderCount() const;
-
-  // Copies |length| bytes of data starting at |virtual_address| in the core
-  // dump to |buffer|. |buffer| should be a valid pointer to a buffer of at
-  // least |length| bytes. Returns true if the data to be copied is found in
-  // the core dump, or false otherwise.
-  bool CopyData(void* buffer, Addr virtual_address, size_t length);
-
-  // Returns the first note found in the note section of the core dump, or
-  // an empty note if no note is found.
-  Note GetFirstNote() const;
-
- private:
-  // Core dump content.
-  MemoryRange content_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_ELF_CORE_DUMP_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/elf_gnu_compat.h b/breakpad/linux-x86/include/breakpad/common/linux/elf_gnu_compat.h
deleted file mode 100644
index f870cbc..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/elf_gnu_compat.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2013, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Lei Zhang <thestig@google.com>
-
-// elf_gnu_compat.h: #defines unique to glibc's elf.h.
-
-#ifndef COMMON_LINUX_ELF_GNU_COMPAT_H_
-#define COMMON_LINUX_ELF_GNU_COMPAT_H_
-
-#include <elf.h>
-
-// A note type on GNU systems corresponding to the .note.gnu.build-id section.
-#ifndef NT_GNU_BUILD_ID
-#define NT_GNU_BUILD_ID 3
-#endif
-
-#endif  // COMMON_LINUX_ELF_GNU_COMPAT_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/elf_symbols_to_module.h b/breakpad/linux-x86/include/breakpad/common/linux/elf_symbols_to_module.h
deleted file mode 100644
index 2e7c097..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/elf_symbols_to_module.h
+++ /dev/null
@@ -1,58 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2011 Google Inc. All Rights Reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Ted Mielczarek <ted.mielczarek@gmail.com>
-
-// elf_symbols_to_module.h: Exposes ELFSymbolsToModule, a function
-// for reading ELF symbol tables and inserting exported symbol names
-// into a google_breakpad::Module as Extern definitions.
-
-#ifndef BREAKPAD_COMMON_LINUX_ELF_SYMBOLS_TO_MODULE_H_
-#define BREAKPAD_COMMON_LINUX_ELF_SYMBOLS_TO_MODULE_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-namespace google_breakpad {
-
-class Module;
-
-bool ELFSymbolsToModule(const uint8_t *symtab_section,
-                        size_t symtab_size,
-                        const uint8_t *string_section,
-                        size_t string_size,
-                        const bool big_endian,
-                        size_t value_size,
-                        Module *module);
-
-}  // namespace google_breakpad
-
-
-#endif  // BREAKPAD_COMMON_LINUX_ELF_SYMBOLS_TO_MODULE_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/elfutils-inl.h b/breakpad/linux-x86/include/breakpad/common/linux/elfutils-inl.h
deleted file mode 100644
index e56b37a..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/elfutils-inl.h
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef COMMON_LINUX_ELFUTILS_INL_H__
-#define COMMON_LINUX_ELFUTILS_INL_H__
-
-#include "common/linux/linux_libc_support.h"
-#include "elfutils.h"
-
-namespace google_breakpad {
-
-template<typename ElfClass, typename T>
-const T* GetOffset(const typename ElfClass::Ehdr* elf_header,
-                   typename ElfClass::Off offset) {
-  return reinterpret_cast<const T*>(reinterpret_cast<uintptr_t>(elf_header) +
-                                    offset);
-}
-
-template<typename ElfClass>
-const typename ElfClass::Shdr* FindElfSectionByName(
-    const char* name,
-    typename ElfClass::Word section_type,
-    const typename ElfClass::Shdr* sections,
-    const char* section_names,
-    const char* names_end,
-    int nsection) {
-  assert(name != NULL);
-  assert(sections != NULL);
-  assert(nsection > 0);
-
-  int name_len = my_strlen(name);
-  if (name_len == 0)
-    return NULL;
-
-  for (int i = 0; i < nsection; ++i) {
-    const char* section_name = section_names + sections[i].sh_name;
-    if (sections[i].sh_type == section_type &&
-        names_end - section_name >= name_len + 1 &&
-        my_strcmp(name, section_name) == 0) {
-      return sections + i;
-    }
-  }
-  return NULL;
-}
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_ELFUTILS_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/elfutils.h b/breakpad/linux-x86/include/breakpad/common/linux/elfutils.h
deleted file mode 100644
index dccdc23..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/elfutils.h
+++ /dev/null
@@ -1,118 +0,0 @@
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// elfutils.h: Utilities for dealing with ELF files.
-//
-
-#ifndef COMMON_LINUX_ELFUTILS_H_
-#define COMMON_LINUX_ELFUTILS_H_
-
-#include <elf.h>
-#include <link.h>
-#include <stdint.h>
-
-namespace google_breakpad {
-
-// Traits classes so consumers can write templatized code to deal
-// with specific ELF bits.
-struct ElfClass32 {
-  typedef Elf32_Addr Addr;
-  typedef Elf32_Ehdr Ehdr;
-  typedef Elf32_Nhdr Nhdr;
-  typedef Elf32_Phdr Phdr;
-  typedef Elf32_Shdr Shdr;
-  typedef Elf32_Half Half;
-  typedef Elf32_Off Off;
-  typedef Elf32_Word Word;
-  static const int kClass = ELFCLASS32;
-  static const size_t kAddrSize = sizeof(Elf32_Addr);
-};
-
-struct ElfClass64 {
-  typedef Elf64_Addr Addr;
-  typedef Elf64_Ehdr Ehdr;
-  typedef Elf64_Nhdr Nhdr;
-  typedef Elf64_Phdr Phdr;
-  typedef Elf64_Shdr Shdr;
-  typedef Elf64_Half Half;
-  typedef Elf64_Off Off;
-  typedef Elf64_Word Word;
-  static const int kClass = ELFCLASS64;
-  static const size_t kAddrSize = sizeof(Elf64_Addr);
-};
-
-bool IsValidElf(const void* elf_header);
-int ElfClass(const void* elf_base);
-
-// Attempt to find a section named |section_name| of type |section_type|
-// in the ELF binary data at |elf_mapped_base|. On success, returns true
-// and sets |*section_start| to point to the start of the section data,
-// and |*section_size| to the size of the section's data. If |elfclass|
-// is not NULL, set |*elfclass| to the ELF file class.
-bool FindElfSection(const void *elf_mapped_base,
-                    const char *section_name,
-                    uint32_t section_type,
-                    const void **section_start,
-                    size_t *section_size,
-                    int *elfclass);
-
-// Internal helper method, exposed for convenience for callers
-// that already have more info.
-template<typename ElfClass>
-const typename ElfClass::Shdr*
-FindElfSectionByName(const char* name,
-                     typename ElfClass::Word section_type,
-                     const typename ElfClass::Shdr* sections,
-                     const char* section_names,
-                     const char* names_end,
-                     int nsection);
-
-// Attempt to find the first segment of type |segment_type| in the ELF
-// binary data at |elf_mapped_base|. On success, returns true and sets
-// |*segment_start| to point to the start of the segment data, and
-// and |*segment_size| to the size of the segment's data. If |elfclass|
-// is not NULL, set |*elfclass| to the ELF file class.
-bool FindElfSegment(const void *elf_mapped_base,
-                    uint32_t segment_type,
-                    const void **segment_start,
-                    size_t *segment_size,
-                    int *elfclass);
-
-// Convert an offset from an Elf header into a pointer to the mapped
-// address in the current process. Takes an extra template parameter
-// to specify the return type to avoid having to dynamic_cast the
-// result.
-template<typename ElfClass, typename T>
-const T*
-GetOffset(const typename ElfClass::Ehdr* elf_header,
-          typename ElfClass::Off offset);
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_ELFUTILS_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/file_id.h b/breakpad/linux-x86/include/breakpad/common/linux/file_id.h
deleted file mode 100644
index 2642722..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/file_id.h
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// file_id.h: Return a unique identifier for a file
-//
-
-#ifndef COMMON_LINUX_FILE_ID_H__
-#define COMMON_LINUX_FILE_ID_H__
-
-#include <limits.h>
-#include <string>
-
-#include "common/linux/guid_creator.h"
-
-namespace google_breakpad {
-
-static const size_t kMDGUIDSize = sizeof(MDGUID);
-
-class FileID {
- public:
-  explicit FileID(const char* path);
-  ~FileID() {}
-
-  // Load the identifier for the elf file path specified in the constructor into
-  // |identifier|.  Return false if the identifier could not be created for the
-  // file.
-  // The current implementation will look for a .note.gnu.build-id
-  // section and use that as the file id, otherwise it falls back to
-  // XORing the first 4096 bytes of the .text section to generate an identifier.
-  bool ElfFileIdentifier(uint8_t identifier[kMDGUIDSize]);
-
-  // Load the identifier for the elf file mapped into memory at |base| into
-  // |identifier|.  Return false if the identifier could not be created for the
-  // file.
-  static bool ElfFileIdentifierFromMappedFile(const void* base,
-                                              uint8_t identifier[kMDGUIDSize]);
-
-  // Convert the |identifier| data to a NULL terminated string.  The string will
-  // be formatted as a UUID (e.g., 22F065BB-FC9C-49F7-80FE-26A7CEBD7BCE).
-  // The |buffer| should be at least 37 bytes long to receive all of the data
-  // and termination.  Shorter buffers will contain truncated data.
-  static void ConvertIdentifierToString(const uint8_t identifier[kMDGUIDSize],
-                                        char* buffer, int buffer_length);
-
- private:
-  // Storage for the path specified
-  std::string path_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_FILE_ID_H__
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/google_crashdump_uploader.h b/breakpad/linux-x86/include/breakpad/common/linux/google_crashdump_uploader.h
deleted file mode 100644
index a2d0575..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/google_crashdump_uploader.h
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright (c) 2009, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-#ifndef COMMON_LINUX_GOOGLE_CRASHDUMP_UPLOADER_H_
-#define COMMON_LINUX_GOOGLE_CRASHDUMP_UPLOADER_H_
-
-#include <string>
-#include <map>
-
-#include "common/linux/libcurl_wrapper.h"
-#include "common/scoped_ptr.h"
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-class GoogleCrashdumpUploader {
- public:
-  GoogleCrashdumpUploader(const string& product,
-                          const string& version,
-                          const string& guid,
-                          const string& ptime,
-                          const string& ctime,
-                          const string& email,
-                          const string& comments,
-                          const string& minidump_pathname,
-                          const string& crash_server,
-                          const string& proxy_host,
-                          const string& proxy_userpassword);
-
-  GoogleCrashdumpUploader(const string& product,
-                          const string& version,
-                          const string& guid,
-                          const string& ptime,
-                          const string& ctime,
-                          const string& email,
-                          const string& comments,
-                          const string& minidump_pathname,
-                          const string& crash_server,
-                          const string& proxy_host,
-                          const string& proxy_userpassword,
-                          LibcurlWrapper* http_layer);
-
-  void Init(const string& product,
-            const string& version,
-            const string& guid,
-            const string& ptime,
-            const string& ctime,
-            const string& email,
-            const string& comments,
-            const string& minidump_pathname,
-            const string& crash_server,
-            const string& proxy_host,
-            const string& proxy_userpassword,
-            LibcurlWrapper* http_layer);
-  bool Upload(int* http_status_code,
-              string* http_response_header,
-              string* http_response_body);
-
- private:
-  bool CheckRequiredParametersArePresent();
-
-  scoped_ptr<LibcurlWrapper> http_layer_;
-  string product_;
-  string version_;
-  string guid_;
-  string ptime_;
-  string ctime_;
-  string email_;
-  string comments_;
-  string minidump_pathname_;
-
-  string crash_server_;
-  string proxy_host_;
-  string proxy_userpassword_;
-
-  std::map<string, string> parameters_;
-};
-}
-
-#endif  // COMMON_LINUX_GOOGLE_CRASHDUMP_UPLOADER_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/guid_creator.h b/breakpad/linux-x86/include/breakpad/common/linux/guid_creator.h
deleted file mode 100644
index c86d856..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/guid_creator.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef COMMON_LINUX_GUID_CREATOR_H__
-#define COMMON_LINUX_GUID_CREATOR_H__
-
-#include "google_breakpad/common/minidump_format.h"
-
-typedef MDGUID GUID;
-
-// Format string for parsing GUID.
-#define kGUIDFormatString "%08x-%04x-%04x-%08x-%08x"
-// Length of GUID string. Don't count the ending '\0'.
-#define kGUIDStringLength 36
-
-// Create a guid.
-bool CreateGUID(GUID *guid);
-
-// Get the string from guid.
-bool GUIDToString(const GUID *guid, char *buf, int buf_len);
-
-#endif
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/http_upload.h b/breakpad/linux-x86/include/breakpad/common/linux/http_upload.h
deleted file mode 100644
index 6dd36ea..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/http_upload.h
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// HTTPUpload provides a "nice" API to send a multipart HTTP(S) POST
-// request using libcurl.  It currently supports requests that contain
-// a set of string parameters (key/value pairs), and a file to upload.
-
-#ifndef COMMON_LINUX_HTTP_UPLOAD_H__
-#define COMMON_LINUX_HTTP_UPLOAD_H__
-
-#include <map>
-#include <string>
-
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-using std::map;
-
-class HTTPUpload {
- public:
-  // Sends the given set of parameters, along with the contents of
-  // upload_file, as a multipart POST request to the given URL.
-  // file_part_name contains the name of the file part of the request
-  // (i.e. it corresponds to the name= attribute on an <input type="file">.
-  // Parameter names must contain only printable ASCII characters,
-  // and may not contain a quote (") character.
-  // Only HTTP(S) URLs are currently supported.  Returns true on success.
-  // If the request is successful and response_body is non-NULL,
-  // the response body will be returned in response_body.
-  // If response_code is non-NULL, it will be set to the HTTP response code
-  // received (or 0 if the request failed before getting an HTTP response).
-  // If the send fails, a description of the error will be
-  // returned in error_description.
-  static bool SendRequest(const string &url,
-                          const map<string, string> &parameters,
-                          const string &upload_file,
-                          const string &file_part_name,
-                          const string &proxy,
-                          const string &proxy_user_pwd,
-                          const string &ca_certificate_file,
-                          string *response_body,
-                          long *response_code,
-                          string *error_description);
-
- private:
-  // Checks that the given list of parameters has only printable
-  // ASCII characters in the parameter name, and does not contain
-  // any quote (") characters.  Returns true if so.
-  static bool CheckParameters(const map<string, string> &parameters);
-
-  // No instances of this class should be created.
-  // Disallow all constructors, destructors, and operator=.
-  HTTPUpload();
-  explicit HTTPUpload(const HTTPUpload &);
-  void operator=(const HTTPUpload &);
-  ~HTTPUpload();
-};
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_HTTP_UPLOAD_H__
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/ignore_ret.h b/breakpad/linux-x86/include/breakpad/common/linux/ignore_ret.h
deleted file mode 100644
index f60384b..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/ignore_ret.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (c) 2012 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef COMMON_LINUX_IGNORE_RET_H_
-#define COMMON_LINUX_IGNORE_RET_H_
-
-// Some compilers are prone to warn about unused return values. In cases where
-// either a) the call cannot fail, or b) there is nothing that can be done when
-// the call fails, IGNORE_RET() can be used to mark the return code as ignored.
-// This avoids spurious compiler warnings.
-
-#define IGNORE_RET(x) do { if (x); } while (0)
-
-#endif  // COMMON_LINUX_IGNORE_RET_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/libcurl_wrapper.h b/breakpad/linux-x86/include/breakpad/common/linux/libcurl_wrapper.h
deleted file mode 100644
index de84a63..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/libcurl_wrapper.h
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright (c) 2009, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// A wrapper for libcurl to do HTTP Uploads, to support easy mocking
-// and unit testing of the HTTPUpload class.
-
-#ifndef COMMON_LINUX_LIBCURL_WRAPPER_H_
-#define COMMON_LINUX_LIBCURL_WRAPPER_H_
-
-#include <string>
-#include <map>
-
-#include "common/using_std_string.h"
-#include "third_party/curl/curl.h"
-
-namespace google_breakpad {
-class LibcurlWrapper {
- public:
-  LibcurlWrapper();
-  ~LibcurlWrapper();
-  virtual bool Init();
-  virtual bool SetProxy(const string& proxy_host,
-                        const string& proxy_userpwd);
-  virtual bool AddFile(const string& upload_file_path,
-                       const string& basename);
-  virtual bool SendRequest(const string& url,
-                           const std::map<string, string>& parameters,
-                           int* http_status_code,
-                           string* http_header_data,
-                           string* http_response_data);
- private:
-  // This function initializes class state corresponding to function
-  // pointers into the CURL library.
-  bool SetFunctionPointers();
-
-  bool init_ok_;                 // Whether init succeeded
-  void* curl_lib_;               // Pointer to result of dlopen() on
-                                 // curl library
-  string last_curl_error_;  // The text of the last error when
-                                 // dealing
-  // with CURL.
-
-  CURL *curl_;                   // Pointer for handle for CURL calls.
-
-  CURL* (*easy_init_)(void);
-
-  // Stateful pointers for calling into curl_formadd()
-  struct curl_httppost *formpost_;
-  struct curl_httppost *lastptr_;
-  struct curl_slist *headerlist_;
-
-  // Function pointers into CURL library
-  CURLcode (*easy_setopt_)(CURL *, CURLoption, ...);
-  CURLFORMcode (*formadd_)(struct curl_httppost **,
-                           struct curl_httppost **, ...);
-  struct curl_slist* (*slist_append_)(struct curl_slist *, const char *);
-  void (*slist_free_all_)(struct curl_slist *);
-  CURLcode (*easy_perform_)(CURL *);
-  const char* (*easy_strerror_)(CURLcode);
-  void (*easy_cleanup_)(CURL *);
-  CURLcode (*easy_getinfo_)(CURL *, CURLINFO info, ...);
-  void (*formfree_)(struct curl_httppost *);
-
-};
-}
-
-#endif  // COMMON_LINUX_LIBCURL_WRAPPER_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/linux_libc_support.h b/breakpad/linux-x86/include/breakpad/common/linux/linux_libc_support.h
deleted file mode 100644
index ec5a8d6..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/linux_libc_support.h
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright (c) 2009, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// This header provides replacements for libc functions that we need. We if
-// call the libc functions directly we risk crashing in the dynamic linker as
-// it tries to resolve uncached PLT entries.
-
-#ifndef CLIENT_LINUX_LINUX_LIBC_SUPPORT_H_
-#define CLIENT_LINUX_LINUX_LIBC_SUPPORT_H_
-
-#include <stdint.h>
-#include <limits.h>
-#include <sys/types.h>
-
-extern "C" {
-
-extern size_t my_strlen(const char* s);
-
-extern int my_strcmp(const char* a, const char* b);
-
-extern int my_strncmp(const char* a, const char* b, size_t len);
-
-// Parse a non-negative integer.
-//   result: (output) the resulting non-negative integer
-//   s: a NUL terminated string
-// Return true iff successful.
-extern bool my_strtoui(int* result, const char* s);
-
-// Return the length of the given unsigned integer when expressed in base 10.
-extern unsigned my_uint_len(uintmax_t i);
-
-// Convert an unsigned integer to a string
-//   output: (output) the resulting string is written here. This buffer must be
-//     large enough to hold the resulting string. Call |my_uint_len| to get the
-//     required length.
-//   i: the unsigned integer to serialise.
-//   i_len: the length of the integer in base 10 (see |my_uint_len|).
-extern void my_uitos(char* output, uintmax_t i, unsigned i_len);
-
-extern const char* my_strchr(const char* haystack, char needle);
-
-extern const char* my_strrchr(const char* haystack, char needle);
-
-// Read a hex value
-//   result: (output) the resulting value
-//   s: a string
-// Returns a pointer to the first invalid charactor.
-extern const char* my_read_hex_ptr(uintptr_t* result, const char* s);
-
-extern const char* my_read_decimal_ptr(uintptr_t* result, const char* s);
-
-extern void my_memset(void* ip, char c, size_t len);
-
-extern void* my_memchr(const void* src, int c, size_t len);
-
-// The following are considered safe to use in a compromised environment.
-// Besides, this gives the compiler an opportunity to optimize their calls.
-#define my_memcpy  memcpy
-#define my_memmove memmove
-#define my_memcmp  memcmp
-
-extern size_t my_strlcpy(char* s1, const char* s2, size_t len);
-
-extern size_t my_strlcat(char* s1, const char* s2, size_t len);
-
-extern int my_isspace(int ch);
-
-}  // extern "C"
-
-#endif  // CLIENT_LINUX_LINUX_LIBC_SUPPORT_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/memory_mapped_file.h b/breakpad/linux-x86/include/breakpad/common/linux/memory_mapped_file.h
deleted file mode 100644
index fa660cc..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/memory_mapped_file.h
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// memory_mapped_file.h: Define the google_breakpad::MemoryMappedFile
-// class, which maps a file into memory for read-only access.
-
-#ifndef COMMON_LINUX_MEMORY_MAPPED_FILE_H_
-#define COMMON_LINUX_MEMORY_MAPPED_FILE_H_
-
-#include <stddef.h>
-#include "common/basictypes.h"
-#include "common/memory_range.h"
-
-namespace google_breakpad {
-
-// A utility class for mapping a file into memory for read-only access of
-// the file content. Its implementation avoids calling into libc functions
-// by directly making system calls for open, close, mmap, and munmap.
-class MemoryMappedFile {
- public:
-  MemoryMappedFile();
-
-  // Constructor that calls Map() to map a file at |path| into memory.
-  // If Map() fails, the object behaves as if it is default constructed.
-  MemoryMappedFile(const char* path, size_t offset);
-
-  ~MemoryMappedFile();
-
-  // Maps a file at |path| into memory, which can then be accessed via
-  // content() as a MemoryRange object or via data(), and returns true on
-  // success. Mapping an empty file will succeed but with data() and size()
-  // returning NULL and 0, respectively. An existing mapping is unmapped
-  // before a new mapping is created.
-  bool Map(const char* path, size_t offset);
-
-  // Unmaps the memory for the mapped file. It's a no-op if no file is
-  // mapped.
-  void Unmap();
-
-  // Returns a MemoryRange object that covers the memory for the mapped
-  // file. The MemoryRange object is empty if no file is mapped.
-  const MemoryRange& content() const { return content_; }
-
-  // Returns a pointer to the beginning of the memory for the mapped file.
-  // or NULL if no file is mapped or the mapped file is empty.
-  const void* data() const { return content_.data(); }
-
-  // Returns the size in bytes of the mapped file, or zero if no file
-  // is mapped.
-  size_t size() const { return content_.length(); }
-
- private:
-  // Mapped file content as a MemoryRange object.
-  MemoryRange content_;
-
-  DISALLOW_COPY_AND_ASSIGN(MemoryMappedFile);
-};
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_MEMORY_MAPPED_FILE_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/safe_readlink.h b/breakpad/linux-x86/include/breakpad/common/linux/safe_readlink.h
deleted file mode 100644
index 4ae131b..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/safe_readlink.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// safe_readlink.h: Define the google_breakpad::SafeReadLink function,
-// which wraps sys_readlink and gurantees the result is NULL-terminated.
-
-#ifndef COMMON_LINUX_SAFE_READLINK_H_
-#define COMMON_LINUX_SAFE_READLINK_H_
-
-#include <stddef.h>
-
-namespace google_breakpad {
-
-// This function wraps sys_readlink() and performs the same functionalty,
-// but guarantees |buffer| is NULL-terminated if sys_readlink() returns
-// no error. It takes the same arguments as sys_readlink(), but unlike
-// sys_readlink(), it returns true on success.
-//
-// |buffer_size| specifies the size of |buffer| in bytes. As this function
-// always NULL-terminates |buffer| on success, |buffer_size| should be
-// at least one byte longer than the expected path length (e.g. PATH_MAX,
-// which is typically defined as the maximum length of a path name
-// including the NULL byte).
-//
-// The implementation of this function calls sys_readlink() instead of
-// readlink(), it can thus be used in the context where calling to libc
-// functions is discouraged.
-bool SafeReadLink(const char* path, char* buffer, size_t buffer_size);
-
-// Same as the three-argument version of SafeReadLink() but deduces the
-// size of |buffer| if it is a char array of known size.
-template <size_t N>
-bool SafeReadLink(const char* path, char (&buffer)[N]) {
-  return SafeReadLink(path, buffer, sizeof(buffer));
-}
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_SAFE_READLINK_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/linux/synth_elf.h b/breakpad/linux-x86/include/breakpad/common/linux/synth_elf.h
deleted file mode 100644
index 330ceae..0000000
--- a/breakpad/linux-x86/include/breakpad/common/linux/synth_elf.h
+++ /dev/null
@@ -1,195 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Ted Mielczarek <ted.mielczarek@gmail.com>
-
-// synth_elf.h: Interface to synth_elf::ELF: fake ELF generator.
-
-#ifndef COMMON_LINUX_SYNTH_ELF_H_
-#define COMMON_LINUX_SYNTH_ELF_H_
-
-#include "common/test_assembler.h"
-
-#include <list>
-#include <vector>
-#include <map>
-#include <string>
-#include <utility>
-
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-namespace synth_elf {
-
-using std::list;
-using std::vector;
-using std::map;
-using std::pair;
-using test_assembler::Endianness;
-using test_assembler::kLittleEndian;
-using test_assembler::kUnsetEndian;
-using test_assembler::Label;
-using test_assembler::Section;
-
-// String tables are common in ELF headers, so subclass Section
-// to make them easy to generate.
-class StringTable : public Section {
-public:
-  StringTable(Endianness endianness = kUnsetEndian)
-  : Section(endianness) {
-    start() = 0;
-    empty_string = Add("");
-  }
-
-  // Add the string s to the string table, and return
-  // a label containing the offset into the string table
-  // at which it was added.
-  Label Add(const string& s) {
-    if (strings_.find(s) != strings_.end())
-      return strings_[s];
-
-    Label string_label(Here());
-    AppendCString(s);
-    strings_[s] = string_label;
-    return string_label;
-  }
-
-  // All StringTables contain an empty string as their first
-  // entry.
-  Label empty_string;
-
-  // Avoid inserting duplicate strings.
-  map<string,Label> strings_;
-};
-
-// A Section representing an entire ELF file.
-class ELF : public Section {
- public:
-  ELF(uint16_t machine,    // EM_386, etc
-      uint8_t file_class,  // ELFCLASS{32,64}
-      Endianness endianness = kLittleEndian);
-
-  // Add the Section section to the section header table and append it
-  // to the file. Returns the index of the section in the section
-  // header table.
-  int AddSection(const string& name, const Section& section,
-                 uint32_t type, uint32_t flags = 0, uint64_t addr = 0,
-                 uint32_t link = 0, uint64_t entsize = 0, uint64_t offset = 0);
-                  
-  // Add a segment containing from section index start to section index end.
-  // The indexes must have been gotten from AddSection.
-  void AddSegment(int start, int end, uint32_t type, uint32_t flags = 0);
-
-  // Write out all data. GetContents may be used after this.
-  void Finish();
-
- private:
-  // Size of an address, in bytes.
-  const size_t addr_size_;
-
-  // Offset to the program header table.
-  Label program_header_label_;
-  // Number of entries in the program header table.
-  int program_count_;
-  Label program_count_label_;
-  // The program header table itself.
-  Section program_header_table_;
-
-  // Offset to the section header table.
-  Label section_header_label_;
-  // Number of entries in the section header table.
-  int section_count_;
-  Label section_count_label_;
-  // The section header table itself.
-  Section section_header_table_;
-
-  // Index of the section header string table in the section
-  // header table.
-  Label section_header_string_index_;
-  // Section containing the names of section header table entries.
-  StringTable section_header_strings_;
-
-  // Record of an added section
-  struct ElfSection : public Section {
-    ElfSection(const Section& section, uint32_t type, uint32_t addr,
-               uint32_t offset, Label offset_label, uint32_t size)
-    : Section(section), type_(type), addr_(addr), offset_(offset)
-    , offset_label_(offset_label), size_(size) {
-    }
-
-    uint32_t type_;
-    uint32_t addr_;
-    uint32_t offset_;
-    Label offset_label_;
-    uint32_t size_;
-  };
-
-  vector<ElfSection> sections_;
-
-  void AppendSection(ElfSection &section);
-};
-
-// A class to build .symtab or .dynsym sections.
-class SymbolTable : public Section {
- public:
-  // table is the StringTable that contains symbol names. The caller
-  // must ensure that it remains alive for the life of the
-  // SymbolTable.
-  SymbolTable(Endianness endianness, size_t addr_size, StringTable& table);
-
-  // Add an Elf32_Sym.
-  void AddSymbol(const string& name, uint32_t value,
-                 uint32_t size, unsigned info, uint16_t shndx);
-  // Add an Elf64_Sym.
-  void AddSymbol(const string& name, uint64_t value,
-                 uint64_t size, unsigned info, uint16_t shndx);
-
- private:
-  size_t addr_size_;
-  StringTable& table_;
-};
-
-// A class for note sections
-class Notes : public Section {
-public:
-  Notes(Endianness endianness)
-  : Section(endianness) {
-  }
-
-  // Add a note.
-  void AddNote(int type, const string &name, const uint8_t* desc_bytes,
-               size_t desc_size);
-};
-
-}  // namespace synth_elf
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_SYNTH_ELF_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/md5.h b/breakpad/linux-x86/include/breakpad/common/md5.h
deleted file mode 100644
index 2ab0ab9..0000000
--- a/breakpad/linux-x86/include/breakpad/common/md5.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2007 Google Inc. All Rights Reserved.
-// Author: liuli@google.com (Liu Li)
-#ifndef COMMON_MD5_H__
-#define COMMON_MD5_H__
-
-#include <stdint.h>
-
-namespace google_breakpad {
-
-typedef uint32_t u32;
-typedef uint8_t u8;
-
-struct MD5Context {
-  u32 buf[4];
-  u32 bits[2];
-  u8 in[64];
-};
-
-void MD5Init(struct MD5Context *ctx);
-
-void MD5Update(struct MD5Context *ctx, unsigned char const *buf, size_t len);
-
-void MD5Final(unsigned char digest[16], struct MD5Context *ctx);
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_MD5_H__
diff --git a/breakpad/linux-x86/include/breakpad/common/memory.h b/breakpad/linux-x86/include/breakpad/common/memory.h
deleted file mode 100644
index d6aa137..0000000
--- a/breakpad/linux-x86/include/breakpad/common/memory.h
+++ /dev/null
@@ -1,212 +0,0 @@
-// Copyright (c) 2009, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MEMORY_H_
-#define GOOGLE_BREAKPAD_COMMON_MEMORY_H_
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/mman.h>
-
-#include <memory>
-#include <vector>
-
-#if defined(MEMORY_SANITIZER)
-#include <sanitizer/msan_interface.h>
-#endif
-
-#ifdef __APPLE__
-#define sys_mmap mmap
-#define sys_mmap2 mmap
-#define sys_munmap munmap
-#define MAP_ANONYMOUS MAP_ANON
-#else
-#include "third_party/lss/linux_syscall_support.h"
-#endif
-
-namespace google_breakpad {
-
-// This is very simple allocator which fetches pages from the kernel directly.
-// Thus, it can be used even when the heap may be corrupted.
-//
-// There is no free operation. The pages are only freed when the object is
-// destroyed.
-class PageAllocator {
- public:
-  PageAllocator()
-      : page_size_(getpagesize()),
-        last_(NULL),
-        current_page_(NULL),
-        page_offset_(0) {
-  }
-
-  ~PageAllocator() {
-    FreeAll();
-  }
-
-  void *Alloc(size_t bytes) {
-    if (!bytes)
-      return NULL;
-
-    if (current_page_ && page_size_ - page_offset_ >= bytes) {
-      uint8_t *const ret = current_page_ + page_offset_;
-      page_offset_ += bytes;
-      if (page_offset_ == page_size_) {
-        page_offset_ = 0;
-        current_page_ = NULL;
-      }
-
-      return ret;
-    }
-
-    const size_t pages =
-        (bytes + sizeof(PageHeader) + page_size_ - 1) / page_size_;
-    uint8_t *const ret = GetNPages(pages);
-    if (!ret)
-      return NULL;
-
-    page_offset_ =
-        (page_size_ - (page_size_ * pages - (bytes + sizeof(PageHeader)))) %
-        page_size_;
-    current_page_ = page_offset_ ? ret + page_size_ * (pages - 1) : NULL;
-
-    return ret + sizeof(PageHeader);
-  }
-
-  // Checks whether the page allocator owns the passed-in pointer.
-  // This method exists for testing pursposes only.
-  bool OwnsPointer(const void* p) {
-    for (PageHeader* header = last_; header; header = header->next) {
-      const char* current = reinterpret_cast<char*>(header);
-      if ((p >= current) && (p < current + header->num_pages * page_size_))
-        return true;
-    }
-
-    return false;
-  }
-
- private:
-  uint8_t *GetNPages(size_t num_pages) {
-#if defined(__x86_64__) || defined(__aarch64__) || defined(__aarch64__) || \
-    ((defined(__mips__) && _MIPS_SIM == _ABI64))
-    void *a = sys_mmap(NULL, page_size_ * num_pages, PROT_READ | PROT_WRITE,
-                       MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-#else
-    void *a = sys_mmap2(NULL, page_size_ * num_pages, PROT_READ | PROT_WRITE,
-                        MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-#endif
-    if (a == MAP_FAILED)
-      return NULL;
-
-#if defined(MEMORY_SANITIZER)
-    // We need to indicate to MSan that memory allocated through sys_mmap is
-    // initialized, since linux_syscall_support.h doesn't have MSan hooks.
-    __msan_unpoison(a, page_size_ * num_pages);
-#endif
-
-    struct PageHeader *header = reinterpret_cast<PageHeader*>(a);
-    header->next = last_;
-    header->num_pages = num_pages;
-    last_ = header;
-
-    return reinterpret_cast<uint8_t*>(a);
-  }
-
-  void FreeAll() {
-    PageHeader *next;
-
-    for (PageHeader *cur = last_; cur; cur = next) {
-      next = cur->next;
-      sys_munmap(cur, cur->num_pages * page_size_);
-    }
-  }
-
-  struct PageHeader {
-    PageHeader *next;  // pointer to the start of the next set of pages.
-    size_t num_pages;  // the number of pages in this set.
-  };
-
-  const size_t page_size_;
-  PageHeader *last_;
-  uint8_t *current_page_;
-  size_t page_offset_;
-};
-
-// Wrapper to use with STL containers
-template <typename T>
-struct PageStdAllocator : public std::allocator<T> {
-  typedef typename std::allocator<T>::pointer pointer;
-  typedef typename std::allocator<T>::size_type size_type;
-
-  explicit PageStdAllocator(PageAllocator& allocator): allocator_(allocator) {}
-  template <class Other> PageStdAllocator(const PageStdAllocator<Other>& other)
-      : allocator_(other.allocator_) {}
-
-  inline pointer allocate(size_type n, const void* = 0) {
-    return static_cast<pointer>(allocator_.Alloc(sizeof(T) * n));
-  }
-
-  inline void deallocate(pointer, size_type) {
-    // The PageAllocator doesn't free.
-  }
-
-  template <typename U> struct rebind {
-    typedef PageStdAllocator<U> other;
-  };
-
- private:
-  // Silly workaround for the gcc from Android's ndk (gcc 4.6), which will
-  // otherwise complain that `other.allocator_` is private in the constructor
-  // code.
-  template<typename Other> friend struct PageStdAllocator;
-
-  PageAllocator& allocator_;
-};
-
-// A wasteful vector is a std::vector, except that it allocates memory from a
-// PageAllocator. It's wasteful because, when resizing, it always allocates a
-// whole new array since the PageAllocator doesn't support realloc.
-template<class T>
-class wasteful_vector : public std::vector<T, PageStdAllocator<T> > {
- public:
-  wasteful_vector(PageAllocator* allocator, unsigned size_hint = 16)
-      : std::vector<T, PageStdAllocator<T> >(PageStdAllocator<T>(*allocator)) {
-    std::vector<T, PageStdAllocator<T> >::reserve(size_hint);
-  }
-};
-
-}  // namespace google_breakpad
-
-inline void* operator new(size_t nbytes,
-                          google_breakpad::PageAllocator& allocator) {
-  return allocator.Alloc(nbytes);
-}
-
-#endif  // GOOGLE_BREAKPAD_COMMON_MEMORY_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/memory_range.h b/breakpad/linux-x86/include/breakpad/common/memory_range.h
deleted file mode 100644
index 41dd2da..0000000
--- a/breakpad/linux-x86/include/breakpad/common/memory_range.h
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright (c) 2011, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// memory_range.h: Define the google_breakpad::MemoryRange class, which
-// is a lightweight wrapper with a pointer and a length to encapsulate
-// a contiguous range of memory.
-
-#ifndef COMMON_MEMORY_RANGE_H_
-#define COMMON_MEMORY_RANGE_H_
-
-#include <stddef.h>
-
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-// A lightweight wrapper with a pointer and a length to encapsulate a
-// contiguous range of memory. It provides helper methods for checked
-// access of a subrange of the memory. Its implemementation does not
-// allocate memory or call into libc functions, and is thus safer to use
-// in a crashed environment.
-class MemoryRange {
- public:
-  MemoryRange() : data_(NULL), length_(0) {}
-
-  MemoryRange(const void* data, size_t length) {
-    Set(data, length);
-  }
-
-  // Returns true if this memory range contains no data.
-  bool IsEmpty() const {
-    // Set() guarantees that |length_| is zero if |data_| is NULL.
-    return length_ == 0;
-  }
-
-  // Resets to an empty range.
-  void Reset() {
-    data_ = NULL;
-    length_ = 0;
-  }
-
-  // Sets this memory range to point to |data| and its length to |length|.
-  void Set(const void* data, size_t length) {
-    data_ = reinterpret_cast<const uint8_t*>(data);
-    // Always set |length_| to zero if |data_| is NULL.
-    length_ = data ? length : 0;
-  }
-
-  // Returns true if this range covers a subrange of |sub_length| bytes
-  // at |sub_offset| bytes of this memory range, or false otherwise.
-  bool Covers(size_t sub_offset, size_t sub_length) const {
-    // The following checks verify that:
-    // 1. sub_offset is within [ 0 .. length_ - 1 ]
-    // 2. sub_offset + sub_length is within
-    //    [ sub_offset .. length_ ]
-    return sub_offset < length_ &&
-           sub_offset + sub_length >= sub_offset &&
-           sub_offset + sub_length <= length_;
-  }
-
-  // Returns a raw data pointer to a subrange of |sub_length| bytes at
-  // |sub_offset| bytes of this memory range, or NULL if the subrange
-  // is out of bounds.
-  const void* GetData(size_t sub_offset, size_t sub_length) const {
-    return Covers(sub_offset, sub_length) ? (data_ + sub_offset) : NULL;
-  }
-
-  // Same as the two-argument version of GetData() but uses sizeof(DataType)
-  // as the subrange length and returns an |DataType| pointer for convenience.
-  template <typename DataType>
-  const DataType* GetData(size_t sub_offset) const {
-    return reinterpret_cast<const DataType*>(
-        GetData(sub_offset, sizeof(DataType)));
-  }
-
-  // Returns a raw pointer to the |element_index|-th element of an array
-  // of elements of length |element_size| starting at |sub_offset| bytes
-  // of this memory range, or NULL if the element is out of bounds.
-  const void* GetArrayElement(size_t element_offset,
-                              size_t element_size,
-                              unsigned element_index) const {
-    size_t sub_offset = element_offset + element_index * element_size;
-    return GetData(sub_offset, element_size);
-  }
-
-  // Same as the three-argument version of GetArrayElement() but deduces
-  // the element size using sizeof(ElementType) and returns an |ElementType|
-  // pointer for convenience.
-  template <typename ElementType>
-  const ElementType* GetArrayElement(size_t element_offset,
-                                     unsigned element_index) const {
-    return reinterpret_cast<const ElementType*>(
-        GetArrayElement(element_offset, sizeof(ElementType), element_index));
-  }
-
-  // Returns a subrange of |sub_length| bytes at |sub_offset| bytes of
-  // this memory range, or an empty range if the subrange is out of bounds.
-  MemoryRange Subrange(size_t sub_offset, size_t sub_length) const {
-    return Covers(sub_offset, sub_length) ?
-        MemoryRange(data_ + sub_offset, sub_length) : MemoryRange();
-  }
-
-  // Returns a pointer to the beginning of this memory range.
-  const uint8_t* data() const { return data_; }
-
-  // Returns the length, in bytes, of this memory range.
-  size_t length() const { return length_; }
-
- private:
-  // Pointer to the beginning of this memory range.
-  const uint8_t* data_;
-
-  // Length, in bytes, of this memory range.
-  size_t length_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_MEMORY_RANGE_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/minidump_type_helper.h b/breakpad/linux-x86/include/breakpad/common/minidump_type_helper.h
deleted file mode 100644
index 5a7d5a6..0000000
--- a/breakpad/linux-x86/include/breakpad/common/minidump_type_helper.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (c) 2014, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_TYPE_HELPER_H_
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_TYPE_HELPER_H_
-
-#include <stdint.h>
-
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-template <size_t>
-struct MDTypeHelper;
-
-template <>
-struct MDTypeHelper<sizeof(uint32_t)> {
-  typedef MDRawDebug32 MDRawDebug;
-  typedef MDRawLinkMap32 MDRawLinkMap;
-};
-
-template <>
-struct MDTypeHelper<sizeof(uint64_t)> {
-  typedef MDRawDebug64 MDRawDebug;
-  typedef MDRawLinkMap64 MDRawLinkMap;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_COMMON_MINIDUMP_TYPE_HELPER_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/module.h b/breakpad/linux-x86/include/breakpad/common/module.h
deleted file mode 100644
index 65b5595..0000000
--- a/breakpad/linux-x86/include/breakpad/common/module.h
+++ /dev/null
@@ -1,336 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// module.h: Define google_breakpad::Module. A Module holds debugging
-// information, and can write that information out as a Breakpad
-// symbol file.
-
-#ifndef COMMON_LINUX_MODULE_H__
-#define COMMON_LINUX_MODULE_H__
-
-#include <iostream>
-#include <map>
-#include <set>
-#include <string>
-#include <vector>
-
-#include "common/symbol_data.h"
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-using std::set;
-using std::vector;
-using std::map;
-
-// A Module represents the contents of a module, and supports methods
-// for adding information produced by parsing STABS or DWARF data
-// --- possibly both from the same file --- and then writing out the
-// unified contents as a Breakpad-format symbol file.
-class Module {
- public:
-  // The type of addresses and sizes in a symbol table.
-  typedef uint64_t Address;
-  struct File;
-  struct Function;
-  struct Line;
-  struct Extern;
-
-  // Addresses appearing in File, Function, and Line structures are
-  // absolute, not relative to the the module's load address.  That
-  // is, if the module were loaded at its nominal load address, the
-  // addresses would be correct.
-
-  // A source file.
-  struct File {
-    explicit File(const string &name_input) : name(name_input), source_id(0) {}
-
-    // The name of the source file.
-    const string name;
-
-    // The file's source id.  The Write member function clears this
-    // field and assigns source ids a fresh, so any value placed here
-    // before calling Write will be lost.
-    int source_id;
-  };
-
-  // A function.
-  struct Function {
-    Function(const string &name_input, const Address &address_input) :
-        name(name_input), address(address_input), size(0), parameter_size(0) {}
-
-    // For sorting by address.  (Not style-guide compliant, but it's
-    // stupid not to put this in the struct.)
-    static bool CompareByAddress(const Function *x, const Function *y) {
-      return x->address < y->address;
-    }
-
-    // The function's name.
-    const string name;
-
-    // The start address and length of the function's code.
-    const Address address;
-    Address size;
-
-    // The function's parameter size.
-    Address parameter_size;
-
-    // Source lines belonging to this function, sorted by increasing
-    // address.
-    vector<Line> lines;
-  };
-
-  // A source line.
-  struct Line {
-    // For sorting by address.  (Not style-guide compliant, but it's
-    // stupid not to put this in the struct.)
-    static bool CompareByAddress(const Module::Line &x, const Module::Line &y) {
-      return x.address < y.address;
-    }
-
-    Address address, size;    // The address and size of the line's code.
-    File *file;                // The source file.
-    int number;                // The source line number.
-  };
-
-  // An exported symbol.
-  struct Extern {
-    explicit Extern(const Address &address_input) : address(address_input) {}
-    const Address address;
-    string name;
-  };
-
-  // A map from register names to postfix expressions that recover
-  // their their values. This can represent a complete set of rules to
-  // follow at some address, or a set of changes to be applied to an
-  // extant set of rules.
-  typedef map<string, string> RuleMap;
-
-  // A map from addresses to RuleMaps, representing changes that take
-  // effect at given addresses.
-  typedef map<Address, RuleMap> RuleChangeMap;
-
-  // A range of 'STACK CFI' stack walking information. An instance of
-  // this structure corresponds to a 'STACK CFI INIT' record and the
-  // subsequent 'STACK CFI' records that fall within its range.
-  struct StackFrameEntry {
-    // The starting address and number of bytes of machine code this
-    // entry covers.
-    Address address, size;
-
-    // The initial register recovery rules, in force at the starting
-    // address.
-    RuleMap initial_rules;
-
-    // A map from addresses to rule changes. To find the rules in
-    // force at a given address, start with initial_rules, and then
-    // apply the changes given in this map for all addresses up to and
-    // including the address you're interested in.
-    RuleChangeMap rule_changes;
-  };
-
-  struct FunctionCompare {
-    bool operator() (const Function *lhs,
-                     const Function *rhs) const {
-      if (lhs->address == rhs->address)
-        return lhs->name < rhs->name;
-      return lhs->address < rhs->address;
-    }
-  };
-
-  struct ExternCompare {
-    bool operator() (const Extern *lhs,
-                     const Extern *rhs) const {
-      return lhs->address < rhs->address;
-    }
-  };
-
-  // Create a new module with the given name, operating system,
-  // architecture, and ID string.
-  Module(const string &name, const string &os, const string &architecture,
-         const string &id);
-  ~Module();
-
-  // Set the module's load address to LOAD_ADDRESS; addresses given
-  // for functions and lines will be written to the Breakpad symbol
-  // file as offsets from this address.  Construction initializes this
-  // module's load address to zero: addresses written to the symbol
-  // file will be the same as they appear in the Function, Line, and
-  // StackFrameEntry structures.
-  //
-  // Note that this member function has no effect on addresses stored
-  // in the data added to this module; the Write member function
-  // simply subtracts off the load address from addresses before it
-  // prints them. Only the last load address given before calling
-  // Write is used.
-  void SetLoadAddress(Address load_address);
-
-  // Add FUNCTION to the module. FUNCTION's name must not be empty.
-  // This module owns all Function objects added with this function:
-  // destroying the module destroys them as well.
-  void AddFunction(Function *function);
-
-  // Add all the functions in [BEGIN,END) to the module.
-  // This module owns all Function objects added with this function:
-  // destroying the module destroys them as well.
-  void AddFunctions(vector<Function *>::iterator begin,
-                    vector<Function *>::iterator end);
-
-  // Add STACK_FRAME_ENTRY to the module.
-  // This module owns all StackFrameEntry objects added with this
-  // function: destroying the module destroys them as well.
-  void AddStackFrameEntry(StackFrameEntry *stack_frame_entry);
-
-  // Add PUBLIC to the module.
-  // This module owns all Extern objects added with this function:
-  // destroying the module destroys them as well.
-  void AddExtern(Extern *ext);
-
-  // If this module has a file named NAME, return a pointer to it. If
-  // it has none, then create one and return a pointer to the new
-  // file. This module owns all File objects created using these
-  // functions; destroying the module destroys them as well.
-  File *FindFile(const string &name);
-  File *FindFile(const char *name);
-
-  // If this module has a file named NAME, return a pointer to it.
-  // Otherwise, return NULL.
-  File *FindExistingFile(const string &name);
-
-  // Insert pointers to the functions added to this module at I in
-  // VEC. The pointed-to Functions are still owned by this module.
-  // (Since this is effectively a copy of the function list, this is
-  // mostly useful for testing; other uses should probably get a more
-  // appropriate interface.)
-  void GetFunctions(vector<Function *> *vec, vector<Function *>::iterator i);
-
-  // Insert pointers to the externs added to this module at I in
-  // VEC. The pointed-to Externs are still owned by this module.
-  // (Since this is effectively a copy of the extern list, this is
-  // mostly useful for testing; other uses should probably get a more
-  // appropriate interface.)
-  void GetExterns(vector<Extern *> *vec, vector<Extern *>::iterator i);
-
-  // Clear VEC and fill it with pointers to the Files added to this
-  // module, sorted by name. The pointed-to Files are still owned by
-  // this module. (Since this is effectively a copy of the file list,
-  // this is mostly useful for testing; other uses should probably get
-  // a more appropriate interface.)
-  void GetFiles(vector<File *> *vec);
-
-  // Clear VEC and fill it with pointers to the StackFrameEntry
-  // objects that have been added to this module. (Since this is
-  // effectively a copy of the stack frame entry list, this is mostly
-  // useful for testing; other uses should probably get
-  // a more appropriate interface.)
-  void GetStackFrameEntries(vector<StackFrameEntry *> *vec) const;
-
-  // Find those files in this module that are actually referred to by
-  // functions' line number data, and assign them source id numbers.
-  // Set the source id numbers for all other files --- unused by the
-  // source line data --- to -1.  We do this before writing out the
-  // symbol file, at which point we omit any unused files.
-  void AssignSourceIds();
-
-  // Call AssignSourceIds, and write this module to STREAM in the
-  // breakpad symbol format. Return true if all goes well, or false if
-  // an error occurs. This method writes out:
-  // - a header based on the values given to the constructor,
-  // If symbol_data is not ONLY_CFI then:
-  // - the source files added via FindFile,
-  // - the functions added via AddFunctions, each with its lines,
-  // - all public records,
-  // If symbol_data is not NO_CFI then:
-  // - all CFI records.
-  // Addresses in the output are all relative to the load address
-  // established by SetLoadAddress.
-  bool Write(std::ostream &stream, SymbolData symbol_data);
-
-  string name() const { return name_; }
-  string os() const { return os_; }
-  string architecture() const { return architecture_; }
-  string identifier() const { return id_; }
-
- private:
-  // Report an error that has occurred writing the symbol file, using
-  // errno to find the appropriate cause.  Return false.
-  static bool ReportError();
-
-  // Write RULE_MAP to STREAM, in the form appropriate for 'STACK CFI'
-  // records, without a final newline. Return true if all goes well;
-  // if an error occurs, return false, and leave errno set.
-  static bool WriteRuleMap(const RuleMap &rule_map, std::ostream &stream);
-
-  // Module header entries.
-  string name_, os_, architecture_, id_;
-
-  // The module's nominal load address.  Addresses for functions and
-  // lines are absolute, assuming the module is loaded at this
-  // address.
-  Address load_address_;
-
-  // Relation for maps whose keys are strings shared with some other
-  // structure.
-  struct CompareStringPtrs {
-    bool operator()(const string *x, const string *y) const { return *x < *y; }
-  };
-
-  // A map from filenames to File structures.  The map's keys are
-  // pointers to the Files' names.
-  typedef map<const string *, File *, CompareStringPtrs> FileByNameMap;
-
-  // A set containing Function structures, sorted by address.
-  typedef set<Function *, FunctionCompare> FunctionSet;
-
-  // A set containing Extern structures, sorted by address.
-  typedef set<Extern *, ExternCompare> ExternSet;
-
-  // The module owns all the files and functions that have been added
-  // to it; destroying the module frees the Files and Functions these
-  // point to.
-  FileByNameMap files_;    // This module's source files.
-  FunctionSet functions_;  // This module's functions.
-
-  // The module owns all the call frame info entries that have been
-  // added to it.
-  vector<StackFrameEntry *> stack_frame_entries_;
-
-  // The module owns all the externs that have been added to it;
-  // destroying the module frees the Externs these point to.
-  ExternSet externs_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_LINUX_MODULE_H__
diff --git a/breakpad/linux-x86/include/breakpad/common/scoped_ptr.h b/breakpad/linux-x86/include/breakpad/common/scoped_ptr.h
deleted file mode 100644
index d137c18..0000000
--- a/breakpad/linux-x86/include/breakpad/common/scoped_ptr.h
+++ /dev/null
@@ -1,404 +0,0 @@
-// Copyright 2013 Google Inc. All Rights Reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Scopers help you manage ownership of a pointer, helping you easily manage the
-// a pointer within a scope, and automatically destroying the pointer at the
-// end of a scope.  There are two main classes you will use, which correspond
-// to the operators new/delete and new[]/delete[].
-//
-// Example usage (scoped_ptr):
-//   {
-//     scoped_ptr<Foo> foo(new Foo("wee"));
-//   }  // foo goes out of scope, releasing the pointer with it.
-//
-//   {
-//     scoped_ptr<Foo> foo;          // No pointer managed.
-//     foo.reset(new Foo("wee"));    // Now a pointer is managed.
-//     foo.reset(new Foo("wee2"));   // Foo("wee") was destroyed.
-//     foo.reset(new Foo("wee3"));   // Foo("wee2") was destroyed.
-//     foo->Method();                // Foo::Method() called.
-//     foo.get()->Method();          // Foo::Method() called.
-//     SomeFunc(foo.release());      // SomeFunc takes ownership, foo no longer
-//                                   // manages a pointer.
-//     foo.reset(new Foo("wee4"));   // foo manages a pointer again.
-//     foo.reset();                  // Foo("wee4") destroyed, foo no longer
-//                                   // manages a pointer.
-//   }  // foo wasn't managing a pointer, so nothing was destroyed.
-//
-// Example usage (scoped_array):
-//   {
-//     scoped_array<Foo> foo(new Foo[100]);
-//     foo.get()->Method();  // Foo::Method on the 0th element.
-//     foo[10].Method();     // Foo::Method on the 10th element.
-//   }
-
-#ifndef COMMON_SCOPED_PTR_H_
-#define COMMON_SCOPED_PTR_H_
-
-// This is an implementation designed to match the anticipated future TR2
-// implementation of the scoped_ptr class, and its closely-related brethren,
-// scoped_array, scoped_ptr_malloc.
-
-#include <assert.h>
-#include <stddef.h>
-#include <stdlib.h>
-
-namespace google_breakpad {
-
-// A scoped_ptr<T> is like a T*, except that the destructor of scoped_ptr<T>
-// automatically deletes the pointer it holds (if any).
-// That is, scoped_ptr<T> owns the T object that it points to.
-// Like a T*, a scoped_ptr<T> may hold either NULL or a pointer to a T object.
-// Also like T*, scoped_ptr<T> is thread-compatible, and once you
-// dereference it, you get the threadsafety guarantees of T.
-//
-// The size of a scoped_ptr is small:
-// sizeof(scoped_ptr<C>) == sizeof(C*)
-template <class C>
-class scoped_ptr {
- public:
-
-  // The element type
-  typedef C element_type;
-
-  // Constructor.  Defaults to initializing with NULL.
-  // There is no way to create an uninitialized scoped_ptr.
-  // The input parameter must be allocated with new.
-  explicit scoped_ptr(C* p = NULL) : ptr_(p) { }
-
-  // Destructor.  If there is a C object, delete it.
-  // We don't need to test ptr_ == NULL because C++ does that for us.
-  ~scoped_ptr() {
-    enum { type_must_be_complete = sizeof(C) };
-    delete ptr_;
-  }
-
-  // Reset.  Deletes the current owned object, if any.
-  // Then takes ownership of a new object, if given.
-  // this->reset(this->get()) works.
-  void reset(C* p = NULL) {
-    if (p != ptr_) {
-      enum { type_must_be_complete = sizeof(C) };
-      delete ptr_;
-      ptr_ = p;
-    }
-  }
-
-  // Accessors to get the owned object.
-  // operator* and operator-> will assert() if there is no current object.
-  C& operator*() const {
-    assert(ptr_ != NULL);
-    return *ptr_;
-  }
-  C* operator->() const  {
-    assert(ptr_ != NULL);
-    return ptr_;
-  }
-  C* get() const { return ptr_; }
-
-  // Comparison operators.
-  // These return whether two scoped_ptr refer to the same object, not just to
-  // two different but equal objects.
-  bool operator==(C* p) const { return ptr_ == p; }
-  bool operator!=(C* p) const { return ptr_ != p; }
-
-  // Swap two scoped pointers.
-  void swap(scoped_ptr& p2) {
-    C* tmp = ptr_;
-    ptr_ = p2.ptr_;
-    p2.ptr_ = tmp;
-  }
-
-  // Release a pointer.
-  // The return value is the current pointer held by this object.
-  // If this object holds a NULL pointer, the return value is NULL.
-  // After this operation, this object will hold a NULL pointer,
-  // and will not own the object any more.
-  C* release() {
-    C* retVal = ptr_;
-    ptr_ = NULL;
-    return retVal;
-  }
-
- private:
-  C* ptr_;
-
-  // Forbid comparison of scoped_ptr types.  If C2 != C, it totally doesn't
-  // make sense, and if C2 == C, it still doesn't make sense because you should
-  // never have the same object owned by two different scoped_ptrs.
-  template <class C2> bool operator==(scoped_ptr<C2> const& p2) const;
-  template <class C2> bool operator!=(scoped_ptr<C2> const& p2) const;
-
-  // Disallow evil constructors
-  scoped_ptr(const scoped_ptr&);
-  void operator=(const scoped_ptr&);
-};
-
-// Free functions
-template <class C>
-void swap(scoped_ptr<C>& p1, scoped_ptr<C>& p2) {
-  p1.swap(p2);
-}
-
-template <class C>
-bool operator==(C* p1, const scoped_ptr<C>& p2) {
-  return p1 == p2.get();
-}
-
-template <class C>
-bool operator!=(C* p1, const scoped_ptr<C>& p2) {
-  return p1 != p2.get();
-}
-
-// scoped_array<C> is like scoped_ptr<C>, except that the caller must allocate
-// with new [] and the destructor deletes objects with delete [].
-//
-// As with scoped_ptr<C>, a scoped_array<C> either points to an object
-// or is NULL.  A scoped_array<C> owns the object that it points to.
-// scoped_array<T> is thread-compatible, and once you index into it,
-// the returned objects have only the threadsafety guarantees of T.
-//
-// Size: sizeof(scoped_array<C>) == sizeof(C*)
-template <class C>
-class scoped_array {
- public:
-
-  // The element type
-  typedef C element_type;
-
-  // Constructor.  Defaults to intializing with NULL.
-  // There is no way to create an uninitialized scoped_array.
-  // The input parameter must be allocated with new [].
-  explicit scoped_array(C* p = NULL) : array_(p) { }
-
-  // Destructor.  If there is a C object, delete it.
-  // We don't need to test ptr_ == NULL because C++ does that for us.
-  ~scoped_array() {
-    enum { type_must_be_complete = sizeof(C) };
-    delete[] array_;
-  }
-
-  // Reset.  Deletes the current owned object, if any.
-  // Then takes ownership of a new object, if given.
-  // this->reset(this->get()) works.
-  void reset(C* p = NULL) {
-    if (p != array_) {
-      enum { type_must_be_complete = sizeof(C) };
-      delete[] array_;
-      array_ = p;
-    }
-  }
-
-  // Get one element of the current object.
-  // Will assert() if there is no current object, or index i is negative.
-  C& operator[](ptrdiff_t i) const {
-    assert(i >= 0);
-    assert(array_ != NULL);
-    return array_[i];
-  }
-
-  // Get a pointer to the zeroth element of the current object.
-  // If there is no current object, return NULL.
-  C* get() const {
-    return array_;
-  }
-
-  // Comparison operators.
-  // These return whether two scoped_array refer to the same object, not just to
-  // two different but equal objects.
-  bool operator==(C* p) const { return array_ == p; }
-  bool operator!=(C* p) const { return array_ != p; }
-
-  // Swap two scoped arrays.
-  void swap(scoped_array& p2) {
-    C* tmp = array_;
-    array_ = p2.array_;
-    p2.array_ = tmp;
-  }
-
-  // Release an array.
-  // The return value is the current pointer held by this object.
-  // If this object holds a NULL pointer, the return value is NULL.
-  // After this operation, this object will hold a NULL pointer,
-  // and will not own the object any more.
-  C* release() {
-    C* retVal = array_;
-    array_ = NULL;
-    return retVal;
-  }
-
- private:
-  C* array_;
-
-  // Forbid comparison of different scoped_array types.
-  template <class C2> bool operator==(scoped_array<C2> const& p2) const;
-  template <class C2> bool operator!=(scoped_array<C2> const& p2) const;
-
-  // Disallow evil constructors
-  scoped_array(const scoped_array&);
-  void operator=(const scoped_array&);
-};
-
-// Free functions
-template <class C>
-void swap(scoped_array<C>& p1, scoped_array<C>& p2) {
-  p1.swap(p2);
-}
-
-template <class C>
-bool operator==(C* p1, const scoped_array<C>& p2) {
-  return p1 == p2.get();
-}
-
-template <class C>
-bool operator!=(C* p1, const scoped_array<C>& p2) {
-  return p1 != p2.get();
-}
-
-// This class wraps the c library function free() in a class that can be
-// passed as a template argument to scoped_ptr_malloc below.
-class ScopedPtrMallocFree {
- public:
-  inline void operator()(void* x) const {
-    free(x);
-  }
-};
-
-// scoped_ptr_malloc<> is similar to scoped_ptr<>, but it accepts a
-// second template argument, the functor used to free the object.
-
-template<class C, class FreeProc = ScopedPtrMallocFree>
-class scoped_ptr_malloc {
- public:
-
-  // The element type
-  typedef C element_type;
-
-  // Constructor.  Defaults to initializing with NULL.
-  // There is no way to create an uninitialized scoped_ptr.
-  // The input parameter must be allocated with an allocator that matches the
-  // Free functor.  For the default Free functor, this is malloc, calloc, or
-  // realloc.
-  explicit scoped_ptr_malloc(C* p = NULL): ptr_(p) {}
-
-  // Destructor.  If there is a C object, call the Free functor.
-  ~scoped_ptr_malloc() {
-    reset();
-  }
-
-  // Reset.  Calls the Free functor on the current owned object, if any.
-  // Then takes ownership of a new object, if given.
-  // this->reset(this->get()) works.
-  void reset(C* p = NULL) {
-    if (ptr_ != p) {
-      FreeProc free_proc;
-      free_proc(ptr_);
-      ptr_ = p;
-    }
-  }
-
-  // Get the current object.
-  // operator* and operator-> will cause an assert() failure if there is
-  // no current object.
-  C& operator*() const {
-    assert(ptr_ != NULL);
-    return *ptr_;
-  }
-
-  C* operator->() const {
-    assert(ptr_ != NULL);
-    return ptr_;
-  }
-
-  C* get() const {
-    return ptr_;
-  }
-
-  // Comparison operators.
-  // These return whether a scoped_ptr_malloc and a plain pointer refer
-  // to the same object, not just to two different but equal objects.
-  // For compatibility with the boost-derived implementation, these
-  // take non-const arguments.
-  bool operator==(C* p) const {
-    return ptr_ == p;
-  }
-
-  bool operator!=(C* p) const {
-    return ptr_ != p;
-  }
-
-  // Swap two scoped pointers.
-  void swap(scoped_ptr_malloc & b) {
-    C* tmp = b.ptr_;
-    b.ptr_ = ptr_;
-    ptr_ = tmp;
-  }
-
-  // Release a pointer.
-  // The return value is the current pointer held by this object.
-  // If this object holds a NULL pointer, the return value is NULL.
-  // After this operation, this object will hold a NULL pointer,
-  // and will not own the object any more.
-  C* release() {
-    C* tmp = ptr_;
-    ptr_ = NULL;
-    return tmp;
-  }
-
- private:
-  C* ptr_;
-
-  // no reason to use these: each scoped_ptr_malloc should have its own object
-  template <class C2, class GP>
-  bool operator==(scoped_ptr_malloc<C2, GP> const& p) const;
-  template <class C2, class GP>
-  bool operator!=(scoped_ptr_malloc<C2, GP> const& p) const;
-
-  // Disallow evil constructors
-  scoped_ptr_malloc(const scoped_ptr_malloc&);
-  void operator=(const scoped_ptr_malloc&);
-};
-
-template<class C, class FP> inline
-void swap(scoped_ptr_malloc<C, FP>& a, scoped_ptr_malloc<C, FP>& b) {
-  a.swap(b);
-}
-
-template<class C, class FP> inline
-bool operator==(C* p, const scoped_ptr_malloc<C, FP>& b) {
-  return p == b.get();
-}
-
-template<class C, class FP> inline
-bool operator!=(C* p, const scoped_ptr_malloc<C, FP>& b) {
-  return p != b.get();
-}
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_SCOPED_PTR_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/simple_string_dictionary.h b/breakpad/linux-x86/include/breakpad/common/simple_string_dictionary.h
deleted file mode 100644
index d2ab17f..0000000
--- a/breakpad/linux-x86/include/breakpad/common/simple_string_dictionary.h
+++ /dev/null
@@ -1,260 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef COMMON_SIMPLE_STRING_DICTIONARY_H_
-#define COMMON_SIMPLE_STRING_DICTIONARY_H_
-
-#include <assert.h>
-#include <string.h>
-
-#include "common/basictypes.h"
-
-namespace google_breakpad {
-
-// Opaque type for the serialized representation of a NonAllocatingMap. One is
-// created in NonAllocatingMap::Serialize and can be deserialized using one of
-// the constructors.
-struct SerializedNonAllocatingMap;
-
-// NonAllocatingMap is an implementation of a map/dictionary collection that
-// uses a fixed amount of storage, so that it does not perform any dynamic
-// allocations for its operations.
-//
-// The actual map storage (the Entry) is guaranteed to be POD, so that it can
-// be transmitted over various IPC mechanisms.
-//
-// The template parameters control the amount of storage used for the key,
-// value, and map. The KeySize and ValueSize are measured in bytes, not glyphs,
-// and includes space for a \0 byte. This gives space for KeySize-1 and
-// ValueSize-1 characters in an entry. NumEntries is the total number of
-// entries that will fit in the map.
-template <size_t KeySize, size_t ValueSize, size_t NumEntries>
-class NonAllocatingMap {
- public:
-  // Constant and publicly accessible versions of the template parameters.
-  static const size_t key_size = KeySize;
-  static const size_t value_size = ValueSize;
-  static const size_t num_entries = NumEntries;
-
-  // An Entry object is a single entry in the map. If the key is a 0-length
-  // NUL-terminated string, the entry is empty.
-  struct Entry {
-    char key[KeySize];
-    char value[ValueSize];
-
-    bool is_active() const {
-      return key[0] != '\0';
-    }
-  };
-
-  // An Iterator can be used to iterate over all the active entries in a
-  // NonAllocatingMap.
-  class Iterator {
-   public:
-    explicit Iterator(const NonAllocatingMap& map)
-        : map_(map),
-          current_(0) {
-    }
-
-    // Returns the next entry in the map, or NULL if at the end of the
-    // collection.
-    const Entry* Next() {
-      while (current_ < map_.num_entries) {
-        const Entry* entry = &map_.entries_[current_++];
-        if (entry->is_active()) {
-          return entry;
-        }
-      }
-      return NULL;
-    }
-
-   private:
-    const NonAllocatingMap& map_;
-    size_t current_;
-
-    DISALLOW_COPY_AND_ASSIGN(Iterator);
-  };
-
-  NonAllocatingMap() : entries_() {
-  }
-
-  NonAllocatingMap(const NonAllocatingMap& other) {
-    *this = other;
-  }
-
-  NonAllocatingMap& operator=(const NonAllocatingMap& other) {
-    assert(other.key_size == key_size);
-    assert(other.value_size == value_size);
-    assert(other.num_entries == num_entries);
-    if (other.key_size == key_size && other.value_size == value_size &&
-        other.num_entries == num_entries) {
-      memcpy(entries_, other.entries_, sizeof(entries_));
-    }
-    return *this;
-  }
-
-  // Constructs a map from its serialized form. |map| should be the out
-  // parameter from Serialize() and |size| should be its return value.
-  NonAllocatingMap(const SerializedNonAllocatingMap* map, size_t size) {
-    assert(size == sizeof(entries_));
-    if (size == sizeof(entries_)) {
-      memcpy(entries_, map, size);
-    }
-  }
-
-  // Returns the number of active key/value pairs. The upper limit for this
-  // is NumEntries.
-  size_t GetCount() const {
-    size_t count = 0;
-    for (size_t i = 0; i < num_entries; ++i) {
-      if (entries_[i].is_active()) {
-        ++count;
-      }
-    }
-    return count;
-  }
-
-  // Given |key|, returns its corresponding |value|. |key| must not be NULL. If
-  // the key is not found, NULL is returned.
-  const char* GetValueForKey(const char* key) const {
-    assert(key);
-    if (!key)
-      return NULL;
-
-    const Entry* entry = GetConstEntryForKey(key);
-    if (!entry)
-      return NULL;
-
-    return entry->value;
-  }
-
-  // Stores |value| into |key|, replacing the existing value if |key| is
-  // already present. |key| must not be NULL. If |value| is NULL, the key is
-  // removed from the map. If there is no more space in the map, then the
-  // operation silently fails.
-  void SetKeyValue(const char* key, const char* value) {
-    if (!value) {
-      RemoveKey(key);
-      return;
-    }
-
-    assert(key);
-    if (!key)
-      return;
-
-    // Key must not be an empty string.
-    assert(key[0] != '\0');
-    if (key[0] == '\0')
-      return;
-
-    Entry* entry = GetEntryForKey(key);
-
-    // If it does not yet exist, attempt to insert it.
-    if (!entry) {
-      for (size_t i = 0; i < num_entries; ++i) {
-        if (!entries_[i].is_active()) {
-          entry = &entries_[i];
-
-          strncpy(entry->key, key, key_size);
-          entry->key[key_size - 1] = '\0';
-
-          break;
-        }
-      }
-    }
-
-    // If the map is out of space, entry will be NULL.
-    if (!entry)
-      return;
-
-#ifndef NDEBUG
-    // Sanity check that the key only appears once.
-    int count = 0;
-    for (size_t i = 0; i < num_entries; ++i) {
-      if (strncmp(entries_[i].key, key, key_size) == 0)
-        ++count;
-    }
-    assert(count == 1);
-#endif
-
-    strncpy(entry->value, value, value_size);
-    entry->value[value_size - 1] = '\0';
-  }
-
-  // Given |key|, removes any associated value. |key| must not be NULL. If
-  // the key is not found, this is a noop.
-  void RemoveKey(const char* key) {
-    assert(key);
-    if (!key)
-      return;
-
-    Entry* entry = GetEntryForKey(key);
-    if (entry) {
-      entry->key[0] = '\0';
-      entry->value[0] = '\0';
-    }
-
-#ifndef NDEBUG
-    assert(GetEntryForKey(key) == NULL);
-#endif
-  }
-
-  // Places a serialized version of the map into |map| and returns the size.
-  // Both of these should be passed to the deserializing constructor. Note that
-  // the serialized |map| is scoped to the lifetime of the non-serialized
-  // instance of this class. The |map| can be copied across IPC boundaries.
-  size_t Serialize(const SerializedNonAllocatingMap** map) const {
-    *map = reinterpret_cast<const SerializedNonAllocatingMap*>(entries_);
-    return sizeof(entries_);
-  }
-
- private:
-  const Entry* GetConstEntryForKey(const char* key) const {
-    for (size_t i = 0; i < num_entries; ++i) {
-      if (strncmp(key, entries_[i].key, key_size) == 0) {
-        return &entries_[i];
-      }
-    }
-    return NULL;
-  }
-
-  Entry* GetEntryForKey(const char* key) {
-    return const_cast<Entry*>(GetConstEntryForKey(key));
-  }
-
-  Entry entries_[NumEntries];
-};
-
-// For historical reasons this specialized version is available with the same
-// size factors as a previous implementation.
-typedef NonAllocatingMap<256, 256, 64> SimpleStringDictionary;
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_SIMPLE_STRING_DICTIONARY_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/stabs_reader.h b/breakpad/linux-x86/include/breakpad/common/stabs_reader.h
deleted file mode 100644
index 98ee2dd..0000000
--- a/breakpad/linux-x86/include/breakpad/common/stabs_reader.h
+++ /dev/null
@@ -1,325 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2010 Google Inc. All Rights Reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// stabs_reader.h: Define StabsReader, a parser for STABS debugging
-// information. A description of the STABS debugging format can be
-// found at:
-//
-//    http://sourceware.org/gdb/current/onlinedocs/stabs_toc.html
-//
-// The comments here assume you understand the format.
-//
-// This parser can handle big-endian and little-endian data, and the symbol
-// values may be either 32 or 64 bits long. It handles both STABS in
-// sections (as used on Linux) and STABS appearing directly in an
-// a.out-like symbol table (as used in Darwin OS X Mach-O files).
-
-#ifndef COMMON_STABS_READER_H__
-#define COMMON_STABS_READER_H__
-
-#include <stddef.h>
-#include <stdint.h>
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef HAVE_MACH_O_NLIST_H
-#include <mach-o/nlist.h>
-#elif defined(HAVE_A_OUT_H)
-#include <a.out.h>
-#endif
-
-#include <string>
-#include <vector>
-
-#include "common/byte_cursor.h"
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-class StabsHandler;
-
-class StabsReader {
- public:
-  // Create a reader for the STABS debug information whose .stab section is
-  // being traversed by ITERATOR, and whose .stabstr section is referred to
-  // by STRINGS. The reader will call the member functions of HANDLER to
-  // report the information it finds, when the reader's 'Process' member
-  // function is called.
-  //
-  // BIG_ENDIAN should be true if the entries in the .stab section are in
-  // big-endian form, or false if they are in little-endian form.
-  //
-  // VALUE_SIZE should be either 4 or 8, indicating the size of the 'value'
-  // field in each entry in bytes.
-  //
-  // UNITIZED should be true if the STABS data is stored in units with
-  // N_UNDF headers. This is usually the case for STABS stored in sections,
-  // like .stab/.stabstr, and usually not the case for STABS stored in the
-  // actual symbol table; UNITIZED should be true when parsing Linux stabs,
-  // false when parsing Mac OS X STABS. For details, see:
-  // http://sourceware.org/gdb/current/onlinedocs/stabs/Stab-Section-Basics.html
-  // 
-  // Note that, in ELF, the .stabstr section should be found using the
-  // 'sh_link' field of the .stab section header, not by name.
-  StabsReader(const uint8_t *stab,    size_t stab_size,
-              const uint8_t *stabstr, size_t stabstr_size,
-              bool big_endian, size_t value_size, bool unitized,
-              StabsHandler *handler);
-
-  // Process the STABS data, calling the handler's member functions to
-  // report what we find.  While the handler functions return true,
-  // continue to process until we reach the end of the section.  If we
-  // processed the entire section and all handlers returned true,
-  // return true.  If any handler returned false, return false.
-  // 
-  // This is only meant to be called once per StabsReader instance;
-  // resuming a prior processing pass that stopped abruptly isn't supported.
-  bool Process();
-
- private:
-
-  // An class for walking arrays of STABS entries. This isolates the main
-  // STABS reader from the exact format (size; endianness) of the entries
-  // themselves.
-  class EntryIterator {
-   public:
-    // The contents of a STABS entry, adjusted for the host's endianness,
-    // word size, 'struct nlist' layout, and so on.
-    struct Entry {
-      // True if this iterator has reached the end of the entry array. When
-      // this is set, the other members of this structure are not valid.
-      bool at_end;
-
-      // The number of this entry within the list.
-      size_t index;
-
-      // The current entry's name offset. This is the offset within the
-      // current compilation unit's strings, as establish by the N_UNDF entries.
-      size_t name_offset;
-
-      // The current entry's type, 'other' field, descriptor, and value.
-      unsigned char type;
-      unsigned char other;
-      short descriptor;
-      uint64_t value;
-    };
-
-    // Create a EntryIterator walking the entries in BUFFER. Treat the
-    // entries as big-endian if BIG_ENDIAN is true, as little-endian
-    // otherwise. Assume each entry has a 'value' field whose size is
-    // VALUE_SIZE.
-    //
-    // This would not be terribly clean to extend to other format variations,
-    // but it's enough to handle Linux and Mac, and we'd like STABS to die
-    // anyway.
-    //
-    // For the record: on Linux, STABS entry values are always 32 bits,
-    // regardless of the architecture address size (don't ask me why); on
-    // Mac, they are 32 or 64 bits long. Oddly, the section header's entry
-    // size for a Linux ELF .stab section varies according to the ELF class
-    // from 12 to 20 even as the actual entries remain unchanged.
-    EntryIterator(const ByteBuffer *buffer, bool big_endian, size_t value_size);
-
-    // Move to the next entry. This function's behavior is undefined if
-    // at_end() is true when it is called.
-    EntryIterator &operator++() { Fetch(); entry_.index++; return *this; }
-
-    // Dereferencing this iterator produces a reference to an Entry structure
-    // that holds the current entry's values. The entry is owned by this
-    // EntryIterator, and will be invalidated at the next call to operator++.
-    const Entry &operator*() const { return entry_; }
-    const Entry *operator->() const { return &entry_; }
-
-   private:
-    // Read the STABS entry at cursor_, and set entry_ appropriately.
-    void Fetch();
-
-    // The size of entries' value field, in bytes.
-    size_t value_size_;
-
-    // A byte cursor traversing buffer_.
-    ByteCursor cursor_;
-
-    // Values for the entry this iterator refers to.
-    Entry entry_;
-  };
-
-  // A source line, saved to be reported later.
-  struct Line {
-    uint64_t address;
-    const char *filename;
-    int number;
-  };
-
-  // Return the name of the current symbol.
-  const char *SymbolString();
-
-  // Process a compilation unit starting at symbol_.  Return true
-  // to continue processing, or false to abort.
-  bool ProcessCompilationUnit();
-
-  // Process a function in current_source_file_ starting at symbol_.
-  // Return true to continue processing, or false to abort.
-  bool ProcessFunction();
-
-  // Process an exported function symbol.
-  // Return true to continue processing, or false to abort.
-  bool ProcessExtern();
-
-  // The STABS entries being parsed.
-  ByteBuffer entries_;
-
-  // The string section to which the entries refer.
-  ByteBuffer strings_;
-
-  // The iterator walking the STABS entries.
-  EntryIterator iterator_;
-
-  // True if the data is "unitized"; see the explanation in the comment for
-  // StabsReader::StabsReader.
-  bool unitized_;
-
-  StabsHandler *handler_;
-
-  // The offset of the current compilation unit's strings within stabstr_.
-  size_t string_offset_;
-
-  // The value string_offset_ should have for the next compilation unit,
-  // as established by N_UNDF entries.
-  size_t next_cu_string_offset_;
-
-  // The current source file name.
-  const char *current_source_file_;
-
-  // Mac OS X STABS place SLINE records before functions; we accumulate a
-  // vector of these until we see the FUN record, and then report them
-  // after the StartFunction call.
-  std::vector<Line> queued_lines_;
-};
-
-// Consumer-provided callback structure for the STABS reader.  Clients
-// of the STABS reader provide an instance of this structure.  The
-// reader then invokes the member functions of that instance to report
-// the information it finds.
-//
-// The default definitions of the member functions do nothing, and return
-// true so processing will continue.
-class StabsHandler {
- public:
-  StabsHandler() { }
-  virtual ~StabsHandler() { }
-
-  // Some general notes about the handler callback functions:
-
-  // Processing proceeds until the end of the .stabs section, or until
-  // one of these functions returns false.
-
-  // The addresses given are as reported in the STABS info, without
-  // regard for whether the module may be loaded at different
-  // addresses at different times (a shared library, say).  When
-  // processing STABS from an ELF shared library, the addresses given
-  // all assume the library is loaded at its nominal load address.
-  // They are *not* offsets from the nominal load address.  If you
-  // want offsets, you must subtract off the library's nominal load
-  // address.
-
-  // The arguments to these functions named FILENAME are all
-  // references to strings stored in the .stabstr section.  Because
-  // both the Linux and Solaris linkers factor out duplicate strings
-  // from the .stabstr section, the consumer can assume that if two
-  // FILENAME values are different addresses, they represent different
-  // file names.
-  //
-  // Thus, it's safe to use (say) std::map<char *, ...>, which does
-  // string address comparisons, not string content comparisons.
-  // Since all the strings are in same array of characters --- the
-  // .stabstr section --- comparing their addresses produces
-  // predictable, if not lexicographically meaningful, results.
-
-  // Begin processing a compilation unit whose main source file is
-  // named FILENAME, and whose base address is ADDRESS.  If
-  // BUILD_DIRECTORY is non-NULL, it is the name of the build
-  // directory in which the compilation occurred.
-  virtual bool StartCompilationUnit(const char *filename, uint64_t address,
-                                    const char *build_directory) {
-    return true;
-  }
-
-  // Finish processing the compilation unit.  If ADDRESS is non-zero,
-  // it is the ending address of the compilation unit.  If ADDRESS is
-  // zero, then the compilation unit's ending address is not
-  // available, and the consumer must infer it by other means.
-  virtual bool EndCompilationUnit(uint64_t address) { return true; }
-
-  // Begin processing a function named NAME, whose starting address is
-  // ADDRESS.  This function belongs to the compilation unit that was
-  // most recently started but not ended.
-  //
-  // Note that, unlike filenames, NAME is not a pointer into the
-  // .stabstr section; this is because the name as it appears in the
-  // STABS data is followed by type information.  The value passed to
-  // StartFunction is the function name alone.
-  //
-  // In languages that use name mangling, like C++, NAME is mangled.
-  virtual bool StartFunction(const string &name, uint64_t address) {
-    return true;
-  }
-
-  // Finish processing the function.  If ADDRESS is non-zero, it is
-  // the ending address for the function.  If ADDRESS is zero, then
-  // the function's ending address is not available, and the consumer
-  // must infer it by other means.
-  virtual bool EndFunction(uint64_t address) { return true; }
-  
-  // Report that the code at ADDRESS is attributable to line NUMBER of
-  // the source file named FILENAME.  The caller must infer the ending
-  // address of the line.
-  virtual bool Line(uint64_t address, const char *filename, int number) {
-    return true;
-  }
-
-  // Report that an exported function NAME is present at ADDRESS.
-  // The size of the function is unknown.
-  virtual bool Extern(const string &name, uint64_t address) {
-    return true;
-  }
-
-  // Report a warning.  FORMAT is a printf-like format string,
-  // specifying how to format the subsequent arguments.
-  virtual void Warning(const char *format, ...) = 0;
-};
-
-} // namespace google_breakpad
-
-#endif  // COMMON_STABS_READER_H__
diff --git a/breakpad/linux-x86/include/breakpad/common/stabs_to_module.h b/breakpad/linux-x86/include/breakpad/common/stabs_to_module.h
deleted file mode 100644
index 5e04fa7..0000000
--- a/breakpad/linux-x86/include/breakpad/common/stabs_to_module.h
+++ /dev/null
@@ -1,143 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// dump_stabs.h: Define the StabsToModule class, which receives
-// STABS debugging information from a parser and adds it to a Breakpad
-// symbol file.
-
-#ifndef BREAKPAD_COMMON_STABS_TO_MODULE_H_
-#define BREAKPAD_COMMON_STABS_TO_MODULE_H_
-
-#include <stdint.h>
-
-#include <string>
-#include <vector>
-
-#include "common/module.h"
-#include "common/stabs_reader.h"
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-using std::vector;
-
-// A StabsToModule is a handler that receives parsed STABS debugging 
-// information from a StabsReader, and uses that to populate
-// a Module. (All classes are in the google_breakpad namespace.) A
-// Module represents the contents of a Breakpad symbol file, and knows
-// how to write itself out as such. A StabsToModule thus acts as
-// the bridge between STABS and Breakpad data.
-// When processing Darwin Mach-O files, this also receives public linker
-// symbols, like those found in system libraries.
-class StabsToModule: public google_breakpad::StabsHandler {
- public:
-  // Receive parsed debugging information from a StabsReader, and
-  // store it all in MODULE.
-  StabsToModule(Module *module) :
-      module_(module),
-      in_compilation_unit_(false),
-      comp_unit_base_address_(0),
-      current_function_(NULL),
-      current_source_file_(NULL),
-      current_source_file_name_(NULL) { }
-  ~StabsToModule();
-
-  // The standard StabsHandler virtual member functions.
-  bool StartCompilationUnit(const char *name, uint64_t address,
-                            const char *build_directory);
-  bool EndCompilationUnit(uint64_t address);
-  bool StartFunction(const string &name, uint64_t address);
-  bool EndFunction(uint64_t address);
-  bool Line(uint64_t address, const char *name, int number);
-  bool Extern(const string &name, uint64_t address);
-  void Warning(const char *format, ...);
-
-  // Do any final processing necessary to make module_ contain all the
-  // data provided by the STABS reader.
-  //
-  // Because STABS does not provide reliable size information for
-  // functions and lines, we need to make a pass over the data after
-  // processing all the STABS to compute those sizes.  We take care of
-  // that here.
-  void Finalize();
-
- private:
-
-  // An arbitrary, but very large, size to use for functions whose
-  // size we can't compute properly.
-  static const uint64_t kFallbackSize = 0x10000000;
-
-  // The module we're contributing debugging info to.
-  Module *module_;
-
-  // The functions we've generated so far.  We don't add these to
-  // module_ as we parse them.  Instead, we wait until we've computed
-  // their ending address, and their lines' ending addresses.
-  //
-  // We could just stick them in module_ from the outset, but if
-  // module_ already contains data gathered from other debugging
-  // formats, that would complicate the size computation.
-  vector<Module::Function *> functions_;
-
-  // Boundary addresses.  STABS doesn't necessarily supply sizes for
-  // functions and lines, so we need to compute them ourselves by
-  // finding the next object.
-  vector<Module::Address> boundaries_;
-
-  // True if we are currently within a compilation unit: we have gotten a
-  // StartCompilationUnit call, but no matching EndCompilationUnit call
-  // yet. We use this for sanity checks.
-  bool in_compilation_unit_;
-
-  // The base address of the current compilation unit.  We use this to
-  // recognize functions we should omit from the symbol file.  (If you
-  // know the details of why we omit these, please patch this
-  // comment.)
-  Module::Address comp_unit_base_address_;
-
-  // The function we're currently contributing lines to.
-  Module::Function *current_function_;
-
-  // The last Module::File we got a line number in.
-  Module::File *current_source_file_;
-
-  // The pointer in the .stabstr section of the name that
-  // current_source_file_ is built from.  This allows us to quickly
-  // recognize when the current line is in the same file as the
-  // previous one (which it usually is).
-  const char *current_source_file_name_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // BREAKPAD_COMMON_STABS_TO_MODULE_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/string_conversion.h b/breakpad/linux-x86/include/breakpad/common/string_conversion.h
deleted file mode 100644
index b9ba96a..0000000
--- a/breakpad/linux-x86/include/breakpad/common/string_conversion.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// string_conversion.h: Conversion between different UTF-8/16/32 encodings.
-
-#ifndef COMMON_STRING_CONVERSION_H__
-#define COMMON_STRING_CONVERSION_H__
-
-#include <string>
-#include <vector>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-  
-using std::vector;
-
-// Convert |in| to UTF-16 into |out|.  Use platform byte ordering.  If the
-// conversion failed, |out| will be zero length.
-void UTF8ToUTF16(const char *in, vector<uint16_t> *out);
-
-// Convert at least one character (up to a maximum of |in_length|) from |in|
-// to UTF-16 into |out|.  Return the number of characters consumed from |in|.
-// Any unused characters in |out| will be initialized to 0.  No memory will
-// be allocated by this routine.
-int UTF8ToUTF16Char(const char *in, int in_length, uint16_t out[2]);
-
-// Convert |in| to UTF-16 into |out|.  Use platform byte ordering.  If the
-// conversion failed, |out| will be zero length.
-void UTF32ToUTF16(const wchar_t *in, vector<uint16_t> *out);
-
-// Convert |in| to UTF-16 into |out|.  Any unused characters in |out| will be
-// initialized to 0.  No memory will be allocated by this routine.
-void UTF32ToUTF16Char(wchar_t in, uint16_t out[2]);
-
-// Convert |in| to UTF-8.  If |swap| is true, swap bytes before converting.
-string UTF16ToUTF8(const vector<uint16_t> &in, bool swap);
-
-}  // namespace google_breakpad
-
-#endif  // COMMON_STRING_CONVERSION_H__
diff --git a/breakpad/linux-x86/include/breakpad/common/symbol_data.h b/breakpad/linux-x86/include/breakpad/common/symbol_data.h
deleted file mode 100644
index 2cf15a8..0000000
--- a/breakpad/linux-x86/include/breakpad/common/symbol_data.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2013 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef COMMON_SYMBOL_DATA_H_
-#define COMMON_SYMBOL_DATA_H_
-
-// Control what data is used from the symbol file.
-enum SymbolData {
-  ALL_SYMBOL_DATA,
-  NO_CFI,
-  ONLY_CFI
-};
-
-#endif  // COMMON_SYMBOL_DATA_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/test_assembler.h b/breakpad/linux-x86/include/breakpad/common/test_assembler.h
deleted file mode 100644
index 373dbeb..0000000
--- a/breakpad/linux-x86/include/breakpad/common/test_assembler.h
+++ /dev/null
@@ -1,484 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// test-assembler.h: interface to class for building complex binary streams.
-
-// To test the Breakpad symbol dumper and processor thoroughly, for
-// all combinations of host system and minidump processor
-// architecture, we need to be able to easily generate complex test
-// data like debugging information and minidump files.
-// 
-// For example, if we want our unit tests to provide full code
-// coverage for stack walking, it may be difficult to persuade the
-// compiler to generate every possible sort of stack walking
-// information that we want to support; there are probably DWARF CFI
-// opcodes that GCC never emits. Similarly, if we want to test our
-// error handling, we will need to generate damaged minidumps or
-// debugging information that (we hope) the client or compiler will
-// never produce on its own.
-//
-// google_breakpad::TestAssembler provides a predictable and
-// (relatively) simple way to generate complex formatted data streams
-// like minidumps and CFI. Furthermore, because TestAssembler is
-// portable, developers without access to (say) Visual Studio or a
-// SPARC assembler can still work on test data for those targets.
-
-#ifndef PROCESSOR_TEST_ASSEMBLER_H_
-#define PROCESSOR_TEST_ASSEMBLER_H_
-
-#include <list>
-#include <vector>
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-using std::list;
-using std::vector;
-
-namespace test_assembler {
-
-// A Label represents a value not yet known that we need to store in a
-// section. As long as all the labels a section refers to are defined
-// by the time we retrieve its contents as bytes, we can use undefined
-// labels freely in that section's construction.
-//
-// A label can be in one of three states:
-// - undefined,
-// - defined as the sum of some other label and a constant, or
-// - a constant.
-// 
-// A label's value never changes, but it can accumulate constraints.
-// Adding labels and integers is permitted, and yields a label.
-// Subtracting a constant from a label is permitted, and also yields a
-// label. Subtracting two labels that have some relationship to each
-// other is permitted, and yields a constant.
-//
-// For example:
-//
-//   Label a;               // a's value is undefined
-//   Label b;               // b's value is undefined
-//   {
-//     Label c = a + 4;     // okay, even though a's value is unknown
-//     b = c + 4;           // also okay; b is now a+8
-//   }
-//   Label d = b - 2;       // okay; d == a+6, even though c is gone
-//   d.Value();             // error: d's value is not yet known
-//   d - a;                 // is 6, even though their values are not known
-//   a = 12;                // now b == 20, and d == 18
-//   d.Value();             // 18: no longer an error
-//   b.Value();             // 20
-//   d = 10;                // error: d is already defined.
-//
-// Label objects' lifetimes are unconstrained: notice that, in the
-// above example, even though a and b are only related through c, and
-// c goes out of scope, the assignment to a sets b's value as well. In
-// particular, it's not necessary to ensure that a Label lives beyond
-// Sections that refer to it.
-class Label {
- public:
-  Label();                      // An undefined label.
-  Label(uint64_t value);       // A label with a fixed value
-  Label(const Label &value);    // A label equal to another.
-  ~Label();
-
-  // Return this label's value; it must be known.
-  //
-  // Providing this as a cast operator is nifty, but the conversions
-  // happen in unexpected places. In particular, ISO C++ says that
-  // Label + size_t becomes ambigious, because it can't decide whether
-  // to convert the Label to a uint64_t and then to a size_t, or use
-  // the overloaded operator that returns a new label, even though the
-  // former could fail if the label is not yet defined and the latter won't.
-  uint64_t Value() const;
-
-  Label &operator=(uint64_t value);
-  Label &operator=(const Label &value);
-  Label operator+(uint64_t addend) const;
-  Label operator-(uint64_t subtrahend) const;
-  uint64_t operator-(const Label &subtrahend) const;
-
-  // We could also provide == and != that work on undefined, but
-  // related, labels.
-
-  // Return true if this label's value is known. If VALUE_P is given,
-  // set *VALUE_P to the known value if returning true.
-  bool IsKnownConstant(uint64_t *value_p = NULL) const;
-
-  // Return true if the offset from LABEL to this label is known. If
-  // OFFSET_P is given, set *OFFSET_P to the offset when returning true.
-  //
-  // You can think of l.KnownOffsetFrom(m, &d) as being like 'd = l-m',
-  // except that it also returns a value indicating whether the
-  // subtraction is possible given what we currently know of l and m.
-  // It can be possible even if we don't know l and m's values. For
-  // example:
-  // 
-  //   Label l, m;
-  //   m = l + 10;
-  //   l.IsKnownConstant();             // false
-  //   m.IsKnownConstant();             // false
-  //   uint64_t d;                     
-  //   l.IsKnownOffsetFrom(m, &d);      // true, and sets d to -10.
-  //   l-m                              // -10
-  //   m-l                              // 10
-  //   m.Value()                        // error: m's value is not known
-  bool IsKnownOffsetFrom(const Label &label, uint64_t *offset_p = NULL) const;
-
- private:
-  // A label's value, or if that is not yet known, how the value is
-  // related to other labels' values. A binding may be:
-  // - a known constant,
-  // - constrained to be equal to some other binding plus a constant, or
-  // - unconstrained, and free to take on any value.
-  //
-  // Many labels may point to a single binding, and each binding may
-  // refer to another, so bindings and labels form trees whose leaves
-  // are labels, whose interior nodes (and roots) are bindings, and
-  // where links point from children to parents. Bindings are
-  // reference counted, allowing labels to be lightweight, copyable,
-  // assignable, placed in containers, and so on.
-  class Binding {
-   public:
-    Binding();
-    Binding(uint64_t addend);
-    ~Binding();
-
-    // Increment our reference count.
-    void Acquire() { reference_count_++; };
-    // Decrement our reference count, and return true if it is zero.
-    bool Release() { return --reference_count_ == 0; }
-
-    // Set this binding to be equal to BINDING + ADDEND. If BINDING is
-    // NULL, then set this binding to the known constant ADDEND.
-    // Update every binding on this binding's chain to point directly
-    // to BINDING, or to be a constant, with addends adjusted
-    // appropriately.
-    void Set(Binding *binding, uint64_t value);
-
-    // Return what we know about the value of this binding.
-    // - If this binding's value is a known constant, set BASE to
-    //   NULL, and set ADDEND to its value.
-    // - If this binding is not a known constant but related to other
-    //   bindings, set BASE to the binding at the end of the relation
-    //   chain (which will always be unconstrained), and set ADDEND to the
-    //   value to add to that binding's value to get this binding's
-    //   value.
-    // - If this binding is unconstrained, set BASE to this, and leave
-    //   ADDEND unchanged.
-    void Get(Binding **base, uint64_t *addend);
-
-   private:
-    // There are three cases:
-    //
-    // - A binding representing a known constant value has base_ NULL,
-    //   and addend_ equal to the value.
-    //
-    // - A binding representing a completely unconstrained value has
-    //   base_ pointing to this; addend_ is unused.
-    //
-    // - A binding whose value is related to some other binding's
-    //   value has base_ pointing to that other binding, and addend_
-    //   set to the amount to add to that binding's value to get this
-    //   binding's value. We only represent relationships of the form
-    //   x = y+c.
-    //
-    // Thus, the bind_ links form a chain terminating in either a
-    // known constant value or a completely unconstrained value. Most
-    // operations on bindings do path compression: they change every
-    // binding on the chain to point directly to the final value,
-    // adjusting addends as appropriate.
-    Binding *base_;
-    uint64_t addend_;
-
-    // The number of Labels and Bindings pointing to this binding.
-    // (When a binding points to itself, indicating a completely
-    // unconstrained binding, that doesn't count as a reference.)
-    int reference_count_;
-  };
-
-  // This label's value.
-  Binding *value_;
-};
-
-inline Label operator+(uint64_t a, const Label &l) { return l + a; }
-// Note that int-Label isn't defined, as negating a Label is not an
-// operation we support.
-
-// Conventions for representing larger numbers as sequences of bytes.
-enum Endianness {
-  kBigEndian,        // Big-endian: the most significant byte comes first.
-  kLittleEndian,     // Little-endian: the least significant byte comes first.
-  kUnsetEndian,      // used internally
-};
- 
-// A section is a sequence of bytes, constructed by appending bytes
-// to the end. Sections have a convenient and flexible set of member
-// functions for appending data in various formats: big-endian and
-// little-endian signed and unsigned values of different sizes;
-// LEB128 and ULEB128 values (see below), and raw blocks of bytes.
-//
-// If you need to append a value to a section that is not convenient
-// to compute immediately, you can create a label, append the
-// label's value to the section, and then set the label's value
-// later, when it's convenient to do so. Once a label's value is
-// known, the section class takes care of updating all previously
-// appended references to it.
-//
-// Once all the labels to which a section refers have had their
-// values determined, you can get a copy of the section's contents
-// as a string.
-//
-// Note that there is no specified "start of section" label. This is
-// because there are typically several different meanings for "the
-// start of a section": the offset of the section within an object
-// file, the address in memory at which the section's content appear,
-// and so on. It's up to the code that uses the Section class to 
-// keep track of these explicitly, as they depend on the application.
-class Section {
- public:
-  Section(Endianness endianness = kUnsetEndian)
-      : endianness_(endianness) { };
-
-  // A base class destructor should be either public and virtual,
-  // or protected and nonvirtual.
-  virtual ~Section() { };
-
-  // Set the default endianness of this section to ENDIANNESS. This
-  // sets the behavior of the D<N> appending functions. If the
-  // assembler's default endianness was set, this is the 
-  void set_endianness(Endianness endianness) {
-    endianness_ = endianness;
-  }
-
-  // Return the default endianness of this section.
-  Endianness endianness() const { return endianness_; }
-
-  // Append the SIZE bytes at DATA or the contents of STRING to the
-  // end of this section. Return a reference to this section.
-  Section &Append(const uint8_t *data, size_t size) {
-    contents_.append(reinterpret_cast<const char *>(data), size);
-    return *this;
-  };
-  Section &Append(const string &data) {
-    contents_.append(data);
-    return *this;
-  };
-
-  // Append SIZE copies of BYTE to the end of this section. Return a
-  // reference to this section.
-  Section &Append(size_t size, uint8_t byte) {
-    contents_.append(size, (char) byte);
-    return *this;
-  }
-      
-  // Append NUMBER to this section. ENDIANNESS is the endianness to
-  // use to write the number. SIZE is the length of the number in
-  // bytes. Return a reference to this section.
-  Section &Append(Endianness endianness, size_t size, uint64_t number);
-  Section &Append(Endianness endianness, size_t size, const Label &label);
-
-  // Append SECTION to the end of this section. The labels SECTION
-  // refers to need not be defined yet.
-  //
-  // Note that this has no effect on any Labels' values, or on
-  // SECTION. If placing SECTION within 'this' provides new
-  // constraints on existing labels' values, then it's up to the
-  // caller to fiddle with those labels as needed.
-  Section &Append(const Section &section);
-
-  // Append the contents of DATA as a series of bytes terminated by
-  // a NULL character.
-  Section &AppendCString(const string &data) {
-    Append(data);
-    contents_ += '\0';
-    return *this;
-  }
-
-  // Append at most SIZE bytes from DATA; if DATA is less than SIZE bytes
-  // long, pad with '\0' characters.
-  Section &AppendCString(const string &data, size_t size) {
-    contents_.append(data, 0, size);
-    if (data.size() < size)
-      Append(size - data.size(), 0);
-    return *this;
-  }
-
-  // Append VALUE or LABEL to this section, with the given bit width and
-  // endianness. Return a reference to this section.
-  //
-  // The names of these functions have the form <ENDIANNESS><BITWIDTH>:
-  // <ENDIANNESS> is either 'L' (little-endian, least significant byte first),
-  //                        'B' (big-endian, most significant byte first), or
-  //                        'D' (default, the section's default endianness)
-  // <BITWIDTH> is 8, 16, 32, or 64.
-  //
-  // Since endianness doesn't matter for a single byte, all the
-  // <BITWIDTH>=8 functions are equivalent.
-  //
-  // These can be used to write both signed and unsigned values, as
-  // the compiler will properly sign-extend a signed value before
-  // passing it to the function, at which point the function's
-  // behavior is the same either way.
-  Section &L8(uint8_t value) { contents_ += value; return *this; }
-  Section &B8(uint8_t value) { contents_ += value; return *this; }
-  Section &D8(uint8_t value) { contents_ += value; return *this; }
-  Section &L16(uint16_t), &L32(uint32_t), &L64(uint64_t),
-          &B16(uint16_t), &B32(uint32_t), &B64(uint64_t),
-          &D16(uint16_t), &D32(uint32_t), &D64(uint64_t);
-  Section &L8(const Label &label),  &L16(const Label &label),
-          &L32(const Label &label), &L64(const Label &label),
-          &B8(const Label &label),  &B16(const Label &label),
-          &B32(const Label &label), &B64(const Label &label),
-          &D8(const Label &label),  &D16(const Label &label),
-          &D32(const Label &label), &D64(const Label &label);
-
-  // Append VALUE in a signed LEB128 (Little-Endian Base 128) form.
-  // 
-  // The signed LEB128 representation of an integer N is a variable
-  // number of bytes:
-  //
-  // - If N is between -0x40 and 0x3f, then its signed LEB128
-  //   representation is a single byte whose value is N.
-  // 
-  // - Otherwise, its signed LEB128 representation is (N & 0x7f) |
-  //   0x80, followed by the signed LEB128 representation of N / 128,
-  //   rounded towards negative infinity.
-  //
-  // In other words, we break VALUE into groups of seven bits, put
-  // them in little-endian order, and then write them as eight-bit
-  // bytes with the high bit on all but the last.
-  //
-  // Note that VALUE cannot be a Label (we would have to implement
-  // relaxation).
-  Section &LEB128(long long value);
-
-  // Append VALUE in unsigned LEB128 (Little-Endian Base 128) form.
-  // 
-  // The unsigned LEB128 representation of an integer N is a variable
-  // number of bytes:
-  //
-  // - If N is between 0 and 0x7f, then its unsigned LEB128
-  //   representation is a single byte whose value is N.
-  // 
-  // - Otherwise, its unsigned LEB128 representation is (N & 0x7f) |
-  //   0x80, followed by the unsigned LEB128 representation of N /
-  //   128, rounded towards negative infinity.
-  //
-  // Note that VALUE cannot be a Label (we would have to implement
-  // relaxation).
-  Section &ULEB128(uint64_t value);
-
-  // Jump to the next location aligned on an ALIGNMENT-byte boundary,
-  // relative to the start of the section. Fill the gap with PAD_BYTE.
-  // ALIGNMENT must be a power of two. Return a reference to this
-  // section.
-  Section &Align(size_t alignment, uint8_t pad_byte = 0);
-
-  // Clear the contents of this section.
-  void Clear();
-
-  // Return the current size of the section.
-  size_t Size() const { return contents_.size(); }
-
-  // Return a label representing the start of the section.
-  // 
-  // It is up to the user whether this label represents the section's
-  // position in an object file, the section's address in memory, or
-  // what have you; some applications may need both, in which case
-  // this simple-minded interface won't be enough. This class only
-  // provides a single start label, for use with the Here and Mark
-  // member functions.
-  //
-  // Ideally, we'd provide this in a subclass that actually knows more
-  // about the application at hand and can provide an appropriate
-  // collection of start labels. But then the appending member
-  // functions like Append and D32 would return a reference to the
-  // base class, not the derived class, and the chaining won't work.
-  // Since the only value here is in pretty notation, that's a fatal
-  // flaw.
-  Label start() const { return start_; }
-
-  // Return a label representing the point at which the next Appended
-  // item will appear in the section, relative to start().
-  Label Here() const { return start_ + Size(); }
-
-  // Set *LABEL to Here, and return a reference to this section.
-  Section &Mark(Label *label) { *label = Here(); return *this; }
-
-  // If there are no undefined label references left in this
-  // section, set CONTENTS to the contents of this section, as a
-  // string, and clear this section. Return true on success, or false
-  // if there were still undefined labels.
-  bool GetContents(string *contents);
-
- private:
-  // Used internally. A reference to a label's value.
-  struct Reference {
-    Reference(size_t set_offset, Endianness set_endianness,  size_t set_size,
-              const Label &set_label)
-        : offset(set_offset), endianness(set_endianness), size(set_size),
-          label(set_label) { }
-      
-    // The offset of the reference within the section.
-    size_t offset;
-
-    // The endianness of the reference.
-    Endianness endianness;
-
-    // The size of the reference.
-    size_t size;
-
-    // The label to which this is a reference.
-    Label label;
-  };
-
-  // The default endianness of this section.
-  Endianness endianness_;
-
-  // The contents of the section.
-  string contents_;
-  
-  // References to labels within those contents.
-  vector<Reference> references_;
-
-  // A label referring to the beginning of the section.
-  Label start_;
-};
-
-}  // namespace test_assembler
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_TEST_ASSEMBLER_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/unordered.h b/breakpad/linux-x86/include/breakpad/common/unordered.h
deleted file mode 100644
index ec665cc..0000000
--- a/breakpad/linux-x86/include/breakpad/common/unordered.h
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Include this file to use unordered_map and unordered_set.  If tr1
-// or C++11 is not available, you can switch to using hash_set and
-// hash_map by defining BP_USE_HASH_SET.
-
-#ifndef COMMON_UNORDERED_H_
-#define COMMON_UNORDERED_H_
-
-#if defined(BP_USE_HASH_SET)
-#include <hash_map>
-#include <hash_set>
-
-// For hash<string>.
-#include "util/hash/hash.h"
-
-template <class T, class U, class H = __gnu_cxx::hash<T> >
-struct unordered_map : public hash_map<T, U, H> {};
-template <class T, class H = __gnu_cxx::hash<T> >
-struct unordered_set : public hash_set<T, H> {};
-
-#elif defined(_LIBCPP_VERSION)  // c++11
-#include <unordered_map>
-#include <unordered_set>
-using std::unordered_map;
-using std::unordered_set;
-
-#else  // Fallback to tr1::unordered
-#include <tr1/unordered_map>
-#include <tr1/unordered_set>
-using std::tr1::unordered_map;
-using std::tr1::unordered_set;
-#endif
-
-#endif  // COMMON_UNORDERED_H_
diff --git a/breakpad/linux-x86/include/breakpad/common/using_std_string.h b/breakpad/linux-x86/include/breakpad/common/using_std_string.h
deleted file mode 100644
index 13c1da5..0000000
--- a/breakpad/linux-x86/include/breakpad/common/using_std_string.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Ivan Penkov
-
-// using_std_string.h: Allows building this code in environments where
-//                     global string (::string) exists.
-//
-// The problem:
-// -------------
-// Let's say you want to build this code in an environment where a global
-// string type is defined (i.e. ::string).  Now, let's suppose that ::string
-// is different that std::string and you'd like to have the option to easily
-// choose between the two string types.  Ideally you'd like to control which
-// string type is chosen by simply #defining an identifier.
-//
-// The solution:
-// -------------
-// #define HAS_GLOBAL_STRING somewhere in a global header file and then
-// globally replace std::string with string.  Then include this header
-// file everywhere where string is used.  If you want to revert back to
-// using std::string, simply remove the #define (HAS_GLOBAL_STRING).
-
-#ifndef THIRD_PARTY_BREAKPAD_SRC_COMMON_USING_STD_STRING_H_
-#define THIRD_PARTY_BREAKPAD_SRC_COMMON_USING_STD_STRING_H_
-
-#ifdef HAS_GLOBAL_STRING
-  typedef ::string google_breakpad_string;
-#else
-  using std::string;
-  typedef std::string google_breakpad_string;
-#endif
-
-// Inicates that type google_breakpad_string is defined
-#define HAS_GOOGLE_BREAKPAD_STRING
-
-#endif  // THIRD_PARTY_BREAKPAD_SRC_COMMON_USING_STD_STRING_H_
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/breakpad_types.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/breakpad_types.h
deleted file mode 100644
index e92436f..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/breakpad_types.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* breakpad_types.h: Precise-width types
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * This file ensures that types uintN_t are defined for N = 8, 16, 32, and
- * 64.  Types of precise widths are crucial to the task of writing data
- * structures on one platform and reading them on another.
- *
- * Author: Mark Mentovai */
-
-#ifndef GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__
-#define GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__
-
-#ifndef _WIN32
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS
-#endif  /* __STDC_FORMAT_MACROS */
-#include <inttypes.h>
-
-#else  /* !_WIN32 */
-
-#if _MSC_VER >= 1600
-#include <stdint.h>
-#elif defined(BREAKPAD_CUSTOM_STDINT_H)
-/* Visual C++ Pre-2010 did not ship a stdint.h, so allow
- * consumers of this library to provide their own because
- * there are often subtle type incompatibilities.
- */
-#include BREAKPAD_CUSTOM_STDINT_H
-#else
-#include <wtypes.h>
-
-typedef unsigned __int8  uint8_t;
-typedef unsigned __int16 uint16_t;
-typedef __int32 int32_t;
-typedef unsigned __int32 uint32_t;
-typedef unsigned __int64 uint64_t;
-#endif
-
-#endif  /* !_WIN32 */
-
-typedef struct {
-  uint64_t high;
-  uint64_t low;
-} uint128_struct;
-
-typedef uint64_t breakpad_time_t;
-
-/* Try to get PRIx64 from inttypes.h, but if it's not defined, fall back to
- * llx, which is the format string for "long long" - this is a 64-bit
- * integral type on many systems. */
-#ifndef PRIx64
-#define PRIx64 "llx"
-#endif  /* !PRIx64 */
-
-#endif  /* GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_amd64.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_amd64.h
deleted file mode 100644
index 4256706..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_amd64.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_format.h: A cross-platform reimplementation of minidump-related
- * portions of DbgHelp.h from the Windows Platform SDK.
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * This file contains the necessary definitions to read minidump files
- * produced on amd64.  These files may be read on any platform provided
- * that the alignments of these structures on the processing system are
- * identical to the alignments of these structures on the producing system.
- * For this reason, precise-sized types are used.  The structures defined
- * by this file have been laid out to minimize alignment problems by ensuring
- * ensuring that all members are aligned on their natural boundaries.  In
- * In some cases, tail-padding may be significant when different ABIs specify
- * different tail-padding behaviors.  To avoid problems when reading or
- * writing affected structures, MD_*_SIZE macros are provided where needed,
- * containing the useful size of the structures without padding.
- *
- * Structures that are defined by Microsoft to contain a zero-length array
- * are instead defined here to contain an array with one element, as
- * zero-length arrays are forbidden by standard C and C++.  In these cases,
- * *_minsize constants are provided to be used in place of sizeof.  For a
- * cleaner interface to these sizes when using C++, see minidump_size.h.
- *
- * These structures are also sufficient to populate minidump files.
- *
- * These definitions may be extended to support handling minidump files
- * for other CPUs and other operating systems.
- *
- * Because precise data type sizes are crucial for this implementation to
- * function properly and portably in terms of interoperability with minidumps
- * produced by DbgHelp on Windows, a set of primitive types with known sizes
- * are used as the basis of each structure defined by this file.  DbgHelp
- * on Windows is assumed to be the reference implementation; this file
- * seeks to provide a cross-platform compatible implementation.  To avoid
- * collisions with the types and values defined and used by DbgHelp in the
- * event that this implementation is used on Windows, each type and value
- * defined here is given a new name, beginning with "MD".  Names of the
- * equivalent types and values in the Windows Platform SDK are given in
- * comments.
- *
- * Author: Mark Mentovai
- * Change to split into its own file: Neal Sidhwaney */
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__
-
-
-/*
- * AMD64 support, see WINNT.H
- */
-
-typedef struct {
-  uint16_t       control_word;
-  uint16_t       status_word;
-  uint8_t        tag_word;
-  uint8_t        reserved1;
-  uint16_t       error_opcode;
-  uint32_t       error_offset;
-  uint16_t       error_selector;
-  uint16_t       reserved2;
-  uint32_t       data_offset;
-  uint16_t       data_selector;
-  uint16_t       reserved3;
-  uint32_t       mx_csr;
-  uint32_t       mx_csr_mask;
-  uint128_struct float_registers[8];
-  uint128_struct xmm_registers[16];
-  uint8_t        reserved4[96];
-} MDXmmSaveArea32AMD64;  /* XMM_SAVE_AREA32 */
-
-#define MD_CONTEXT_AMD64_VR_COUNT 26
-
-typedef struct {
-  /*
-   * Register parameter home addresses.
-   */
-  uint64_t  p1_home;
-  uint64_t  p2_home;
-  uint64_t  p3_home;
-  uint64_t  p4_home;
-  uint64_t  p5_home;
-  uint64_t  p6_home;
-
-  /* The next field determines the layout of the structure, and which parts
-   * of it are populated */
-  uint32_t  context_flags;
-  uint32_t  mx_csr;
-
-  /* The next register is included with MD_CONTEXT_AMD64_CONTROL */
-  uint16_t  cs;
-
-  /* The next 4 registers are included with MD_CONTEXT_AMD64_SEGMENTS */
-  uint16_t  ds;
-  uint16_t  es;
-  uint16_t  fs;
-  uint16_t  gs;
-
-  /* The next 2 registers are included with MD_CONTEXT_AMD64_CONTROL */
-  uint16_t  ss;
-  uint32_t  eflags;
-
-  /* The next 6 registers are included with MD_CONTEXT_AMD64_DEBUG_REGISTERS */
-  uint64_t  dr0;
-  uint64_t  dr1;
-  uint64_t  dr2;
-  uint64_t  dr3;
-  uint64_t  dr6;
-  uint64_t  dr7;
-
-  /* The next 4 registers are included with MD_CONTEXT_AMD64_INTEGER */
-  uint64_t  rax;
-  uint64_t  rcx;
-  uint64_t  rdx;
-  uint64_t  rbx;
-
-  /* The next register is included with MD_CONTEXT_AMD64_CONTROL */
-  uint64_t  rsp;
-
-  /* The next 11 registers are included with MD_CONTEXT_AMD64_INTEGER */
-  uint64_t  rbp;
-  uint64_t  rsi;
-  uint64_t  rdi;
-  uint64_t  r8;
-  uint64_t  r9;
-  uint64_t  r10;
-  uint64_t  r11;
-  uint64_t  r12;
-  uint64_t  r13;
-  uint64_t  r14;
-  uint64_t  r15;
-
-  /* The next register is included with MD_CONTEXT_AMD64_CONTROL */
-  uint64_t  rip;
-
-  /* The next set of registers are included with
-   * MD_CONTEXT_AMD64_FLOATING_POINT
-   */
-  union {
-    MDXmmSaveArea32AMD64 flt_save;
-    struct {
-      uint128_struct header[2];
-      uint128_struct legacy[8];
-      uint128_struct xmm0;
-      uint128_struct xmm1;
-      uint128_struct xmm2;
-      uint128_struct xmm3;
-      uint128_struct xmm4;
-      uint128_struct xmm5;
-      uint128_struct xmm6;
-      uint128_struct xmm7;
-      uint128_struct xmm8;
-      uint128_struct xmm9;
-      uint128_struct xmm10;
-      uint128_struct xmm11;
-      uint128_struct xmm12;
-      uint128_struct xmm13;
-      uint128_struct xmm14;
-      uint128_struct xmm15;
-    } sse_registers;
-  };
-
-  uint128_struct vector_register[MD_CONTEXT_AMD64_VR_COUNT];
-  uint64_t       vector_control;
-
-  /* The next 5 registers are included with MD_CONTEXT_AMD64_DEBUG_REGISTERS */
-  uint64_t debug_control;
-  uint64_t last_branch_to_rip;
-  uint64_t last_branch_from_rip;
-  uint64_t last_exception_to_rip;
-  uint64_t last_exception_from_rip;
-
-} MDRawContextAMD64;  /* CONTEXT */
-
-/* For (MDRawContextAMD64).context_flags.  These values indicate the type of
- * context stored in the structure.  The high 24 bits identify the CPU, the
- * low 8 bits identify the type of context saved. */
-#define MD_CONTEXT_AMD64 0x00100000  /* CONTEXT_AMD64 */
-#define MD_CONTEXT_AMD64_CONTROL         (MD_CONTEXT_AMD64 | 0x00000001)
-     /* CONTEXT_CONTROL */
-#define MD_CONTEXT_AMD64_INTEGER         (MD_CONTEXT_AMD64 | 0x00000002)
-     /* CONTEXT_INTEGER */
-#define MD_CONTEXT_AMD64_SEGMENTS        (MD_CONTEXT_AMD64 | 0x00000004)
-     /* CONTEXT_SEGMENTS */
-#define MD_CONTEXT_AMD64_FLOATING_POINT  (MD_CONTEXT_AMD64 | 0x00000008)
-     /* CONTEXT_FLOATING_POINT */
-#define MD_CONTEXT_AMD64_DEBUG_REGISTERS (MD_CONTEXT_AMD64 | 0x00000010)
-     /* CONTEXT_DEBUG_REGISTERS */
-#define MD_CONTEXT_AMD64_XSTATE          (MD_CONTEXT_AMD64 | 0x00000040)
-     /* CONTEXT_XSTATE */
-
-/* WinNT.h refers to CONTEXT_MMX_REGISTERS but doesn't appear to define it
- * I think it really means CONTEXT_FLOATING_POINT.
- */
-
-#define MD_CONTEXT_AMD64_FULL            (MD_CONTEXT_AMD64_CONTROL | \
-                                          MD_CONTEXT_AMD64_INTEGER | \
-                                          MD_CONTEXT_AMD64_FLOATING_POINT)
-     /* CONTEXT_FULL */
-
-#define MD_CONTEXT_AMD64_ALL             (MD_CONTEXT_AMD64_FULL | \
-                                          MD_CONTEXT_AMD64_SEGMENTS | \
-                                          MD_CONTEXT_X86_DEBUG_REGISTERS)
-     /* CONTEXT_ALL */
-
-
-#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_arm.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_arm.h
deleted file mode 100644
index 6a71138..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_arm.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (c) 2009, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_format.h: A cross-platform reimplementation of minidump-related
- * portions of DbgHelp.h from the Windows Platform SDK.
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * This file contains the necessary definitions to read minidump files
- * produced on ARM.  These files may be read on any platform provided
- * that the alignments of these structures on the processing system are
- * identical to the alignments of these structures on the producing system.
- * For this reason, precise-sized types are used.  The structures defined
- * by this file have been laid out to minimize alignment problems by
- * ensuring that all members are aligned on their natural boundaries.
- * In some cases, tail-padding may be significant when different ABIs specify
- * different tail-padding behaviors.  To avoid problems when reading or
- * writing affected structures, MD_*_SIZE macros are provided where needed,
- * containing the useful size of the structures without padding.
- *
- * Structures that are defined by Microsoft to contain a zero-length array
- * are instead defined here to contain an array with one element, as
- * zero-length arrays are forbidden by standard C and C++.  In these cases,
- * *_minsize constants are provided to be used in place of sizeof.  For a
- * cleaner interface to these sizes when using C++, see minidump_size.h.
- *
- * These structures are also sufficient to populate minidump files.
- *
- * Because precise data type sizes are crucial for this implementation to
- * function properly and portably, a set of primitive types with known sizes
- * are used as the basis of each structure defined by this file.
- *
- * Author: Julian Seward
- */
-
-/*
- * ARM support
- */
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__
-
-#define MD_FLOATINGSAVEAREA_ARM_FPR_COUNT 32
-#define MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT 8
-
-/*
- * Note that these structures *do not* map directly to the CONTEXT
- * structure defined in WinNT.h in the Windows Mobile SDK. That structure
- * does not accomodate VFPv3, and I'm unsure if it was ever used in the
- * wild anyway, as Windows CE only seems to produce "cedumps" which
- * are not exactly minidumps.
- */
-typedef struct {
-  uint64_t      fpscr;      /* FPU status register */
-
-  /* 32 64-bit floating point registers, d0 .. d31. */
-  uint64_t      regs[MD_FLOATINGSAVEAREA_ARM_FPR_COUNT];
-
-  /* Miscellaneous control words */
-  uint32_t     extra[MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT];
-} MDFloatingSaveAreaARM;
-
-#define MD_CONTEXT_ARM_GPR_COUNT 16
-
-typedef struct {
-  /* The next field determines the layout of the structure, and which parts
-   * of it are populated
-   */
-  uint32_t      context_flags;
-
-  /* 16 32-bit integer registers, r0 .. r15
-   * Note the following fixed uses:
-   *   r13 is the stack pointer
-   *   r14 is the link register
-   *   r15 is the program counter
-   */
-  uint32_t     iregs[MD_CONTEXT_ARM_GPR_COUNT];
-
-  /* CPSR (flags, basically): 32 bits:
-        bit 31 - N (negative)
-        bit 30 - Z (zero)
-        bit 29 - C (carry)
-        bit 28 - V (overflow)
-        bit 27 - Q (saturation flag, sticky)
-     All other fields -- ignore */
-  uint32_t    cpsr;
-
-  /* The next field is included with MD_CONTEXT_ARM_FLOATING_POINT */
-  MDFloatingSaveAreaARM float_save;
-
-} MDRawContextARM;
-
-/* Indices into iregs for registers with a dedicated or conventional
- * purpose.
- */
-enum MDARMRegisterNumbers {
-  MD_CONTEXT_ARM_REG_IOS_FP = 7,
-  MD_CONTEXT_ARM_REG_FP     = 11,
-  MD_CONTEXT_ARM_REG_SP     = 13,
-  MD_CONTEXT_ARM_REG_LR     = 14,
-  MD_CONTEXT_ARM_REG_PC     = 15
-};
-
-/* For (MDRawContextARM).context_flags.  These values indicate the type of
- * context stored in the structure. */
-/* CONTEXT_ARM from the Windows CE 5.0 SDK. This value isn't correct
- * because this bit can be used for flags. Presumably this value was
- * never actually used in minidumps, but only in "CEDumps" which
- * are a whole parallel minidump file format for Windows CE.
- * Therefore, Breakpad defines its own value for ARM CPUs.
- */
-#define MD_CONTEXT_ARM_OLD               0x00000040
-/* This value was chosen to avoid likely conflicts with MD_CONTEXT_*
- * for other CPUs. */
-#define MD_CONTEXT_ARM                   0x40000000
-#define MD_CONTEXT_ARM_INTEGER           (MD_CONTEXT_ARM | 0x00000002)
-#define MD_CONTEXT_ARM_FLOATING_POINT    (MD_CONTEXT_ARM | 0x00000004)
-
-#define MD_CONTEXT_ARM_FULL              (MD_CONTEXT_ARM_INTEGER | \
-                                          MD_CONTEXT_ARM_FLOATING_POINT)
-
-#define MD_CONTEXT_ARM_ALL               (MD_CONTEXT_ARM_INTEGER | \
-                                          MD_CONTEXT_ARM_FLOATING_POINT)
-
-#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_arm64.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_arm64.h
deleted file mode 100644
index 5ace0d9..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_arm64.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Copyright 2013 Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_format.h: A cross-platform reimplementation of minidump-related
- * portions of DbgHelp.h from the Windows Platform SDK.
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * This file contains the necessary definitions to read minidump files
- * produced on ARM.  These files may be read on any platform provided
- * that the alignments of these structures on the processing system are
- * identical to the alignments of these structures on the producing system.
- * For this reason, precise-sized types are used.  The structures defined
- * by this file have been laid out to minimize alignment problems by
- * ensuring that all members are aligned on their natural boundaries.
- * In some cases, tail-padding may be significant when different ABIs specify
- * different tail-padding behaviors.  To avoid problems when reading or
- * writing affected structures, MD_*_SIZE macros are provided where needed,
- * containing the useful size of the structures without padding.
- *
- * Structures that are defined by Microsoft to contain a zero-length array
- * are instead defined here to contain an array with one element, as
- * zero-length arrays are forbidden by standard C and C++.  In these cases,
- * *_minsize constants are provided to be used in place of sizeof.  For a
- * cleaner interface to these sizes when using C++, see minidump_size.h.
- *
- * These structures are also sufficient to populate minidump files.
- *
- * Because precise data type sizes are crucial for this implementation to
- * function properly and portably, a set of primitive types with known sizes
- * are used as the basis of each structure defined by this file.
- *
- * Author: Colin Blundell
- */
-
-/*
- * ARM64 support
- */
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__
-
-#define MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT 32
-
-typedef struct {
-  uint32_t       fpsr;      /* FPU status register */
-  uint32_t       fpcr;      /* FPU control register */
-
-  /* 32 128-bit floating point registers, d0 .. d31. */
-  uint128_struct regs[MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT];
-} MDFloatingSaveAreaARM64;
-
-#define MD_CONTEXT_ARM64_GPR_COUNT 33
-
-/* Use the same 32-bit alignment when accessing this structure from 64-bit code
- * as is used natively in 32-bit code. */
-#pragma pack(push, 4)
-
-typedef struct {
-  /* The next field determines the layout of the structure, and which parts
-   * of it are populated
-   */
-  uint64_t      context_flags;
-
-  /* 33 64-bit integer registers, x0 .. x31 + the PC
-   * Note the following fixed uses:
-   *   x29 is the frame pointer
-   *   x30 is the link register
-   *   x31 is the stack pointer
-   *   The PC is effectively x32.
-   */
-  uint64_t     iregs[MD_CONTEXT_ARM64_GPR_COUNT];
-
-  /* CPSR (flags, basically): 32 bits:
-        bit 31 - N (negative)
-        bit 30 - Z (zero)
-        bit 29 - C (carry)
-        bit 28 - V (overflow)
-        bit 27 - Q (saturation flag, sticky)
-     All other fields -- ignore */
-  uint32_t    cpsr;
-
-  /* The next field is included with MD_CONTEXT64_ARM_FLOATING_POINT */
-  MDFloatingSaveAreaARM64 float_save;
-
-} MDRawContextARM64;
-
-#pragma pack(pop)
-
-/* Indices into iregs for registers with a dedicated or conventional
- * purpose.
- */
-enum MDARM64RegisterNumbers {
-  MD_CONTEXT_ARM64_REG_FP     = 29,
-  MD_CONTEXT_ARM64_REG_LR     = 30,
-  MD_CONTEXT_ARM64_REG_SP     = 31,
-  MD_CONTEXT_ARM64_REG_PC     = 32
-};
-
-/* For (MDRawContextARM64).context_flags.  These values indicate the type of
- * context stored in the structure. MD_CONTEXT_ARM64 is Breakpad-defined.
- * This value was chosen to avoid likely conflicts with MD_CONTEXT_*
- * for other CPUs. */
-#define MD_CONTEXT_ARM64                   0x80000000
-#define MD_CONTEXT_ARM64_INTEGER           (MD_CONTEXT_ARM64 | 0x00000002)
-#define MD_CONTEXT_ARM64_FLOATING_POINT    (MD_CONTEXT_ARM64 | 0x00000004)
-
-#define MD_CONTEXT_ARM64_FULL              (MD_CONTEXT_ARM64_INTEGER | \
-                                          MD_CONTEXT_ARM64_FLOATING_POINT)
-
-#define MD_CONTEXT_ARM64_ALL               (MD_CONTEXT_ARM64_INTEGER | \
-                                          MD_CONTEXT_ARM64_FLOATING_POINT)
-
-#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_mips.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_mips.h
deleted file mode 100644
index 6cbe302..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_mips.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/* Copyright (c) 2013, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_format.h: A cross-platform reimplementation of minidump-related
- * portions of DbgHelp.h from the Windows Platform SDK.
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * This file contains the necessary definitions to read minidump files
- * produced on MIPS.  These files may be read on any platform provided
- * that the alignments of these structures on the processing system are
- * identical to the alignments of these structures on the producing system.
- * For this reason, precise-sized types are used.  The structures defined
- * by this file have been laid out to minimize alignment problems by
- * ensuring that all members are aligned on their natural boundaries.
- * In some cases, tail-padding may be significant when different ABIs specify
- * different tail-padding behaviors.  To avoid problems when reading or
- * writing affected structures, MD_*_SIZE macros are provided where needed,
- * containing the useful size of the structures without padding.
- *
- * Structures that are defined by Microsoft to contain a zero-length array
- * are instead defined here to contain an array with one element, as
- * zero-length arrays are forbidden by standard C and C++.  In these cases,
- * *_minsize constants are provided to be used in place of sizeof.  For a
- * cleaner interface to these sizes when using C++, see minidump_size.h.
- *
- * These structures are also sufficient to populate minidump files.
- *
- * Because precise data type sizes are crucial for this implementation to
- * function properly and portably, a set of primitive types with known sizes
- * are used as the basis of each structure defined by this file.
- *
- * Author: Chris Dearman
- */
-
-/*
- * MIPS support
- */
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__
-
-#define MD_CONTEXT_MIPS_GPR_COUNT 32
-#define MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT 32
-#define MD_CONTEXT_MIPS_DSP_COUNT 3
-
-/*
- * Note that these structures *do not* map directly to the CONTEXT
- * structure defined in WinNT.h in the Windows Mobile SDK. That structure
- * does not accomodate VFPv3, and I'm unsure if it was ever used in the
- * wild anyway, as Windows CE only seems to produce "cedumps" which
- * are not exactly minidumps.
- */
-typedef struct {
-  /* 32 64-bit floating point registers, f0..f31 */
-  uint64_t regs[MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT];
-
-  uint32_t fpcsr; /* FPU status register. */
-  uint32_t fir; /* FPU implementation register. */
-} MDFloatingSaveAreaMIPS;
-
-typedef struct {
-  /* The next field determines the layout of the structure, and which parts
-   * of it are populated.
-   */
-  uint32_t context_flags;
-  uint32_t _pad0;
-
-  /* 32 64-bit integer registers, r0..r31.
-   * Note the following fixed uses:
-   *   r29 is the stack pointer.
-   *   r31 is the return address.
-   */
-  uint64_t iregs[MD_CONTEXT_MIPS_GPR_COUNT];
-
-  /* multiply/divide result. */
-  uint64_t mdhi, mdlo;
-
-  /* DSP accumulators. */
-  uint32_t hi[MD_CONTEXT_MIPS_DSP_COUNT];
-  uint32_t lo[MD_CONTEXT_MIPS_DSP_COUNT];
-  uint32_t dsp_control;
-  uint32_t _pad1;
-
-  uint64_t epc;
-  uint64_t badvaddr;
-  uint32_t status;
-  uint32_t cause;
-
-  /* The next field is included with MD_CONTEXT_MIPS_FLOATING_POINT. */
-  MDFloatingSaveAreaMIPS float_save;
-
-} MDRawContextMIPS;
-
-/* Indices into iregs for registers with a dedicated or conventional
- * purpose.
- */
-enum MDMIPSRegisterNumbers {
-  MD_CONTEXT_MIPS_REG_S0     = 16,
-  MD_CONTEXT_MIPS_REG_S1     = 17,
-  MD_CONTEXT_MIPS_REG_S2     = 18,
-  MD_CONTEXT_MIPS_REG_S3     = 19,
-  MD_CONTEXT_MIPS_REG_S4     = 20,
-  MD_CONTEXT_MIPS_REG_S5     = 21,
-  MD_CONTEXT_MIPS_REG_S6     = 22,
-  MD_CONTEXT_MIPS_REG_S7     = 23,
-  MD_CONTEXT_MIPS_REG_GP     = 28,
-  MD_CONTEXT_MIPS_REG_SP     = 29,
-  MD_CONTEXT_MIPS_REG_FP     = 30,
-  MD_CONTEXT_MIPS_REG_RA     = 31,
-};
-
-/* For (MDRawContextMIPS).context_flags.  These values indicate the type of
- * context stored in the structure. */
-/* CONTEXT_MIPS from the Windows CE 5.0 SDK. This value isn't correct
- * because this bit can be used for flags. Presumably this value was
- * never actually used in minidumps, but only in "CEDumps" which
- * are a whole parallel minidump file format for Windows CE.
- * Therefore, Breakpad defines its own value for MIPS CPUs.
- */
-#define MD_CONTEXT_MIPS  0x00040000
-#define MD_CONTEXT_MIPS_INTEGER           (MD_CONTEXT_MIPS | 0x00000002)
-#define MD_CONTEXT_MIPS_FLOATING_POINT    (MD_CONTEXT_MIPS | 0x00000004)
-#define MD_CONTEXT_MIPS_DSP               (MD_CONTEXT_MIPS | 0x00000008)
-
-#define MD_CONTEXT_MIPS_FULL              (MD_CONTEXT_MIPS_INTEGER | \
-                                           MD_CONTEXT_MIPS_FLOATING_POINT | \
-                                           MD_CONTEXT_MIPS_DSP)
-
-#define MD_CONTEXT_MIPS_ALL               (MD_CONTEXT_MIPS_INTEGER | \
-                                           MD_CONTEXT_MIPS_FLOATING_POINT \
-                                           MD_CONTEXT_MIPS_DSP)
-
-#endif  // GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_ppc.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_ppc.h
deleted file mode 100644
index b24cc42..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_ppc.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_format.h: A cross-platform reimplementation of minidump-related
- * portions of DbgHelp.h from the Windows Platform SDK.
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * This file contains the necessary definitions to read minidump files
- * produced on ppc.  These files may be read on any platform provided
- * that the alignments of these structures on the processing system are
- * identical to the alignments of these structures on the producing system.
- * For this reason, precise-sized types are used.  The structures defined
- * by this file have been laid out to minimize alignment problems by ensuring
- * ensuring that all members are aligned on their natural boundaries.  In
- * In some cases, tail-padding may be significant when different ABIs specify
- * different tail-padding behaviors.  To avoid problems when reading or
- * writing affected structures, MD_*_SIZE macros are provided where needed,
- * containing the useful size of the structures without padding.
- *
- * Structures that are defined by Microsoft to contain a zero-length array
- * are instead defined here to contain an array with one element, as
- * zero-length arrays are forbidden by standard C and C++.  In these cases,
- * *_minsize constants are provided to be used in place of sizeof.  For a
- * cleaner interface to these sizes when using C++, see minidump_size.h.
- *
- * These structures are also sufficient to populate minidump files.
- *
- * These definitions may be extended to support handling minidump files
- * for other CPUs and other operating systems.
- *
- * Because precise data type sizes are crucial for this implementation to
- * function properly and portably in terms of interoperability with minidumps
- * produced by DbgHelp on Windows, a set of primitive types with known sizes
- * are used as the basis of each structure defined by this file.  DbgHelp
- * on Windows is assumed to be the reference implementation; this file
- * seeks to provide a cross-platform compatible implementation.  To avoid
- * collisions with the types and values defined and used by DbgHelp in the
- * event that this implementation is used on Windows, each type and value
- * defined here is given a new name, beginning with "MD".  Names of the
- * equivalent types and values in the Windows Platform SDK are given in
- * comments.
- *
- * Author: Mark Mentovai 
- * Change to split into its own file: Neal Sidhwaney */
-
-/*
- * Breakpad minidump extension for PowerPC support.  Based on Darwin/Mac OS X'
- * mach/ppc/_types.h
- */
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__
-
-#define MD_FLOATINGSAVEAREA_PPC_FPR_COUNT 32
-
-typedef struct {
-  /* fpregs is a double[32] in mach/ppc/_types.h, but a uint64_t is used
-   * here for precise sizing. */
-  uint64_t fpregs[MD_FLOATINGSAVEAREA_PPC_FPR_COUNT];
-  uint32_t fpscr_pad;
-  uint32_t fpscr;      /* Status/control */
-} MDFloatingSaveAreaPPC;  /* Based on ppc_float_state */
-
-
-#define MD_VECTORSAVEAREA_PPC_VR_COUNT 32
-
-typedef struct {
-  /* Vector registers (including vscr) are 128 bits, but mach/ppc/_types.h
-   * exposes them as four 32-bit quantities. */
-  uint128_struct save_vr[MD_VECTORSAVEAREA_PPC_VR_COUNT];
-  uint128_struct save_vscr;  /* Status/control */
-  uint32_t       save_pad5[4];
-  uint32_t       save_vrvalid;  /* Indicates which vector registers are saved */
-  uint32_t       save_pad6[7];
-} MDVectorSaveAreaPPC;  /* ppc_vector_state */
-
-
-#define MD_CONTEXT_PPC_GPR_COUNT 32
-
-/* Use the same 32-bit alignment when accessing this structure from 64-bit code
- * as is used natively in 32-bit code.  #pragma pack is a MSVC extension
- * supported by gcc. */
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma pack(4)
-#else
-#pragma pack(push, 4)
-#endif
-
-typedef struct {
-  /* context_flags is not present in ppc_thread_state, but it aids
-   * identification of MDRawContextPPC among other raw context types,
-   * and it guarantees alignment when we get to float_save. */
-  uint32_t              context_flags;
-
-  uint32_t              srr0;    /* Machine status save/restore: stores pc
-                                  * (instruction) */
-  uint32_t              srr1;    /* Machine status save/restore: stores msr
-                                  * (ps, program/machine state) */
-  /* ppc_thread_state contains 32 fields, r0 .. r31.  Here, an array is
-   * used for brevity. */
-  uint32_t              gpr[MD_CONTEXT_PPC_GPR_COUNT];
-  uint32_t              cr;      /* Condition */
-  uint32_t              xer;     /* Integer (fiXed-point) exception */
-  uint32_t              lr;      /* Link */
-  uint32_t              ctr;     /* Count */
-  uint32_t              mq;      /* Multiply/Quotient (PPC 601, POWER only) */
-  uint32_t              vrsave;  /* Vector save */
-
-  /* float_save and vector_save aren't present in ppc_thread_state, but
-   * are represented in separate structures that still define a thread's
-   * context. */
-  MDFloatingSaveAreaPPC float_save;
-  MDVectorSaveAreaPPC   vector_save;
-} MDRawContextPPC;  /* Based on ppc_thread_state */
-
-/* Indices into gpr for registers with a dedicated or conventional purpose. */
-enum MDPPCRegisterNumbers {
-  MD_CONTEXT_PPC_REG_SP = 1
-};
-
-#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-#pragma pack(0)
-#else
-#pragma pack(pop)
-#endif
-
-/* For (MDRawContextPPC).context_flags.  These values indicate the type of
- * context stored in the structure.  MD_CONTEXT_PPC is Breakpad-defined.  Its
- * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other
- * CPUs. */
-#define MD_CONTEXT_PPC                0x20000000
-#define MD_CONTEXT_PPC_BASE           (MD_CONTEXT_PPC | 0x00000001)
-#define MD_CONTEXT_PPC_FLOATING_POINT (MD_CONTEXT_PPC | 0x00000008)
-#define MD_CONTEXT_PPC_VECTOR         (MD_CONTEXT_PPC | 0x00000020)
-
-#define MD_CONTEXT_PPC_FULL           MD_CONTEXT_PPC_BASE
-#define MD_CONTEXT_PPC_ALL            (MD_CONTEXT_PPC_FULL | \
-                                       MD_CONTEXT_PPC_FLOATING_POINT | \
-                                       MD_CONTEXT_PPC_VECTOR)
-
-#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_ppc64.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_ppc64.h
deleted file mode 100644
index 61f4193..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_ppc64.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright (c) 2008, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_format.h: A cross-platform reimplementation of minidump-related
- * portions of DbgHelp.h from the Windows Platform SDK.
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * This file contains the necessary definitions to read minidump files
- * produced on ppc64.  These files may be read on any platform provided
- * that the alignments of these structures on the processing system are
- * identical to the alignments of these structures on the producing system.
- * For this reason, precise-sized types are used.  The structures defined
- * by this file have been laid out to minimize alignment problems by ensuring
- * ensuring that all members are aligned on their natural boundaries.  In
- * In some cases, tail-padding may be significant when different ABIs specify
- * different tail-padding behaviors.  To avoid problems when reading or
- * writing affected structures, MD_*_SIZE macros are provided where needed,
- * containing the useful size of the structures without padding.
- *
- * Structures that are defined by Microsoft to contain a zero-length array
- * are instead defined here to contain an array with one element, as
- * zero-length arrays are forbidden by standard C and C++.  In these cases,
- * *_minsize constants are provided to be used in place of sizeof.  For a
- * cleaner interface to these sizes when using C++, see minidump_size.h.
- *
- * These structures are also sufficient to populate minidump files.
- *
- * These definitions may be extended to support handling minidump files
- * for other CPUs and other operating systems.
- *
- * Because precise data type sizes are crucial for this implementation to
- * function properly and portably in terms of interoperability with minidumps
- * produced by DbgHelp on Windows, a set of primitive types with known sizes
- * are used as the basis of each structure defined by this file.  DbgHelp
- * on Windows is assumed to be the reference implementation; this file
- * seeks to provide a cross-platform compatible implementation.  To avoid
- * collisions with the types and values defined and used by DbgHelp in the
- * event that this implementation is used on Windows, each type and value
- * defined here is given a new name, beginning with "MD".  Names of the
- * equivalent types and values in the Windows Platform SDK are given in
- * comments.
- *
- * Author: Neal Sidhwaney */
-
-
-/*
- * Breakpad minidump extension for PPC64 support.  Based on Darwin/Mac OS X'
- * mach/ppc/_types.h
- */
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__
-
-#include "minidump_cpu_ppc.h"
-
-// these types are the same in ppc64 & ppc
-typedef MDFloatingSaveAreaPPC MDFloatingSaveAreaPPC64;
-typedef MDVectorSaveAreaPPC MDVectorSaveAreaPPC64;
-
-#define MD_CONTEXT_PPC64_GPR_COUNT MD_CONTEXT_PPC_GPR_COUNT
-
-typedef struct {
-  /* context_flags is not present in ppc_thread_state, but it aids
-   * identification of MDRawContextPPC among other raw context types,
-   * and it guarantees alignment when we get to float_save. */
-  uint64_t              context_flags;
-
-  uint64_t              srr0;    /* Machine status save/restore: stores pc
-                                  * (instruction) */
-  uint64_t              srr1;    /* Machine status save/restore: stores msr
-                                  * (ps, program/machine state) */
-  /* ppc_thread_state contains 32 fields, r0 .. r31.  Here, an array is
-   * used for brevity. */
-  uint64_t              gpr[MD_CONTEXT_PPC64_GPR_COUNT];
-  uint64_t              cr;      /* Condition */
-  uint64_t              xer;     /* Integer (fiXed-point) exception */
-  uint64_t              lr;      /* Link */
-  uint64_t              ctr;     /* Count */
-  uint64_t              vrsave;  /* Vector save */
-
-  /* float_save and vector_save aren't present in ppc_thread_state, but
-   * are represented in separate structures that still define a thread's
-   * context. */
-  MDFloatingSaveAreaPPC float_save;
-  MDVectorSaveAreaPPC   vector_save;
-} MDRawContextPPC64;  /* Based on ppc_thread_state */
-
-/* Indices into gpr for registers with a dedicated or conventional purpose. */
-enum MDPPC64RegisterNumbers {
-  MD_CONTEXT_PPC64_REG_SP = 1
-};
-
-/* For (MDRawContextPPC).context_flags.  These values indicate the type of
- * context stored in the structure.  MD_CONTEXT_PPC is Breakpad-defined.  Its
- * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other
- * CPUs. */
-#define MD_CONTEXT_PPC64                0x01000000
-#define MD_CONTEXT_PPC64_BASE           (MD_CONTEXT_PPC64 | 0x00000001)
-#define MD_CONTEXT_PPC64_FLOATING_POINT (MD_CONTEXT_PPC64 | 0x00000008)
-#define MD_CONTEXT_PPC64_VECTOR         (MD_CONTEXT_PPC64 | 0x00000020)
-
-#define MD_CONTEXT_PPC64_FULL           MD_CONTEXT_PPC64_BASE
-#define MD_CONTEXT_PPC64_ALL            (MD_CONTEXT_PPC64_FULL | \
-                                         MD_CONTEXT_PPC64_FLOATING_POINT | \
-                                         MD_CONTEXT_PPC64_VECTOR)
-
-#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_sparc.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_sparc.h
deleted file mode 100644
index 95c08b1..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_sparc.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_format.h: A cross-platform reimplementation of minidump-related
- * portions of DbgHelp.h from the Windows Platform SDK.
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * This file contains the necessary definitions to read minidump files
- * produced on sparc.  These files may be read on any platform provided
- * that the alignments of these structures on the processing system are
- * identical to the alignments of these structures on the producing system.
- * For this reason, precise-sized types are used.  The structures defined
- * by this file have been laid out to minimize alignment problems by ensuring
- * ensuring that all members are aligned on their natural boundaries.  In
- * In some cases, tail-padding may be significant when different ABIs specify
- * different tail-padding behaviors.  To avoid problems when reading or
- * writing affected structures, MD_*_SIZE macros are provided where needed,
- * containing the useful size of the structures without padding.
- *
- * Structures that are defined by Microsoft to contain a zero-length array
- * are instead defined here to contain an array with one element, as
- * zero-length arrays are forbidden by standard C and C++.  In these cases,
- * *_minsize constants are provided to be used in place of sizeof.  For a
- * cleaner interface to these sizes when using C++, see minidump_size.h.
- *
- * These structures are also sufficient to populate minidump files.
- *
- * These definitions may be extended to support handling minidump files
- * for other CPUs and other operating systems.
- *
- * Because precise data type sizes are crucial for this implementation to
- * function properly and portably in terms of interoperability with minidumps
- * produced by DbgHelp on Windows, a set of primitive types with known sizes
- * are used as the basis of each structure defined by this file.  DbgHelp
- * on Windows is assumed to be the reference implementation; this file
- * seeks to provide a cross-platform compatible implementation.  To avoid
- * collisions with the types and values defined and used by DbgHelp in the
- * event that this implementation is used on Windows, each type and value
- * defined here is given a new name, beginning with "MD".  Names of the
- * equivalent types and values in the Windows Platform SDK are given in
- * comments.
- *
- * Author: Mark Mentovai
- * Change to split into its own file: Neal Sidhwaney */
-
-/*
- * SPARC support, see (solaris)sys/procfs_isa.h also
- */
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__
-
-#define MD_FLOATINGSAVEAREA_SPARC_FPR_COUNT 32
-
-typedef struct {
-
-  /* FPU floating point regs */
-  uint64_t      regs[MD_FLOATINGSAVEAREA_SPARC_FPR_COUNT];
-
-  uint64_t      filler;
-  uint64_t      fsr;        /* FPU status register */
-} MDFloatingSaveAreaSPARC;  /* FLOATING_SAVE_AREA */
-
-#define MD_CONTEXT_SPARC_GPR_COUNT 32
-
-typedef struct {
-  /* The next field determines the layout of the structure, and which parts
-   * of it are populated
-   */
-  uint32_t      context_flags;
-  uint32_t      flag_pad;
-  /*
-   * General register access (SPARC).
-   * Don't confuse definitions here with definitions in <sys/regset.h>.
-   * Registers are 32 bits for ILP32, 64 bits for LP64.
-   * SPARC V7/V8 is for 32bit, SPARC V9 is for 64bit
-   */
-
-  /* 32 Integer working registers */
-
-  /* g_r[0-7]   global registers(g0-g7)
-   * g_r[8-15]  out registers(o0-o7)
-   * g_r[16-23] local registers(l0-l7)
-   * g_r[24-31] in registers(i0-i7)
-   */
-  uint64_t     g_r[MD_CONTEXT_SPARC_GPR_COUNT];
-
-  /* several control registers */
-
-  /* Processor State register(PSR) for SPARC V7/V8
-   * Condition Code register (CCR) for SPARC V9
-   */
-  uint64_t     ccr;
-
-  uint64_t     pc;     /* Program Counter register (PC) */
-  uint64_t     npc;    /* Next Program Counter register (nPC) */
-  uint64_t     y;      /* Y register (Y) */
-
-  /* Address Space Identifier register (ASI) for SPARC V9
-   * WIM for SPARC V7/V8
-   */
-  uint64_t     asi;
-
-  /* Floating-Point Registers State register (FPRS) for SPARC V9
-   * TBR for for SPARC V7/V8
-   */
-  uint64_t     fprs;
-
-  /* The next field is included with MD_CONTEXT_SPARC_FLOATING_POINT */
-  MDFloatingSaveAreaSPARC float_save;
-
-} MDRawContextSPARC;  /* CONTEXT_SPARC */
-
-/* Indices into g_r for registers with a dedicated or conventional purpose. */
-enum MDSPARCRegisterNumbers {
-  MD_CONTEXT_SPARC_REG_SP = 14
-};
-
-/* For (MDRawContextSPARC).context_flags.  These values indicate the type of
- * context stored in the structure.  MD_CONTEXT_SPARC is Breakpad-defined.  Its
- * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other
- * CPUs. */
-#define MD_CONTEXT_SPARC                 0x10000000
-#define MD_CONTEXT_SPARC_CONTROL         (MD_CONTEXT_SPARC | 0x00000001)
-#define MD_CONTEXT_SPARC_INTEGER         (MD_CONTEXT_SPARC | 0x00000002)
-#define MD_CONTEXT_SAPARC_FLOATING_POINT (MD_CONTEXT_SPARC | 0x00000004)
-#define MD_CONTEXT_SAPARC_EXTRA          (MD_CONTEXT_SPARC | 0x00000008)
-
-#define MD_CONTEXT_SPARC_FULL            (MD_CONTEXT_SPARC_CONTROL | \
-                                          MD_CONTEXT_SPARC_INTEGER)
-
-#define MD_CONTEXT_SPARC_ALL             (MD_CONTEXT_SPARC_FULL | \
-                                          MD_CONTEXT_SAPARC_FLOATING_POINT | \
-                                          MD_CONTEXT_SAPARC_EXTRA)
-
-#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_x86.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_x86.h
deleted file mode 100644
index e09cb7c..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_cpu_x86.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_format.h: A cross-platform reimplementation of minidump-related
- * portions of DbgHelp.h from the Windows Platform SDK.
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * This file contains the necessary definitions to read minidump files
- * produced on x86.  These files may be read on any platform provided
- * that the alignments of these structures on the processing system are
- * identical to the alignments of these structures on the producing system.
- * For this reason, precise-sized types are used.  The structures defined
- * by this file have been laid out to minimize alignment problems by ensuring
- * ensuring that all members are aligned on their natural boundaries.  In
- * In some cases, tail-padding may be significant when different ABIs specify
- * different tail-padding behaviors.  To avoid problems when reading or
- * writing affected structures, MD_*_SIZE macros are provided where needed,
- * containing the useful size of the structures without padding.
- *
- * Structures that are defined by Microsoft to contain a zero-length array
- * are instead defined here to contain an array with one element, as
- * zero-length arrays are forbidden by standard C and C++.  In these cases,
- * *_minsize constants are provided to be used in place of sizeof.  For a
- * cleaner interface to these sizes when using C++, see minidump_size.h.
- *
- * These structures are also sufficient to populate minidump files.
- *
- * These definitions may be extended to support handling minidump files
- * for other CPUs and other operating systems.
- *
- * Because precise data type sizes are crucial for this implementation to
- * function properly and portably in terms of interoperability with minidumps
- * produced by DbgHelp on Windows, a set of primitive types with known sizes
- * are used as the basis of each structure defined by this file.  DbgHelp
- * on Windows is assumed to be the reference implementation; this file
- * seeks to provide a cross-platform compatible implementation.  To avoid
- * collisions with the types and values defined and used by DbgHelp in the
- * event that this implementation is used on Windows, each type and value
- * defined here is given a new name, beginning with "MD".  Names of the
- * equivalent types and values in the Windows Platform SDK are given in
- * comments.
- *
- * Author: Mark Mentovai */
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__
-
-#define MD_FLOATINGSAVEAREA_X86_REGISTERAREA_SIZE 80
-     /* SIZE_OF_80387_REGISTERS */
-
-typedef struct {
-  uint32_t control_word;
-  uint32_t status_word;
-  uint32_t tag_word;
-  uint32_t error_offset;
-  uint32_t error_selector;
-  uint32_t data_offset;
-  uint32_t data_selector;
-
-  /* register_area contains eight 80-bit (x87 "long double") quantities for
-   * floating-point registers %st0 (%mm0) through %st7 (%mm7). */
-  uint8_t  register_area[MD_FLOATINGSAVEAREA_X86_REGISTERAREA_SIZE];
-  uint32_t cr0_npx_state;
-} MDFloatingSaveAreaX86;  /* FLOATING_SAVE_AREA */
-
-
-#define MD_CONTEXT_X86_EXTENDED_REGISTERS_SIZE 512
-     /* MAXIMUM_SUPPORTED_EXTENSION */
-
-typedef struct {
-  /* The next field determines the layout of the structure, and which parts
-   * of it are populated */
-  uint32_t             context_flags;
-
-  /* The next 6 registers are included with MD_CONTEXT_X86_DEBUG_REGISTERS */
-  uint32_t             dr0;
-  uint32_t             dr1;
-  uint32_t             dr2;
-  uint32_t             dr3;
-  uint32_t             dr6;
-  uint32_t             dr7;
-
-  /* The next field is included with MD_CONTEXT_X86_FLOATING_POINT */
-  MDFloatingSaveAreaX86 float_save;
-
-  /* The next 4 registers are included with MD_CONTEXT_X86_SEGMENTS */
-  uint32_t             gs; 
-  uint32_t             fs;
-  uint32_t             es;
-  uint32_t             ds;
-  /* The next 6 registers are included with MD_CONTEXT_X86_INTEGER */
-  uint32_t             edi;
-  uint32_t             esi;
-  uint32_t             ebx;
-  uint32_t             edx;
-  uint32_t             ecx;
-  uint32_t             eax;
-
-  /* The next 6 registers are included with MD_CONTEXT_X86_CONTROL */
-  uint32_t             ebp;
-  uint32_t             eip;
-  uint32_t             cs;      /* WinNT.h says "must be sanitized" */
-  uint32_t             eflags;  /* WinNT.h says "must be sanitized" */
-  uint32_t             esp;
-  uint32_t             ss;
-
-  /* The next field is included with MD_CONTEXT_X86_EXTENDED_REGISTERS.
-   * It contains vector (MMX/SSE) registers.  It it laid out in the
-   * format used by the fxsave and fsrstor instructions, so it includes
-   * a copy of the x87 floating-point registers as well.  See FXSAVE in
-   * "Intel Architecture Software Developer's Manual, Volume 2." */
-  uint8_t              extended_registers[
-                         MD_CONTEXT_X86_EXTENDED_REGISTERS_SIZE];
-} MDRawContextX86;  /* CONTEXT */
-
-/* For (MDRawContextX86).context_flags.  These values indicate the type of
- * context stored in the structure.  The high 24 bits identify the CPU, the
- * low 8 bits identify the type of context saved. */
-#define MD_CONTEXT_X86                    0x00010000
-     /* CONTEXT_i386, CONTEXT_i486: identifies CPU */
-#define MD_CONTEXT_X86_CONTROL            (MD_CONTEXT_X86 | 0x00000001)
-     /* CONTEXT_CONTROL */
-#define MD_CONTEXT_X86_INTEGER            (MD_CONTEXT_X86 | 0x00000002)
-     /* CONTEXT_INTEGER */
-#define MD_CONTEXT_X86_SEGMENTS           (MD_CONTEXT_X86 | 0x00000004)
-     /* CONTEXT_SEGMENTS */
-#define MD_CONTEXT_X86_FLOATING_POINT     (MD_CONTEXT_X86 | 0x00000008)
-     /* CONTEXT_FLOATING_POINT */
-#define MD_CONTEXT_X86_DEBUG_REGISTERS    (MD_CONTEXT_X86 | 0x00000010)
-     /* CONTEXT_DEBUG_REGISTERS */
-#define MD_CONTEXT_X86_EXTENDED_REGISTERS (MD_CONTEXT_X86 | 0x00000020)
-     /* CONTEXT_EXTENDED_REGISTERS */
-#define MD_CONTEXT_X86_XSTATE             (MD_CONTEXT_X86 | 0x00000040)
-     /* CONTEXT_XSTATE */
-
-#define MD_CONTEXT_X86_FULL              (MD_CONTEXT_X86_CONTROL | \
-                                          MD_CONTEXT_X86_INTEGER | \
-                                          MD_CONTEXT_X86_SEGMENTS)
-     /* CONTEXT_FULL */
-
-#define MD_CONTEXT_X86_ALL               (MD_CONTEXT_X86_FULL | \
-                                          MD_CONTEXT_X86_FLOATING_POINT | \
-                                          MD_CONTEXT_X86_DEBUG_REGISTERS | \
-                                          MD_CONTEXT_X86_EXTENDED_REGISTERS)
-     /* CONTEXT_ALL */
-
-#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_linux.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_linux.h
deleted file mode 100644
index 9e7e4f1..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_linux.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_exception_linux.h: A definition of exception codes for
- * Linux
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * Author: Mark Mentovai
- * Split into its own file: Neal Sidhwaney */
- 
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__
-
-#include <stddef.h>
-
-#include "google_breakpad/common/breakpad_types.h"
-
-
-/* For (MDException).exception_code.  These values come from bits/signum.h.
- */
-typedef enum {
-  MD_EXCEPTION_CODE_LIN_SIGHUP = 1,      /* Hangup (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGINT = 2,      /* Interrupt (ANSI) */
-  MD_EXCEPTION_CODE_LIN_SIGQUIT = 3,     /* Quit (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGILL = 4,      /* Illegal instruction (ANSI) */
-  MD_EXCEPTION_CODE_LIN_SIGTRAP = 5,     /* Trace trap (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGABRT = 6,     /* Abort (ANSI) */
-  MD_EXCEPTION_CODE_LIN_SIGBUS = 7,      /* BUS error (4.2 BSD) */
-  MD_EXCEPTION_CODE_LIN_SIGFPE = 8,      /* Floating-point exception (ANSI) */
-  MD_EXCEPTION_CODE_LIN_SIGKILL = 9,     /* Kill, unblockable (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGUSR1 = 10,    /* User-defined signal 1 (POSIX).  */
-  MD_EXCEPTION_CODE_LIN_SIGSEGV = 11,    /* Segmentation violation (ANSI) */
-  MD_EXCEPTION_CODE_LIN_SIGUSR2 = 12,    /* User-defined signal 2 (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGPIPE = 13,    /* Broken pipe (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGALRM = 14,    /* Alarm clock (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGTERM = 15,    /* Termination (ANSI) */
-  MD_EXCEPTION_CODE_LIN_SIGSTKFLT = 16,  /* Stack faultd */
-  MD_EXCEPTION_CODE_LIN_SIGCHLD = 17,    /* Child status has changed (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGCONT = 18,    /* Continue (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGSTOP = 19,    /* Stop, unblockable (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGTSTP = 20,    /* Keyboard stop (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGTTIN = 21,    /* Background read from tty (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGTTOU = 22,    /* Background write to tty (POSIX) */
-  MD_EXCEPTION_CODE_LIN_SIGURG = 23,
-    /* Urgent condition on socket (4.2 BSD) */
-  MD_EXCEPTION_CODE_LIN_SIGXCPU = 24,    /* CPU limit exceeded (4.2 BSD) */
-  MD_EXCEPTION_CODE_LIN_SIGXFSZ = 25,
-    /* File size limit exceeded (4.2 BSD) */
-  MD_EXCEPTION_CODE_LIN_SIGVTALRM = 26,  /* Virtual alarm clock (4.2 BSD) */
-  MD_EXCEPTION_CODE_LIN_SIGPROF = 27,    /* Profiling alarm clock (4.2 BSD) */
-  MD_EXCEPTION_CODE_LIN_SIGWINCH = 28,   /* Window size change (4.3 BSD, Sun) */
-  MD_EXCEPTION_CODE_LIN_SIGIO = 29,      /* I/O now possible (4.2 BSD) */
-  MD_EXCEPTION_CODE_LIN_SIGPWR = 30,     /* Power failure restart (System V) */
-  MD_EXCEPTION_CODE_LIN_SIGSYS = 31,     /* Bad system call */
-  MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED = 0xFFFFFFFF /* No exception,
-                                                       dump requested. */
-} MDExceptionCodeLinux;
-
-#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_mac.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_mac.h
deleted file mode 100644
index 91c1c09..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_mac.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_exception_mac.h: A definition of exception codes for Mac
- * OS X
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * Author: Mark Mentovai
- * Split into its own file: Neal Sidhwaney */
- 
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_H__
-
-#include <stddef.h>
-
-#include "google_breakpad/common/breakpad_types.h"
-
-/* For (MDException).exception_code.  Breakpad minidump extension for Mac OS X
- * support.  Based on Darwin/Mac OS X' mach/exception_types.h.  This is
- * what Mac OS X calls an "exception", not a "code". */
-typedef enum {
-  /* Exception code.  The high 16 bits of exception_code contains one of
-   * these values. */
-  MD_EXCEPTION_MAC_BAD_ACCESS      = 1,  /* code can be a kern_return_t */
-      /* EXC_BAD_ACCESS */
-  MD_EXCEPTION_MAC_BAD_INSTRUCTION = 2,  /* code is CPU-specific */
-      /* EXC_BAD_INSTRUCTION */
-  MD_EXCEPTION_MAC_ARITHMETIC      = 3,  /* code is CPU-specific */
-      /* EXC_ARITHMETIC */
-  MD_EXCEPTION_MAC_EMULATION       = 4,  /* code is CPU-specific */
-      /* EXC_EMULATION */
-  MD_EXCEPTION_MAC_SOFTWARE        = 5,
-      /* EXC_SOFTWARE */
-  MD_EXCEPTION_MAC_BREAKPOINT      = 6,  /* code is CPU-specific */
-      /* EXC_BREAKPOINT */
-  MD_EXCEPTION_MAC_SYSCALL         = 7,
-      /* EXC_SYSCALL */
-  MD_EXCEPTION_MAC_MACH_SYSCALL    = 8,
-      /* EXC_MACH_SYSCALL */
-  MD_EXCEPTION_MAC_RPC_ALERT       = 9
-      /* EXC_RPC_ALERT */
-} MDExceptionMac;
-
-/* For (MDException).exception_flags.  Breakpad minidump extension for Mac OS X
- * support.  Based on Darwin/Mac OS X' mach/ppc/exception.h and
- * mach/i386/exception.h.  This is what Mac OS X calls a "code". */
-typedef enum {
-  /* With MD_EXCEPTION_BAD_ACCESS.  These are relevant kern_return_t values
-   * from mach/kern_return.h. */
-  MD_EXCEPTION_CODE_MAC_INVALID_ADDRESS    =  1,
-      /* KERN_INVALID_ADDRESS */
-  MD_EXCEPTION_CODE_MAC_PROTECTION_FAILURE =  2,
-      /* KERN_PROTECTION_FAILURE */
-  MD_EXCEPTION_CODE_MAC_NO_ACCESS          =  8,
-      /* KERN_NO_ACCESS */
-  MD_EXCEPTION_CODE_MAC_MEMORY_FAILURE     =  9,
-      /* KERN_MEMORY_FAILURE */
-  MD_EXCEPTION_CODE_MAC_MEMORY_ERROR       = 10,
-      /* KERN_MEMORY_ERROR */
-
-  /* With MD_EXCEPTION_SOFTWARE */
-  MD_EXCEPTION_CODE_MAC_BAD_SYSCALL  = 0x00010000,  /* Mach SIGSYS */
-  MD_EXCEPTION_CODE_MAC_BAD_PIPE     = 0x00010001,  /* Mach SIGPIPE */
-  MD_EXCEPTION_CODE_MAC_ABORT        = 0x00010002,  /* Mach SIGABRT */
-  /* Custom values */
-  MD_EXCEPTION_CODE_MAC_NS_EXCEPTION = 0xDEADC0DE,  /* uncaught NSException */
-
-  /* With MD_EXCEPTION_MAC_BAD_ACCESS on arm */
-  MD_EXCEPTION_CODE_MAC_ARM_DA_ALIGN = 0x0101,  /* EXC_ARM_DA_ALIGN */
-  MD_EXCEPTION_CODE_MAC_ARM_DA_DEBUG = 0x0102,  /* EXC_ARM_DA_DEBUG */
-
-  /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on arm */
-  MD_EXCEPTION_CODE_MAC_ARM_UNDEFINED = 1,  /* EXC_ARM_UNDEFINED */
-
-  /* With MD_EXCEPTION_MAC_BREAKPOINT on arm */
-  MD_EXCEPTION_CODE_MAC_ARM_BREAKPOINT = 1, /* EXC_ARM_BREAKPOINT */
-
-  /* With MD_EXCEPTION_MAC_BAD_ACCESS on ppc */
-  MD_EXCEPTION_CODE_MAC_PPC_VM_PROT_READ = 0x0101,
-      /* EXC_PPC_VM_PROT_READ */
-  MD_EXCEPTION_CODE_MAC_PPC_BADSPACE     = 0x0102,
-      /* EXC_PPC_BADSPACE */
-  MD_EXCEPTION_CODE_MAC_PPC_UNALIGNED    = 0x0103,
-      /* EXC_PPC_UNALIGNED */
-
-  /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on ppc */
-  MD_EXCEPTION_CODE_MAC_PPC_INVALID_SYSCALL           = 1,
-      /* EXC_PPC_INVALID_SYSCALL */
-  MD_EXCEPTION_CODE_MAC_PPC_UNIMPLEMENTED_INSTRUCTION = 2,
-      /* EXC_PPC_UNIPL_INST */
-  MD_EXCEPTION_CODE_MAC_PPC_PRIVILEGED_INSTRUCTION    = 3,
-      /* EXC_PPC_PRIVINST */
-  MD_EXCEPTION_CODE_MAC_PPC_PRIVILEGED_REGISTER       = 4,
-      /* EXC_PPC_PRIVREG */
-  MD_EXCEPTION_CODE_MAC_PPC_TRACE                     = 5,
-      /* EXC_PPC_TRACE */
-  MD_EXCEPTION_CODE_MAC_PPC_PERFORMANCE_MONITOR       = 6,
-      /* EXC_PPC_PERFMON */
-
-  /* With MD_EXCEPTION_MAC_ARITHMETIC on ppc */
-  MD_EXCEPTION_CODE_MAC_PPC_OVERFLOW           = 1,
-      /* EXC_PPC_OVERFLOW */
-  MD_EXCEPTION_CODE_MAC_PPC_ZERO_DIVIDE        = 2,
-      /* EXC_PPC_ZERO_DIVIDE */
-  MD_EXCEPTION_CODE_MAC_PPC_FLOAT_INEXACT      = 3,
-      /* EXC_FLT_INEXACT */
-  MD_EXCEPTION_CODE_MAC_PPC_FLOAT_ZERO_DIVIDE  = 4,
-      /* EXC_PPC_FLT_ZERO_DIVIDE */
-  MD_EXCEPTION_CODE_MAC_PPC_FLOAT_UNDERFLOW    = 5,
-      /* EXC_PPC_FLT_UNDERFLOW */
-  MD_EXCEPTION_CODE_MAC_PPC_FLOAT_OVERFLOW     = 6,
-      /* EXC_PPC_FLT_OVERFLOW */
-  MD_EXCEPTION_CODE_MAC_PPC_FLOAT_NOT_A_NUMBER = 7,
-      /* EXC_PPC_FLT_NOT_A_NUMBER */
-
-  /* With MD_EXCEPTION_MAC_EMULATION on ppc */
-  MD_EXCEPTION_CODE_MAC_PPC_NO_EMULATION   = 8,
-      /* EXC_PPC_NOEMULATION */
-  MD_EXCEPTION_CODE_MAC_PPC_ALTIVEC_ASSIST = 9,
-      /* EXC_PPC_ALTIVECASSIST */
-
-  /* With MD_EXCEPTION_MAC_SOFTWARE on ppc */
-  MD_EXCEPTION_CODE_MAC_PPC_TRAP    = 0x00000001,  /* EXC_PPC_TRAP */
-  MD_EXCEPTION_CODE_MAC_PPC_MIGRATE = 0x00010100,  /* EXC_PPC_MIGRATE */
-
-  /* With MD_EXCEPTION_MAC_BREAKPOINT on ppc */
-  MD_EXCEPTION_CODE_MAC_PPC_BREAKPOINT = 1,  /* EXC_PPC_BREAKPOINT */
-
-  /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on x86, see also x86 interrupt
-   * values below. */
-  MD_EXCEPTION_CODE_MAC_X86_INVALID_OPERATION = 1,  /* EXC_I386_INVOP */
-
-  /* With MD_EXCEPTION_MAC_ARITHMETIC on x86 */
-  MD_EXCEPTION_CODE_MAC_X86_DIV       = 1,  /* EXC_I386_DIV */
-  MD_EXCEPTION_CODE_MAC_X86_INTO      = 2,  /* EXC_I386_INTO */
-  MD_EXCEPTION_CODE_MAC_X86_NOEXT     = 3,  /* EXC_I386_NOEXT */
-  MD_EXCEPTION_CODE_MAC_X86_EXTOVR    = 4,  /* EXC_I386_EXTOVR */
-  MD_EXCEPTION_CODE_MAC_X86_EXTERR    = 5,  /* EXC_I386_EXTERR */
-  MD_EXCEPTION_CODE_MAC_X86_EMERR     = 6,  /* EXC_I386_EMERR */
-  MD_EXCEPTION_CODE_MAC_X86_BOUND     = 7,  /* EXC_I386_BOUND */
-  MD_EXCEPTION_CODE_MAC_X86_SSEEXTERR = 8,  /* EXC_I386_SSEEXTERR */
-
-  /* With MD_EXCEPTION_MAC_BREAKPOINT on x86 */
-  MD_EXCEPTION_CODE_MAC_X86_SGL = 1,  /* EXC_I386_SGL */
-  MD_EXCEPTION_CODE_MAC_X86_BPT = 2,  /* EXC_I386_BPT */
-
-  /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on x86.  These are the raw
-   * x86 interrupt codes.  Most of these are mapped to other Mach
-   * exceptions and codes, are handled, or should not occur in user space.
-   * A few of these will do occur with MD_EXCEPTION_MAC_BAD_INSTRUCTION. */
-  /* EXC_I386_DIVERR    =  0: mapped to EXC_ARITHMETIC/EXC_I386_DIV */
-  /* EXC_I386_SGLSTP    =  1: mapped to EXC_BREAKPOINT/EXC_I386_SGL */
-  /* EXC_I386_NMIFLT    =  2: should not occur in user space */
-  /* EXC_I386_BPTFLT    =  3: mapped to EXC_BREAKPOINT/EXC_I386_BPT */
-  /* EXC_I386_INTOFLT   =  4: mapped to EXC_ARITHMETIC/EXC_I386_INTO */
-  /* EXC_I386_BOUNDFLT  =  5: mapped to EXC_ARITHMETIC/EXC_I386_BOUND */
-  /* EXC_I386_INVOPFLT  =  6: mapped to EXC_BAD_INSTRUCTION/EXC_I386_INVOP */
-  /* EXC_I386_NOEXTFLT  =  7: should be handled by the kernel */
-  /* EXC_I386_DBLFLT    =  8: should be handled (if possible) by the kernel */
-  /* EXC_I386_EXTOVRFLT =  9: mapped to EXC_BAD_ACCESS/(PROT_READ|PROT_EXEC) */
-  MD_EXCEPTION_CODE_MAC_X86_INVALID_TASK_STATE_SEGMENT = 10,
-      /* EXC_INVTSSFLT */
-  MD_EXCEPTION_CODE_MAC_X86_SEGMENT_NOT_PRESENT        = 11,
-      /* EXC_SEGNPFLT */
-  MD_EXCEPTION_CODE_MAC_X86_STACK_FAULT                = 12,
-      /* EXC_STKFLT */
-  MD_EXCEPTION_CODE_MAC_X86_GENERAL_PROTECTION_FAULT   = 13,
-      /* EXC_GPFLT */
-  /* EXC_I386_PGFLT     = 14: should not occur in user space */
-  /* EXC_I386_EXTERRFLT = 16: mapped to EXC_ARITHMETIC/EXC_I386_EXTERR */
-  MD_EXCEPTION_CODE_MAC_X86_ALIGNMENT_FAULT            = 17
-      /* EXC_ALIGNFLT (for vector operations) */
-  /* EXC_I386_ENOEXTFLT = 32: should be handled by the kernel */
-  /* EXC_I386_ENDPERR   = 33: should not occur */
-} MDExceptionCodeMac;
-
-#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_OSX_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_ps3.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_ps3.h
deleted file mode 100644
index adff5a6..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_ps3.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (c) 2013, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_exception_ps3.h: A definition of exception codes for
- * PS3 */
-
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__
-
-#include <stddef.h>
-
-#include "google_breakpad/common/breakpad_types.h"
-
-typedef enum {
-  MD_EXCEPTION_CODE_PS3_UNKNOWN = 0,
-  MD_EXCEPTION_CODE_PS3_TRAP_EXCEP = 1,
-  MD_EXCEPTION_CODE_PS3_PRIV_INSTR = 2,
-  MD_EXCEPTION_CODE_PS3_ILLEGAL_INSTR = 3,
-  MD_EXCEPTION_CODE_PS3_INSTR_STORAGE = 4,
-  MD_EXCEPTION_CODE_PS3_INSTR_SEGMENT = 5,
-  MD_EXCEPTION_CODE_PS3_DATA_STORAGE = 6,
-  MD_EXCEPTION_CODE_PS3_DATA_SEGMENT = 7,
-  MD_EXCEPTION_CODE_PS3_FLOAT_POINT = 8,
-  MD_EXCEPTION_CODE_PS3_DABR_MATCH = 9,
-  MD_EXCEPTION_CODE_PS3_ALIGN_EXCEP = 10,
-  MD_EXCEPTION_CODE_PS3_MEMORY_ACCESS = 11,
-  MD_EXCEPTION_CODE_PS3_COPRO_ALIGN = 12,
-  MD_EXCEPTION_CODE_PS3_COPRO_INVALID_COM = 13,
-  MD_EXCEPTION_CODE_PS3_COPRO_ERR = 14,
-  MD_EXCEPTION_CODE_PS3_COPRO_FIR = 15,
-  MD_EXCEPTION_CODE_PS3_COPRO_DATA_SEGMENT = 16,
-  MD_EXCEPTION_CODE_PS3_COPRO_DATA_STORAGE = 17,
-  MD_EXCEPTION_CODE_PS3_COPRO_STOP_INSTR = 18,
-  MD_EXCEPTION_CODE_PS3_COPRO_HALT_INSTR = 19,
-  MD_EXCEPTION_CODE_PS3_COPRO_HALTINST_UNKNOWN = 20,
-  MD_EXCEPTION_CODE_PS3_COPRO_MEMORY_ACCESS = 21,
-  MD_EXCEPTION_CODE_PS3_GRAPHIC = 22
-} MDExceptionCodePS3;
-
-#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_solaris.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_solaris.h
deleted file mode 100644
index f18ddf4..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_solaris.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_exception_solaris.h: A definition of exception codes for
- * Solaris
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * Author: Mark Mentovai
- * Split into its own file: Neal Sidhwaney */
-
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__
-
-#include <stddef.h>
-
-#include "google_breakpad/common/breakpad_types.h"
-
-/* For (MDException).exception_code.  These values come from sys/iso/signal_iso.h
- */
-typedef enum {
-  MD_EXCEPTION_CODE_SOL_SIGHUP = 1,      /* Hangup */
-  MD_EXCEPTION_CODE_SOL_SIGINT = 2,      /* interrupt (rubout) */
-  MD_EXCEPTION_CODE_SOL_SIGQUIT = 3,     /* quit (ASCII FS) */
-  MD_EXCEPTION_CODE_SOL_SIGILL = 4,      /* illegal instruction (not reset when caught) */
-  MD_EXCEPTION_CODE_SOL_SIGTRAP = 5,     /* trace trap (not reset when caught) */
-  MD_EXCEPTION_CODE_SOL_SIGIOT = 6,      /* IOT instruction */
-  MD_EXCEPTION_CODE_SOL_SIGABRT = 6,     /* used by abort, replace SIGIOT in the future */
-  MD_EXCEPTION_CODE_SOL_SIGEMT = 7,      /* EMT instruction */
-  MD_EXCEPTION_CODE_SOL_SIGFPE = 8,      /* floating point exception */
-  MD_EXCEPTION_CODE_SOL_SIGKILL = 9,     /* kill (cannot be caught or ignored) */
-  MD_EXCEPTION_CODE_SOL_SIGBUS = 10,     /* bus error */
-  MD_EXCEPTION_CODE_SOL_SIGSEGV = 11,    /* segmentation violation */
-  MD_EXCEPTION_CODE_SOL_SIGSYS = 12,     /* bad argument to system call */
-  MD_EXCEPTION_CODE_SOL_SIGPIPE = 13,    /* write on a pipe with no one to read it */
-  MD_EXCEPTION_CODE_SOL_SIGALRM = 14,    /* alarm clock */
-  MD_EXCEPTION_CODE_SOL_SIGTERM = 15,    /* software termination signal from kill */
-  MD_EXCEPTION_CODE_SOL_SIGUSR1 = 16,    /* user defined signal 1 */
-  MD_EXCEPTION_CODE_SOL_SIGUSR2 = 17,    /* user defined signal 2 */
-  MD_EXCEPTION_CODE_SOL_SIGCLD = 18,     /* child status change */
-  MD_EXCEPTION_CODE_SOL_SIGCHLD = 18,    /* child status change alias (POSIX) */
-  MD_EXCEPTION_CODE_SOL_SIGPWR = 19,     /* power-fail restart */
-  MD_EXCEPTION_CODE_SOL_SIGWINCH = 20,   /* window size change */
-  MD_EXCEPTION_CODE_SOL_SIGURG = 21,     /* urgent socket condition */
-  MD_EXCEPTION_CODE_SOL_SIGPOLL = 22,    /* pollable event occurred */
-  MD_EXCEPTION_CODE_SOL_SIGIO = 22,      /* socket I/O possible (SIGPOLL alias) */
-  MD_EXCEPTION_CODE_SOL_SIGSTOP = 23,    /* stop (cannot be caught or ignored) */
-  MD_EXCEPTION_CODE_SOL_SIGTSTP = 24,    /* user stop requested from tty */
-  MD_EXCEPTION_CODE_SOL_SIGCONT = 25,    /* stopped process has been continued */
-  MD_EXCEPTION_CODE_SOL_SIGTTIN = 26,    /* background tty read attempted */
-  MD_EXCEPTION_CODE_SOL_SIGTTOU = 27,    /* background tty write attempted */
-  MD_EXCEPTION_CODE_SOL_SIGVTALRM = 28,  /* virtual timer expired */
-  MD_EXCEPTION_CODE_SOL_SIGPROF = 29,    /* profiling timer expired */
-  MD_EXCEPTION_CODE_SOL_SIGXCPU = 30,    /* exceeded cpu limit */
-  MD_EXCEPTION_CODE_SOL_SIGXFSZ = 31,    /* exceeded file size limit */
-  MD_EXCEPTION_CODE_SOL_SIGWAITING = 32, /* reserved signal no longer used by threading code */
-  MD_EXCEPTION_CODE_SOL_SIGLWP = 33,     /* reserved signal no longer used by threading code */
-  MD_EXCEPTION_CODE_SOL_SIGFREEZE = 34,  /* special signal used by CPR */
-  MD_EXCEPTION_CODE_SOL_SIGTHAW = 35,    /* special signal used by CPR */
-  MD_EXCEPTION_CODE_SOL_SIGCANCEL = 36,  /* reserved signal for thread cancellation */
-  MD_EXCEPTION_CODE_SOL_SIGLOST = 37,    /* resource lost (eg, record-lock lost) */
-  MD_EXCEPTION_CODE_SOL_SIGXRES = 38,    /* resource control exceeded */
-  MD_EXCEPTION_CODE_SOL_SIGJVM1 = 39,    /* reserved signal for Java Virtual Machine */
-  MD_EXCEPTION_CODE_SOL_SIGJVM2 = 40     /* reserved signal for Java Virtual Machine */
-} MDExceptionCodeSolaris;
-
-#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_win32.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_win32.h
deleted file mode 100644
index e4cd59e..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_exception_win32.h
+++ /dev/null
@@ -1,2261 +0,0 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_exception_win32.h: Definitions of exception codes for
- * Win32 platform
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * Author: Mark Mentovai
- * Split into its own file: Neal Sidhwaney */
-
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__
-
-#include <stddef.h>
-
-#include "google_breakpad/common/breakpad_types.h"
-
-
-/* For (MDException).exception_code.  These values come from WinBase.h
- * and WinNT.h (names beginning with EXCEPTION_ are in WinBase.h,
- * they are STATUS_ in WinNT.h). */
-typedef enum {
-  MD_EXCEPTION_CODE_WIN_CONTROL_C                = 0x40010005,
-      /* DBG_CONTROL_C */
-  MD_EXCEPTION_CODE_WIN_GUARD_PAGE_VIOLATION     = 0x80000001,
-      /* EXCEPTION_GUARD_PAGE */
-  MD_EXCEPTION_CODE_WIN_DATATYPE_MISALIGNMENT    = 0x80000002,
-      /* EXCEPTION_DATATYPE_MISALIGNMENT */
-  MD_EXCEPTION_CODE_WIN_BREAKPOINT               = 0x80000003,
-      /* EXCEPTION_BREAKPOINT */
-  MD_EXCEPTION_CODE_WIN_SINGLE_STEP              = 0x80000004,
-      /* EXCEPTION_SINGLE_STEP */
-  MD_EXCEPTION_CODE_WIN_ACCESS_VIOLATION         = 0xc0000005,
-      /* EXCEPTION_ACCESS_VIOLATION */
-  MD_EXCEPTION_CODE_WIN_IN_PAGE_ERROR            = 0xc0000006,
-      /* EXCEPTION_IN_PAGE_ERROR */
-  MD_EXCEPTION_CODE_WIN_INVALID_HANDLE           = 0xc0000008,
-      /* EXCEPTION_INVALID_HANDLE */
-  MD_EXCEPTION_CODE_WIN_ILLEGAL_INSTRUCTION      = 0xc000001d,
-      /* EXCEPTION_ILLEGAL_INSTRUCTION */
-  MD_EXCEPTION_CODE_WIN_NONCONTINUABLE_EXCEPTION = 0xc0000025,
-      /* EXCEPTION_NONCONTINUABLE_EXCEPTION */
-  MD_EXCEPTION_CODE_WIN_INVALID_DISPOSITION      = 0xc0000026,
-      /* EXCEPTION_INVALID_DISPOSITION */
-  MD_EXCEPTION_CODE_WIN_ARRAY_BOUNDS_EXCEEDED    = 0xc000008c,
-      /* EXCEPTION_BOUNDS_EXCEEDED */
-  MD_EXCEPTION_CODE_WIN_FLOAT_DENORMAL_OPERAND   = 0xc000008d,
-      /* EXCEPTION_FLT_DENORMAL_OPERAND */
-  MD_EXCEPTION_CODE_WIN_FLOAT_DIVIDE_BY_ZERO     = 0xc000008e,
-      /* EXCEPTION_FLT_DIVIDE_BY_ZERO */
-  MD_EXCEPTION_CODE_WIN_FLOAT_INEXACT_RESULT     = 0xc000008f,
-      /* EXCEPTION_FLT_INEXACT_RESULT */
-  MD_EXCEPTION_CODE_WIN_FLOAT_INVALID_OPERATION  = 0xc0000090,
-      /* EXCEPTION_FLT_INVALID_OPERATION */
-  MD_EXCEPTION_CODE_WIN_FLOAT_OVERFLOW           = 0xc0000091,
-      /* EXCEPTION_FLT_OVERFLOW */
-  MD_EXCEPTION_CODE_WIN_FLOAT_STACK_CHECK        = 0xc0000092,
-      /* EXCEPTION_FLT_STACK_CHECK */
-  MD_EXCEPTION_CODE_WIN_FLOAT_UNDERFLOW          = 0xc0000093,
-      /* EXCEPTION_FLT_UNDERFLOW */
-  MD_EXCEPTION_CODE_WIN_INTEGER_DIVIDE_BY_ZERO   = 0xc0000094,
-      /* EXCEPTION_INT_DIVIDE_BY_ZERO */
-  MD_EXCEPTION_CODE_WIN_INTEGER_OVERFLOW         = 0xc0000095,
-      /* EXCEPTION_INT_OVERFLOW */
-  MD_EXCEPTION_CODE_WIN_PRIVILEGED_INSTRUCTION   = 0xc0000096,
-      /* EXCEPTION_PRIV_INSTRUCTION */
-  MD_EXCEPTION_CODE_WIN_STACK_OVERFLOW           = 0xc00000fd,
-      /* EXCEPTION_STACK_OVERFLOW */
-  MD_EXCEPTION_CODE_WIN_POSSIBLE_DEADLOCK        = 0xc0000194,
-      /* EXCEPTION_POSSIBLE_DEADLOCK */
-  MD_EXCEPTION_CODE_WIN_STACK_BUFFER_OVERRUN     = 0xc0000409,
-      /* STATUS_STACK_BUFFER_OVERRUN */
-  MD_EXCEPTION_CODE_WIN_HEAP_CORRUPTION          = 0xc0000374,
-      /* STATUS_HEAP_CORRUPTION */
-  MD_EXCEPTION_CODE_WIN_UNHANDLED_CPP_EXCEPTION  = 0xe06d7363
-      /* Per http://support.microsoft.com/kb/185294,
-         generated by Visual C++ compiler */
-} MDExceptionCodeWin;
-
-
-/* For (MDException).exception_information[2], when (MDException).exception_code
- * is MD_EXCEPTION_CODE_WIN_IN_PAGE_ERROR. This describes the underlying reason
- * for the error. These values come from ntstatus.h.
- *
- * The content of this enum was created from ntstatus.h in the 8.1 SDK with
- *
- * egrep '#define [A-Z_0-9]+\s+\(\(NTSTATUS\)0xC[0-9A-F]+L\)' ntstatus.h
- * | tr -d '\r'
- * | sed -r 's@#define ([A-Z_0-9]+)\s+\(\(NTSTATUS\)(0xC[0-9A-F]+)L\).*@\2 \1@'
- * | sort
- * | sed -r 's@(0xC[0-9A-F]+) ([A-Z_0-9]+)@  MD_NTSTATUS_WIN_\2 = \1,@'
- *
- * With easy copy to clipboard with
- * | xclip -selection c  # on linux
- * | clip  # on windows
- * | pbcopy  # on mac
- *
- * and then the last comma manually removed. */
-typedef enum {
-  MD_NTSTATUS_WIN_STATUS_UNSUCCESSFUL = 0xC0000001,
-  MD_NTSTATUS_WIN_STATUS_NOT_IMPLEMENTED = 0xC0000002,
-  MD_NTSTATUS_WIN_STATUS_INVALID_INFO_CLASS = 0xC0000003,
-  MD_NTSTATUS_WIN_STATUS_INFO_LENGTH_MISMATCH = 0xC0000004,
-  MD_NTSTATUS_WIN_STATUS_ACCESS_VIOLATION = 0xC0000005,
-  MD_NTSTATUS_WIN_STATUS_IN_PAGE_ERROR = 0xC0000006,
-  MD_NTSTATUS_WIN_STATUS_PAGEFILE_QUOTA = 0xC0000007,
-  MD_NTSTATUS_WIN_STATUS_INVALID_HANDLE = 0xC0000008,
-  MD_NTSTATUS_WIN_STATUS_BAD_INITIAL_STACK = 0xC0000009,
-  MD_NTSTATUS_WIN_STATUS_BAD_INITIAL_PC = 0xC000000A,
-  MD_NTSTATUS_WIN_STATUS_INVALID_CID = 0xC000000B,
-  MD_NTSTATUS_WIN_STATUS_TIMER_NOT_CANCELED = 0xC000000C,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER = 0xC000000D,
-  MD_NTSTATUS_WIN_STATUS_NO_SUCH_DEVICE = 0xC000000E,
-  MD_NTSTATUS_WIN_STATUS_NO_SUCH_FILE = 0xC000000F,
-  MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_REQUEST = 0xC0000010,
-  MD_NTSTATUS_WIN_STATUS_END_OF_FILE = 0xC0000011,
-  MD_NTSTATUS_WIN_STATUS_WRONG_VOLUME = 0xC0000012,
-  MD_NTSTATUS_WIN_STATUS_NO_MEDIA_IN_DEVICE = 0xC0000013,
-  MD_NTSTATUS_WIN_STATUS_UNRECOGNIZED_MEDIA = 0xC0000014,
-  MD_NTSTATUS_WIN_STATUS_NONEXISTENT_SECTOR = 0xC0000015,
-  MD_NTSTATUS_WIN_STATUS_MORE_PROCESSING_REQUIRED = 0xC0000016,
-  MD_NTSTATUS_WIN_STATUS_NO_MEMORY = 0xC0000017,
-  MD_NTSTATUS_WIN_STATUS_CONFLICTING_ADDRESSES = 0xC0000018,
-  MD_NTSTATUS_WIN_STATUS_NOT_MAPPED_VIEW = 0xC0000019,
-  MD_NTSTATUS_WIN_STATUS_UNABLE_TO_FREE_VM = 0xC000001A,
-  MD_NTSTATUS_WIN_STATUS_UNABLE_TO_DELETE_SECTION = 0xC000001B,
-  MD_NTSTATUS_WIN_STATUS_INVALID_SYSTEM_SERVICE = 0xC000001C,
-  MD_NTSTATUS_WIN_STATUS_ILLEGAL_INSTRUCTION = 0xC000001D,
-  MD_NTSTATUS_WIN_STATUS_INVALID_LOCK_SEQUENCE = 0xC000001E,
-  MD_NTSTATUS_WIN_STATUS_INVALID_VIEW_SIZE = 0xC000001F,
-  MD_NTSTATUS_WIN_STATUS_INVALID_FILE_FOR_SECTION = 0xC0000020,
-  MD_NTSTATUS_WIN_STATUS_ALREADY_COMMITTED = 0xC0000021,
-  MD_NTSTATUS_WIN_STATUS_ACCESS_DENIED = 0xC0000022,
-  MD_NTSTATUS_WIN_STATUS_BUFFER_TOO_SMALL = 0xC0000023,
-  MD_NTSTATUS_WIN_STATUS_OBJECT_TYPE_MISMATCH = 0xC0000024,
-  MD_NTSTATUS_WIN_STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025,
-  MD_NTSTATUS_WIN_STATUS_INVALID_DISPOSITION = 0xC0000026,
-  MD_NTSTATUS_WIN_STATUS_UNWIND = 0xC0000027,
-  MD_NTSTATUS_WIN_STATUS_BAD_STACK = 0xC0000028,
-  MD_NTSTATUS_WIN_STATUS_INVALID_UNWIND_TARGET = 0xC0000029,
-  MD_NTSTATUS_WIN_STATUS_NOT_LOCKED = 0xC000002A,
-  MD_NTSTATUS_WIN_STATUS_PARITY_ERROR = 0xC000002B,
-  MD_NTSTATUS_WIN_STATUS_UNABLE_TO_DECOMMIT_VM = 0xC000002C,
-  MD_NTSTATUS_WIN_STATUS_NOT_COMMITTED = 0xC000002D,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PORT_ATTRIBUTES = 0xC000002E,
-  MD_NTSTATUS_WIN_STATUS_PORT_MESSAGE_TOO_LONG = 0xC000002F,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_MIX = 0xC0000030,
-  MD_NTSTATUS_WIN_STATUS_INVALID_QUOTA_LOWER = 0xC0000031,
-  MD_NTSTATUS_WIN_STATUS_DISK_CORRUPT_ERROR = 0xC0000032,
-  MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_INVALID = 0xC0000033,
-  MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_NOT_FOUND = 0xC0000034,
-  MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_COLLISION = 0xC0000035,
-  MD_NTSTATUS_WIN_STATUS_PORT_DISCONNECTED = 0xC0000037,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_ALREADY_ATTACHED = 0xC0000038,
-  MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_INVALID = 0xC0000039,
-  MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_NOT_FOUND = 0xC000003A,
-  MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_SYNTAX_BAD = 0xC000003B,
-  MD_NTSTATUS_WIN_STATUS_DATA_OVERRUN = 0xC000003C,
-  MD_NTSTATUS_WIN_STATUS_DATA_LATE_ERROR = 0xC000003D,
-  MD_NTSTATUS_WIN_STATUS_DATA_ERROR = 0xC000003E,
-  MD_NTSTATUS_WIN_STATUS_CRC_ERROR = 0xC000003F,
-  MD_NTSTATUS_WIN_STATUS_SECTION_TOO_BIG = 0xC0000040,
-  MD_NTSTATUS_WIN_STATUS_PORT_CONNECTION_REFUSED = 0xC0000041,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PORT_HANDLE = 0xC0000042,
-  MD_NTSTATUS_WIN_STATUS_SHARING_VIOLATION = 0xC0000043,
-  MD_NTSTATUS_WIN_STATUS_QUOTA_EXCEEDED = 0xC0000044,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PAGE_PROTECTION = 0xC0000045,
-  MD_NTSTATUS_WIN_STATUS_MUTANT_NOT_OWNED = 0xC0000046,
-  MD_NTSTATUS_WIN_STATUS_SEMAPHORE_LIMIT_EXCEEDED = 0xC0000047,
-  MD_NTSTATUS_WIN_STATUS_PORT_ALREADY_SET = 0xC0000048,
-  MD_NTSTATUS_WIN_STATUS_SECTION_NOT_IMAGE = 0xC0000049,
-  MD_NTSTATUS_WIN_STATUS_SUSPEND_COUNT_EXCEEDED = 0xC000004A,
-  MD_NTSTATUS_WIN_STATUS_THREAD_IS_TERMINATING = 0xC000004B,
-  MD_NTSTATUS_WIN_STATUS_BAD_WORKING_SET_LIMIT = 0xC000004C,
-  MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_FILE_MAP = 0xC000004D,
-  MD_NTSTATUS_WIN_STATUS_SECTION_PROTECTION = 0xC000004E,
-  MD_NTSTATUS_WIN_STATUS_EAS_NOT_SUPPORTED = 0xC000004F,
-  MD_NTSTATUS_WIN_STATUS_EA_TOO_LARGE = 0xC0000050,
-  MD_NTSTATUS_WIN_STATUS_NONEXISTENT_EA_ENTRY = 0xC0000051,
-  MD_NTSTATUS_WIN_STATUS_NO_EAS_ON_FILE = 0xC0000052,
-  MD_NTSTATUS_WIN_STATUS_EA_CORRUPT_ERROR = 0xC0000053,
-  MD_NTSTATUS_WIN_STATUS_FILE_LOCK_CONFLICT = 0xC0000054,
-  MD_NTSTATUS_WIN_STATUS_LOCK_NOT_GRANTED = 0xC0000055,
-  MD_NTSTATUS_WIN_STATUS_DELETE_PENDING = 0xC0000056,
-  MD_NTSTATUS_WIN_STATUS_CTL_FILE_NOT_SUPPORTED = 0xC0000057,
-  MD_NTSTATUS_WIN_STATUS_UNKNOWN_REVISION = 0xC0000058,
-  MD_NTSTATUS_WIN_STATUS_REVISION_MISMATCH = 0xC0000059,
-  MD_NTSTATUS_WIN_STATUS_INVALID_OWNER = 0xC000005A,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PRIMARY_GROUP = 0xC000005B,
-  MD_NTSTATUS_WIN_STATUS_NO_IMPERSONATION_TOKEN = 0xC000005C,
-  MD_NTSTATUS_WIN_STATUS_CANT_DISABLE_MANDATORY = 0xC000005D,
-  MD_NTSTATUS_WIN_STATUS_NO_LOGON_SERVERS = 0xC000005E,
-  MD_NTSTATUS_WIN_STATUS_NO_SUCH_LOGON_SESSION = 0xC000005F,
-  MD_NTSTATUS_WIN_STATUS_NO_SUCH_PRIVILEGE = 0xC0000060,
-  MD_NTSTATUS_WIN_STATUS_PRIVILEGE_NOT_HELD = 0xC0000061,
-  MD_NTSTATUS_WIN_STATUS_INVALID_ACCOUNT_NAME = 0xC0000062,
-  MD_NTSTATUS_WIN_STATUS_USER_EXISTS = 0xC0000063,
-  MD_NTSTATUS_WIN_STATUS_NO_SUCH_USER = 0xC0000064,
-  MD_NTSTATUS_WIN_STATUS_GROUP_EXISTS = 0xC0000065,
-  MD_NTSTATUS_WIN_STATUS_NO_SUCH_GROUP = 0xC0000066,
-  MD_NTSTATUS_WIN_STATUS_MEMBER_IN_GROUP = 0xC0000067,
-  MD_NTSTATUS_WIN_STATUS_MEMBER_NOT_IN_GROUP = 0xC0000068,
-  MD_NTSTATUS_WIN_STATUS_LAST_ADMIN = 0xC0000069,
-  MD_NTSTATUS_WIN_STATUS_WRONG_PASSWORD = 0xC000006A,
-  MD_NTSTATUS_WIN_STATUS_ILL_FORMED_PASSWORD = 0xC000006B,
-  MD_NTSTATUS_WIN_STATUS_PASSWORD_RESTRICTION = 0xC000006C,
-  MD_NTSTATUS_WIN_STATUS_LOGON_FAILURE = 0xC000006D,
-  MD_NTSTATUS_WIN_STATUS_ACCOUNT_RESTRICTION = 0xC000006E,
-  MD_NTSTATUS_WIN_STATUS_INVALID_LOGON_HOURS = 0xC000006F,
-  MD_NTSTATUS_WIN_STATUS_INVALID_WORKSTATION = 0xC0000070,
-  MD_NTSTATUS_WIN_STATUS_PASSWORD_EXPIRED = 0xC0000071,
-  MD_NTSTATUS_WIN_STATUS_ACCOUNT_DISABLED = 0xC0000072,
-  MD_NTSTATUS_WIN_STATUS_NONE_MAPPED = 0xC0000073,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_LUIDS_REQUESTED = 0xC0000074,
-  MD_NTSTATUS_WIN_STATUS_LUIDS_EXHAUSTED = 0xC0000075,
-  MD_NTSTATUS_WIN_STATUS_INVALID_SUB_AUTHORITY = 0xC0000076,
-  MD_NTSTATUS_WIN_STATUS_INVALID_ACL = 0xC0000077,
-  MD_NTSTATUS_WIN_STATUS_INVALID_SID = 0xC0000078,
-  MD_NTSTATUS_WIN_STATUS_INVALID_SECURITY_DESCR = 0xC0000079,
-  MD_NTSTATUS_WIN_STATUS_PROCEDURE_NOT_FOUND = 0xC000007A,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_FORMAT = 0xC000007B,
-  MD_NTSTATUS_WIN_STATUS_NO_TOKEN = 0xC000007C,
-  MD_NTSTATUS_WIN_STATUS_BAD_INHERITANCE_ACL = 0xC000007D,
-  MD_NTSTATUS_WIN_STATUS_RANGE_NOT_LOCKED = 0xC000007E,
-  MD_NTSTATUS_WIN_STATUS_DISK_FULL = 0xC000007F,
-  MD_NTSTATUS_WIN_STATUS_SERVER_DISABLED = 0xC0000080,
-  MD_NTSTATUS_WIN_STATUS_SERVER_NOT_DISABLED = 0xC0000081,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_GUIDS_REQUESTED = 0xC0000082,
-  MD_NTSTATUS_WIN_STATUS_GUIDS_EXHAUSTED = 0xC0000083,
-  MD_NTSTATUS_WIN_STATUS_INVALID_ID_AUTHORITY = 0xC0000084,
-  MD_NTSTATUS_WIN_STATUS_AGENTS_EXHAUSTED = 0xC0000085,
-  MD_NTSTATUS_WIN_STATUS_INVALID_VOLUME_LABEL = 0xC0000086,
-  MD_NTSTATUS_WIN_STATUS_SECTION_NOT_EXTENDED = 0xC0000087,
-  MD_NTSTATUS_WIN_STATUS_NOT_MAPPED_DATA = 0xC0000088,
-  MD_NTSTATUS_WIN_STATUS_RESOURCE_DATA_NOT_FOUND = 0xC0000089,
-  MD_NTSTATUS_WIN_STATUS_RESOURCE_TYPE_NOT_FOUND = 0xC000008A,
-  MD_NTSTATUS_WIN_STATUS_RESOURCE_NAME_NOT_FOUND = 0xC000008B,
-  MD_NTSTATUS_WIN_STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C,
-  MD_NTSTATUS_WIN_STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D,
-  MD_NTSTATUS_WIN_STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E,
-  MD_NTSTATUS_WIN_STATUS_FLOAT_INEXACT_RESULT = 0xC000008F,
-  MD_NTSTATUS_WIN_STATUS_FLOAT_INVALID_OPERATION = 0xC0000090,
-  MD_NTSTATUS_WIN_STATUS_FLOAT_OVERFLOW = 0xC0000091,
-  MD_NTSTATUS_WIN_STATUS_FLOAT_STACK_CHECK = 0xC0000092,
-  MD_NTSTATUS_WIN_STATUS_FLOAT_UNDERFLOW = 0xC0000093,
-  MD_NTSTATUS_WIN_STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094,
-  MD_NTSTATUS_WIN_STATUS_INTEGER_OVERFLOW = 0xC0000095,
-  MD_NTSTATUS_WIN_STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_PAGING_FILES = 0xC0000097,
-  MD_NTSTATUS_WIN_STATUS_FILE_INVALID = 0xC0000098,
-  MD_NTSTATUS_WIN_STATUS_ALLOTTED_SPACE_EXCEEDED = 0xC0000099,
-  MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_RESOURCES = 0xC000009A,
-  MD_NTSTATUS_WIN_STATUS_DFS_EXIT_PATH_FOUND = 0xC000009B,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_DATA_ERROR = 0xC000009C,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_CONNECTED = 0xC000009D,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_POWER_FAILURE = 0xC000009E,
-  MD_NTSTATUS_WIN_STATUS_FREE_VM_NOT_AT_BASE = 0xC000009F,
-  MD_NTSTATUS_WIN_STATUS_MEMORY_NOT_ALLOCATED = 0xC00000A0,
-  MD_NTSTATUS_WIN_STATUS_WORKING_SET_QUOTA = 0xC00000A1,
-  MD_NTSTATUS_WIN_STATUS_MEDIA_WRITE_PROTECTED = 0xC00000A2,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_READY = 0xC00000A3,
-  MD_NTSTATUS_WIN_STATUS_INVALID_GROUP_ATTRIBUTES = 0xC00000A4,
-  MD_NTSTATUS_WIN_STATUS_BAD_IMPERSONATION_LEVEL = 0xC00000A5,
-  MD_NTSTATUS_WIN_STATUS_CANT_OPEN_ANONYMOUS = 0xC00000A6,
-  MD_NTSTATUS_WIN_STATUS_BAD_VALIDATION_CLASS = 0xC00000A7,
-  MD_NTSTATUS_WIN_STATUS_BAD_TOKEN_TYPE = 0xC00000A8,
-  MD_NTSTATUS_WIN_STATUS_BAD_MASTER_BOOT_RECORD = 0xC00000A9,
-  MD_NTSTATUS_WIN_STATUS_INSTRUCTION_MISALIGNMENT = 0xC00000AA,
-  MD_NTSTATUS_WIN_STATUS_INSTANCE_NOT_AVAILABLE = 0xC00000AB,
-  MD_NTSTATUS_WIN_STATUS_PIPE_NOT_AVAILABLE = 0xC00000AC,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PIPE_STATE = 0xC00000AD,
-  MD_NTSTATUS_WIN_STATUS_PIPE_BUSY = 0xC00000AE,
-  MD_NTSTATUS_WIN_STATUS_ILLEGAL_FUNCTION = 0xC00000AF,
-  MD_NTSTATUS_WIN_STATUS_PIPE_DISCONNECTED = 0xC00000B0,
-  MD_NTSTATUS_WIN_STATUS_PIPE_CLOSING = 0xC00000B1,
-  MD_NTSTATUS_WIN_STATUS_PIPE_CONNECTED = 0xC00000B2,
-  MD_NTSTATUS_WIN_STATUS_PIPE_LISTENING = 0xC00000B3,
-  MD_NTSTATUS_WIN_STATUS_INVALID_READ_MODE = 0xC00000B4,
-  MD_NTSTATUS_WIN_STATUS_IO_TIMEOUT = 0xC00000B5,
-  MD_NTSTATUS_WIN_STATUS_FILE_FORCED_CLOSED = 0xC00000B6,
-  MD_NTSTATUS_WIN_STATUS_PROFILING_NOT_STARTED = 0xC00000B7,
-  MD_NTSTATUS_WIN_STATUS_PROFILING_NOT_STOPPED = 0xC00000B8,
-  MD_NTSTATUS_WIN_STATUS_COULD_NOT_INTERPRET = 0xC00000B9,
-  MD_NTSTATUS_WIN_STATUS_FILE_IS_A_DIRECTORY = 0xC00000BA,
-  MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED = 0xC00000BB,
-  MD_NTSTATUS_WIN_STATUS_REMOTE_NOT_LISTENING = 0xC00000BC,
-  MD_NTSTATUS_WIN_STATUS_DUPLICATE_NAME = 0xC00000BD,
-  MD_NTSTATUS_WIN_STATUS_BAD_NETWORK_PATH = 0xC00000BE,
-  MD_NTSTATUS_WIN_STATUS_NETWORK_BUSY = 0xC00000BF,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_DOES_NOT_EXIST = 0xC00000C0,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_COMMANDS = 0xC00000C1,
-  MD_NTSTATUS_WIN_STATUS_ADAPTER_HARDWARE_ERROR = 0xC00000C2,
-  MD_NTSTATUS_WIN_STATUS_INVALID_NETWORK_RESPONSE = 0xC00000C3,
-  MD_NTSTATUS_WIN_STATUS_UNEXPECTED_NETWORK_ERROR = 0xC00000C4,
-  MD_NTSTATUS_WIN_STATUS_BAD_REMOTE_ADAPTER = 0xC00000C5,
-  MD_NTSTATUS_WIN_STATUS_PRINT_QUEUE_FULL = 0xC00000C6,
-  MD_NTSTATUS_WIN_STATUS_NO_SPOOL_SPACE = 0xC00000C7,
-  MD_NTSTATUS_WIN_STATUS_PRINT_CANCELLED = 0xC00000C8,
-  MD_NTSTATUS_WIN_STATUS_NETWORK_NAME_DELETED = 0xC00000C9,
-  MD_NTSTATUS_WIN_STATUS_NETWORK_ACCESS_DENIED = 0xC00000CA,
-  MD_NTSTATUS_WIN_STATUS_BAD_DEVICE_TYPE = 0xC00000CB,
-  MD_NTSTATUS_WIN_STATUS_BAD_NETWORK_NAME = 0xC00000CC,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_NAMES = 0xC00000CD,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_SESSIONS = 0xC00000CE,
-  MD_NTSTATUS_WIN_STATUS_SHARING_PAUSED = 0xC00000CF,
-  MD_NTSTATUS_WIN_STATUS_REQUEST_NOT_ACCEPTED = 0xC00000D0,
-  MD_NTSTATUS_WIN_STATUS_REDIRECTOR_PAUSED = 0xC00000D1,
-  MD_NTSTATUS_WIN_STATUS_NET_WRITE_FAULT = 0xC00000D2,
-  MD_NTSTATUS_WIN_STATUS_PROFILING_AT_LIMIT = 0xC00000D3,
-  MD_NTSTATUS_WIN_STATUS_NOT_SAME_DEVICE = 0xC00000D4,
-  MD_NTSTATUS_WIN_STATUS_FILE_RENAMED = 0xC00000D5,
-  MD_NTSTATUS_WIN_STATUS_VIRTUAL_CIRCUIT_CLOSED = 0xC00000D6,
-  MD_NTSTATUS_WIN_STATUS_NO_SECURITY_ON_OBJECT = 0xC00000D7,
-  MD_NTSTATUS_WIN_STATUS_CANT_WAIT = 0xC00000D8,
-  MD_NTSTATUS_WIN_STATUS_PIPE_EMPTY = 0xC00000D9,
-  MD_NTSTATUS_WIN_STATUS_CANT_ACCESS_DOMAIN_INFO = 0xC00000DA,
-  MD_NTSTATUS_WIN_STATUS_CANT_TERMINATE_SELF = 0xC00000DB,
-  MD_NTSTATUS_WIN_STATUS_INVALID_SERVER_STATE = 0xC00000DC,
-  MD_NTSTATUS_WIN_STATUS_INVALID_DOMAIN_STATE = 0xC00000DD,
-  MD_NTSTATUS_WIN_STATUS_INVALID_DOMAIN_ROLE = 0xC00000DE,
-  MD_NTSTATUS_WIN_STATUS_NO_SUCH_DOMAIN = 0xC00000DF,
-  MD_NTSTATUS_WIN_STATUS_DOMAIN_EXISTS = 0xC00000E0,
-  MD_NTSTATUS_WIN_STATUS_DOMAIN_LIMIT_EXCEEDED = 0xC00000E1,
-  MD_NTSTATUS_WIN_STATUS_OPLOCK_NOT_GRANTED = 0xC00000E2,
-  MD_NTSTATUS_WIN_STATUS_INVALID_OPLOCK_PROTOCOL = 0xC00000E3,
-  MD_NTSTATUS_WIN_STATUS_INTERNAL_DB_CORRUPTION = 0xC00000E4,
-  MD_NTSTATUS_WIN_STATUS_INTERNAL_ERROR = 0xC00000E5,
-  MD_NTSTATUS_WIN_STATUS_GENERIC_NOT_MAPPED = 0xC00000E6,
-  MD_NTSTATUS_WIN_STATUS_BAD_DESCRIPTOR_FORMAT = 0xC00000E7,
-  MD_NTSTATUS_WIN_STATUS_INVALID_USER_BUFFER = 0xC00000E8,
-  MD_NTSTATUS_WIN_STATUS_UNEXPECTED_IO_ERROR = 0xC00000E9,
-  MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_CREATE_ERR = 0xC00000EA,
-  MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_MAP_ERROR = 0xC00000EB,
-  MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_EXTEND_ERR = 0xC00000EC,
-  MD_NTSTATUS_WIN_STATUS_NOT_LOGON_PROCESS = 0xC00000ED,
-  MD_NTSTATUS_WIN_STATUS_LOGON_SESSION_EXISTS = 0xC00000EE,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_1 = 0xC00000EF,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_2 = 0xC00000F0,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_3 = 0xC00000F1,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_4 = 0xC00000F2,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_5 = 0xC00000F3,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_6 = 0xC00000F4,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_7 = 0xC00000F5,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_8 = 0xC00000F6,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_9 = 0xC00000F7,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_10 = 0xC00000F8,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_11 = 0xC00000F9,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_12 = 0xC00000FA,
-  MD_NTSTATUS_WIN_STATUS_REDIRECTOR_NOT_STARTED = 0xC00000FB,
-  MD_NTSTATUS_WIN_STATUS_REDIRECTOR_STARTED = 0xC00000FC,
-  MD_NTSTATUS_WIN_STATUS_STACK_OVERFLOW = 0xC00000FD,
-  MD_NTSTATUS_WIN_STATUS_NO_SUCH_PACKAGE = 0xC00000FE,
-  MD_NTSTATUS_WIN_STATUS_BAD_FUNCTION_TABLE = 0xC00000FF,
-  MD_NTSTATUS_WIN_STATUS_VARIABLE_NOT_FOUND = 0xC0000100,
-  MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_EMPTY = 0xC0000101,
-  MD_NTSTATUS_WIN_STATUS_FILE_CORRUPT_ERROR = 0xC0000102,
-  MD_NTSTATUS_WIN_STATUS_NOT_A_DIRECTORY = 0xC0000103,
-  MD_NTSTATUS_WIN_STATUS_BAD_LOGON_SESSION_STATE = 0xC0000104,
-  MD_NTSTATUS_WIN_STATUS_LOGON_SESSION_COLLISION = 0xC0000105,
-  MD_NTSTATUS_WIN_STATUS_NAME_TOO_LONG = 0xC0000106,
-  MD_NTSTATUS_WIN_STATUS_FILES_OPEN = 0xC0000107,
-  MD_NTSTATUS_WIN_STATUS_CONNECTION_IN_USE = 0xC0000108,
-  MD_NTSTATUS_WIN_STATUS_MESSAGE_NOT_FOUND = 0xC0000109,
-  MD_NTSTATUS_WIN_STATUS_PROCESS_IS_TERMINATING = 0xC000010A,
-  MD_NTSTATUS_WIN_STATUS_INVALID_LOGON_TYPE = 0xC000010B,
-  MD_NTSTATUS_WIN_STATUS_NO_GUID_TRANSLATION = 0xC000010C,
-  MD_NTSTATUS_WIN_STATUS_CANNOT_IMPERSONATE = 0xC000010D,
-  MD_NTSTATUS_WIN_STATUS_IMAGE_ALREADY_LOADED = 0xC000010E,
-  MD_NTSTATUS_WIN_STATUS_ABIOS_NOT_PRESENT = 0xC000010F,
-  MD_NTSTATUS_WIN_STATUS_ABIOS_LID_NOT_EXIST = 0xC0000110,
-  MD_NTSTATUS_WIN_STATUS_ABIOS_LID_ALREADY_OWNED = 0xC0000111,
-  MD_NTSTATUS_WIN_STATUS_ABIOS_NOT_LID_OWNER = 0xC0000112,
-  MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_COMMAND = 0xC0000113,
-  MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_LID = 0xC0000114,
-  MD_NTSTATUS_WIN_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE = 0xC0000115,
-  MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_SELECTOR = 0xC0000116,
-  MD_NTSTATUS_WIN_STATUS_NO_LDT = 0xC0000117,
-  MD_NTSTATUS_WIN_STATUS_INVALID_LDT_SIZE = 0xC0000118,
-  MD_NTSTATUS_WIN_STATUS_INVALID_LDT_OFFSET = 0xC0000119,
-  MD_NTSTATUS_WIN_STATUS_INVALID_LDT_DESCRIPTOR = 0xC000011A,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_NE_FORMAT = 0xC000011B,
-  MD_NTSTATUS_WIN_STATUS_RXACT_INVALID_STATE = 0xC000011C,
-  MD_NTSTATUS_WIN_STATUS_RXACT_COMMIT_FAILURE = 0xC000011D,
-  MD_NTSTATUS_WIN_STATUS_MAPPED_FILE_SIZE_ZERO = 0xC000011E,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_OPENED_FILES = 0xC000011F,
-  MD_NTSTATUS_WIN_STATUS_CANCELLED = 0xC0000120,
-  MD_NTSTATUS_WIN_STATUS_CANNOT_DELETE = 0xC0000121,
-  MD_NTSTATUS_WIN_STATUS_INVALID_COMPUTER_NAME = 0xC0000122,
-  MD_NTSTATUS_WIN_STATUS_FILE_DELETED = 0xC0000123,
-  MD_NTSTATUS_WIN_STATUS_SPECIAL_ACCOUNT = 0xC0000124,
-  MD_NTSTATUS_WIN_STATUS_SPECIAL_GROUP = 0xC0000125,
-  MD_NTSTATUS_WIN_STATUS_SPECIAL_USER = 0xC0000126,
-  MD_NTSTATUS_WIN_STATUS_MEMBERS_PRIMARY_GROUP = 0xC0000127,
-  MD_NTSTATUS_WIN_STATUS_FILE_CLOSED = 0xC0000128,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_THREADS = 0xC0000129,
-  MD_NTSTATUS_WIN_STATUS_THREAD_NOT_IN_PROCESS = 0xC000012A,
-  MD_NTSTATUS_WIN_STATUS_TOKEN_ALREADY_IN_USE = 0xC000012B,
-  MD_NTSTATUS_WIN_STATUS_PAGEFILE_QUOTA_EXCEEDED = 0xC000012C,
-  MD_NTSTATUS_WIN_STATUS_COMMITMENT_LIMIT = 0xC000012D,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_LE_FORMAT = 0xC000012E,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_NOT_MZ = 0xC000012F,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_PROTECT = 0xC0000130,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_16 = 0xC0000131,
-  MD_NTSTATUS_WIN_STATUS_LOGON_SERVER_CONFLICT = 0xC0000132,
-  MD_NTSTATUS_WIN_STATUS_TIME_DIFFERENCE_AT_DC = 0xC0000133,
-  MD_NTSTATUS_WIN_STATUS_SYNCHRONIZATION_REQUIRED = 0xC0000134,
-  MD_NTSTATUS_WIN_STATUS_DLL_NOT_FOUND = 0xC0000135,
-  MD_NTSTATUS_WIN_STATUS_OPEN_FAILED = 0xC0000136,
-  MD_NTSTATUS_WIN_STATUS_IO_PRIVILEGE_FAILED = 0xC0000137,
-  MD_NTSTATUS_WIN_STATUS_ORDINAL_NOT_FOUND = 0xC0000138,
-  MD_NTSTATUS_WIN_STATUS_ENTRYPOINT_NOT_FOUND = 0xC0000139,
-  MD_NTSTATUS_WIN_STATUS_CONTROL_C_EXIT = 0xC000013A,
-  MD_NTSTATUS_WIN_STATUS_LOCAL_DISCONNECT = 0xC000013B,
-  MD_NTSTATUS_WIN_STATUS_REMOTE_DISCONNECT = 0xC000013C,
-  MD_NTSTATUS_WIN_STATUS_REMOTE_RESOURCES = 0xC000013D,
-  MD_NTSTATUS_WIN_STATUS_LINK_FAILED = 0xC000013E,
-  MD_NTSTATUS_WIN_STATUS_LINK_TIMEOUT = 0xC000013F,
-  MD_NTSTATUS_WIN_STATUS_INVALID_CONNECTION = 0xC0000140,
-  MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS = 0xC0000141,
-  MD_NTSTATUS_WIN_STATUS_DLL_INIT_FAILED = 0xC0000142,
-  MD_NTSTATUS_WIN_STATUS_MISSING_SYSTEMFILE = 0xC0000143,
-  MD_NTSTATUS_WIN_STATUS_UNHANDLED_EXCEPTION = 0xC0000144,
-  MD_NTSTATUS_WIN_STATUS_APP_INIT_FAILURE = 0xC0000145,
-  MD_NTSTATUS_WIN_STATUS_PAGEFILE_CREATE_FAILED = 0xC0000146,
-  MD_NTSTATUS_WIN_STATUS_NO_PAGEFILE = 0xC0000147,
-  MD_NTSTATUS_WIN_STATUS_INVALID_LEVEL = 0xC0000148,
-  MD_NTSTATUS_WIN_STATUS_WRONG_PASSWORD_CORE = 0xC0000149,
-  MD_NTSTATUS_WIN_STATUS_ILLEGAL_FLOAT_CONTEXT = 0xC000014A,
-  MD_NTSTATUS_WIN_STATUS_PIPE_BROKEN = 0xC000014B,
-  MD_NTSTATUS_WIN_STATUS_REGISTRY_CORRUPT = 0xC000014C,
-  MD_NTSTATUS_WIN_STATUS_REGISTRY_IO_FAILED = 0xC000014D,
-  MD_NTSTATUS_WIN_STATUS_NO_EVENT_PAIR = 0xC000014E,
-  MD_NTSTATUS_WIN_STATUS_UNRECOGNIZED_VOLUME = 0xC000014F,
-  MD_NTSTATUS_WIN_STATUS_SERIAL_NO_DEVICE_INITED = 0xC0000150,
-  MD_NTSTATUS_WIN_STATUS_NO_SUCH_ALIAS = 0xC0000151,
-  MD_NTSTATUS_WIN_STATUS_MEMBER_NOT_IN_ALIAS = 0xC0000152,
-  MD_NTSTATUS_WIN_STATUS_MEMBER_IN_ALIAS = 0xC0000153,
-  MD_NTSTATUS_WIN_STATUS_ALIAS_EXISTS = 0xC0000154,
-  MD_NTSTATUS_WIN_STATUS_LOGON_NOT_GRANTED = 0xC0000155,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_SECRETS = 0xC0000156,
-  MD_NTSTATUS_WIN_STATUS_SECRET_TOO_LONG = 0xC0000157,
-  MD_NTSTATUS_WIN_STATUS_INTERNAL_DB_ERROR = 0xC0000158,
-  MD_NTSTATUS_WIN_STATUS_FULLSCREEN_MODE = 0xC0000159,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_CONTEXT_IDS = 0xC000015A,
-  MD_NTSTATUS_WIN_STATUS_LOGON_TYPE_NOT_GRANTED = 0xC000015B,
-  MD_NTSTATUS_WIN_STATUS_NOT_REGISTRY_FILE = 0xC000015C,
-  MD_NTSTATUS_WIN_STATUS_NT_CROSS_ENCRYPTION_REQUIRED = 0xC000015D,
-  MD_NTSTATUS_WIN_STATUS_DOMAIN_CTRLR_CONFIG_ERROR = 0xC000015E,
-  MD_NTSTATUS_WIN_STATUS_FT_MISSING_MEMBER = 0xC000015F,
-  MD_NTSTATUS_WIN_STATUS_ILL_FORMED_SERVICE_ENTRY = 0xC0000160,
-  MD_NTSTATUS_WIN_STATUS_ILLEGAL_CHARACTER = 0xC0000161,
-  MD_NTSTATUS_WIN_STATUS_UNMAPPABLE_CHARACTER = 0xC0000162,
-  MD_NTSTATUS_WIN_STATUS_UNDEFINED_CHARACTER = 0xC0000163,
-  MD_NTSTATUS_WIN_STATUS_FLOPPY_VOLUME = 0xC0000164,
-  MD_NTSTATUS_WIN_STATUS_FLOPPY_ID_MARK_NOT_FOUND = 0xC0000165,
-  MD_NTSTATUS_WIN_STATUS_FLOPPY_WRONG_CYLINDER = 0xC0000166,
-  MD_NTSTATUS_WIN_STATUS_FLOPPY_UNKNOWN_ERROR = 0xC0000167,
-  MD_NTSTATUS_WIN_STATUS_FLOPPY_BAD_REGISTERS = 0xC0000168,
-  MD_NTSTATUS_WIN_STATUS_DISK_RECALIBRATE_FAILED = 0xC0000169,
-  MD_NTSTATUS_WIN_STATUS_DISK_OPERATION_FAILED = 0xC000016A,
-  MD_NTSTATUS_WIN_STATUS_DISK_RESET_FAILED = 0xC000016B,
-  MD_NTSTATUS_WIN_STATUS_SHARED_IRQ_BUSY = 0xC000016C,
-  MD_NTSTATUS_WIN_STATUS_FT_ORPHANING = 0xC000016D,
-  MD_NTSTATUS_WIN_STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT = 0xC000016E,
-  MD_NTSTATUS_WIN_STATUS_PARTITION_FAILURE = 0xC0000172,
-  MD_NTSTATUS_WIN_STATUS_INVALID_BLOCK_LENGTH = 0xC0000173,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_PARTITIONED = 0xC0000174,
-  MD_NTSTATUS_WIN_STATUS_UNABLE_TO_LOCK_MEDIA = 0xC0000175,
-  MD_NTSTATUS_WIN_STATUS_UNABLE_TO_UNLOAD_MEDIA = 0xC0000176,
-  MD_NTSTATUS_WIN_STATUS_EOM_OVERFLOW = 0xC0000177,
-  MD_NTSTATUS_WIN_STATUS_NO_MEDIA = 0xC0000178,
-  MD_NTSTATUS_WIN_STATUS_NO_SUCH_MEMBER = 0xC000017A,
-  MD_NTSTATUS_WIN_STATUS_INVALID_MEMBER = 0xC000017B,
-  MD_NTSTATUS_WIN_STATUS_KEY_DELETED = 0xC000017C,
-  MD_NTSTATUS_WIN_STATUS_NO_LOG_SPACE = 0xC000017D,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_SIDS = 0xC000017E,
-  MD_NTSTATUS_WIN_STATUS_LM_CROSS_ENCRYPTION_REQUIRED = 0xC000017F,
-  MD_NTSTATUS_WIN_STATUS_KEY_HAS_CHILDREN = 0xC0000180,
-  MD_NTSTATUS_WIN_STATUS_CHILD_MUST_BE_VOLATILE = 0xC0000181,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_CONFIGURATION_ERROR = 0xC0000182,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_INTERNAL_ERROR = 0xC0000183,
-  MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_STATE = 0xC0000184,
-  MD_NTSTATUS_WIN_STATUS_IO_DEVICE_ERROR = 0xC0000185,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_PROTOCOL_ERROR = 0xC0000186,
-  MD_NTSTATUS_WIN_STATUS_BACKUP_CONTROLLER = 0xC0000187,
-  MD_NTSTATUS_WIN_STATUS_LOG_FILE_FULL = 0xC0000188,
-  MD_NTSTATUS_WIN_STATUS_TOO_LATE = 0xC0000189,
-  MD_NTSTATUS_WIN_STATUS_NO_TRUST_LSA_SECRET = 0xC000018A,
-  MD_NTSTATUS_WIN_STATUS_NO_TRUST_SAM_ACCOUNT = 0xC000018B,
-  MD_NTSTATUS_WIN_STATUS_TRUSTED_DOMAIN_FAILURE = 0xC000018C,
-  MD_NTSTATUS_WIN_STATUS_TRUSTED_RELATIONSHIP_FAILURE = 0xC000018D,
-  MD_NTSTATUS_WIN_STATUS_EVENTLOG_FILE_CORRUPT = 0xC000018E,
-  MD_NTSTATUS_WIN_STATUS_EVENTLOG_CANT_START = 0xC000018F,
-  MD_NTSTATUS_WIN_STATUS_TRUST_FAILURE = 0xC0000190,
-  MD_NTSTATUS_WIN_STATUS_MUTANT_LIMIT_EXCEEDED = 0xC0000191,
-  MD_NTSTATUS_WIN_STATUS_NETLOGON_NOT_STARTED = 0xC0000192,
-  MD_NTSTATUS_WIN_STATUS_ACCOUNT_EXPIRED = 0xC0000193,
-  MD_NTSTATUS_WIN_STATUS_POSSIBLE_DEADLOCK = 0xC0000194,
-  MD_NTSTATUS_WIN_STATUS_NETWORK_CREDENTIAL_CONFLICT = 0xC0000195,
-  MD_NTSTATUS_WIN_STATUS_REMOTE_SESSION_LIMIT = 0xC0000196,
-  MD_NTSTATUS_WIN_STATUS_EVENTLOG_FILE_CHANGED = 0xC0000197,
-  MD_NTSTATUS_WIN_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 0xC0000198,
-  MD_NTSTATUS_WIN_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 0xC0000199,
-  MD_NTSTATUS_WIN_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT = 0xC000019A,
-  MD_NTSTATUS_WIN_STATUS_DOMAIN_TRUST_INCONSISTENT = 0xC000019B,
-  MD_NTSTATUS_WIN_STATUS_FS_DRIVER_REQUIRED = 0xC000019C,
-  MD_NTSTATUS_WIN_STATUS_IMAGE_ALREADY_LOADED_AS_DLL = 0xC000019D,
-  MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING = 0xC000019E,
-  MD_NTSTATUS_WIN_STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME = 0xC000019F,
-  MD_NTSTATUS_WIN_STATUS_SECURITY_STREAM_IS_INCONSISTENT = 0xC00001A0,
-  MD_NTSTATUS_WIN_STATUS_INVALID_LOCK_RANGE = 0xC00001A1,
-  MD_NTSTATUS_WIN_STATUS_INVALID_ACE_CONDITION = 0xC00001A2,
-  MD_NTSTATUS_WIN_STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT = 0xC00001A3,
-  MD_NTSTATUS_WIN_STATUS_NOTIFICATION_GUID_ALREADY_DEFINED = 0xC00001A4,
-  MD_NTSTATUS_WIN_STATUS_INVALID_EXCEPTION_HANDLER = 0xC00001A5,
-  MD_NTSTATUS_WIN_STATUS_DUPLICATE_PRIVILEGES = 0xC00001A6,
-  MD_NTSTATUS_WIN_STATUS_NOT_ALLOWED_ON_SYSTEM_FILE = 0xC00001A7,
-  MD_NTSTATUS_WIN_STATUS_REPAIR_NEEDED = 0xC00001A8,
-  MD_NTSTATUS_WIN_STATUS_QUOTA_NOT_ENABLED = 0xC00001A9,
-  MD_NTSTATUS_WIN_STATUS_NO_APPLICATION_PACKAGE = 0xC00001AA,
-  MD_NTSTATUS_WIN_STATUS_NETWORK_OPEN_RESTRICTION = 0xC0000201,
-  MD_NTSTATUS_WIN_STATUS_NO_USER_SESSION_KEY = 0xC0000202,
-  MD_NTSTATUS_WIN_STATUS_USER_SESSION_DELETED = 0xC0000203,
-  MD_NTSTATUS_WIN_STATUS_RESOURCE_LANG_NOT_FOUND = 0xC0000204,
-  MD_NTSTATUS_WIN_STATUS_INSUFF_SERVER_RESOURCES = 0xC0000205,
-  MD_NTSTATUS_WIN_STATUS_INVALID_BUFFER_SIZE = 0xC0000206,
-  MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS_COMPONENT = 0xC0000207,
-  MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS_WILDCARD = 0xC0000208,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_ADDRESSES = 0xC0000209,
-  MD_NTSTATUS_WIN_STATUS_ADDRESS_ALREADY_EXISTS = 0xC000020A,
-  MD_NTSTATUS_WIN_STATUS_ADDRESS_CLOSED = 0xC000020B,
-  MD_NTSTATUS_WIN_STATUS_CONNECTION_DISCONNECTED = 0xC000020C,
-  MD_NTSTATUS_WIN_STATUS_CONNECTION_RESET = 0xC000020D,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_NODES = 0xC000020E,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_ABORTED = 0xC000020F,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_TIMED_OUT = 0xC0000210,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_RELEASE = 0xC0000211,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_MATCH = 0xC0000212,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_RESPONDED = 0xC0000213,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_ID = 0xC0000214,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_TYPE = 0xC0000215,
-  MD_NTSTATUS_WIN_STATUS_NOT_SERVER_SESSION = 0xC0000216,
-  MD_NTSTATUS_WIN_STATUS_NOT_CLIENT_SESSION = 0xC0000217,
-  MD_NTSTATUS_WIN_STATUS_CANNOT_LOAD_REGISTRY_FILE = 0xC0000218,
-  MD_NTSTATUS_WIN_STATUS_DEBUG_ATTACH_FAILED = 0xC0000219,
-  MD_NTSTATUS_WIN_STATUS_SYSTEM_PROCESS_TERMINATED = 0xC000021A,
-  MD_NTSTATUS_WIN_STATUS_DATA_NOT_ACCEPTED = 0xC000021B,
-  MD_NTSTATUS_WIN_STATUS_NO_BROWSER_SERVERS_FOUND = 0xC000021C,
-  MD_NTSTATUS_WIN_STATUS_VDM_HARD_ERROR = 0xC000021D,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_CANCEL_TIMEOUT = 0xC000021E,
-  MD_NTSTATUS_WIN_STATUS_REPLY_MESSAGE_MISMATCH = 0xC000021F,
-  MD_NTSTATUS_WIN_STATUS_MAPPED_ALIGNMENT = 0xC0000220,
-  MD_NTSTATUS_WIN_STATUS_IMAGE_CHECKSUM_MISMATCH = 0xC0000221,
-  MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA = 0xC0000222,
-  MD_NTSTATUS_WIN_STATUS_CLIENT_SERVER_PARAMETERS_INVALID = 0xC0000223,
-  MD_NTSTATUS_WIN_STATUS_PASSWORD_MUST_CHANGE = 0xC0000224,
-  MD_NTSTATUS_WIN_STATUS_NOT_FOUND = 0xC0000225,
-  MD_NTSTATUS_WIN_STATUS_NOT_TINY_STREAM = 0xC0000226,
-  MD_NTSTATUS_WIN_STATUS_RECOVERY_FAILURE = 0xC0000227,
-  MD_NTSTATUS_WIN_STATUS_STACK_OVERFLOW_READ = 0xC0000228,
-  MD_NTSTATUS_WIN_STATUS_FAIL_CHECK = 0xC0000229,
-  MD_NTSTATUS_WIN_STATUS_DUPLICATE_OBJECTID = 0xC000022A,
-  MD_NTSTATUS_WIN_STATUS_OBJECTID_EXISTS = 0xC000022B,
-  MD_NTSTATUS_WIN_STATUS_CONVERT_TO_LARGE = 0xC000022C,
-  MD_NTSTATUS_WIN_STATUS_RETRY = 0xC000022D,
-  MD_NTSTATUS_WIN_STATUS_FOUND_OUT_OF_SCOPE = 0xC000022E,
-  MD_NTSTATUS_WIN_STATUS_ALLOCATE_BUCKET = 0xC000022F,
-  MD_NTSTATUS_WIN_STATUS_PROPSET_NOT_FOUND = 0xC0000230,
-  MD_NTSTATUS_WIN_STATUS_MARSHALL_OVERFLOW = 0xC0000231,
-  MD_NTSTATUS_WIN_STATUS_INVALID_VARIANT = 0xC0000232,
-  MD_NTSTATUS_WIN_STATUS_DOMAIN_CONTROLLER_NOT_FOUND = 0xC0000233,
-  MD_NTSTATUS_WIN_STATUS_ACCOUNT_LOCKED_OUT = 0xC0000234,
-  MD_NTSTATUS_WIN_STATUS_HANDLE_NOT_CLOSABLE = 0xC0000235,
-  MD_NTSTATUS_WIN_STATUS_CONNECTION_REFUSED = 0xC0000236,
-  MD_NTSTATUS_WIN_STATUS_GRACEFUL_DISCONNECT = 0xC0000237,
-  MD_NTSTATUS_WIN_STATUS_ADDRESS_ALREADY_ASSOCIATED = 0xC0000238,
-  MD_NTSTATUS_WIN_STATUS_ADDRESS_NOT_ASSOCIATED = 0xC0000239,
-  MD_NTSTATUS_WIN_STATUS_CONNECTION_INVALID = 0xC000023A,
-  MD_NTSTATUS_WIN_STATUS_CONNECTION_ACTIVE = 0xC000023B,
-  MD_NTSTATUS_WIN_STATUS_NETWORK_UNREACHABLE = 0xC000023C,
-  MD_NTSTATUS_WIN_STATUS_HOST_UNREACHABLE = 0xC000023D,
-  MD_NTSTATUS_WIN_STATUS_PROTOCOL_UNREACHABLE = 0xC000023E,
-  MD_NTSTATUS_WIN_STATUS_PORT_UNREACHABLE = 0xC000023F,
-  MD_NTSTATUS_WIN_STATUS_REQUEST_ABORTED = 0xC0000240,
-  MD_NTSTATUS_WIN_STATUS_CONNECTION_ABORTED = 0xC0000241,
-  MD_NTSTATUS_WIN_STATUS_BAD_COMPRESSION_BUFFER = 0xC0000242,
-  MD_NTSTATUS_WIN_STATUS_USER_MAPPED_FILE = 0xC0000243,
-  MD_NTSTATUS_WIN_STATUS_AUDIT_FAILED = 0xC0000244,
-  MD_NTSTATUS_WIN_STATUS_TIMER_RESOLUTION_NOT_SET = 0xC0000245,
-  MD_NTSTATUS_WIN_STATUS_CONNECTION_COUNT_LIMIT = 0xC0000246,
-  MD_NTSTATUS_WIN_STATUS_LOGIN_TIME_RESTRICTION = 0xC0000247,
-  MD_NTSTATUS_WIN_STATUS_LOGIN_WKSTA_RESTRICTION = 0xC0000248,
-  MD_NTSTATUS_WIN_STATUS_IMAGE_MP_UP_MISMATCH = 0xC0000249,
-  MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_LOGON_INFO = 0xC0000250,
-  MD_NTSTATUS_WIN_STATUS_BAD_DLL_ENTRYPOINT = 0xC0000251,
-  MD_NTSTATUS_WIN_STATUS_BAD_SERVICE_ENTRYPOINT = 0xC0000252,
-  MD_NTSTATUS_WIN_STATUS_LPC_REPLY_LOST = 0xC0000253,
-  MD_NTSTATUS_WIN_STATUS_IP_ADDRESS_CONFLICT1 = 0xC0000254,
-  MD_NTSTATUS_WIN_STATUS_IP_ADDRESS_CONFLICT2 = 0xC0000255,
-  MD_NTSTATUS_WIN_STATUS_REGISTRY_QUOTA_LIMIT = 0xC0000256,
-  MD_NTSTATUS_WIN_STATUS_PATH_NOT_COVERED = 0xC0000257,
-  MD_NTSTATUS_WIN_STATUS_NO_CALLBACK_ACTIVE = 0xC0000258,
-  MD_NTSTATUS_WIN_STATUS_LICENSE_QUOTA_EXCEEDED = 0xC0000259,
-  MD_NTSTATUS_WIN_STATUS_PWD_TOO_SHORT = 0xC000025A,
-  MD_NTSTATUS_WIN_STATUS_PWD_TOO_RECENT = 0xC000025B,
-  MD_NTSTATUS_WIN_STATUS_PWD_HISTORY_CONFLICT = 0xC000025C,
-  MD_NTSTATUS_WIN_STATUS_PLUGPLAY_NO_DEVICE = 0xC000025E,
-  MD_NTSTATUS_WIN_STATUS_UNSUPPORTED_COMPRESSION = 0xC000025F,
-  MD_NTSTATUS_WIN_STATUS_INVALID_HW_PROFILE = 0xC0000260,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PLUGPLAY_DEVICE_PATH = 0xC0000261,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_ORDINAL_NOT_FOUND = 0xC0000262,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND = 0xC0000263,
-  MD_NTSTATUS_WIN_STATUS_RESOURCE_NOT_OWNED = 0xC0000264,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_LINKS = 0xC0000265,
-  MD_NTSTATUS_WIN_STATUS_QUOTA_LIST_INCONSISTENT = 0xC0000266,
-  MD_NTSTATUS_WIN_STATUS_FILE_IS_OFFLINE = 0xC0000267,
-  MD_NTSTATUS_WIN_STATUS_EVALUATION_EXPIRATION = 0xC0000268,
-  MD_NTSTATUS_WIN_STATUS_ILLEGAL_DLL_RELOCATION = 0xC0000269,
-  MD_NTSTATUS_WIN_STATUS_LICENSE_VIOLATION = 0xC000026A,
-  MD_NTSTATUS_WIN_STATUS_DLL_INIT_FAILED_LOGOFF = 0xC000026B,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_UNABLE_TO_LOAD = 0xC000026C,
-  MD_NTSTATUS_WIN_STATUS_DFS_UNAVAILABLE = 0xC000026D,
-  MD_NTSTATUS_WIN_STATUS_VOLUME_DISMOUNTED = 0xC000026E,
-  MD_NTSTATUS_WIN_STATUS_WX86_INTERNAL_ERROR = 0xC000026F,
-  MD_NTSTATUS_WIN_STATUS_WX86_FLOAT_STACK_CHECK = 0xC0000270,
-  MD_NTSTATUS_WIN_STATUS_VALIDATE_CONTINUE = 0xC0000271,
-  MD_NTSTATUS_WIN_STATUS_NO_MATCH = 0xC0000272,
-  MD_NTSTATUS_WIN_STATUS_NO_MORE_MATCHES = 0xC0000273,
-  MD_NTSTATUS_WIN_STATUS_NOT_A_REPARSE_POINT = 0xC0000275,
-  MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_INVALID = 0xC0000276,
-  MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_MISMATCH = 0xC0000277,
-  MD_NTSTATUS_WIN_STATUS_IO_REPARSE_DATA_INVALID = 0xC0000278,
-  MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_NOT_HANDLED = 0xC0000279,
-  MD_NTSTATUS_WIN_STATUS_PWD_TOO_LONG = 0xC000027A,
-  MD_NTSTATUS_WIN_STATUS_STOWED_EXCEPTION = 0xC000027B,
-  MD_NTSTATUS_WIN_STATUS_REPARSE_POINT_NOT_RESOLVED = 0xC0000280,
-  MD_NTSTATUS_WIN_STATUS_DIRECTORY_IS_A_REPARSE_POINT = 0xC0000281,
-  MD_NTSTATUS_WIN_STATUS_RANGE_LIST_CONFLICT = 0xC0000282,
-  MD_NTSTATUS_WIN_STATUS_SOURCE_ELEMENT_EMPTY = 0xC0000283,
-  MD_NTSTATUS_WIN_STATUS_DESTINATION_ELEMENT_FULL = 0xC0000284,
-  MD_NTSTATUS_WIN_STATUS_ILLEGAL_ELEMENT_ADDRESS = 0xC0000285,
-  MD_NTSTATUS_WIN_STATUS_MAGAZINE_NOT_PRESENT = 0xC0000286,
-  MD_NTSTATUS_WIN_STATUS_REINITIALIZATION_NEEDED = 0xC0000287,
-  MD_NTSTATUS_WIN_STATUS_ENCRYPTION_FAILED = 0xC000028A,
-  MD_NTSTATUS_WIN_STATUS_DECRYPTION_FAILED = 0xC000028B,
-  MD_NTSTATUS_WIN_STATUS_RANGE_NOT_FOUND = 0xC000028C,
-  MD_NTSTATUS_WIN_STATUS_NO_RECOVERY_POLICY = 0xC000028D,
-  MD_NTSTATUS_WIN_STATUS_NO_EFS = 0xC000028E,
-  MD_NTSTATUS_WIN_STATUS_WRONG_EFS = 0xC000028F,
-  MD_NTSTATUS_WIN_STATUS_NO_USER_KEYS = 0xC0000290,
-  MD_NTSTATUS_WIN_STATUS_FILE_NOT_ENCRYPTED = 0xC0000291,
-  MD_NTSTATUS_WIN_STATUS_NOT_EXPORT_FORMAT = 0xC0000292,
-  MD_NTSTATUS_WIN_STATUS_FILE_ENCRYPTED = 0xC0000293,
-  MD_NTSTATUS_WIN_STATUS_WMI_GUID_NOT_FOUND = 0xC0000295,
-  MD_NTSTATUS_WIN_STATUS_WMI_INSTANCE_NOT_FOUND = 0xC0000296,
-  MD_NTSTATUS_WIN_STATUS_WMI_ITEMID_NOT_FOUND = 0xC0000297,
-  MD_NTSTATUS_WIN_STATUS_WMI_TRY_AGAIN = 0xC0000298,
-  MD_NTSTATUS_WIN_STATUS_SHARED_POLICY = 0xC0000299,
-  MD_NTSTATUS_WIN_STATUS_POLICY_OBJECT_NOT_FOUND = 0xC000029A,
-  MD_NTSTATUS_WIN_STATUS_POLICY_ONLY_IN_DS = 0xC000029B,
-  MD_NTSTATUS_WIN_STATUS_VOLUME_NOT_UPGRADED = 0xC000029C,
-  MD_NTSTATUS_WIN_STATUS_REMOTE_STORAGE_NOT_ACTIVE = 0xC000029D,
-  MD_NTSTATUS_WIN_STATUS_REMOTE_STORAGE_MEDIA_ERROR = 0xC000029E,
-  MD_NTSTATUS_WIN_STATUS_NO_TRACKING_SERVICE = 0xC000029F,
-  MD_NTSTATUS_WIN_STATUS_SERVER_SID_MISMATCH = 0xC00002A0,
-  MD_NTSTATUS_WIN_STATUS_DS_NO_ATTRIBUTE_OR_VALUE = 0xC00002A1,
-  MD_NTSTATUS_WIN_STATUS_DS_INVALID_ATTRIBUTE_SYNTAX = 0xC00002A2,
-  MD_NTSTATUS_WIN_STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED = 0xC00002A3,
-  MD_NTSTATUS_WIN_STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS = 0xC00002A4,
-  MD_NTSTATUS_WIN_STATUS_DS_BUSY = 0xC00002A5,
-  MD_NTSTATUS_WIN_STATUS_DS_UNAVAILABLE = 0xC00002A6,
-  MD_NTSTATUS_WIN_STATUS_DS_NO_RIDS_ALLOCATED = 0xC00002A7,
-  MD_NTSTATUS_WIN_STATUS_DS_NO_MORE_RIDS = 0xC00002A8,
-  MD_NTSTATUS_WIN_STATUS_DS_INCORRECT_ROLE_OWNER = 0xC00002A9,
-  MD_NTSTATUS_WIN_STATUS_DS_RIDMGR_INIT_ERROR = 0xC00002AA,
-  MD_NTSTATUS_WIN_STATUS_DS_OBJ_CLASS_VIOLATION = 0xC00002AB,
-  MD_NTSTATUS_WIN_STATUS_DS_CANT_ON_NON_LEAF = 0xC00002AC,
-  MD_NTSTATUS_WIN_STATUS_DS_CANT_ON_RDN = 0xC00002AD,
-  MD_NTSTATUS_WIN_STATUS_DS_CANT_MOD_OBJ_CLASS = 0xC00002AE,
-  MD_NTSTATUS_WIN_STATUS_DS_CROSS_DOM_MOVE_FAILED = 0xC00002AF,
-  MD_NTSTATUS_WIN_STATUS_DS_GC_NOT_AVAILABLE = 0xC00002B0,
-  MD_NTSTATUS_WIN_STATUS_DIRECTORY_SERVICE_REQUIRED = 0xC00002B1,
-  MD_NTSTATUS_WIN_STATUS_REPARSE_ATTRIBUTE_CONFLICT = 0xC00002B2,
-  MD_NTSTATUS_WIN_STATUS_CANT_ENABLE_DENY_ONLY = 0xC00002B3,
-  MD_NTSTATUS_WIN_STATUS_FLOAT_MULTIPLE_FAULTS = 0xC00002B4,
-  MD_NTSTATUS_WIN_STATUS_FLOAT_MULTIPLE_TRAPS = 0xC00002B5,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_REMOVED = 0xC00002B6,
-  MD_NTSTATUS_WIN_STATUS_JOURNAL_DELETE_IN_PROGRESS = 0xC00002B7,
-  MD_NTSTATUS_WIN_STATUS_JOURNAL_NOT_ACTIVE = 0xC00002B8,
-  MD_NTSTATUS_WIN_STATUS_NOINTERFACE = 0xC00002B9,
-  MD_NTSTATUS_WIN_STATUS_DS_RIDMGR_DISABLED = 0xC00002BA,
-  MD_NTSTATUS_WIN_STATUS_DS_ADMIN_LIMIT_EXCEEDED = 0xC00002C1,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_FAILED_SLEEP = 0xC00002C2,
-  MD_NTSTATUS_WIN_STATUS_MUTUAL_AUTHENTICATION_FAILED = 0xC00002C3,
-  MD_NTSTATUS_WIN_STATUS_CORRUPT_SYSTEM_FILE = 0xC00002C4,
-  MD_NTSTATUS_WIN_STATUS_DATATYPE_MISALIGNMENT_ERROR = 0xC00002C5,
-  MD_NTSTATUS_WIN_STATUS_WMI_READ_ONLY = 0xC00002C6,
-  MD_NTSTATUS_WIN_STATUS_WMI_SET_FAILURE = 0xC00002C7,
-  MD_NTSTATUS_WIN_STATUS_COMMITMENT_MINIMUM = 0xC00002C8,
-  MD_NTSTATUS_WIN_STATUS_REG_NAT_CONSUMPTION = 0xC00002C9,
-  MD_NTSTATUS_WIN_STATUS_TRANSPORT_FULL = 0xC00002CA,
-  MD_NTSTATUS_WIN_STATUS_DS_SAM_INIT_FAILURE = 0xC00002CB,
-  MD_NTSTATUS_WIN_STATUS_ONLY_IF_CONNECTED = 0xC00002CC,
-  MD_NTSTATUS_WIN_STATUS_DS_SENSITIVE_GROUP_VIOLATION = 0xC00002CD,
-  MD_NTSTATUS_WIN_STATUS_PNP_RESTART_ENUMERATION = 0xC00002CE,
-  MD_NTSTATUS_WIN_STATUS_JOURNAL_ENTRY_DELETED = 0xC00002CF,
-  MD_NTSTATUS_WIN_STATUS_DS_CANT_MOD_PRIMARYGROUPID = 0xC00002D0,
-  MD_NTSTATUS_WIN_STATUS_SYSTEM_IMAGE_BAD_SIGNATURE = 0xC00002D1,
-  MD_NTSTATUS_WIN_STATUS_PNP_REBOOT_REQUIRED = 0xC00002D2,
-  MD_NTSTATUS_WIN_STATUS_POWER_STATE_INVALID = 0xC00002D3,
-  MD_NTSTATUS_WIN_STATUS_DS_INVALID_GROUP_TYPE = 0xC00002D4,
-  MD_NTSTATUS_WIN_STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN = 0xC00002D5,
-  MD_NTSTATUS_WIN_STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN = 0xC00002D6,
-  MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER = 0xC00002D7,
-  MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER = 0xC00002D8,
-  MD_NTSTATUS_WIN_STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER = 0xC00002D9,
-  MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER = 0xC00002DA,
-  MD_NTSTATUS_WIN_STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER = 0xC00002DB,
-  MD_NTSTATUS_WIN_STATUS_DS_HAVE_PRIMARY_MEMBERS = 0xC00002DC,
-  MD_NTSTATUS_WIN_STATUS_WMI_NOT_SUPPORTED = 0xC00002DD,
-  MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_POWER = 0xC00002DE,
-  MD_NTSTATUS_WIN_STATUS_SAM_NEED_BOOTKEY_PASSWORD = 0xC00002DF,
-  MD_NTSTATUS_WIN_STATUS_SAM_NEED_BOOTKEY_FLOPPY = 0xC00002E0,
-  MD_NTSTATUS_WIN_STATUS_DS_CANT_START = 0xC00002E1,
-  MD_NTSTATUS_WIN_STATUS_DS_INIT_FAILURE = 0xC00002E2,
-  MD_NTSTATUS_WIN_STATUS_SAM_INIT_FAILURE = 0xC00002E3,
-  MD_NTSTATUS_WIN_STATUS_DS_GC_REQUIRED = 0xC00002E4,
-  MD_NTSTATUS_WIN_STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY = 0xC00002E5,
-  MD_NTSTATUS_WIN_STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS = 0xC00002E6,
-  MD_NTSTATUS_WIN_STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED = 0xC00002E7,
-  MD_NTSTATUS_WIN_STATUS_MULTIPLE_FAULT_VIOLATION = 0xC00002E8,
-  MD_NTSTATUS_WIN_STATUS_CURRENT_DOMAIN_NOT_ALLOWED = 0xC00002E9,
-  MD_NTSTATUS_WIN_STATUS_CANNOT_MAKE = 0xC00002EA,
-  MD_NTSTATUS_WIN_STATUS_SYSTEM_SHUTDOWN = 0xC00002EB,
-  MD_NTSTATUS_WIN_STATUS_DS_INIT_FAILURE_CONSOLE = 0xC00002EC,
-  MD_NTSTATUS_WIN_STATUS_DS_SAM_INIT_FAILURE_CONSOLE = 0xC00002ED,
-  MD_NTSTATUS_WIN_STATUS_UNFINISHED_CONTEXT_DELETED = 0xC00002EE,
-  MD_NTSTATUS_WIN_STATUS_NO_TGT_REPLY = 0xC00002EF,
-  MD_NTSTATUS_WIN_STATUS_OBJECTID_NOT_FOUND = 0xC00002F0,
-  MD_NTSTATUS_WIN_STATUS_NO_IP_ADDRESSES = 0xC00002F1,
-  MD_NTSTATUS_WIN_STATUS_WRONG_CREDENTIAL_HANDLE = 0xC00002F2,
-  MD_NTSTATUS_WIN_STATUS_CRYPTO_SYSTEM_INVALID = 0xC00002F3,
-  MD_NTSTATUS_WIN_STATUS_MAX_REFERRALS_EXCEEDED = 0xC00002F4,
-  MD_NTSTATUS_WIN_STATUS_MUST_BE_KDC = 0xC00002F5,
-  MD_NTSTATUS_WIN_STATUS_STRONG_CRYPTO_NOT_SUPPORTED = 0xC00002F6,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_PRINCIPALS = 0xC00002F7,
-  MD_NTSTATUS_WIN_STATUS_NO_PA_DATA = 0xC00002F8,
-  MD_NTSTATUS_WIN_STATUS_PKINIT_NAME_MISMATCH = 0xC00002F9,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_LOGON_REQUIRED = 0xC00002FA,
-  MD_NTSTATUS_WIN_STATUS_KDC_INVALID_REQUEST = 0xC00002FB,
-  MD_NTSTATUS_WIN_STATUS_KDC_UNABLE_TO_REFER = 0xC00002FC,
-  MD_NTSTATUS_WIN_STATUS_KDC_UNKNOWN_ETYPE = 0xC00002FD,
-  MD_NTSTATUS_WIN_STATUS_SHUTDOWN_IN_PROGRESS = 0xC00002FE,
-  MD_NTSTATUS_WIN_STATUS_SERVER_SHUTDOWN_IN_PROGRESS = 0xC00002FF,
-  MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_ON_SBS = 0xC0000300,
-  MD_NTSTATUS_WIN_STATUS_WMI_GUID_DISCONNECTED = 0xC0000301,
-  MD_NTSTATUS_WIN_STATUS_WMI_ALREADY_DISABLED = 0xC0000302,
-  MD_NTSTATUS_WIN_STATUS_WMI_ALREADY_ENABLED = 0xC0000303,
-  MD_NTSTATUS_WIN_STATUS_MFT_TOO_FRAGMENTED = 0xC0000304,
-  MD_NTSTATUS_WIN_STATUS_COPY_PROTECTION_FAILURE = 0xC0000305,
-  MD_NTSTATUS_WIN_STATUS_CSS_AUTHENTICATION_FAILURE = 0xC0000306,
-  MD_NTSTATUS_WIN_STATUS_CSS_KEY_NOT_PRESENT = 0xC0000307,
-  MD_NTSTATUS_WIN_STATUS_CSS_KEY_NOT_ESTABLISHED = 0xC0000308,
-  MD_NTSTATUS_WIN_STATUS_CSS_SCRAMBLED_SECTOR = 0xC0000309,
-  MD_NTSTATUS_WIN_STATUS_CSS_REGION_MISMATCH = 0xC000030A,
-  MD_NTSTATUS_WIN_STATUS_CSS_RESETS_EXHAUSTED = 0xC000030B,
-  MD_NTSTATUS_WIN_STATUS_PASSWORD_CHANGE_REQUIRED = 0xC000030C,
-  MD_NTSTATUS_WIN_STATUS_PKINIT_FAILURE = 0xC0000320,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_SUBSYSTEM_FAILURE = 0xC0000321,
-  MD_NTSTATUS_WIN_STATUS_NO_KERB_KEY = 0xC0000322,
-  MD_NTSTATUS_WIN_STATUS_HOST_DOWN = 0xC0000350,
-  MD_NTSTATUS_WIN_STATUS_UNSUPPORTED_PREAUTH = 0xC0000351,
-  MD_NTSTATUS_WIN_STATUS_EFS_ALG_BLOB_TOO_BIG = 0xC0000352,
-  MD_NTSTATUS_WIN_STATUS_PORT_NOT_SET = 0xC0000353,
-  MD_NTSTATUS_WIN_STATUS_DEBUGGER_INACTIVE = 0xC0000354,
-  MD_NTSTATUS_WIN_STATUS_DS_VERSION_CHECK_FAILURE = 0xC0000355,
-  MD_NTSTATUS_WIN_STATUS_AUDITING_DISABLED = 0xC0000356,
-  MD_NTSTATUS_WIN_STATUS_PRENT4_MACHINE_ACCOUNT = 0xC0000357,
-  MD_NTSTATUS_WIN_STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER = 0xC0000358,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_32 = 0xC0000359,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_64 = 0xC000035A,
-  MD_NTSTATUS_WIN_STATUS_BAD_BINDINGS = 0xC000035B,
-  MD_NTSTATUS_WIN_STATUS_NETWORK_SESSION_EXPIRED = 0xC000035C,
-  MD_NTSTATUS_WIN_STATUS_APPHELP_BLOCK = 0xC000035D,
-  MD_NTSTATUS_WIN_STATUS_ALL_SIDS_FILTERED = 0xC000035E,
-  MD_NTSTATUS_WIN_STATUS_NOT_SAFE_MODE_DRIVER = 0xC000035F,
-  MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT = 0xC0000361,
-  MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_PATH = 0xC0000362,
-  MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER = 0xC0000363,
-  MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_OTHER = 0xC0000364,
-  MD_NTSTATUS_WIN_STATUS_FAILED_DRIVER_ENTRY = 0xC0000365,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_ENUMERATION_ERROR = 0xC0000366,
-  MD_NTSTATUS_WIN_STATUS_MOUNT_POINT_NOT_RESOLVED = 0xC0000368,
-  MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_OBJECT_PARAMETER = 0xC0000369,
-  MD_NTSTATUS_WIN_STATUS_MCA_OCCURED = 0xC000036A,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_BLOCKED_CRITICAL = 0xC000036B,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_BLOCKED = 0xC000036C,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_DATABASE_ERROR = 0xC000036D,
-  MD_NTSTATUS_WIN_STATUS_SYSTEM_HIVE_TOO_LARGE = 0xC000036E,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IMPORT_OF_NON_DLL = 0xC000036F,
-  MD_NTSTATUS_WIN_STATUS_NO_SECRETS = 0xC0000371,
-  MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY = 0xC0000372,
-  MD_NTSTATUS_WIN_STATUS_FAILED_STACK_SWITCH = 0xC0000373,
-  MD_NTSTATUS_WIN_STATUS_HEAP_CORRUPTION = 0xC0000374,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_WRONG_PIN = 0xC0000380,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_CARD_BLOCKED = 0xC0000381,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED = 0xC0000382,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_CARD = 0xC0000383,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_KEY_CONTAINER = 0xC0000384,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_CERTIFICATE = 0xC0000385,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_KEYSET = 0xC0000386,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_IO_ERROR = 0xC0000387,
-  MD_NTSTATUS_WIN_STATUS_DOWNGRADE_DETECTED = 0xC0000388,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_CERT_REVOKED = 0xC0000389,
-  MD_NTSTATUS_WIN_STATUS_ISSUING_CA_UNTRUSTED = 0xC000038A,
-  MD_NTSTATUS_WIN_STATUS_REVOCATION_OFFLINE_C = 0xC000038B,
-  MD_NTSTATUS_WIN_STATUS_PKINIT_CLIENT_FAILURE = 0xC000038C,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_CERT_EXPIRED = 0xC000038D,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_FAILED_PRIOR_UNLOAD = 0xC000038E,
-  MD_NTSTATUS_WIN_STATUS_SMARTCARD_SILENT_CONTEXT = 0xC000038F,
-  MD_NTSTATUS_WIN_STATUS_PER_USER_TRUST_QUOTA_EXCEEDED = 0xC0000401,
-  MD_NTSTATUS_WIN_STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED = 0xC0000402,
-  MD_NTSTATUS_WIN_STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED = 0xC0000403,
-  MD_NTSTATUS_WIN_STATUS_DS_NAME_NOT_UNIQUE = 0xC0000404,
-  MD_NTSTATUS_WIN_STATUS_DS_DUPLICATE_ID_FOUND = 0xC0000405,
-  MD_NTSTATUS_WIN_STATUS_DS_GROUP_CONVERSION_ERROR = 0xC0000406,
-  MD_NTSTATUS_WIN_STATUS_VOLSNAP_PREPARE_HIBERNATE = 0xC0000407,
-  MD_NTSTATUS_WIN_STATUS_USER2USER_REQUIRED = 0xC0000408,
-  MD_NTSTATUS_WIN_STATUS_STACK_BUFFER_OVERRUN = 0xC0000409,
-  MD_NTSTATUS_WIN_STATUS_NO_S4U_PROT_SUPPORT = 0xC000040A,
-  MD_NTSTATUS_WIN_STATUS_CROSSREALM_DELEGATION_FAILURE = 0xC000040B,
-  MD_NTSTATUS_WIN_STATUS_REVOCATION_OFFLINE_KDC = 0xC000040C,
-  MD_NTSTATUS_WIN_STATUS_ISSUING_CA_UNTRUSTED_KDC = 0xC000040D,
-  MD_NTSTATUS_WIN_STATUS_KDC_CERT_EXPIRED = 0xC000040E,
-  MD_NTSTATUS_WIN_STATUS_KDC_CERT_REVOKED = 0xC000040F,
-  MD_NTSTATUS_WIN_STATUS_PARAMETER_QUOTA_EXCEEDED = 0xC0000410,
-  MD_NTSTATUS_WIN_STATUS_HIBERNATION_FAILURE = 0xC0000411,
-  MD_NTSTATUS_WIN_STATUS_DELAY_LOAD_FAILED = 0xC0000412,
-  MD_NTSTATUS_WIN_STATUS_AUTHENTICATION_FIREWALL_FAILED = 0xC0000413,
-  MD_NTSTATUS_WIN_STATUS_VDM_DISALLOWED = 0xC0000414,
-  MD_NTSTATUS_WIN_STATUS_HUNG_DISPLAY_DRIVER_THREAD = 0xC0000415,
-  MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE = 0xC0000416,
-  MD_NTSTATUS_WIN_STATUS_INVALID_CRUNTIME_PARAMETER = 0xC0000417,
-  MD_NTSTATUS_WIN_STATUS_NTLM_BLOCKED = 0xC0000418,
-  MD_NTSTATUS_WIN_STATUS_DS_SRC_SID_EXISTS_IN_FOREST = 0xC0000419,
-  MD_NTSTATUS_WIN_STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST = 0xC000041A,
-  MD_NTSTATUS_WIN_STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST = 0xC000041B,
-  MD_NTSTATUS_WIN_STATUS_INVALID_USER_PRINCIPAL_NAME = 0xC000041C,
-  MD_NTSTATUS_WIN_STATUS_FATAL_USER_CALLBACK_EXCEPTION = 0xC000041D,
-  MD_NTSTATUS_WIN_STATUS_ASSERTION_FAILURE = 0xC0000420,
-  MD_NTSTATUS_WIN_STATUS_VERIFIER_STOP = 0xC0000421,
-  MD_NTSTATUS_WIN_STATUS_CALLBACK_POP_STACK = 0xC0000423,
-  MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_DRIVER_BLOCKED = 0xC0000424,
-  MD_NTSTATUS_WIN_STATUS_HIVE_UNLOADED = 0xC0000425,
-  MD_NTSTATUS_WIN_STATUS_COMPRESSION_DISABLED = 0xC0000426,
-  MD_NTSTATUS_WIN_STATUS_FILE_SYSTEM_LIMITATION = 0xC0000427,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_HASH = 0xC0000428,
-  MD_NTSTATUS_WIN_STATUS_NOT_CAPABLE = 0xC0000429,
-  MD_NTSTATUS_WIN_STATUS_REQUEST_OUT_OF_SEQUENCE = 0xC000042A,
-  MD_NTSTATUS_WIN_STATUS_IMPLEMENTATION_LIMIT = 0xC000042B,
-  MD_NTSTATUS_WIN_STATUS_ELEVATION_REQUIRED = 0xC000042C,
-  MD_NTSTATUS_WIN_STATUS_NO_SECURITY_CONTEXT = 0xC000042D,
-  MD_NTSTATUS_WIN_STATUS_PKU2U_CERT_FAILURE = 0xC000042F,
-  MD_NTSTATUS_WIN_STATUS_BEYOND_VDL = 0xC0000432,
-  MD_NTSTATUS_WIN_STATUS_ENCOUNTERED_WRITE_IN_PROGRESS = 0xC0000433,
-  MD_NTSTATUS_WIN_STATUS_PTE_CHANGED = 0xC0000434,
-  MD_NTSTATUS_WIN_STATUS_PURGE_FAILED = 0xC0000435,
-  MD_NTSTATUS_WIN_STATUS_CRED_REQUIRES_CONFIRMATION = 0xC0000440,
-  MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE = 0xC0000441,
-  MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER = 0xC0000442,
-  MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE = 0xC0000443,
-  MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE = 0xC0000444,
-  MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_FILE_NOT_CSE = 0xC0000445,
-  MD_NTSTATUS_WIN_STATUS_INVALID_LABEL = 0xC0000446,
-  MD_NTSTATUS_WIN_STATUS_DRIVER_PROCESS_TERMINATED = 0xC0000450,
-  MD_NTSTATUS_WIN_STATUS_AMBIGUOUS_SYSTEM_DEVICE = 0xC0000451,
-  MD_NTSTATUS_WIN_STATUS_SYSTEM_DEVICE_NOT_FOUND = 0xC0000452,
-  MD_NTSTATUS_WIN_STATUS_RESTART_BOOT_APPLICATION = 0xC0000453,
-  MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_NVRAM_RESOURCES = 0xC0000454,
-  MD_NTSTATUS_WIN_STATUS_INVALID_SESSION = 0xC0000455,
-  MD_NTSTATUS_WIN_STATUS_THREAD_ALREADY_IN_SESSION = 0xC0000456,
-  MD_NTSTATUS_WIN_STATUS_THREAD_NOT_IN_SESSION = 0xC0000457,
-  MD_NTSTATUS_WIN_STATUS_INVALID_WEIGHT = 0xC0000458,
-  MD_NTSTATUS_WIN_STATUS_REQUEST_PAUSED = 0xC0000459,
-  MD_NTSTATUS_WIN_STATUS_NO_RANGES_PROCESSED = 0xC0000460,
-  MD_NTSTATUS_WIN_STATUS_DISK_RESOURCES_EXHAUSTED = 0xC0000461,
-  MD_NTSTATUS_WIN_STATUS_NEEDS_REMEDIATION = 0xC0000462,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_FEATURE_NOT_SUPPORTED = 0xC0000463,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_UNREACHABLE = 0xC0000464,
-  MD_NTSTATUS_WIN_STATUS_INVALID_TOKEN = 0xC0000465,
-  MD_NTSTATUS_WIN_STATUS_SERVER_UNAVAILABLE = 0xC0000466,
-  MD_NTSTATUS_WIN_STATUS_FILE_NOT_AVAILABLE = 0xC0000467,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_INSUFFICIENT_RESOURCES = 0xC0000468,
-  MD_NTSTATUS_WIN_STATUS_PACKAGE_UPDATING = 0xC0000469,
-  MD_NTSTATUS_WIN_STATUS_NOT_READ_FROM_COPY = 0xC000046A,
-  MD_NTSTATUS_WIN_STATUS_FT_WRITE_FAILURE = 0xC000046B,
-  MD_NTSTATUS_WIN_STATUS_FT_DI_SCAN_REQUIRED = 0xC000046C,
-  MD_NTSTATUS_WIN_STATUS_OBJECT_NOT_EXTERNALLY_BACKED = 0xC000046D,
-  MD_NTSTATUS_WIN_STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN = 0xC000046E,
-  MD_NTSTATUS_WIN_STATUS_DATA_CHECKSUM_ERROR = 0xC0000470,
-  MD_NTSTATUS_WIN_STATUS_INTERMIXED_KERNEL_EA_OPERATION = 0xC0000471,
-  MD_NTSTATUS_WIN_STATUS_TRIM_READ_ZERO_NOT_SUPPORTED = 0xC0000472,
-  MD_NTSTATUS_WIN_STATUS_TOO_MANY_SEGMENT_DESCRIPTORS = 0xC0000473,
-  MD_NTSTATUS_WIN_STATUS_INVALID_OFFSET_ALIGNMENT = 0xC0000474,
-  MD_NTSTATUS_WIN_STATUS_INVALID_FIELD_IN_PARAMETER_LIST = 0xC0000475,
-  MD_NTSTATUS_WIN_STATUS_OPERATION_IN_PROGRESS = 0xC0000476,
-  MD_NTSTATUS_WIN_STATUS_INVALID_INITIATOR_TARGET_PATH = 0xC0000477,
-  MD_NTSTATUS_WIN_STATUS_SCRUB_DATA_DISABLED = 0xC0000478,
-  MD_NTSTATUS_WIN_STATUS_NOT_REDUNDANT_STORAGE = 0xC0000479,
-  MD_NTSTATUS_WIN_STATUS_RESIDENT_FILE_NOT_SUPPORTED = 0xC000047A,
-  MD_NTSTATUS_WIN_STATUS_COMPRESSED_FILE_NOT_SUPPORTED = 0xC000047B,
-  MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_SUPPORTED = 0xC000047C,
-  MD_NTSTATUS_WIN_STATUS_IO_OPERATION_TIMEOUT = 0xC000047D,
-  MD_NTSTATUS_WIN_STATUS_SYSTEM_NEEDS_REMEDIATION = 0xC000047E,
-  MD_NTSTATUS_WIN_STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN = 0xC000047F,
-  MD_NTSTATUS_WIN_STATUS_SHARE_UNAVAILABLE = 0xC0000480,
-  MD_NTSTATUS_WIN_STATUS_APISET_NOT_HOSTED = 0xC0000481,
-  MD_NTSTATUS_WIN_STATUS_APISET_NOT_PRESENT = 0xC0000482,
-  MD_NTSTATUS_WIN_STATUS_DEVICE_HARDWARE_ERROR = 0xC0000483,
-  MD_NTSTATUS_WIN_STATUS_INVALID_TASK_NAME = 0xC0000500,
-  MD_NTSTATUS_WIN_STATUS_INVALID_TASK_INDEX = 0xC0000501,
-  MD_NTSTATUS_WIN_STATUS_THREAD_ALREADY_IN_TASK = 0xC0000502,
-  MD_NTSTATUS_WIN_STATUS_CALLBACK_BYPASS = 0xC0000503,
-  MD_NTSTATUS_WIN_STATUS_UNDEFINED_SCOPE = 0xC0000504,
-  MD_NTSTATUS_WIN_STATUS_INVALID_CAP = 0xC0000505,
-  MD_NTSTATUS_WIN_STATUS_NOT_GUI_PROCESS = 0xC0000506,
-  MD_NTSTATUS_WIN_STATUS_FAIL_FAST_EXCEPTION = 0xC0000602,
-  MD_NTSTATUS_WIN_STATUS_IMAGE_CERT_REVOKED = 0xC0000603,
-  MD_NTSTATUS_WIN_STATUS_DYNAMIC_CODE_BLOCKED = 0xC0000604,
-  MD_NTSTATUS_WIN_STATUS_PORT_CLOSED = 0xC0000700,
-  MD_NTSTATUS_WIN_STATUS_MESSAGE_LOST = 0xC0000701,
-  MD_NTSTATUS_WIN_STATUS_INVALID_MESSAGE = 0xC0000702,
-  MD_NTSTATUS_WIN_STATUS_REQUEST_CANCELED = 0xC0000703,
-  MD_NTSTATUS_WIN_STATUS_RECURSIVE_DISPATCH = 0xC0000704,
-  MD_NTSTATUS_WIN_STATUS_LPC_RECEIVE_BUFFER_EXPECTED = 0xC0000705,
-  MD_NTSTATUS_WIN_STATUS_LPC_INVALID_CONNECTION_USAGE = 0xC0000706,
-  MD_NTSTATUS_WIN_STATUS_LPC_REQUESTS_NOT_ALLOWED = 0xC0000707,
-  MD_NTSTATUS_WIN_STATUS_RESOURCE_IN_USE = 0xC0000708,
-  MD_NTSTATUS_WIN_STATUS_HARDWARE_MEMORY_ERROR = 0xC0000709,
-  MD_NTSTATUS_WIN_STATUS_THREADPOOL_HANDLE_EXCEPTION = 0xC000070A,
-  MD_NTSTATUS_WIN_STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED = 0xC000070B,
-  MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED = 0xC000070C,
-  MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED = 0xC000070D,
-  MD_NTSTATUS_WIN_STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED = 0xC000070E,
-  MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASED_DURING_OPERATION = 0xC000070F,
-  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING = 0xC0000710,
-  MD_NTSTATUS_WIN_STATUS_APC_RETURNED_WHILE_IMPERSONATING = 0xC0000711,
-  MD_NTSTATUS_WIN_STATUS_PROCESS_IS_PROTECTED = 0xC0000712,
-  MD_NTSTATUS_WIN_STATUS_MCA_EXCEPTION = 0xC0000713,
-  MD_NTSTATUS_WIN_STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE = 0xC0000714,
-  MD_NTSTATUS_WIN_STATUS_SYMLINK_CLASS_DISABLED = 0xC0000715,
-  MD_NTSTATUS_WIN_STATUS_INVALID_IDN_NORMALIZATION = 0xC0000716,
-  MD_NTSTATUS_WIN_STATUS_NO_UNICODE_TRANSLATION = 0xC0000717,
-  MD_NTSTATUS_WIN_STATUS_ALREADY_REGISTERED = 0xC0000718,
-  MD_NTSTATUS_WIN_STATUS_CONTEXT_MISMATCH = 0xC0000719,
-  MD_NTSTATUS_WIN_STATUS_PORT_ALREADY_HAS_COMPLETION_LIST = 0xC000071A,
-  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_THREAD_PRIORITY = 0xC000071B,
-  MD_NTSTATUS_WIN_STATUS_INVALID_THREAD = 0xC000071C,
-  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_TRANSACTION = 0xC000071D,
-  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_LDR_LOCK = 0xC000071E,
-  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_LANG = 0xC000071F,
-  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_PRI_BACK = 0xC0000720,
-  MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_THREAD_AFFINITY = 0xC0000721,
-  MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_DISABLED = 0xC0000800,
-  MD_NTSTATUS_WIN_STATUS_DS_DOMAIN_RENAME_IN_PROGRESS = 0xC0000801,
-  MD_NTSTATUS_WIN_STATUS_DISK_QUOTA_EXCEEDED = 0xC0000802,
-  MD_NTSTATUS_WIN_STATUS_CONTENT_BLOCKED = 0xC0000804,
-  MD_NTSTATUS_WIN_STATUS_BAD_CLUSTERS = 0xC0000805,
-  MD_NTSTATUS_WIN_STATUS_VOLUME_DIRTY = 0xC0000806,
-  MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_UNSUCCESSFUL = 0xC0000808,
-  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_OVERFULL = 0xC0000809,
-  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_CORRUPTED = 0xC000080A,
-  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_UNAVAILABLE = 0xC000080B,
-  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_DELETED_FULL = 0xC000080C,
-  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_CLEARED = 0xC000080D,
-  MD_NTSTATUS_WIN_STATUS_ORPHAN_NAME_EXHAUSTED = 0xC000080E,
-  MD_NTSTATUS_WIN_STATUS_PROACTIVE_SCAN_IN_PROGRESS = 0xC000080F,
-  MD_NTSTATUS_WIN_STATUS_ENCRYPTED_IO_NOT_POSSIBLE = 0xC0000810,
-  MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_UPLEVEL_RECORDS = 0xC0000811,
-  MD_NTSTATUS_WIN_STATUS_FILE_CHECKED_OUT = 0xC0000901,
-  MD_NTSTATUS_WIN_STATUS_CHECKOUT_REQUIRED = 0xC0000902,
-  MD_NTSTATUS_WIN_STATUS_BAD_FILE_TYPE = 0xC0000903,
-  MD_NTSTATUS_WIN_STATUS_FILE_TOO_LARGE = 0xC0000904,
-  MD_NTSTATUS_WIN_STATUS_FORMS_AUTH_REQUIRED = 0xC0000905,
-  MD_NTSTATUS_WIN_STATUS_VIRUS_INFECTED = 0xC0000906,
-  MD_NTSTATUS_WIN_STATUS_VIRUS_DELETED = 0xC0000907,
-  MD_NTSTATUS_WIN_STATUS_BAD_MCFG_TABLE = 0xC0000908,
-  MD_NTSTATUS_WIN_STATUS_CANNOT_BREAK_OPLOCK = 0xC0000909,
-  MD_NTSTATUS_WIN_STATUS_BAD_KEY = 0xC000090A,
-  MD_NTSTATUS_WIN_STATUS_BAD_DATA = 0xC000090B,
-  MD_NTSTATUS_WIN_STATUS_NO_KEY = 0xC000090C,
-  MD_NTSTATUS_WIN_STATUS_FILE_HANDLE_REVOKED = 0xC0000910,
-  MD_NTSTATUS_WIN_STATUS_WOW_ASSERTION = 0xC0009898,
-  MD_NTSTATUS_WIN_STATUS_INVALID_SIGNATURE = 0xC000A000,
-  MD_NTSTATUS_WIN_STATUS_HMAC_NOT_SUPPORTED = 0xC000A001,
-  MD_NTSTATUS_WIN_STATUS_AUTH_TAG_MISMATCH = 0xC000A002,
-  MD_NTSTATUS_WIN_STATUS_INVALID_STATE_TRANSITION = 0xC000A003,
-  MD_NTSTATUS_WIN_STATUS_INVALID_KERNEL_INFO_VERSION = 0xC000A004,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PEP_INFO_VERSION = 0xC000A005,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_QUEUE_OVERFLOW = 0xC000A010,
-  MD_NTSTATUS_WIN_STATUS_ND_QUEUE_OVERFLOW = 0xC000A011,
-  MD_NTSTATUS_WIN_STATUS_HOPLIMIT_EXCEEDED = 0xC000A012,
-  MD_NTSTATUS_WIN_STATUS_PROTOCOL_NOT_SUPPORTED = 0xC000A013,
-  MD_NTSTATUS_WIN_STATUS_FASTPATH_REJECTED = 0xC000A014,
-  MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED = 0xC000A080,
-  MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR = 0xC000A081,
-  MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR = 0xC000A082,
-  MD_NTSTATUS_WIN_STATUS_XML_PARSE_ERROR = 0xC000A083,
-  MD_NTSTATUS_WIN_STATUS_XMLDSIG_ERROR = 0xC000A084,
-  MD_NTSTATUS_WIN_STATUS_WRONG_COMPARTMENT = 0xC000A085,
-  MD_NTSTATUS_WIN_STATUS_AUTHIP_FAILURE = 0xC000A086,
-  MD_NTSTATUS_WIN_STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS = 0xC000A087,
-  MD_NTSTATUS_WIN_STATUS_DS_OID_NOT_FOUND = 0xC000A088,
-  MD_NTSTATUS_WIN_STATUS_INCORRECT_ACCOUNT_TYPE = 0xC000A089,
-  MD_NTSTATUS_WIN_STATUS_HASH_NOT_SUPPORTED = 0xC000A100,
-  MD_NTSTATUS_WIN_STATUS_HASH_NOT_PRESENT = 0xC000A101,
-  MD_NTSTATUS_WIN_STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED = 0xC000A121,
-  MD_NTSTATUS_WIN_STATUS_GPIO_CLIENT_INFORMATION_INVALID = 0xC000A122,
-  MD_NTSTATUS_WIN_STATUS_GPIO_VERSION_NOT_SUPPORTED = 0xC000A123,
-  MD_NTSTATUS_WIN_STATUS_GPIO_INVALID_REGISTRATION_PACKET = 0xC000A124,
-  MD_NTSTATUS_WIN_STATUS_GPIO_OPERATION_DENIED = 0xC000A125,
-  MD_NTSTATUS_WIN_STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE = 0xC000A126,
-  MD_NTSTATUS_WIN_STATUS_CANNOT_SWITCH_RUNLEVEL = 0xC000A141,
-  MD_NTSTATUS_WIN_STATUS_INVALID_RUNLEVEL_SETTING = 0xC000A142,
-  MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_TIMEOUT = 0xC000A143,
-  MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT = 0xC000A145,
-  MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_IN_PROGRESS = 0xC000A146,
-  MD_NTSTATUS_WIN_STATUS_NOT_APPCONTAINER = 0xC000A200,
-  MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_IN_APPCONTAINER = 0xC000A201,
-  MD_NTSTATUS_WIN_STATUS_INVALID_PACKAGE_SID_LENGTH = 0xC000A202,
-  MD_NTSTATUS_WIN_STATUS_APP_DATA_NOT_FOUND = 0xC000A281,
-  MD_NTSTATUS_WIN_STATUS_APP_DATA_EXPIRED = 0xC000A282,
-  MD_NTSTATUS_WIN_STATUS_APP_DATA_CORRUPT = 0xC000A283,
-  MD_NTSTATUS_WIN_STATUS_APP_DATA_LIMIT_EXCEEDED = 0xC000A284,
-  MD_NTSTATUS_WIN_STATUS_APP_DATA_REBOOT_REQUIRED = 0xC000A285,
-  MD_NTSTATUS_WIN_STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED = 0xC000A2A1,
-  MD_NTSTATUS_WIN_STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED = 0xC000A2A2,
-  MD_NTSTATUS_WIN_STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED = 0xC000A2A3,
-  MD_NTSTATUS_WIN_STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED = 0xC000A2A4,
-  MD_NTSTATUS_WIN_DBG_NO_STATE_CHANGE = 0xC0010001,
-  MD_NTSTATUS_WIN_DBG_APP_NOT_IDLE = 0xC0010002,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_STRING_BINDING = 0xC0020001,
-  MD_NTSTATUS_WIN_RPC_NT_WRONG_KIND_OF_BINDING = 0xC0020002,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_BINDING = 0xC0020003,
-  MD_NTSTATUS_WIN_RPC_NT_PROTSEQ_NOT_SUPPORTED = 0xC0020004,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_RPC_PROTSEQ = 0xC0020005,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_STRING_UUID = 0xC0020006,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_ENDPOINT_FORMAT = 0xC0020007,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_NET_ADDR = 0xC0020008,
-  MD_NTSTATUS_WIN_RPC_NT_NO_ENDPOINT_FOUND = 0xC0020009,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_TIMEOUT = 0xC002000A,
-  MD_NTSTATUS_WIN_RPC_NT_OBJECT_NOT_FOUND = 0xC002000B,
-  MD_NTSTATUS_WIN_RPC_NT_ALREADY_REGISTERED = 0xC002000C,
-  MD_NTSTATUS_WIN_RPC_NT_TYPE_ALREADY_REGISTERED = 0xC002000D,
-  MD_NTSTATUS_WIN_RPC_NT_ALREADY_LISTENING = 0xC002000E,
-  MD_NTSTATUS_WIN_RPC_NT_NO_PROTSEQS_REGISTERED = 0xC002000F,
-  MD_NTSTATUS_WIN_RPC_NT_NOT_LISTENING = 0xC0020010,
-  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_MGR_TYPE = 0xC0020011,
-  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_IF = 0xC0020012,
-  MD_NTSTATUS_WIN_RPC_NT_NO_BINDINGS = 0xC0020013,
-  MD_NTSTATUS_WIN_RPC_NT_NO_PROTSEQS = 0xC0020014,
-  MD_NTSTATUS_WIN_RPC_NT_CANT_CREATE_ENDPOINT = 0xC0020015,
-  MD_NTSTATUS_WIN_RPC_NT_OUT_OF_RESOURCES = 0xC0020016,
-  MD_NTSTATUS_WIN_RPC_NT_SERVER_UNAVAILABLE = 0xC0020017,
-  MD_NTSTATUS_WIN_RPC_NT_SERVER_TOO_BUSY = 0xC0020018,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_NETWORK_OPTIONS = 0xC0020019,
-  MD_NTSTATUS_WIN_RPC_NT_NO_CALL_ACTIVE = 0xC002001A,
-  MD_NTSTATUS_WIN_RPC_NT_CALL_FAILED = 0xC002001B,
-  MD_NTSTATUS_WIN_RPC_NT_CALL_FAILED_DNE = 0xC002001C,
-  MD_NTSTATUS_WIN_RPC_NT_PROTOCOL_ERROR = 0xC002001D,
-  MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_TRANS_SYN = 0xC002001F,
-  MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_TYPE = 0xC0020021,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_TAG = 0xC0020022,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_BOUND = 0xC0020023,
-  MD_NTSTATUS_WIN_RPC_NT_NO_ENTRY_NAME = 0xC0020024,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_NAME_SYNTAX = 0xC0020025,
-  MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_NAME_SYNTAX = 0xC0020026,
-  MD_NTSTATUS_WIN_RPC_NT_UUID_NO_ADDRESS = 0xC0020028,
-  MD_NTSTATUS_WIN_RPC_NT_DUPLICATE_ENDPOINT = 0xC0020029,
-  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_TYPE = 0xC002002A,
-  MD_NTSTATUS_WIN_RPC_NT_MAX_CALLS_TOO_SMALL = 0xC002002B,
-  MD_NTSTATUS_WIN_RPC_NT_STRING_TOO_LONG = 0xC002002C,
-  MD_NTSTATUS_WIN_RPC_NT_PROTSEQ_NOT_FOUND = 0xC002002D,
-  MD_NTSTATUS_WIN_RPC_NT_PROCNUM_OUT_OF_RANGE = 0xC002002E,
-  MD_NTSTATUS_WIN_RPC_NT_BINDING_HAS_NO_AUTH = 0xC002002F,
-  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_SERVICE = 0xC0020030,
-  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_LEVEL = 0xC0020031,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_AUTH_IDENTITY = 0xC0020032,
-  MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHZ_SERVICE = 0xC0020033,
-  MD_NTSTATUS_WIN_EPT_NT_INVALID_ENTRY = 0xC0020034,
-  MD_NTSTATUS_WIN_EPT_NT_CANT_PERFORM_OP = 0xC0020035,
-  MD_NTSTATUS_WIN_EPT_NT_NOT_REGISTERED = 0xC0020036,
-  MD_NTSTATUS_WIN_RPC_NT_NOTHING_TO_EXPORT = 0xC0020037,
-  MD_NTSTATUS_WIN_RPC_NT_INCOMPLETE_NAME = 0xC0020038,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_VERS_OPTION = 0xC0020039,
-  MD_NTSTATUS_WIN_RPC_NT_NO_MORE_MEMBERS = 0xC002003A,
-  MD_NTSTATUS_WIN_RPC_NT_NOT_ALL_OBJS_UNEXPORTED = 0xC002003B,
-  MD_NTSTATUS_WIN_RPC_NT_INTERFACE_NOT_FOUND = 0xC002003C,
-  MD_NTSTATUS_WIN_RPC_NT_ENTRY_ALREADY_EXISTS = 0xC002003D,
-  MD_NTSTATUS_WIN_RPC_NT_ENTRY_NOT_FOUND = 0xC002003E,
-  MD_NTSTATUS_WIN_RPC_NT_NAME_SERVICE_UNAVAILABLE = 0xC002003F,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_NAF_ID = 0xC0020040,
-  MD_NTSTATUS_WIN_RPC_NT_CANNOT_SUPPORT = 0xC0020041,
-  MD_NTSTATUS_WIN_RPC_NT_NO_CONTEXT_AVAILABLE = 0xC0020042,
-  MD_NTSTATUS_WIN_RPC_NT_INTERNAL_ERROR = 0xC0020043,
-  MD_NTSTATUS_WIN_RPC_NT_ZERO_DIVIDE = 0xC0020044,
-  MD_NTSTATUS_WIN_RPC_NT_ADDRESS_ERROR = 0xC0020045,
-  MD_NTSTATUS_WIN_RPC_NT_FP_DIV_ZERO = 0xC0020046,
-  MD_NTSTATUS_WIN_RPC_NT_FP_UNDERFLOW = 0xC0020047,
-  MD_NTSTATUS_WIN_RPC_NT_FP_OVERFLOW = 0xC0020048,
-  MD_NTSTATUS_WIN_RPC_NT_CALL_IN_PROGRESS = 0xC0020049,
-  MD_NTSTATUS_WIN_RPC_NT_NO_MORE_BINDINGS = 0xC002004A,
-  MD_NTSTATUS_WIN_RPC_NT_GROUP_MEMBER_NOT_FOUND = 0xC002004B,
-  MD_NTSTATUS_WIN_EPT_NT_CANT_CREATE = 0xC002004C,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_OBJECT = 0xC002004D,
-  MD_NTSTATUS_WIN_RPC_NT_NO_INTERFACES = 0xC002004F,
-  MD_NTSTATUS_WIN_RPC_NT_CALL_CANCELLED = 0xC0020050,
-  MD_NTSTATUS_WIN_RPC_NT_BINDING_INCOMPLETE = 0xC0020051,
-  MD_NTSTATUS_WIN_RPC_NT_COMM_FAILURE = 0xC0020052,
-  MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_AUTHN_LEVEL = 0xC0020053,
-  MD_NTSTATUS_WIN_RPC_NT_NO_PRINC_NAME = 0xC0020054,
-  MD_NTSTATUS_WIN_RPC_NT_NOT_RPC_ERROR = 0xC0020055,
-  MD_NTSTATUS_WIN_RPC_NT_SEC_PKG_ERROR = 0xC0020057,
-  MD_NTSTATUS_WIN_RPC_NT_NOT_CANCELLED = 0xC0020058,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_ASYNC_HANDLE = 0xC0020062,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_ASYNC_CALL = 0xC0020063,
-  MD_NTSTATUS_WIN_RPC_NT_PROXY_ACCESS_DENIED = 0xC0020064,
-  MD_NTSTATUS_WIN_RPC_NT_COOKIE_AUTH_FAILED = 0xC0020065,
-  MD_NTSTATUS_WIN_RPC_NT_NO_MORE_ENTRIES = 0xC0030001,
-  MD_NTSTATUS_WIN_RPC_NT_SS_CHAR_TRANS_OPEN_FAIL = 0xC0030002,
-  MD_NTSTATUS_WIN_RPC_NT_SS_CHAR_TRANS_SHORT_FILE = 0xC0030003,
-  MD_NTSTATUS_WIN_RPC_NT_SS_IN_NULL_CONTEXT = 0xC0030004,
-  MD_NTSTATUS_WIN_RPC_NT_SS_CONTEXT_MISMATCH = 0xC0030005,
-  MD_NTSTATUS_WIN_RPC_NT_SS_CONTEXT_DAMAGED = 0xC0030006,
-  MD_NTSTATUS_WIN_RPC_NT_SS_HANDLES_MISMATCH = 0xC0030007,
-  MD_NTSTATUS_WIN_RPC_NT_SS_CANNOT_GET_CALL_HANDLE = 0xC0030008,
-  MD_NTSTATUS_WIN_RPC_NT_NULL_REF_POINTER = 0xC0030009,
-  MD_NTSTATUS_WIN_RPC_NT_ENUM_VALUE_OUT_OF_RANGE = 0xC003000A,
-  MD_NTSTATUS_WIN_RPC_NT_BYTE_COUNT_TOO_SMALL = 0xC003000B,
-  MD_NTSTATUS_WIN_RPC_NT_BAD_STUB_DATA = 0xC003000C,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_ES_ACTION = 0xC0030059,
-  MD_NTSTATUS_WIN_RPC_NT_WRONG_ES_VERSION = 0xC003005A,
-  MD_NTSTATUS_WIN_RPC_NT_WRONG_STUB_VERSION = 0xC003005B,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_PIPE_OBJECT = 0xC003005C,
-  MD_NTSTATUS_WIN_RPC_NT_INVALID_PIPE_OPERATION = 0xC003005D,
-  MD_NTSTATUS_WIN_RPC_NT_WRONG_PIPE_VERSION = 0xC003005E,
-  MD_NTSTATUS_WIN_RPC_NT_PIPE_CLOSED = 0xC003005F,
-  MD_NTSTATUS_WIN_RPC_NT_PIPE_DISCIPLINE_ERROR = 0xC0030060,
-  MD_NTSTATUS_WIN_RPC_NT_PIPE_EMPTY = 0xC0030061,
-  MD_NTSTATUS_WIN_STATUS_PNP_BAD_MPS_TABLE = 0xC0040035,
-  MD_NTSTATUS_WIN_STATUS_PNP_TRANSLATION_FAILED = 0xC0040036,
-  MD_NTSTATUS_WIN_STATUS_PNP_IRQ_TRANSLATION_FAILED = 0xC0040037,
-  MD_NTSTATUS_WIN_STATUS_PNP_INVALID_ID = 0xC0040038,
-  MD_NTSTATUS_WIN_STATUS_IO_REISSUE_AS_CACHED = 0xC0040039,
-  MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NAME_INVALID = 0xC00A0001,
-  MD_NTSTATUS_WIN_STATUS_CTX_INVALID_PD = 0xC00A0002,
-  MD_NTSTATUS_WIN_STATUS_CTX_PD_NOT_FOUND = 0xC00A0003,
-  MD_NTSTATUS_WIN_STATUS_CTX_CLOSE_PENDING = 0xC00A0006,
-  MD_NTSTATUS_WIN_STATUS_CTX_NO_OUTBUF = 0xC00A0007,
-  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_INF_NOT_FOUND = 0xC00A0008,
-  MD_NTSTATUS_WIN_STATUS_CTX_INVALID_MODEMNAME = 0xC00A0009,
-  MD_NTSTATUS_WIN_STATUS_CTX_RESPONSE_ERROR = 0xC00A000A,
-  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_TIMEOUT = 0xC00A000B,
-  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_NO_CARRIER = 0xC00A000C,
-  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE = 0xC00A000D,
-  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_BUSY = 0xC00A000E,
-  MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_VOICE = 0xC00A000F,
-  MD_NTSTATUS_WIN_STATUS_CTX_TD_ERROR = 0xC00A0010,
-  MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_CLIENT_INVALID = 0xC00A0012,
-  MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_NOT_AVAILABLE = 0xC00A0013,
-  MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_EXPIRED = 0xC00A0014,
-  MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NOT_FOUND = 0xC00A0015,
-  MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NAME_COLLISION = 0xC00A0016,
-  MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_BUSY = 0xC00A0017,
-  MD_NTSTATUS_WIN_STATUS_CTX_BAD_VIDEO_MODE = 0xC00A0018,
-  MD_NTSTATUS_WIN_STATUS_CTX_GRAPHICS_INVALID = 0xC00A0022,
-  MD_NTSTATUS_WIN_STATUS_CTX_NOT_CONSOLE = 0xC00A0024,
-  MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_QUERY_TIMEOUT = 0xC00A0026,
-  MD_NTSTATUS_WIN_STATUS_CTX_CONSOLE_DISCONNECT = 0xC00A0027,
-  MD_NTSTATUS_WIN_STATUS_CTX_CONSOLE_CONNECT = 0xC00A0028,
-  MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_DENIED = 0xC00A002A,
-  MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_ACCESS_DENIED = 0xC00A002B,
-  MD_NTSTATUS_WIN_STATUS_CTX_INVALID_WD = 0xC00A002E,
-  MD_NTSTATUS_WIN_STATUS_CTX_WD_NOT_FOUND = 0xC00A002F,
-  MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_INVALID = 0xC00A0030,
-  MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_DISABLED = 0xC00A0031,
-  MD_NTSTATUS_WIN_STATUS_RDP_PROTOCOL_ERROR = 0xC00A0032,
-  MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_LICENSE_NOT_SET = 0xC00A0033,
-  MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_LICENSE_IN_USE = 0xC00A0034,
-  MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE = 0xC00A0035,
-  MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_NOT_RUNNING = 0xC00A0036,
-  MD_NTSTATUS_WIN_STATUS_CTX_LOGON_DISABLED = 0xC00A0037,
-  MD_NTSTATUS_WIN_STATUS_CTX_SECURITY_LAYER_ERROR = 0xC00A0038,
-  MD_NTSTATUS_WIN_STATUS_TS_INCOMPATIBLE_SESSIONS = 0xC00A0039,
-  MD_NTSTATUS_WIN_STATUS_TS_VIDEO_SUBSYSTEM_ERROR = 0xC00A003A,
-  MD_NTSTATUS_WIN_STATUS_MUI_FILE_NOT_FOUND = 0xC00B0001,
-  MD_NTSTATUS_WIN_STATUS_MUI_INVALID_FILE = 0xC00B0002,
-  MD_NTSTATUS_WIN_STATUS_MUI_INVALID_RC_CONFIG = 0xC00B0003,
-  MD_NTSTATUS_WIN_STATUS_MUI_INVALID_LOCALE_NAME = 0xC00B0004,
-  MD_NTSTATUS_WIN_STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME = 0xC00B0005,
-  MD_NTSTATUS_WIN_STATUS_MUI_FILE_NOT_LOADED = 0xC00B0006,
-  MD_NTSTATUS_WIN_STATUS_RESOURCE_ENUM_USER_STOP = 0xC00B0007,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NODE = 0xC0130001,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_EXISTS = 0xC0130002,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_JOIN_IN_PROGRESS = 0xC0130003,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_FOUND = 0xC0130004,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND = 0xC0130005,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_EXISTS = 0xC0130006,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_NOT_FOUND = 0xC0130007,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NETINTERFACE_EXISTS = 0xC0130008,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NETINTERFACE_NOT_FOUND = 0xC0130009,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_REQUEST = 0xC013000A,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NETWORK_PROVIDER = 0xC013000B,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_DOWN = 0xC013000C,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_UNREACHABLE = 0xC013000D,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_MEMBER = 0xC013000E,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS = 0xC013000F,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NETWORK = 0xC0130010,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NO_NET_ADAPTERS = 0xC0130011,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_UP = 0xC0130012,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_PAUSED = 0xC0130013,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_PAUSED = 0xC0130014,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NO_SECURITY_CONTEXT = 0xC0130015,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_NOT_INTERNAL = 0xC0130016,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_POISONED = 0xC0130017,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_NON_CSV_PATH = 0xC0130018,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL = 0xC0130019,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS = 0xC0130020,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR = 0xC0130021,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_REDIRECTED = 0xC0130022,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_NOT_REDIRECTED = 0xC0130023,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_DRAINING = 0xC0130024,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS = 0xC0130025,
-  MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL = 0xC0130026,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_OPCODE = 0xC0140001,
-  MD_NTSTATUS_WIN_STATUS_ACPI_STACK_OVERFLOW = 0xC0140002,
-  MD_NTSTATUS_WIN_STATUS_ACPI_ASSERT_FAILED = 0xC0140003,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_INDEX = 0xC0140004,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ARGUMENT = 0xC0140005,
-  MD_NTSTATUS_WIN_STATUS_ACPI_FATAL = 0xC0140006,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_SUPERNAME = 0xC0140007,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ARGTYPE = 0xC0140008,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_OBJTYPE = 0xC0140009,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_TARGETTYPE = 0xC014000A,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INCORRECT_ARGUMENT_COUNT = 0xC014000B,
-  MD_NTSTATUS_WIN_STATUS_ACPI_ADDRESS_NOT_MAPPED = 0xC014000C,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_EVENTTYPE = 0xC014000D,
-  MD_NTSTATUS_WIN_STATUS_ACPI_HANDLER_COLLISION = 0xC014000E,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_DATA = 0xC014000F,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_REGION = 0xC0140010,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ACCESS_SIZE = 0xC0140011,
-  MD_NTSTATUS_WIN_STATUS_ACPI_ACQUIRE_GLOBAL_LOCK = 0xC0140012,
-  MD_NTSTATUS_WIN_STATUS_ACPI_ALREADY_INITIALIZED = 0xC0140013,
-  MD_NTSTATUS_WIN_STATUS_ACPI_NOT_INITIALIZED = 0xC0140014,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_MUTEX_LEVEL = 0xC0140015,
-  MD_NTSTATUS_WIN_STATUS_ACPI_MUTEX_NOT_OWNED = 0xC0140016,
-  MD_NTSTATUS_WIN_STATUS_ACPI_MUTEX_NOT_OWNER = 0xC0140017,
-  MD_NTSTATUS_WIN_STATUS_ACPI_RS_ACCESS = 0xC0140018,
-  MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_TABLE = 0xC0140019,
-  MD_NTSTATUS_WIN_STATUS_ACPI_REG_HANDLER_FAILED = 0xC0140020,
-  MD_NTSTATUS_WIN_STATUS_ACPI_POWER_REQUEST_FAILED = 0xC0140021,
-  MD_NTSTATUS_WIN_STATUS_SXS_SECTION_NOT_FOUND = 0xC0150001,
-  MD_NTSTATUS_WIN_STATUS_SXS_CANT_GEN_ACTCTX = 0xC0150002,
-  MD_NTSTATUS_WIN_STATUS_SXS_INVALID_ACTCTXDATA_FORMAT = 0xC0150003,
-  MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_NOT_FOUND = 0xC0150004,
-  MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_FORMAT_ERROR = 0xC0150005,
-  MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_PARSE_ERROR = 0xC0150006,
-  MD_NTSTATUS_WIN_STATUS_SXS_ACTIVATION_CONTEXT_DISABLED = 0xC0150007,
-  MD_NTSTATUS_WIN_STATUS_SXS_KEY_NOT_FOUND = 0xC0150008,
-  MD_NTSTATUS_WIN_STATUS_SXS_VERSION_CONFLICT = 0xC0150009,
-  MD_NTSTATUS_WIN_STATUS_SXS_WRONG_SECTION_TYPE = 0xC015000A,
-  MD_NTSTATUS_WIN_STATUS_SXS_THREAD_QUERIES_DISABLED = 0xC015000B,
-  MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_MISSING = 0xC015000C,
-  MD_NTSTATUS_WIN_STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET = 0xC015000E,
-  MD_NTSTATUS_WIN_STATUS_SXS_EARLY_DEACTIVATION = 0xC015000F,
-  MD_NTSTATUS_WIN_STATUS_SXS_INVALID_DEACTIVATION = 0xC0150010,
-  MD_NTSTATUS_WIN_STATUS_SXS_MULTIPLE_DEACTIVATION = 0xC0150011,
-  MD_NTSTATUS_WIN_STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY = 0xC0150012,
-  MD_NTSTATUS_WIN_STATUS_SXS_PROCESS_TERMINATION_REQUESTED = 0xC0150013,
-  MD_NTSTATUS_WIN_STATUS_SXS_CORRUPT_ACTIVATION_STACK = 0xC0150014,
-  MD_NTSTATUS_WIN_STATUS_SXS_CORRUPTION = 0xC0150015,
-  MD_NTSTATUS_WIN_STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE = 0xC0150016,
-  MD_NTSTATUS_WIN_STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME = 0xC0150017,
-  MD_NTSTATUS_WIN_STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE = 0xC0150018,
-  MD_NTSTATUS_WIN_STATUS_SXS_IDENTITY_PARSE_ERROR = 0xC0150019,
-  MD_NTSTATUS_WIN_STATUS_SXS_COMPONENT_STORE_CORRUPT = 0xC015001A,
-  MD_NTSTATUS_WIN_STATUS_SXS_FILE_HASH_MISMATCH = 0xC015001B,
-  MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT = 0xC015001C,
-  MD_NTSTATUS_WIN_STATUS_SXS_IDENTITIES_DIFFERENT = 0xC015001D,
-  MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT = 0xC015001E,
-  MD_NTSTATUS_WIN_STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY = 0xC015001F,
-  MD_NTSTATUS_WIN_STATUS_ADVANCED_INSTALLER_FAILED = 0xC0150020,
-  MD_NTSTATUS_WIN_STATUS_XML_ENCODING_MISMATCH = 0xC0150021,
-  MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_TOO_BIG = 0xC0150022,
-  MD_NTSTATUS_WIN_STATUS_SXS_SETTING_NOT_REGISTERED = 0xC0150023,
-  MD_NTSTATUS_WIN_STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE = 0xC0150024,
-  MD_NTSTATUS_WIN_STATUS_SMI_PRIMITIVE_INSTALLER_FAILED = 0xC0150025,
-  MD_NTSTATUS_WIN_STATUS_GENERIC_COMMAND_FAILED = 0xC0150026,
-  MD_NTSTATUS_WIN_STATUS_SXS_FILE_HASH_MISSING = 0xC0150027,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTIONAL_CONFLICT = 0xC0190001,
-  MD_NTSTATUS_WIN_STATUS_INVALID_TRANSACTION = 0xC0190002,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ACTIVE = 0xC0190003,
-  MD_NTSTATUS_WIN_STATUS_TM_INITIALIZATION_FAILED = 0xC0190004,
-  MD_NTSTATUS_WIN_STATUS_RM_NOT_ACTIVE = 0xC0190005,
-  MD_NTSTATUS_WIN_STATUS_RM_METADATA_CORRUPT = 0xC0190006,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_JOINED = 0xC0190007,
-  MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_RM = 0xC0190008,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE = 0xC019000A,
-  MD_NTSTATUS_WIN_STATUS_LOG_RESIZE_INVALID_SIZE = 0xC019000B,
-  MD_NTSTATUS_WIN_STATUS_REMOTE_FILE_VERSION_MISMATCH = 0xC019000C,
-  MD_NTSTATUS_WIN_STATUS_CRM_PROTOCOL_ALREADY_EXISTS = 0xC019000F,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_PROPAGATION_FAILED = 0xC0190010,
-  MD_NTSTATUS_WIN_STATUS_CRM_PROTOCOL_NOT_FOUND = 0xC0190011,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_SUPERIOR_EXISTS = 0xC0190012,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_REQUEST_NOT_VALID = 0xC0190013,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_REQUESTED = 0xC0190014,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_ALREADY_ABORTED = 0xC0190015,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_ALREADY_COMMITTED = 0xC0190016,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER = 0xC0190017,
-  MD_NTSTATUS_WIN_STATUS_CURRENT_TRANSACTION_NOT_VALID = 0xC0190018,
-  MD_NTSTATUS_WIN_STATUS_LOG_GROWTH_FAILED = 0xC0190019,
-  MD_NTSTATUS_WIN_STATUS_OBJECT_NO_LONGER_EXISTS = 0xC0190021,
-  MD_NTSTATUS_WIN_STATUS_STREAM_MINIVERSION_NOT_FOUND = 0xC0190022,
-  MD_NTSTATUS_WIN_STATUS_STREAM_MINIVERSION_NOT_VALID = 0xC0190023,
-  MD_NTSTATUS_WIN_STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION = 0xC0190024,
-  MD_NTSTATUS_WIN_STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT = 0xC0190025,
-  MD_NTSTATUS_WIN_STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS = 0xC0190026,
-  MD_NTSTATUS_WIN_STATUS_HANDLE_NO_LONGER_VALID = 0xC0190028,
-  MD_NTSTATUS_WIN_STATUS_LOG_CORRUPTION_DETECTED = 0xC0190030,
-  MD_NTSTATUS_WIN_STATUS_RM_DISCONNECTED = 0xC0190032,
-  MD_NTSTATUS_WIN_STATUS_ENLISTMENT_NOT_SUPERIOR = 0xC0190033,
-  MD_NTSTATUS_WIN_STATUS_FILE_IDENTITY_NOT_PERSISTENT = 0xC0190036,
-  MD_NTSTATUS_WIN_STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY = 0xC0190037,
-  MD_NTSTATUS_WIN_STATUS_CANT_CROSS_RM_BOUNDARY = 0xC0190038,
-  MD_NTSTATUS_WIN_STATUS_TXF_DIR_NOT_EMPTY = 0xC0190039,
-  MD_NTSTATUS_WIN_STATUS_INDOUBT_TRANSACTIONS_EXIST = 0xC019003A,
-  MD_NTSTATUS_WIN_STATUS_TM_VOLATILE = 0xC019003B,
-  MD_NTSTATUS_WIN_STATUS_ROLLBACK_TIMER_EXPIRED = 0xC019003C,
-  MD_NTSTATUS_WIN_STATUS_TXF_ATTRIBUTE_CORRUPT = 0xC019003D,
-  MD_NTSTATUS_WIN_STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION = 0xC019003E,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED = 0xC019003F,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE = 0xC0190040,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_REQUIRED_PROMOTION = 0xC0190043,
-  MD_NTSTATUS_WIN_STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION = 0xC0190044,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTIONS_NOT_FROZEN = 0xC0190045,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_FREEZE_IN_PROGRESS = 0xC0190046,
-  MD_NTSTATUS_WIN_STATUS_NOT_SNAPSHOT_VOLUME = 0xC0190047,
-  MD_NTSTATUS_WIN_STATUS_NO_SAVEPOINT_WITH_OPEN_FILES = 0xC0190048,
-  MD_NTSTATUS_WIN_STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION = 0xC0190049,
-  MD_NTSTATUS_WIN_STATUS_TM_IDENTITY_MISMATCH = 0xC019004A,
-  MD_NTSTATUS_WIN_STATUS_FLOATED_SECTION = 0xC019004B,
-  MD_NTSTATUS_WIN_STATUS_CANNOT_ACCEPT_TRANSACTED_WORK = 0xC019004C,
-  MD_NTSTATUS_WIN_STATUS_CANNOT_ABORT_TRANSACTIONS = 0xC019004D,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_FOUND = 0xC019004E,
-  MD_NTSTATUS_WIN_STATUS_RESOURCEMANAGER_NOT_FOUND = 0xC019004F,
-  MD_NTSTATUS_WIN_STATUS_ENLISTMENT_NOT_FOUND = 0xC0190050,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_NOT_FOUND = 0xC0190051,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_NOT_ONLINE = 0xC0190052,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION = 0xC0190053,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ROOT = 0xC0190054,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_OBJECT_EXPIRED = 0xC0190055,
-  MD_NTSTATUS_WIN_STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION = 0xC0190056,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED = 0xC0190057,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_RECORD_TOO_LONG = 0xC0190058,
-  MD_NTSTATUS_WIN_STATUS_NO_LINK_TRACKING_IN_TRANSACTION = 0xC0190059,
-  MD_NTSTATUS_WIN_STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION = 0xC019005A,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_INTEGRITY_VIOLATED = 0xC019005B,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH = 0xC019005C,
-  MD_NTSTATUS_WIN_STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT = 0xC019005D,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_MUST_WRITETHROUGH = 0xC019005E,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_SUPERIOR = 0xC019005F,
-  MD_NTSTATUS_WIN_STATUS_EXPIRED_HANDLE = 0xC0190060,
-  MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ENLISTED = 0xC0190061,
-  MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_INVALID = 0xC01A0001,
-  MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_PARITY_INVALID = 0xC01A0002,
-  MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_REMAPPED = 0xC01A0003,
-  MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_INCOMPLETE = 0xC01A0004,
-  MD_NTSTATUS_WIN_STATUS_LOG_INVALID_RANGE = 0xC01A0005,
-  MD_NTSTATUS_WIN_STATUS_LOG_BLOCKS_EXHAUSTED = 0xC01A0006,
-  MD_NTSTATUS_WIN_STATUS_LOG_READ_CONTEXT_INVALID = 0xC01A0007,
-  MD_NTSTATUS_WIN_STATUS_LOG_RESTART_INVALID = 0xC01A0008,
-  MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_VERSION = 0xC01A0009,
-  MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_INVALID = 0xC01A000A,
-  MD_NTSTATUS_WIN_STATUS_LOG_READ_MODE_INVALID = 0xC01A000B,
-  MD_NTSTATUS_WIN_STATUS_LOG_METADATA_CORRUPT = 0xC01A000D,
-  MD_NTSTATUS_WIN_STATUS_LOG_METADATA_INVALID = 0xC01A000E,
-  MD_NTSTATUS_WIN_STATUS_LOG_METADATA_INCONSISTENT = 0xC01A000F,
-  MD_NTSTATUS_WIN_STATUS_LOG_RESERVATION_INVALID = 0xC01A0010,
-  MD_NTSTATUS_WIN_STATUS_LOG_CANT_DELETE = 0xC01A0011,
-  MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_LIMIT_EXCEEDED = 0xC01A0012,
-  MD_NTSTATUS_WIN_STATUS_LOG_START_OF_LOG = 0xC01A0013,
-  MD_NTSTATUS_WIN_STATUS_LOG_POLICY_ALREADY_INSTALLED = 0xC01A0014,
-  MD_NTSTATUS_WIN_STATUS_LOG_POLICY_NOT_INSTALLED = 0xC01A0015,
-  MD_NTSTATUS_WIN_STATUS_LOG_POLICY_INVALID = 0xC01A0016,
-  MD_NTSTATUS_WIN_STATUS_LOG_POLICY_CONFLICT = 0xC01A0017,
-  MD_NTSTATUS_WIN_STATUS_LOG_PINNED_ARCHIVE_TAIL = 0xC01A0018,
-  MD_NTSTATUS_WIN_STATUS_LOG_RECORD_NONEXISTENT = 0xC01A0019,
-  MD_NTSTATUS_WIN_STATUS_LOG_RECORDS_RESERVED_INVALID = 0xC01A001A,
-  MD_NTSTATUS_WIN_STATUS_LOG_SPACE_RESERVED_INVALID = 0xC01A001B,
-  MD_NTSTATUS_WIN_STATUS_LOG_TAIL_INVALID = 0xC01A001C,
-  MD_NTSTATUS_WIN_STATUS_LOG_FULL = 0xC01A001D,
-  MD_NTSTATUS_WIN_STATUS_LOG_MULTIPLEXED = 0xC01A001E,
-  MD_NTSTATUS_WIN_STATUS_LOG_DEDICATED = 0xC01A001F,
-  MD_NTSTATUS_WIN_STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS = 0xC01A0020,
-  MD_NTSTATUS_WIN_STATUS_LOG_ARCHIVE_IN_PROGRESS = 0xC01A0021,
-  MD_NTSTATUS_WIN_STATUS_LOG_EPHEMERAL = 0xC01A0022,
-  MD_NTSTATUS_WIN_STATUS_LOG_NOT_ENOUGH_CONTAINERS = 0xC01A0023,
-  MD_NTSTATUS_WIN_STATUS_LOG_CLIENT_ALREADY_REGISTERED = 0xC01A0024,
-  MD_NTSTATUS_WIN_STATUS_LOG_CLIENT_NOT_REGISTERED = 0xC01A0025,
-  MD_NTSTATUS_WIN_STATUS_LOG_FULL_HANDLER_IN_PROGRESS = 0xC01A0026,
-  MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_READ_FAILED = 0xC01A0027,
-  MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_WRITE_FAILED = 0xC01A0028,
-  MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_OPEN_FAILED = 0xC01A0029,
-  MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_STATE_INVALID = 0xC01A002A,
-  MD_NTSTATUS_WIN_STATUS_LOG_STATE_INVALID = 0xC01A002B,
-  MD_NTSTATUS_WIN_STATUS_LOG_PINNED = 0xC01A002C,
-  MD_NTSTATUS_WIN_STATUS_LOG_METADATA_FLUSH_FAILED = 0xC01A002D,
-  MD_NTSTATUS_WIN_STATUS_LOG_INCONSISTENT_SECURITY = 0xC01A002E,
-  MD_NTSTATUS_WIN_STATUS_LOG_APPENDED_FLUSH_FAILED = 0xC01A002F,
-  MD_NTSTATUS_WIN_STATUS_LOG_PINNED_RESERVATION = 0xC01A0030,
-  MD_NTSTATUS_WIN_STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD = 0xC01B00EA,
-  MD_NTSTATUS_WIN_STATUS_FLT_NO_HANDLER_DEFINED = 0xC01C0001,
-  MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALREADY_DEFINED = 0xC01C0002,
-  MD_NTSTATUS_WIN_STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST = 0xC01C0003,
-  MD_NTSTATUS_WIN_STATUS_FLT_DISALLOW_FAST_IO = 0xC01C0004,
-  MD_NTSTATUS_WIN_STATUS_FLT_INVALID_NAME_REQUEST = 0xC01C0005,
-  MD_NTSTATUS_WIN_STATUS_FLT_NOT_SAFE_TO_POST_OPERATION = 0xC01C0006,
-  MD_NTSTATUS_WIN_STATUS_FLT_NOT_INITIALIZED = 0xC01C0007,
-  MD_NTSTATUS_WIN_STATUS_FLT_FILTER_NOT_READY = 0xC01C0008,
-  MD_NTSTATUS_WIN_STATUS_FLT_POST_OPERATION_CLEANUP = 0xC01C0009,
-  MD_NTSTATUS_WIN_STATUS_FLT_INTERNAL_ERROR = 0xC01C000A,
-  MD_NTSTATUS_WIN_STATUS_FLT_DELETING_OBJECT = 0xC01C000B,
-  MD_NTSTATUS_WIN_STATUS_FLT_MUST_BE_NONPAGED_POOL = 0xC01C000C,
-  MD_NTSTATUS_WIN_STATUS_FLT_DUPLICATE_ENTRY = 0xC01C000D,
-  MD_NTSTATUS_WIN_STATUS_FLT_CBDQ_DISABLED = 0xC01C000E,
-  MD_NTSTATUS_WIN_STATUS_FLT_DO_NOT_ATTACH = 0xC01C000F,
-  MD_NTSTATUS_WIN_STATUS_FLT_DO_NOT_DETACH = 0xC01C0010,
-  MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_ALTITUDE_COLLISION = 0xC01C0011,
-  MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_NAME_COLLISION = 0xC01C0012,
-  MD_NTSTATUS_WIN_STATUS_FLT_FILTER_NOT_FOUND = 0xC01C0013,
-  MD_NTSTATUS_WIN_STATUS_FLT_VOLUME_NOT_FOUND = 0xC01C0014,
-  MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_NOT_FOUND = 0xC01C0015,
-  MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND = 0xC01C0016,
-  MD_NTSTATUS_WIN_STATUS_FLT_INVALID_CONTEXT_REGISTRATION = 0xC01C0017,
-  MD_NTSTATUS_WIN_STATUS_FLT_NAME_CACHE_MISS = 0xC01C0018,
-  MD_NTSTATUS_WIN_STATUS_FLT_NO_DEVICE_OBJECT = 0xC01C0019,
-  MD_NTSTATUS_WIN_STATUS_FLT_VOLUME_ALREADY_MOUNTED = 0xC01C001A,
-  MD_NTSTATUS_WIN_STATUS_FLT_ALREADY_ENLISTED = 0xC01C001B,
-  MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALREADY_LINKED = 0xC01C001C,
-  MD_NTSTATUS_WIN_STATUS_FLT_NO_WAITER_FOR_REPLY = 0xC01C0020,
-  MD_NTSTATUS_WIN_STATUS_FLT_REGISTRATION_BUSY = 0xC01C0023,
-  MD_NTSTATUS_WIN_STATUS_MONITOR_NO_DESCRIPTOR = 0xC01D0001,
-  MD_NTSTATUS_WIN_STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT = 0xC01D0002,
-  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM = 0xC01D0003,
-  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK = 0xC01D0004,
-  MD_NTSTATUS_WIN_STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED = 0xC01D0005,
-  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK = 0xC01D0006,
-  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK = 0xC01D0007,
-  MD_NTSTATUS_WIN_STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA = 0xC01D0008,
-  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK = 0xC01D0009,
-  MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_MANUFACTURE_DATE = 0xC01D000A,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER = 0xC01E0000,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER = 0xC01E0001,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER = 0xC01E0002,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_WAS_RESET = 0xC01E0003,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_DRIVER_MODEL = 0xC01E0004,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_MODE_CHANGED = 0xC01E0005,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_OCCLUDED = 0xC01E0006,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_DENIED = 0xC01E0007,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANNOTCOLORCONVERT = 0xC01E0008,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DRIVER_MISMATCH = 0xC01E0009,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED = 0xC01E000B,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_UNOCCLUDED = 0xC01E000C,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE = 0xC01E000D,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED = 0xC01E000E,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_VIDEO_MEMORY = 0xC01E0100,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_LOCK_MEMORY = 0xC01E0101,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_BUSY = 0xC01E0102,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TOO_MANY_REFERENCES = 0xC01E0103,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TRY_AGAIN_LATER = 0xC01E0104,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TRY_AGAIN_NOW = 0xC01E0105,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_INVALID = 0xC01E0106,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE = 0xC01E0107,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED = 0xC01E0108,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION = 0xC01E0109,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE = 0xC01E0110,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION = 0xC01E0111,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_CLOSED = 0xC01E0112,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE = 0xC01E0113,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE = 0xC01E0114,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE = 0xC01E0115,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST = 0xC01E0116,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE = 0xC01E0200,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY = 0xC01E0300,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED = 0xC01E0301,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED = 0xC01E0302,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN = 0xC01E0303,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE = 0xC01E0304,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET = 0xC01E0305,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED = 0xC01E0306,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET = 0xC01E0308,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET = 0xC01E0309,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_FREQUENCY = 0xC01E030A,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ACTIVE_REGION = 0xC01E030B,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_TOTAL_REGION = 0xC01E030C,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE = 0xC01E0310,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE = 0xC01E0311,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET = 0xC01E0312,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY = 0xC01E0313,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET = 0xC01E0314,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET = 0xC01E0315,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET = 0xC01E0316,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET = 0xC01E0317,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_ALREADY_IN_SET = 0xC01E0318,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH = 0xC01E0319,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY = 0xC01E031A,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET = 0xC01E031B,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE = 0xC01E031C,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET = 0xC01E031D,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET = 0xC01E031F,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_STALE_MODESET = 0xC01E0320,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET = 0xC01E0321,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE = 0xC01E0322,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN = 0xC01E0323,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE = 0xC01E0324,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION = 0xC01E0325,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES = 0xC01E0326,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY = 0xC01E0327,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE = 0xC01E0328,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET = 0xC01E0329,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET = 0xC01E032A,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR = 0xC01E032B,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET = 0xC01E032C,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET = 0xC01E032D,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE = 0xC01E032E,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE = 0xC01E032F,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_RESOURCES_NOT_RELATED = 0xC01E0330,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE = 0xC01E0331,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE = 0xC01E0332,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET = 0xC01E0333,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER = 0xC01E0334,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_VIDPNMGR = 0xC01E0335,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_ACTIVE_VIDPN = 0xC01E0336,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY = 0xC01E0337,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_NOT_CONNECTED = 0xC01E0338,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY = 0xC01E0339,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE = 0xC01E033A,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE = 0xC01E033B,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_STRIDE = 0xC01E033C,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PIXELFORMAT = 0xC01E033D,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_COLORBASIS = 0xC01E033E,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE = 0xC01E033F,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY = 0xC01E0340,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT = 0xC01E0341,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = 0xC01E0342,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN = 0xC01E0343,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL = 0xC01E0344,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION = 0xC01E0345,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED = 0xC01E0346,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_GAMMA_RAMP = 0xC01E0347,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED = 0xC01E0348,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED = 0xC01E0349,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_NOT_IN_MODESET = 0xC01E034A,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON = 0xC01E034D,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE = 0xC01E034E,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE = 0xC01E034F,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS = 0xC01E0350,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING = 0xC01E0352,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED = 0xC01E0353,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS = 0xC01E0354,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT = 0xC01E0355,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM = 0xC01E0356,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN = 0xC01E0357,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT = 0xC01E0358,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED = 0xC01E0359,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION = 0xC01E035A,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_CLIENT_TYPE = 0xC01E035B,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET = 0xC01E035C,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED = 0xC01E0400,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED = 0xC01E0401,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER = 0xC01E0430,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED = 0xC01E0431,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED = 0xC01E0432,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY = 0xC01E0433,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED = 0xC01E0434,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON = 0xC01E0435,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE = 0xC01E0436,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER = 0xC01E0438,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED = 0xC01E043B,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_NOT_SUPPORTED = 0xC01E0500,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_COPP_NOT_SUPPORTED = 0xC01E0501,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_UAB_NOT_SUPPORTED = 0xC01E0502,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS = 0xC01E0503,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST = 0xC01E0505,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INTERNAL_ERROR = 0xC01E050B,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_HANDLE = 0xC01E050C,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH = 0xC01E050E,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED = 0xC01E050F,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED = 0xC01E0510,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PVP_HFS_FAILED = 0xC01E0511,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_SRM = 0xC01E0512,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP = 0xC01E0513,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP = 0xC01E0514,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA = 0xC01E0515,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET = 0xC01E0516,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH = 0xC01E0517,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE = 0xC01E0518,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS = 0xC01E051A,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS = 0xC01E051C,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST = 0xC01E051D,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR = 0xC01E051E,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS = 0xC01E051F,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED = 0xC01E0520,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST = 0xC01E0521,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_NOT_SUPPORTED = 0xC01E0580,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST = 0xC01E0581,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA = 0xC01E0582,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA = 0xC01E0583,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED = 0xC01E0584,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_DATA = 0xC01E0585,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE = 0xC01E0586,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING = 0xC01E0587,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MCA_INTERNAL_ERROR = 0xC01E0588,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND = 0xC01E0589,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH = 0xC01E058A,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM = 0xC01E058B,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE = 0xC01E058C,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS = 0xC01E058D,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED = 0xC01E05E0,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME = 0xC01E05E1,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP = 0xC01E05E2,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED = 0xC01E05E3,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_POINTER = 0xC01E05E4,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE = 0xC01E05E5,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL = 0xC01E05E6,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_INTERNAL_ERROR = 0xC01E05E7,
-  MD_NTSTATUS_WIN_STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS = 0xC01E05E8,
-  MD_NTSTATUS_WIN_STATUS_FVE_LOCKED_VOLUME = 0xC0210000,
-  MD_NTSTATUS_WIN_STATUS_FVE_NOT_ENCRYPTED = 0xC0210001,
-  MD_NTSTATUS_WIN_STATUS_FVE_BAD_INFORMATION = 0xC0210002,
-  MD_NTSTATUS_WIN_STATUS_FVE_TOO_SMALL = 0xC0210003,
-  MD_NTSTATUS_WIN_STATUS_FVE_FAILED_WRONG_FS = 0xC0210004,
-  MD_NTSTATUS_WIN_STATUS_FVE_BAD_PARTITION_SIZE = 0xC0210005,
-  MD_NTSTATUS_WIN_STATUS_FVE_FS_NOT_EXTENDED = 0xC0210006,
-  MD_NTSTATUS_WIN_STATUS_FVE_FS_MOUNTED = 0xC0210007,
-  MD_NTSTATUS_WIN_STATUS_FVE_NO_LICENSE = 0xC0210008,
-  MD_NTSTATUS_WIN_STATUS_FVE_ACTION_NOT_ALLOWED = 0xC0210009,
-  MD_NTSTATUS_WIN_STATUS_FVE_BAD_DATA = 0xC021000A,
-  MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_NOT_BOUND = 0xC021000B,
-  MD_NTSTATUS_WIN_STATUS_FVE_NOT_DATA_VOLUME = 0xC021000C,
-  MD_NTSTATUS_WIN_STATUS_FVE_CONV_READ_ERROR = 0xC021000D,
-  MD_NTSTATUS_WIN_STATUS_FVE_CONV_WRITE_ERROR = 0xC021000E,
-  MD_NTSTATUS_WIN_STATUS_FVE_OVERLAPPED_UPDATE = 0xC021000F,
-  MD_NTSTATUS_WIN_STATUS_FVE_FAILED_SECTOR_SIZE = 0xC0210010,
-  MD_NTSTATUS_WIN_STATUS_FVE_FAILED_AUTHENTICATION = 0xC0210011,
-  MD_NTSTATUS_WIN_STATUS_FVE_NOT_OS_VOLUME = 0xC0210012,
-  MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_NOT_FOUND = 0xC0210013,
-  MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_INVALID = 0xC0210014,
-  MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_NO_VMK = 0xC0210015,
-  MD_NTSTATUS_WIN_STATUS_FVE_TPM_DISABLED = 0xC0210016,
-  MD_NTSTATUS_WIN_STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO = 0xC0210017,
-  MD_NTSTATUS_WIN_STATUS_FVE_TPM_INVALID_PCR = 0xC0210018,
-  MD_NTSTATUS_WIN_STATUS_FVE_TPM_NO_VMK = 0xC0210019,
-  MD_NTSTATUS_WIN_STATUS_FVE_PIN_INVALID = 0xC021001A,
-  MD_NTSTATUS_WIN_STATUS_FVE_AUTH_INVALID_APPLICATION = 0xC021001B,
-  MD_NTSTATUS_WIN_STATUS_FVE_AUTH_INVALID_CONFIG = 0xC021001C,
-  MD_NTSTATUS_WIN_STATUS_FVE_DEBUGGER_ENABLED = 0xC021001D,
-  MD_NTSTATUS_WIN_STATUS_FVE_DRY_RUN_FAILED = 0xC021001E,
-  MD_NTSTATUS_WIN_STATUS_FVE_BAD_METADATA_POINTER = 0xC021001F,
-  MD_NTSTATUS_WIN_STATUS_FVE_OLD_METADATA_COPY = 0xC0210020,
-  MD_NTSTATUS_WIN_STATUS_FVE_REBOOT_REQUIRED = 0xC0210021,
-  MD_NTSTATUS_WIN_STATUS_FVE_RAW_ACCESS = 0xC0210022,
-  MD_NTSTATUS_WIN_STATUS_FVE_RAW_BLOCKED = 0xC0210023,
-  MD_NTSTATUS_WIN_STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY = 0xC0210024,
-  MD_NTSTATUS_WIN_STATUS_FVE_MOR_FAILED = 0xC0210025,
-  MD_NTSTATUS_WIN_STATUS_FVE_NO_FEATURE_LICENSE = 0xC0210026,
-  MD_NTSTATUS_WIN_STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED = 0xC0210027,
-  MD_NTSTATUS_WIN_STATUS_FVE_CONV_RECOVERY_FAILED = 0xC0210028,
-  MD_NTSTATUS_WIN_STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG = 0xC0210029,
-  MD_NTSTATUS_WIN_STATUS_FVE_INVALID_DATUM_TYPE = 0xC021002A,
-  MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_TOO_SMALL = 0xC0210030,
-  MD_NTSTATUS_WIN_STATUS_FVE_ENH_PIN_INVALID = 0xC0210031,
-  MD_NTSTATUS_WIN_STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE = 0xC0210032,
-  MD_NTSTATUS_WIN_STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE = 0xC0210033,
-  MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK = 0xC0210034,
-  MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_ON_CLUSTER = 0xC0210035,
-  MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING = 0xC0210036,
-  MD_NTSTATUS_WIN_STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE = 0xC0210037,
-  MD_NTSTATUS_WIN_STATUS_FVE_EDRIVE_DRY_RUN_FAILED = 0xC0210038,
-  MD_NTSTATUS_WIN_STATUS_FVE_SECUREBOOT_DISABLED = 0xC0210039,
-  MD_NTSTATUS_WIN_STATUS_FVE_SECUREBOOT_CONFIG_CHANGE = 0xC021003A,
-  MD_NTSTATUS_WIN_STATUS_FVE_DEVICE_LOCKEDOUT = 0xC021003B,
-  MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT = 0xC021003C,
-  MD_NTSTATUS_WIN_STATUS_FVE_NOT_DE_VOLUME = 0xC021003D,
-  MD_NTSTATUS_WIN_STATUS_FVE_PROTECTION_DISABLED = 0xC021003E,
-  MD_NTSTATUS_WIN_STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED = 0xC021003F,
-  MD_NTSTATUS_WIN_STATUS_FWP_CALLOUT_NOT_FOUND = 0xC0220001,
-  MD_NTSTATUS_WIN_STATUS_FWP_CONDITION_NOT_FOUND = 0xC0220002,
-  MD_NTSTATUS_WIN_STATUS_FWP_FILTER_NOT_FOUND = 0xC0220003,
-  MD_NTSTATUS_WIN_STATUS_FWP_LAYER_NOT_FOUND = 0xC0220004,
-  MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_NOT_FOUND = 0xC0220005,
-  MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND = 0xC0220006,
-  MD_NTSTATUS_WIN_STATUS_FWP_SUBLAYER_NOT_FOUND = 0xC0220007,
-  MD_NTSTATUS_WIN_STATUS_FWP_NOT_FOUND = 0xC0220008,
-  MD_NTSTATUS_WIN_STATUS_FWP_ALREADY_EXISTS = 0xC0220009,
-  MD_NTSTATUS_WIN_STATUS_FWP_IN_USE = 0xC022000A,
-  MD_NTSTATUS_WIN_STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS = 0xC022000B,
-  MD_NTSTATUS_WIN_STATUS_FWP_WRONG_SESSION = 0xC022000C,
-  MD_NTSTATUS_WIN_STATUS_FWP_NO_TXN_IN_PROGRESS = 0xC022000D,
-  MD_NTSTATUS_WIN_STATUS_FWP_TXN_IN_PROGRESS = 0xC022000E,
-  MD_NTSTATUS_WIN_STATUS_FWP_TXN_ABORTED = 0xC022000F,
-  MD_NTSTATUS_WIN_STATUS_FWP_SESSION_ABORTED = 0xC0220010,
-  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_TXN = 0xC0220011,
-  MD_NTSTATUS_WIN_STATUS_FWP_TIMEOUT = 0xC0220012,
-  MD_NTSTATUS_WIN_STATUS_FWP_NET_EVENTS_DISABLED = 0xC0220013,
-  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_LAYER = 0xC0220014,
-  MD_NTSTATUS_WIN_STATUS_FWP_KM_CLIENTS_ONLY = 0xC0220015,
-  MD_NTSTATUS_WIN_STATUS_FWP_LIFETIME_MISMATCH = 0xC0220016,
-  MD_NTSTATUS_WIN_STATUS_FWP_BUILTIN_OBJECT = 0xC0220017,
-  MD_NTSTATUS_WIN_STATUS_FWP_TOO_MANY_CALLOUTS = 0xC0220018,
-  MD_NTSTATUS_WIN_STATUS_FWP_NOTIFICATION_DROPPED = 0xC0220019,
-  MD_NTSTATUS_WIN_STATUS_FWP_TRAFFIC_MISMATCH = 0xC022001A,
-  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_SA_STATE = 0xC022001B,
-  MD_NTSTATUS_WIN_STATUS_FWP_NULL_POINTER = 0xC022001C,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_ENUMERATOR = 0xC022001D,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_FLAGS = 0xC022001E,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_NET_MASK = 0xC022001F,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_RANGE = 0xC0220020,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_INTERVAL = 0xC0220021,
-  MD_NTSTATUS_WIN_STATUS_FWP_ZERO_LENGTH_ARRAY = 0xC0220022,
-  MD_NTSTATUS_WIN_STATUS_FWP_NULL_DISPLAY_NAME = 0xC0220023,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_ACTION_TYPE = 0xC0220024,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_WEIGHT = 0xC0220025,
-  MD_NTSTATUS_WIN_STATUS_FWP_MATCH_TYPE_MISMATCH = 0xC0220026,
-  MD_NTSTATUS_WIN_STATUS_FWP_TYPE_MISMATCH = 0xC0220027,
-  MD_NTSTATUS_WIN_STATUS_FWP_OUT_OF_BOUNDS = 0xC0220028,
-  MD_NTSTATUS_WIN_STATUS_FWP_RESERVED = 0xC0220029,
-  MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_CONDITION = 0xC022002A,
-  MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_KEYMOD = 0xC022002B,
-  MD_NTSTATUS_WIN_STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER = 0xC022002C,
-  MD_NTSTATUS_WIN_STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER = 0xC022002D,
-  MD_NTSTATUS_WIN_STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER = 0xC022002E,
-  MD_NTSTATUS_WIN_STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT = 0xC022002F,
-  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_AUTH_METHOD = 0xC0220030,
-  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_DH_GROUP = 0xC0220031,
-  MD_NTSTATUS_WIN_STATUS_FWP_EM_NOT_SUPPORTED = 0xC0220032,
-  MD_NTSTATUS_WIN_STATUS_FWP_NEVER_MATCH = 0xC0220033,
-  MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_CONTEXT_MISMATCH = 0xC0220034,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_PARAMETER = 0xC0220035,
-  MD_NTSTATUS_WIN_STATUS_FWP_TOO_MANY_SUBLAYERS = 0xC0220036,
-  MD_NTSTATUS_WIN_STATUS_FWP_CALLOUT_NOTIFICATION_FAILED = 0xC0220037,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_AUTH_TRANSFORM = 0xC0220038,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_CIPHER_TRANSFORM = 0xC0220039,
-  MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM = 0xC022003A,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_TRANSFORM_COMBINATION = 0xC022003B,
-  MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_AUTH_METHOD = 0xC022003C,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_TUNNEL_ENDPOINT = 0xC022003D,
-  MD_NTSTATUS_WIN_STATUS_FWP_L2_DRIVER_NOT_READY = 0xC022003E,
-  MD_NTSTATUS_WIN_STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED = 0xC022003F,
-  MD_NTSTATUS_WIN_STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL = 0xC0220040,
-  MD_NTSTATUS_WIN_STATUS_FWP_CONNECTIONS_DISABLED = 0xC0220041,
-  MD_NTSTATUS_WIN_STATUS_FWP_INVALID_DNS_NAME = 0xC0220042,
-  MD_NTSTATUS_WIN_STATUS_FWP_STILL_ON = 0xC0220043,
-  MD_NTSTATUS_WIN_STATUS_FWP_IKEEXT_NOT_RUNNING = 0xC0220044,
-  MD_NTSTATUS_WIN_STATUS_FWP_TCPIP_NOT_READY = 0xC0220100,
-  MD_NTSTATUS_WIN_STATUS_FWP_INJECT_HANDLE_CLOSING = 0xC0220101,
-  MD_NTSTATUS_WIN_STATUS_FWP_INJECT_HANDLE_STALE = 0xC0220102,
-  MD_NTSTATUS_WIN_STATUS_FWP_CANNOT_PEND = 0xC0220103,
-  MD_NTSTATUS_WIN_STATUS_FWP_DROP_NOICMP = 0xC0220104,
-  MD_NTSTATUS_WIN_STATUS_NDIS_CLOSING = 0xC0230002,
-  MD_NTSTATUS_WIN_STATUS_NDIS_BAD_VERSION = 0xC0230004,
-  MD_NTSTATUS_WIN_STATUS_NDIS_BAD_CHARACTERISTICS = 0xC0230005,
-  MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_NOT_FOUND = 0xC0230006,
-  MD_NTSTATUS_WIN_STATUS_NDIS_OPEN_FAILED = 0xC0230007,
-  MD_NTSTATUS_WIN_STATUS_NDIS_DEVICE_FAILED = 0xC0230008,
-  MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_FULL = 0xC0230009,
-  MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_EXISTS = 0xC023000A,
-  MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_NOT_FOUND = 0xC023000B,
-  MD_NTSTATUS_WIN_STATUS_NDIS_REQUEST_ABORTED = 0xC023000C,
-  MD_NTSTATUS_WIN_STATUS_NDIS_RESET_IN_PROGRESS = 0xC023000D,
-  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PACKET = 0xC023000F,
-  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_DEVICE_REQUEST = 0xC0230010,
-  MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_NOT_READY = 0xC0230011,
-  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_LENGTH = 0xC0230014,
-  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_DATA = 0xC0230015,
-  MD_NTSTATUS_WIN_STATUS_NDIS_BUFFER_TOO_SHORT = 0xC0230016,
-  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_OID = 0xC0230017,
-  MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_REMOVED = 0xC0230018,
-  MD_NTSTATUS_WIN_STATUS_NDIS_UNSUPPORTED_MEDIA = 0xC0230019,
-  MD_NTSTATUS_WIN_STATUS_NDIS_GROUP_ADDRESS_IN_USE = 0xC023001A,
-  MD_NTSTATUS_WIN_STATUS_NDIS_FILE_NOT_FOUND = 0xC023001B,
-  MD_NTSTATUS_WIN_STATUS_NDIS_ERROR_READING_FILE = 0xC023001C,
-  MD_NTSTATUS_WIN_STATUS_NDIS_ALREADY_MAPPED = 0xC023001D,
-  MD_NTSTATUS_WIN_STATUS_NDIS_RESOURCE_CONFLICT = 0xC023001E,
-  MD_NTSTATUS_WIN_STATUS_NDIS_MEDIA_DISCONNECTED = 0xC023001F,
-  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_ADDRESS = 0xC0230022,
-  MD_NTSTATUS_WIN_STATUS_NDIS_PAUSED = 0xC023002A,
-  MD_NTSTATUS_WIN_STATUS_NDIS_INTERFACE_NOT_FOUND = 0xC023002B,
-  MD_NTSTATUS_WIN_STATUS_NDIS_UNSUPPORTED_REVISION = 0xC023002C,
-  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PORT = 0xC023002D,
-  MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PORT_STATE = 0xC023002E,
-  MD_NTSTATUS_WIN_STATUS_NDIS_LOW_POWER_STATE = 0xC023002F,
-  MD_NTSTATUS_WIN_STATUS_NDIS_REINIT_REQUIRED = 0xC0230030,
-  MD_NTSTATUS_WIN_STATUS_NDIS_NOT_SUPPORTED = 0xC02300BB,
-  MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_POLICY = 0xC023100F,
-  MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED = 0xC0231012,
-  MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_PATH_REJECTED = 0xC0231013,
-  MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED = 0xC0232000,
-  MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_MEDIA_IN_USE = 0xC0232001,
-  MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_POWER_STATE_INVALID = 0xC0232002,
-  MD_NTSTATUS_WIN_STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL = 0xC0232003,
-  MD_NTSTATUS_WIN_STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL = 0xC0232004,
-  MD_NTSTATUS_WIN_STATUS_TPM_ERROR_MASK = 0xC0290000,
-  MD_NTSTATUS_WIN_STATUS_TPM_AUTHFAIL = 0xC0290001,
-  MD_NTSTATUS_WIN_STATUS_TPM_BADINDEX = 0xC0290002,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_PARAMETER = 0xC0290003,
-  MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAILURE = 0xC0290004,
-  MD_NTSTATUS_WIN_STATUS_TPM_CLEAR_DISABLED = 0xC0290005,
-  MD_NTSTATUS_WIN_STATUS_TPM_DEACTIVATED = 0xC0290006,
-  MD_NTSTATUS_WIN_STATUS_TPM_DISABLED = 0xC0290007,
-  MD_NTSTATUS_WIN_STATUS_TPM_DISABLED_CMD = 0xC0290008,
-  MD_NTSTATUS_WIN_STATUS_TPM_FAIL = 0xC0290009,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_ORDINAL = 0xC029000A,
-  MD_NTSTATUS_WIN_STATUS_TPM_INSTALL_DISABLED = 0xC029000B,
-  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_KEYHANDLE = 0xC029000C,
-  MD_NTSTATUS_WIN_STATUS_TPM_KEYNOTFOUND = 0xC029000D,
-  MD_NTSTATUS_WIN_STATUS_TPM_INAPPROPRIATE_ENC = 0xC029000E,
-  MD_NTSTATUS_WIN_STATUS_TPM_MIGRATEFAIL = 0xC029000F,
-  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_PCR_INFO = 0xC0290010,
-  MD_NTSTATUS_WIN_STATUS_TPM_NOSPACE = 0xC0290011,
-  MD_NTSTATUS_WIN_STATUS_TPM_NOSRK = 0xC0290012,
-  MD_NTSTATUS_WIN_STATUS_TPM_NOTSEALED_BLOB = 0xC0290013,
-  MD_NTSTATUS_WIN_STATUS_TPM_OWNER_SET = 0xC0290014,
-  MD_NTSTATUS_WIN_STATUS_TPM_RESOURCES = 0xC0290015,
-  MD_NTSTATUS_WIN_STATUS_TPM_SHORTRANDOM = 0xC0290016,
-  MD_NTSTATUS_WIN_STATUS_TPM_SIZE = 0xC0290017,
-  MD_NTSTATUS_WIN_STATUS_TPM_WRONGPCRVAL = 0xC0290018,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_PARAM_SIZE = 0xC0290019,
-  MD_NTSTATUS_WIN_STATUS_TPM_SHA_THREAD = 0xC029001A,
-  MD_NTSTATUS_WIN_STATUS_TPM_SHA_ERROR = 0xC029001B,
-  MD_NTSTATUS_WIN_STATUS_TPM_FAILEDSELFTEST = 0xC029001C,
-  MD_NTSTATUS_WIN_STATUS_TPM_AUTH2FAIL = 0xC029001D,
-  MD_NTSTATUS_WIN_STATUS_TPM_BADTAG = 0xC029001E,
-  MD_NTSTATUS_WIN_STATUS_TPM_IOERROR = 0xC029001F,
-  MD_NTSTATUS_WIN_STATUS_TPM_ENCRYPT_ERROR = 0xC0290020,
-  MD_NTSTATUS_WIN_STATUS_TPM_DECRYPT_ERROR = 0xC0290021,
-  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_AUTHHANDLE = 0xC0290022,
-  MD_NTSTATUS_WIN_STATUS_TPM_NO_ENDORSEMENT = 0xC0290023,
-  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_KEYUSAGE = 0xC0290024,
-  MD_NTSTATUS_WIN_STATUS_TPM_WRONG_ENTITYTYPE = 0xC0290025,
-  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_POSTINIT = 0xC0290026,
-  MD_NTSTATUS_WIN_STATUS_TPM_INAPPROPRIATE_SIG = 0xC0290027,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_KEY_PROPERTY = 0xC0290028,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_MIGRATION = 0xC0290029,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_SCHEME = 0xC029002A,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_DATASIZE = 0xC029002B,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_MODE = 0xC029002C,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_PRESENCE = 0xC029002D,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_VERSION = 0xC029002E,
-  MD_NTSTATUS_WIN_STATUS_TPM_NO_WRAP_TRANSPORT = 0xC029002F,
-  MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAIL_UNSUCCESSFUL = 0xC0290030,
-  MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAIL_SUCCESSFUL = 0xC0290031,
-  MD_NTSTATUS_WIN_STATUS_TPM_NOTRESETABLE = 0xC0290032,
-  MD_NTSTATUS_WIN_STATUS_TPM_NOTLOCAL = 0xC0290033,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_TYPE = 0xC0290034,
-  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_RESOURCE = 0xC0290035,
-  MD_NTSTATUS_WIN_STATUS_TPM_NOTFIPS = 0xC0290036,
-  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_FAMILY = 0xC0290037,
-  MD_NTSTATUS_WIN_STATUS_TPM_NO_NV_PERMISSION = 0xC0290038,
-  MD_NTSTATUS_WIN_STATUS_TPM_REQUIRES_SIGN = 0xC0290039,
-  MD_NTSTATUS_WIN_STATUS_TPM_KEY_NOTSUPPORTED = 0xC029003A,
-  MD_NTSTATUS_WIN_STATUS_TPM_AUTH_CONFLICT = 0xC029003B,
-  MD_NTSTATUS_WIN_STATUS_TPM_AREA_LOCKED = 0xC029003C,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_LOCALITY = 0xC029003D,
-  MD_NTSTATUS_WIN_STATUS_TPM_READ_ONLY = 0xC029003E,
-  MD_NTSTATUS_WIN_STATUS_TPM_PER_NOWRITE = 0xC029003F,
-  MD_NTSTATUS_WIN_STATUS_TPM_FAMILYCOUNT = 0xC0290040,
-  MD_NTSTATUS_WIN_STATUS_TPM_WRITE_LOCKED = 0xC0290041,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_ATTRIBUTES = 0xC0290042,
-  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_STRUCTURE = 0xC0290043,
-  MD_NTSTATUS_WIN_STATUS_TPM_KEY_OWNER_CONTROL = 0xC0290044,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_COUNTER = 0xC0290045,
-  MD_NTSTATUS_WIN_STATUS_TPM_NOT_FULLWRITE = 0xC0290046,
-  MD_NTSTATUS_WIN_STATUS_TPM_CONTEXT_GAP = 0xC0290047,
-  MD_NTSTATUS_WIN_STATUS_TPM_MAXNVWRITES = 0xC0290048,
-  MD_NTSTATUS_WIN_STATUS_TPM_NOOPERATOR = 0xC0290049,
-  MD_NTSTATUS_WIN_STATUS_TPM_RESOURCEMISSING = 0xC029004A,
-  MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_LOCK = 0xC029004B,
-  MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_FAMILY = 0xC029004C,
-  MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_ADMIN = 0xC029004D,
-  MD_NTSTATUS_WIN_STATUS_TPM_TRANSPORT_NOTEXCLUSIVE = 0xC029004E,
-  MD_NTSTATUS_WIN_STATUS_TPM_OWNER_CONTROL = 0xC029004F,
-  MD_NTSTATUS_WIN_STATUS_TPM_DAA_RESOURCES = 0xC0290050,
-  MD_NTSTATUS_WIN_STATUS_TPM_DAA_INPUT_DATA0 = 0xC0290051,
-  MD_NTSTATUS_WIN_STATUS_TPM_DAA_INPUT_DATA1 = 0xC0290052,
-  MD_NTSTATUS_WIN_STATUS_TPM_DAA_ISSUER_SETTINGS = 0xC0290053,
-  MD_NTSTATUS_WIN_STATUS_TPM_DAA_TPM_SETTINGS = 0xC0290054,
-  MD_NTSTATUS_WIN_STATUS_TPM_DAA_STAGE = 0xC0290055,
-  MD_NTSTATUS_WIN_STATUS_TPM_DAA_ISSUER_VALIDITY = 0xC0290056,
-  MD_NTSTATUS_WIN_STATUS_TPM_DAA_WRONG_W = 0xC0290057,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_HANDLE = 0xC0290058,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_DELEGATE = 0xC0290059,
-  MD_NTSTATUS_WIN_STATUS_TPM_BADCONTEXT = 0xC029005A,
-  MD_NTSTATUS_WIN_STATUS_TPM_TOOMANYCONTEXTS = 0xC029005B,
-  MD_NTSTATUS_WIN_STATUS_TPM_MA_TICKET_SIGNATURE = 0xC029005C,
-  MD_NTSTATUS_WIN_STATUS_TPM_MA_DESTINATION = 0xC029005D,
-  MD_NTSTATUS_WIN_STATUS_TPM_MA_SOURCE = 0xC029005E,
-  MD_NTSTATUS_WIN_STATUS_TPM_MA_AUTHORITY = 0xC029005F,
-  MD_NTSTATUS_WIN_STATUS_TPM_PERMANENTEK = 0xC0290061,
-  MD_NTSTATUS_WIN_STATUS_TPM_BAD_SIGNATURE = 0xC0290062,
-  MD_NTSTATUS_WIN_STATUS_TPM_NOCONTEXTSPACE = 0xC0290063,
-  MD_NTSTATUS_WIN_STATUS_TPM_COMMAND_BLOCKED = 0xC0290400,
-  MD_NTSTATUS_WIN_STATUS_TPM_INVALID_HANDLE = 0xC0290401,
-  MD_NTSTATUS_WIN_STATUS_TPM_DUPLICATE_VHANDLE = 0xC0290402,
-  MD_NTSTATUS_WIN_STATUS_TPM_EMBEDDED_COMMAND_BLOCKED = 0xC0290403,
-  MD_NTSTATUS_WIN_STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED = 0xC0290404,
-  MD_NTSTATUS_WIN_STATUS_TPM_RETRY = 0xC0290800,
-  MD_NTSTATUS_WIN_STATUS_TPM_NEEDS_SELFTEST = 0xC0290801,
-  MD_NTSTATUS_WIN_STATUS_TPM_DOING_SELFTEST = 0xC0290802,
-  MD_NTSTATUS_WIN_STATUS_TPM_DEFEND_LOCK_RUNNING = 0xC0290803,
-  MD_NTSTATUS_WIN_STATUS_TPM_COMMAND_CANCELED = 0xC0291001,
-  MD_NTSTATUS_WIN_STATUS_TPM_TOO_MANY_CONTEXTS = 0xC0291002,
-  MD_NTSTATUS_WIN_STATUS_TPM_NOT_FOUND = 0xC0291003,
-  MD_NTSTATUS_WIN_STATUS_TPM_ACCESS_DENIED = 0xC0291004,
-  MD_NTSTATUS_WIN_STATUS_TPM_INSUFFICIENT_BUFFER = 0xC0291005,
-  MD_NTSTATUS_WIN_STATUS_TPM_PPI_FUNCTION_UNSUPPORTED = 0xC0291006,
-  MD_NTSTATUS_WIN_STATUS_PCP_ERROR_MASK = 0xC0292000,
-  MD_NTSTATUS_WIN_STATUS_PCP_DEVICE_NOT_READY = 0xC0292001,
-  MD_NTSTATUS_WIN_STATUS_PCP_INVALID_HANDLE = 0xC0292002,
-  MD_NTSTATUS_WIN_STATUS_PCP_INVALID_PARAMETER = 0xC0292003,
-  MD_NTSTATUS_WIN_STATUS_PCP_FLAG_NOT_SUPPORTED = 0xC0292004,
-  MD_NTSTATUS_WIN_STATUS_PCP_NOT_SUPPORTED = 0xC0292005,
-  MD_NTSTATUS_WIN_STATUS_PCP_BUFFER_TOO_SMALL = 0xC0292006,
-  MD_NTSTATUS_WIN_STATUS_PCP_INTERNAL_ERROR = 0xC0292007,
-  MD_NTSTATUS_WIN_STATUS_PCP_AUTHENTICATION_FAILED = 0xC0292008,
-  MD_NTSTATUS_WIN_STATUS_PCP_AUTHENTICATION_IGNORED = 0xC0292009,
-  MD_NTSTATUS_WIN_STATUS_PCP_POLICY_NOT_FOUND = 0xC029200A,
-  MD_NTSTATUS_WIN_STATUS_PCP_PROFILE_NOT_FOUND = 0xC029200B,
-  MD_NTSTATUS_WIN_STATUS_PCP_VALIDATION_FAILED = 0xC029200C,
-  MD_NTSTATUS_WIN_STATUS_PCP_DEVICE_NOT_FOUND = 0xC029200D,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_HYPERCALL_CODE = 0xC0350002,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_HYPERCALL_INPUT = 0xC0350003,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_ALIGNMENT = 0xC0350004,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARAMETER = 0xC0350005,
-  MD_NTSTATUS_WIN_STATUS_HV_ACCESS_DENIED = 0xC0350006,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARTITION_STATE = 0xC0350007,
-  MD_NTSTATUS_WIN_STATUS_HV_OPERATION_DENIED = 0xC0350008,
-  MD_NTSTATUS_WIN_STATUS_HV_UNKNOWN_PROPERTY = 0xC0350009,
-  MD_NTSTATUS_WIN_STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE = 0xC035000A,
-  MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_MEMORY = 0xC035000B,
-  MD_NTSTATUS_WIN_STATUS_HV_PARTITION_TOO_DEEP = 0xC035000C,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARTITION_ID = 0xC035000D,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_VP_INDEX = 0xC035000E,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_PORT_ID = 0xC0350011,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_CONNECTION_ID = 0xC0350012,
-  MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_BUFFERS = 0xC0350013,
-  MD_NTSTATUS_WIN_STATUS_HV_NOT_ACKNOWLEDGED = 0xC0350014,
-  MD_NTSTATUS_WIN_STATUS_HV_ACKNOWLEDGED = 0xC0350016,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_SAVE_RESTORE_STATE = 0xC0350017,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_SYNIC_STATE = 0xC0350018,
-  MD_NTSTATUS_WIN_STATUS_HV_OBJECT_IN_USE = 0xC0350019,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO = 0xC035001A,
-  MD_NTSTATUS_WIN_STATUS_HV_NO_DATA = 0xC035001B,
-  MD_NTSTATUS_WIN_STATUS_HV_INACTIVE = 0xC035001C,
-  MD_NTSTATUS_WIN_STATUS_HV_NO_RESOURCES = 0xC035001D,
-  MD_NTSTATUS_WIN_STATUS_HV_FEATURE_UNAVAILABLE = 0xC035001E,
-  MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_BUFFER = 0xC0350033,
-  MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS = 0xC0350038,
-  MD_NTSTATUS_WIN_STATUS_HV_INVALID_LP_INDEX = 0xC0350041,
-  MD_NTSTATUS_WIN_STATUS_HV_NOT_PRESENT = 0xC0351000,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_BAD_SPI = 0xC0360001,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_SA_LIFETIME_EXPIRED = 0xC0360002,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_WRONG_SA = 0xC0360003,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_REPLAY_CHECK_FAILED = 0xC0360004,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_INVALID_PACKET = 0xC0360005,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_INTEGRITY_CHECK_FAILED = 0xC0360006,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_CLEAR_TEXT_DROP = 0xC0360007,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_AUTH_FIREWALL_DROP = 0xC0360008,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_THROTTLE_DROP = 0xC0360009,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_BLOCK = 0xC0368000,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_RECEIVED_MULTICAST = 0xC0368001,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_INVALID_PACKET = 0xC0368002,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED = 0xC0368003,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_MAX_ENTRIES = 0xC0368004,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED = 0xC0368005,
-  MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES = 0xC0368006,
-  MD_NTSTATUS_WIN_STATUS_VID_DUPLICATE_HANDLER = 0xC0370001,
-  MD_NTSTATUS_WIN_STATUS_VID_TOO_MANY_HANDLERS = 0xC0370002,
-  MD_NTSTATUS_WIN_STATUS_VID_QUEUE_FULL = 0xC0370003,
-  MD_NTSTATUS_WIN_STATUS_VID_HANDLER_NOT_PRESENT = 0xC0370004,
-  MD_NTSTATUS_WIN_STATUS_VID_INVALID_OBJECT_NAME = 0xC0370005,
-  MD_NTSTATUS_WIN_STATUS_VID_PARTITION_NAME_TOO_LONG = 0xC0370006,
-  MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG = 0xC0370007,
-  MD_NTSTATUS_WIN_STATUS_VID_PARTITION_ALREADY_EXISTS = 0xC0370008,
-  MD_NTSTATUS_WIN_STATUS_VID_PARTITION_DOES_NOT_EXIST = 0xC0370009,
-  MD_NTSTATUS_WIN_STATUS_VID_PARTITION_NAME_NOT_FOUND = 0xC037000A,
-  MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS = 0xC037000B,
-  MD_NTSTATUS_WIN_STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT = 0xC037000C,
-  MD_NTSTATUS_WIN_STATUS_VID_MB_STILL_REFERENCED = 0xC037000D,
-  MD_NTSTATUS_WIN_STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED = 0xC037000E,
-  MD_NTSTATUS_WIN_STATUS_VID_INVALID_NUMA_SETTINGS = 0xC037000F,
-  MD_NTSTATUS_WIN_STATUS_VID_INVALID_NUMA_NODE_INDEX = 0xC0370010,
-  MD_NTSTATUS_WIN_STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED = 0xC0370011,
-  MD_NTSTATUS_WIN_STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE = 0xC0370012,
-  MD_NTSTATUS_WIN_STATUS_VID_PAGE_RANGE_OVERFLOW = 0xC0370013,
-  MD_NTSTATUS_WIN_STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE = 0xC0370014,
-  MD_NTSTATUS_WIN_STATUS_VID_INVALID_GPA_RANGE_HANDLE = 0xC0370015,
-  MD_NTSTATUS_WIN_STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE = 0xC0370016,
-  MD_NTSTATUS_WIN_STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED = 0xC0370017,
-  MD_NTSTATUS_WIN_STATUS_VID_INVALID_PPM_HANDLE = 0xC0370018,
-  MD_NTSTATUS_WIN_STATUS_VID_MBPS_ARE_LOCKED = 0xC0370019,
-  MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_CLOSED = 0xC037001A,
-  MD_NTSTATUS_WIN_STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED = 0xC037001B,
-  MD_NTSTATUS_WIN_STATUS_VID_STOP_PENDING = 0xC037001C,
-  MD_NTSTATUS_WIN_STATUS_VID_INVALID_PROCESSOR_STATE = 0xC037001D,
-  MD_NTSTATUS_WIN_STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT = 0xC037001E,
-  MD_NTSTATUS_WIN_STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED = 0xC037001F,
-  MD_NTSTATUS_WIN_STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET = 0xC0370020,
-  MD_NTSTATUS_WIN_STATUS_VID_MMIO_RANGE_DESTROYED = 0xC0370021,
-  MD_NTSTATUS_WIN_STATUS_VID_INVALID_CHILD_GPA_PAGE_SET = 0xC0370022,
-  MD_NTSTATUS_WIN_STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED = 0xC0370023,
-  MD_NTSTATUS_WIN_STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL = 0xC0370024,
-  MD_NTSTATUS_WIN_STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE = 0xC0370025,
-  MD_NTSTATUS_WIN_STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT = 0xC0370026,
-  MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_CORRUPT = 0xC0370027,
-  MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM = 0xC0370028,
-  MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_INCOMPATIBLE = 0xC0370029,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DATABASE_FULL = 0xC0380001,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED = 0xC0380002,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC = 0xC0380003,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED = 0xC0380004,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME = 0xC0380005,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_DUPLICATE = 0xC0380006,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_DYNAMIC = 0xC0380007,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_ID_INVALID = 0xC0380008,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_INVALID = 0xC0380009,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAST_VOTER = 0xC038000A,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_INVALID = 0xC038000B,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS = 0xC038000C,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED = 0xC038000D,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL = 0xC038000E,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS = 0xC038000F,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS = 0xC0380010,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_MISSING = 0xC0380011,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_NOT_EMPTY = 0xC0380012,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE = 0xC0380013,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_REVECTORING_FAILED = 0xC0380014,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID = 0xC0380015,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_SET_NOT_CONTAINED = 0xC0380016,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS = 0xC0380017,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES = 0xC0380018,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED = 0xC0380019,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_ALREADY_USED = 0xC038001A,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS = 0xC038001B,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION = 0xC038001C,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED = 0xC038001D,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION = 0xC038001E,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH = 0xC038001F,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED = 0xC0380020,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID = 0xC0380021,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS = 0xC0380022,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_IN_SYNC = 0xC0380023,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE = 0xC0380024,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_INDEX_INVALID = 0xC0380025,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_MISSING = 0xC0380026,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_NOT_DETACHED = 0xC0380027,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_REGENERATING = 0xC0380028,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_ALL_DISKS_FAILED = 0xC0380029,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_REGISTERED_USERS = 0xC038002A,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_SUCH_USER = 0xC038002B,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NOTIFICATION_RESET = 0xC038002C,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID = 0xC038002D,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID = 0xC038002E,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_DUPLICATE = 0xC038002F,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_ID_INVALID = 0xC0380030,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_INVALID = 0xC0380031,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_NAME_INVALID = 0xC0380032,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_OFFLINE = 0xC0380033,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_HAS_QUORUM = 0xC0380034,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_WITHOUT_QUORUM = 0xC0380035,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PARTITION_STYLE_INVALID = 0xC0380036,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PARTITION_UPDATE_FAILED = 0xC0380037,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_IN_SYNC = 0xC0380038,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_INDEX_DUPLICATE = 0xC0380039,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_INDEX_INVALID = 0xC038003A,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_LAST_ACTIVE = 0xC038003B,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_MISSING = 0xC038003C,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_REGENERATING = 0xC038003D,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_TYPE_INVALID = 0xC038003E,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_RAID5 = 0xC038003F,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_SIMPLE = 0xC0380040,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_STRUCTURE_SIZE_INVALID = 0xC0380041,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS = 0xC0380042,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_TRANSACTION_IN_PROGRESS = 0xC0380043,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE = 0xC0380044,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK = 0xC0380045,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_ID_INVALID = 0xC0380046,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_LENGTH_INVALID = 0xC0380047,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE = 0xC0380048,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_NOT_MIRRORED = 0xC0380049,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_NOT_RETAINED = 0xC038004A,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_OFFLINE = 0xC038004B,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_RETAINED = 0xC038004C,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID = 0xC038004D,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE = 0xC038004E,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_BAD_BOOT_DISK = 0xC038004F,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_OFFLINE = 0xC0380050,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_ONLINE = 0xC0380051,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NOT_PRIMARY_PACK = 0xC0380052,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED = 0xC0380053,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID = 0xC0380054,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID = 0xC0380055,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_MIRRORED = 0xC0380056,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED = 0xC0380057,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_VALID_LOG_COPIES = 0xC0380058,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_PRIMARY_PACK_PRESENT = 0xC0380059,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID = 0xC038005A,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_MIRROR_NOT_SUPPORTED = 0xC038005B,
-  MD_NTSTATUS_WIN_STATUS_VOLMGR_RAID5_NOT_SUPPORTED = 0xC038005C,
-  MD_NTSTATUS_WIN_STATUS_BCD_TOO_MANY_ELEMENTS = 0xC0390002,
-  MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_MISSING = 0xC03A0001,
-  MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH = 0xC03A0002,
-  MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_CORRUPT = 0xC03A0003,
-  MD_NTSTATUS_WIN_STATUS_VHD_FORMAT_UNKNOWN = 0xC03A0004,
-  MD_NTSTATUS_WIN_STATUS_VHD_FORMAT_UNSUPPORTED_VERSION = 0xC03A0005,
-  MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH = 0xC03A0006,
-  MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION = 0xC03A0007,
-  MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_CORRUPT = 0xC03A0008,
-  MD_NTSTATUS_WIN_STATUS_VHD_BLOCK_ALLOCATION_FAILURE = 0xC03A0009,
-  MD_NTSTATUS_WIN_STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT = 0xC03A000A,
-  MD_NTSTATUS_WIN_STATUS_VHD_INVALID_BLOCK_SIZE = 0xC03A000B,
-  MD_NTSTATUS_WIN_STATUS_VHD_BITMAP_MISMATCH = 0xC03A000C,
-  MD_NTSTATUS_WIN_STATUS_VHD_PARENT_VHD_NOT_FOUND = 0xC03A000D,
-  MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_ID_MISMATCH = 0xC03A000E,
-  MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH = 0xC03A000F,
-  MD_NTSTATUS_WIN_STATUS_VHD_METADATA_READ_FAILURE = 0xC03A0010,
-  MD_NTSTATUS_WIN_STATUS_VHD_METADATA_WRITE_FAILURE = 0xC03A0011,
-  MD_NTSTATUS_WIN_STATUS_VHD_INVALID_SIZE = 0xC03A0012,
-  MD_NTSTATUS_WIN_STATUS_VHD_INVALID_FILE_SIZE = 0xC03A0013,
-  MD_NTSTATUS_WIN_STATUS_VIRTDISK_PROVIDER_NOT_FOUND = 0xC03A0014,
-  MD_NTSTATUS_WIN_STATUS_VIRTDISK_NOT_VIRTUAL_DISK = 0xC03A0015,
-  MD_NTSTATUS_WIN_STATUS_VHD_PARENT_VHD_ACCESS_DENIED = 0xC03A0016,
-  MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH = 0xC03A0017,
-  MD_NTSTATUS_WIN_STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED = 0xC03A0018,
-  MD_NTSTATUS_WIN_STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT = 0xC03A0019,
-  MD_NTSTATUS_WIN_STATUS_VIRTUAL_DISK_LIMITATION = 0xC03A001A,
-  MD_NTSTATUS_WIN_STATUS_VHD_INVALID_TYPE = 0xC03A001B,
-  MD_NTSTATUS_WIN_STATUS_VHD_INVALID_STATE = 0xC03A001C,
-  MD_NTSTATUS_WIN_STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE = 0xC03A001D,
-  MD_NTSTATUS_WIN_STATUS_VIRTDISK_DISK_ALREADY_OWNED = 0xC03A001E,
-  MD_NTSTATUS_WIN_STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE = 0xC03A001F,
-  MD_NTSTATUS_WIN_STATUS_CTLOG_TRACKING_NOT_INITIALIZED = 0xC03A0020,
-  MD_NTSTATUS_WIN_STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE = 0xC03A0021,
-  MD_NTSTATUS_WIN_STATUS_CTLOG_VHD_CHANGED_OFFLINE = 0xC03A0022,
-  MD_NTSTATUS_WIN_STATUS_CTLOG_INVALID_TRACKING_STATE = 0xC03A0023,
-  MD_NTSTATUS_WIN_STATUS_CTLOG_INCONSISTENT_TRACKING_FILE = 0xC03A0024,
-  MD_NTSTATUS_WIN_STATUS_VHD_METADATA_FULL = 0xC03A0028,
-  MD_NTSTATUS_WIN_STATUS_RKF_KEY_NOT_FOUND = 0xC0400001,
-  MD_NTSTATUS_WIN_STATUS_RKF_DUPLICATE_KEY = 0xC0400002,
-  MD_NTSTATUS_WIN_STATUS_RKF_BLOB_FULL = 0xC0400003,
-  MD_NTSTATUS_WIN_STATUS_RKF_STORE_FULL = 0xC0400004,
-  MD_NTSTATUS_WIN_STATUS_RKF_FILE_BLOCKED = 0xC0400005,
-  MD_NTSTATUS_WIN_STATUS_RKF_ACTIVE_KEY = 0xC0400006,
-  MD_NTSTATUS_WIN_STATUS_RDBSS_RESTART_OPERATION = 0xC0410001,
-  MD_NTSTATUS_WIN_STATUS_RDBSS_CONTINUE_OPERATION = 0xC0410002,
-  MD_NTSTATUS_WIN_STATUS_RDBSS_POST_OPERATION = 0xC0410003,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_HANDLE = 0xC0420001,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_READ_NOT_PERMITTED = 0xC0420002,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_WRITE_NOT_PERMITTED = 0xC0420003,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_PDU = 0xC0420004,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION = 0xC0420005,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED = 0xC0420006,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_OFFSET = 0xC0420007,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION = 0xC0420008,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_PREPARE_QUEUE_FULL = 0xC0420009,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND = 0xC042000A,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG = 0xC042000B,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE = 0xC042000C,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH = 0xC042000D,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNLIKELY = 0xC042000E,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION = 0xC042000F,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE = 0xC0420010,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_RESOURCES = 0xC0420011,
-  MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNKNOWN_ERROR = 0xC0421000,
-  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_ROLLBACK_DETECTED = 0xC0430001,
-  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_VIOLATION = 0xC0430002,
-  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_INVALID_POLICY = 0xC0430003,
-  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND = 0xC0430004,
-  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_NOT_SIGNED = 0xC0430005,
-  MD_NTSTATUS_WIN_STATUS_SECUREBOOT_FILE_REPLACED = 0xC0430007,
-  MD_NTSTATUS_WIN_STATUS_AUDIO_ENGINE_NODE_NOT_FOUND = 0xC0440001,
-  MD_NTSTATUS_WIN_STATUS_HDAUDIO_EMPTY_CONNECTION_LIST = 0xC0440002,
-  MD_NTSTATUS_WIN_STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED = 0xC0440003,
-  MD_NTSTATUS_WIN_STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED = 0xC0440004,
-  MD_NTSTATUS_WIN_STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY = 0xC0440005,
-  MD_NTSTATUS_WIN_STATUS_VOLSNAP_BOOTFILE_NOT_VALID = 0xC0500003,
-  MD_NTSTATUS_WIN_STATUS_IO_PREEMPTED = 0xC0510001,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_ERROR_STORED = 0xC05C0000,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_ERROR_NOT_AVAILABLE = 0xC05CFF00,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE = 0xC05CFF01,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED = 0xC05CFF02,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED = 0xC05CFF03,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED = 0xC05CFF04,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED = 0xC05CFF05,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED = 0xC05CFF06,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_RESERVATION_CONFLICT = 0xC05CFF07,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_WRONG_FILE_TYPE = 0xC05CFF08,
-  MD_NTSTATUS_WIN_STATUS_SVHDX_VERSION_MISMATCH = 0xC05CFF09,
-  MD_NTSTATUS_WIN_STATUS_VHD_SHARED = 0xC05CFF0A,
-  MD_NTSTATUS_WIN_STATUS_SPACES_RESILIENCY_TYPE_INVALID = 0xC0E70003,
-  MD_NTSTATUS_WIN_STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID = 0xC0E70004,
-  MD_NTSTATUS_WIN_STATUS_SPACES_INTERLEAVE_LENGTH_INVALID = 0xC0E70009,
-  MD_NTSTATUS_WIN_STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID = 0xC0E7000A,
-  MD_NTSTATUS_WIN_STATUS_SPACES_NOT_ENOUGH_DRIVES = 0xC0E7000B
-} MDNTStatusCodeWin;
-
-// These constants are defined in the MSDN documentation of
-// the EXCEPTION_RECORD structure.
-typedef enum {
-  MD_ACCESS_VIOLATION_WIN_READ  = 0,
-  MD_ACCESS_VIOLATION_WIN_WRITE = 1,
-  MD_ACCESS_VIOLATION_WIN_EXEC  = 8
-} MDAccessViolationTypeWin;
-
-// These constants are defined in the MSDN documentation of
-// the EXCEPTION_RECORD structure.
-typedef enum {
-  MD_IN_PAGE_ERROR_WIN_READ  = 0,
-  MD_IN_PAGE_ERROR_WIN_WRITE = 1,
-  MD_IN_PAGE_ERROR_WIN_EXEC  = 8
-} MDInPageErrorTypeWin;
-
-#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_format.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_format.h
deleted file mode 100644
index 17a5abb..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_format.h
+++ /dev/null
@@ -1,972 +0,0 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-/* minidump_format.h: A cross-platform reimplementation of minidump-related
- * portions of DbgHelp.h from the Windows Platform SDK.
- *
- * (This is C99 source, please don't corrupt it with C++.)
- *
- * Structures that are defined by Microsoft to contain a zero-length array
- * are instead defined here to contain an array with one element, as
- * zero-length arrays are forbidden by standard C and C++.  In these cases,
- * *_minsize constants are provided to be used in place of sizeof.  For a
- * cleaner interface to these sizes when using C++, see minidump_size.h.
- *
- * These structures are also sufficient to populate minidump files.
- *
- * These definitions may be extended to support handling minidump files
- * for other CPUs and other operating systems.
- *
- * Because precise data type sizes are crucial for this implementation to
- * function properly and portably in terms of interoperability with minidumps
- * produced by DbgHelp on Windows, a set of primitive types with known sizes
- * are used as the basis of each structure defined by this file.  DbgHelp
- * on Windows is assumed to be the reference implementation; this file
- * seeks to provide a cross-platform compatible implementation.  To avoid
- * collisions with the types and values defined and used by DbgHelp in the
- * event that this implementation is used on Windows, each type and value
- * defined here is given a new name, beginning with "MD".  Names of the
- * equivalent types and values in the Windows Platform SDK are given in
- * comments.
- *
- * Author: Mark Mentovai */
-
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__
-
-#include <stddef.h>
-
-#include "google_breakpad/common/breakpad_types.h"
-
-
-#if defined(_MSC_VER)
-/* Disable "zero-sized array in struct/union" warnings when compiling in
- * MSVC.  DbgHelp.h does this too. */
-#pragma warning(push)
-#pragma warning(disable:4200)
-#endif  /* _MSC_VER */
-
-
-/*
- * guiddef.h
- */
-
-typedef struct {
-  uint32_t data1;
-  uint16_t data2;
-  uint16_t data3;
-  uint8_t  data4[8];
-} MDGUID;  /* GUID */
-
-
-/*
- * WinNT.h
- */
-
-/* Non-x86 CPU identifiers found in the high 24 bits of
- * (MDRawContext*).context_flags.  These aren't used by Breakpad, but are
- * defined here for reference, to avoid assigning values that conflict
- * (although some values already conflict). */
-#define MD_CONTEXT_IA64  0x00080000  /* CONTEXT_IA64 */
-/* Additional values from winnt.h in the Windows CE 5.0 SDK: */
-#define MD_CONTEXT_SHX   0x000000c0  /* CONTEXT_SH4 (Super-H, includes SH3) */
-#define MD_CONTEXT_ALPHA 0x00020000  /* CONTEXT_ALPHA */
-
-/* As of Windows 7 SP1, the number of flag bits has increased to
- * include 0x40 (CONTEXT_XSTATE):
- * http://msdn.microsoft.com/en-us/library/hh134238%28v=vs.85%29.aspx */
-#define MD_CONTEXT_CPU_MASK 0xffffff00
-
-
-/* This is a base type for MDRawContextX86 and MDRawContextPPC.  This
- * structure should never be allocated directly.  The actual structure type
- * can be determined by examining the context_flags field. */
-typedef struct {
-  uint32_t context_flags;
-} MDRawContextBase;
-
-#include "minidump_cpu_amd64.h"
-#include "minidump_cpu_arm.h"
-#include "minidump_cpu_arm64.h"
-#include "minidump_cpu_mips.h"
-#include "minidump_cpu_ppc.h"
-#include "minidump_cpu_ppc64.h"
-#include "minidump_cpu_sparc.h"
-#include "minidump_cpu_x86.h"
-
-/*
- * WinVer.h
- */
-
-
-typedef struct {
-  uint32_t signature;
-  uint32_t struct_version;
-  uint32_t file_version_hi;
-  uint32_t file_version_lo;
-  uint32_t product_version_hi;
-  uint32_t product_version_lo;
-  uint32_t file_flags_mask;    /* Identifies valid bits in fileFlags */
-  uint32_t file_flags;
-  uint32_t file_os;
-  uint32_t file_type;
-  uint32_t file_subtype;
-  uint32_t file_date_hi;
-  uint32_t file_date_lo;
-} MDVSFixedFileInfo;  /* VS_FIXEDFILEINFO */
-
-/* For (MDVSFixedFileInfo).signature */
-#define MD_VSFIXEDFILEINFO_SIGNATURE 0xfeef04bd
-     /* VS_FFI_SIGNATURE */
-
-/* For (MDVSFixedFileInfo).version */
-#define MD_VSFIXEDFILEINFO_VERSION 0x00010000
-     /* VS_FFI_STRUCVERSION */
-
-/* For (MDVSFixedFileInfo).file_flags_mask and
- * (MDVSFixedFileInfo).file_flags */
-#define MD_VSFIXEDFILEINFO_FILE_FLAGS_DEBUG        0x00000001
-     /* VS_FF_DEBUG */
-#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PRERELEASE   0x00000002
-     /* VS_FF_PRERELEASE */
-#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PATCHED      0x00000004
-     /* VS_FF_PATCHED */
-#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PRIVATEBUILD 0x00000008
-     /* VS_FF_PRIVATEBUILD */
-#define MD_VSFIXEDFILEINFO_FILE_FLAGS_INFOINFERRED 0x00000010
-     /* VS_FF_INFOINFERRED */
-#define MD_VSFIXEDFILEINFO_FILE_FLAGS_SPECIALBUILD 0x00000020
-     /* VS_FF_SPECIALBUILD */
-
-/* For (MDVSFixedFileInfo).file_os: high 16 bits */
-#define MD_VSFIXEDFILEINFO_FILE_OS_UNKNOWN    0          /* VOS_UNKNOWN */
-#define MD_VSFIXEDFILEINFO_FILE_OS_DOS        (1 << 16)  /* VOS_DOS */
-#define MD_VSFIXEDFILEINFO_FILE_OS_OS216      (2 << 16)  /* VOS_OS216 */
-#define MD_VSFIXEDFILEINFO_FILE_OS_OS232      (3 << 16)  /* VOS_OS232 */
-#define MD_VSFIXEDFILEINFO_FILE_OS_NT         (4 << 16)  /* VOS_NT */
-#define MD_VSFIXEDFILEINFO_FILE_OS_WINCE      (5 << 16)  /* VOS_WINCE */
-/* Low 16 bits */
-#define MD_VSFIXEDFILEINFO_FILE_OS__BASE      0          /* VOS__BASE */
-#define MD_VSFIXEDFILEINFO_FILE_OS__WINDOWS16 1          /* VOS__WINDOWS16 */
-#define MD_VSFIXEDFILEINFO_FILE_OS__PM16      2          /* VOS__PM16 */
-#define MD_VSFIXEDFILEINFO_FILE_OS__PM32      3          /* VOS__PM32 */
-#define MD_VSFIXEDFILEINFO_FILE_OS__WINDOWS32 4          /* VOS__WINDOWS32 */
-
-/* For (MDVSFixedFileInfo).file_type */
-#define MD_VSFIXEDFILEINFO_FILE_TYPE_UNKNOWN    0  /* VFT_UNKNOWN */
-#define MD_VSFIXEDFILEINFO_FILE_TYPE_APP        1  /* VFT_APP */
-#define MD_VSFIXEDFILEINFO_FILE_TYPE_DLL        2  /* VFT_DLL */
-#define MD_VSFIXEDFILEINFO_FILE_TYPE_DRV        3  /* VFT_DLL */
-#define MD_VSFIXEDFILEINFO_FILE_TYPE_FONT       4  /* VFT_FONT */
-#define MD_VSFIXEDFILEINFO_FILE_TYPE_VXD        5  /* VFT_VXD */
-#define MD_VSFIXEDFILEINFO_FILE_TYPE_STATIC_LIB 7  /* VFT_STATIC_LIB */
-
-/* For (MDVSFixedFileInfo).file_subtype */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_UNKNOWN                0
-     /* VFT2_UNKNOWN */
-/* with file_type = MD_VSFIXEDFILEINFO_FILETYPE_DRV */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_PRINTER            1
-     /* VFT2_DRV_PRINTER */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_KEYBOARD           2
-     /* VFT2_DRV_KEYBOARD */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_LANGUAGE           3
-     /* VFT2_DRV_LANGUAGE */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_DISPLAY            4
-     /* VFT2_DRV_DISPLAY */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_MOUSE              5
-     /* VFT2_DRV_MOUSE */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_NETWORK            6
-     /* VFT2_DRV_NETWORK */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_SYSTEM             7
-     /* VFT2_DRV_SYSTEM */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_INSTALLABLE        8
-     /* VFT2_DRV_INSTALLABLE */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_SOUND              9
-     /* VFT2_DRV_SOUND */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_COMM              10
-     /* VFT2_DRV_COMM */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_INPUTMETHOD       11
-     /* VFT2_DRV_INPUTMETHOD */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_VERSIONED_PRINTER 12
-     /* VFT2_DRV_VERSIONED_PRINTER */
-/* with file_type = MD_VSFIXEDFILEINFO_FILETYPE_FONT */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_RASTER            1
-     /* VFT2_FONT_RASTER */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_VECTOR            2
-     /* VFT2_FONT_VECTOR */
-#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_TRUETYPE          3
-     /* VFT2_FONT_TRUETYPE */
-
-
-/*
- * DbgHelp.h
- */
-
-
-/* An MDRVA is an offset into the minidump file.  The beginning of the
- * MDRawHeader is at offset 0. */
-typedef uint32_t MDRVA;  /* RVA */
-
-typedef struct {
-  uint32_t  data_size;
-  MDRVA     rva;
-} MDLocationDescriptor;  /* MINIDUMP_LOCATION_DESCRIPTOR */
-
-
-typedef struct {
-  /* The base address of the memory range on the host that produced the
-   * minidump. */
-  uint64_t             start_of_memory_range;
-
-  MDLocationDescriptor memory;
-} MDMemoryDescriptor;  /* MINIDUMP_MEMORY_DESCRIPTOR */
-
-
-typedef struct {
-  uint32_t  signature;
-  uint32_t  version;
-  uint32_t  stream_count;
-  MDRVA     stream_directory_rva;  /* A |stream_count|-sized array of
-                                    * MDRawDirectory structures. */
-  uint32_t  checksum;              /* Can be 0.  In fact, that's all that's
-                                    * been found in minidump files. */
-  uint32_t  time_date_stamp;       /* time_t */
-  uint64_t  flags;
-} MDRawHeader;  /* MINIDUMP_HEADER */
-
-/* For (MDRawHeader).signature and (MDRawHeader).version.  Note that only the
- * low 16 bits of (MDRawHeader).version are MD_HEADER_VERSION.  Per the
- * documentation, the high 16 bits are implementation-specific. */
-#define MD_HEADER_SIGNATURE 0x504d444d /* 'PMDM' */
-     /* MINIDUMP_SIGNATURE */
-#define MD_HEADER_VERSION   0x0000a793 /* 42899 */
-     /* MINIDUMP_VERSION */
-
-/* For (MDRawHeader).flags: */
-typedef enum {
-  /* MD_NORMAL is the standard type of minidump.  It includes full
-   * streams for the thread list, module list, exception, system info,
-   * and miscellaneous info.  A memory list stream is also present,
-   * pointing to the same stack memory contained in the thread list,
-   * as well as a 256-byte region around the instruction address that
-   * was executing when the exception occurred.  Stack memory is from
-   * 4 bytes below a thread's stack pointer up to the top of the
-   * memory region encompassing the stack. */
-  MD_NORMAL                            = 0x00000000,
-  MD_WITH_DATA_SEGS                    = 0x00000001,
-  MD_WITH_FULL_MEMORY                  = 0x00000002,
-  MD_WITH_HANDLE_DATA                  = 0x00000004,
-  MD_FILTER_MEMORY                     = 0x00000008,
-  MD_SCAN_MEMORY                       = 0x00000010,
-  MD_WITH_UNLOADED_MODULES             = 0x00000020,
-  MD_WITH_INDIRECTLY_REFERENCED_MEMORY = 0x00000040,
-  MD_FILTER_MODULE_PATHS               = 0x00000080,
-  MD_WITH_PROCESS_THREAD_DATA          = 0x00000100,
-  MD_WITH_PRIVATE_READ_WRITE_MEMORY    = 0x00000200,
-  MD_WITHOUT_OPTIONAL_DATA             = 0x00000400,
-  MD_WITH_FULL_MEMORY_INFO             = 0x00000800,
-  MD_WITH_THREAD_INFO                  = 0x00001000,
-  MD_WITH_CODE_SEGS                    = 0x00002000,
-  MD_WITHOUT_AUXILLIARY_SEGS           = 0x00004000,
-  MD_WITH_FULL_AUXILLIARY_STATE        = 0x00008000,
-  MD_WITH_PRIVATE_WRITE_COPY_MEMORY    = 0x00010000,
-  MD_IGNORE_INACCESSIBLE_MEMORY        = 0x00020000,
-  MD_WITH_TOKEN_INFORMATION            = 0x00040000
-} MDType;  /* MINIDUMP_TYPE */
-
-
-typedef struct {
-  uint32_t             stream_type;
-  MDLocationDescriptor location;
-} MDRawDirectory;  /* MINIDUMP_DIRECTORY */
-
-/* For (MDRawDirectory).stream_type */
-typedef enum {
-  MD_UNUSED_STREAM               =  0,
-  MD_RESERVED_STREAM_0           =  1,
-  MD_RESERVED_STREAM_1           =  2,
-  MD_THREAD_LIST_STREAM          =  3,  /* MDRawThreadList */
-  MD_MODULE_LIST_STREAM          =  4,  /* MDRawModuleList */
-  MD_MEMORY_LIST_STREAM          =  5,  /* MDRawMemoryList */
-  MD_EXCEPTION_STREAM            =  6,  /* MDRawExceptionStream */
-  MD_SYSTEM_INFO_STREAM          =  7,  /* MDRawSystemInfo */
-  MD_THREAD_EX_LIST_STREAM       =  8,
-  MD_MEMORY_64_LIST_STREAM       =  9,
-  MD_COMMENT_STREAM_A            = 10,
-  MD_COMMENT_STREAM_W            = 11,
-  MD_HANDLE_DATA_STREAM          = 12,
-  MD_FUNCTION_TABLE_STREAM       = 13,
-  MD_UNLOADED_MODULE_LIST_STREAM = 14,
-  MD_MISC_INFO_STREAM            = 15,  /* MDRawMiscInfo */
-  MD_MEMORY_INFO_LIST_STREAM     = 16,  /* MDRawMemoryInfoList */
-  MD_THREAD_INFO_LIST_STREAM     = 17,
-  MD_HANDLE_OPERATION_LIST_STREAM = 18,
-  MD_LAST_RESERVED_STREAM        = 0x0000ffff,
-
-  /* Breakpad extension types.  0x4767 = "Gg" */
-  MD_BREAKPAD_INFO_STREAM        = 0x47670001,  /* MDRawBreakpadInfo  */
-  MD_ASSERTION_INFO_STREAM       = 0x47670002,  /* MDRawAssertionInfo */
-  /* These are additional minidump stream values which are specific to
-   * the linux breakpad implementation. */
-  MD_LINUX_CPU_INFO              = 0x47670003,  /* /proc/cpuinfo      */
-  MD_LINUX_PROC_STATUS           = 0x47670004,  /* /proc/$x/status    */
-  MD_LINUX_LSB_RELEASE           = 0x47670005,  /* /etc/lsb-release   */
-  MD_LINUX_CMD_LINE              = 0x47670006,  /* /proc/$x/cmdline   */
-  MD_LINUX_ENVIRON               = 0x47670007,  /* /proc/$x/environ   */
-  MD_LINUX_AUXV                  = 0x47670008,  /* /proc/$x/auxv      */
-  MD_LINUX_MAPS                  = 0x47670009,  /* /proc/$x/maps      */
-  MD_LINUX_DSO_DEBUG             = 0x4767000A   /* MDRawDebug{32,64}  */
-} MDStreamType;  /* MINIDUMP_STREAM_TYPE */
-
-
-typedef struct {
-  uint32_t length;     /* Length of buffer in bytes (not characters),
-                        * excluding 0-terminator */
-  uint16_t buffer[1];  /* UTF-16-encoded, 0-terminated */
-} MDString;  /* MINIDUMP_STRING */
-
-static const size_t MDString_minsize = offsetof(MDString, buffer[0]);
-
-
-typedef struct {
-  uint32_t             thread_id;
-  uint32_t             suspend_count;
-  uint32_t             priority_class;
-  uint32_t             priority;
-  uint64_t             teb;             /* Thread environment block */
-  MDMemoryDescriptor   stack;
-  MDLocationDescriptor thread_context;  /* MDRawContext[CPU] */
-} MDRawThread;  /* MINIDUMP_THREAD */
-
-
-typedef struct {
-  uint32_t    number_of_threads;
-  MDRawThread threads[1];
-} MDRawThreadList;  /* MINIDUMP_THREAD_LIST */
-
-static const size_t MDRawThreadList_minsize = offsetof(MDRawThreadList,
-                                                       threads[0]);
-
-
-typedef struct {
-  uint64_t             base_of_image;
-  uint32_t             size_of_image;
-  uint32_t             checksum;         /* 0 if unknown */
-  uint32_t             time_date_stamp;  /* time_t */
-  MDRVA                module_name_rva;  /* MDString, pathname or filename */
-  MDVSFixedFileInfo    version_info;
-
-  /* The next field stores a CodeView record and is populated when a module's
-   * debug information resides in a PDB file.  It identifies the PDB file. */
-  MDLocationDescriptor cv_record;
-
-  /* The next field is populated when a module's debug information resides
-   * in a DBG file.  It identifies the DBG file.  This field is effectively
-   * obsolete with modules built by recent toolchains. */
-  MDLocationDescriptor misc_record;
-
-  /* Alignment problem: reserved0 and reserved1 are defined by the platform
-   * SDK as 64-bit quantities.  However, that results in a structure whose
-   * alignment is unpredictable on different CPUs and ABIs.  If the ABI
-   * specifies full alignment of 64-bit quantities in structures (as ppc
-   * does), there will be padding between miscRecord and reserved0.  If
-   * 64-bit quantities can be aligned on 32-bit boundaries (as on x86),
-   * this padding will not exist.  (Note that the structure up to this point
-   * contains 1 64-bit member followed by 21 32-bit members.)
-   * As a workaround, reserved0 and reserved1 are instead defined here as
-   * four 32-bit quantities.  This should be harmless, as there are
-   * currently no known uses for these fields. */
-  uint32_t             reserved0[2];
-  uint32_t             reserved1[2];
-} MDRawModule;  /* MINIDUMP_MODULE */
-
-/* The inclusion of a 64-bit type in MINIDUMP_MODULE forces the struct to
- * be tail-padded out to a multiple of 64 bits under some ABIs (such as PPC).
- * This doesn't occur on systems that don't tail-pad in this manner.  Define
- * this macro to be the usable size of the MDRawModule struct, and use it in
- * place of sizeof(MDRawModule). */
-#define MD_MODULE_SIZE 108
-
-
-/* (MDRawModule).cv_record can reference MDCVInfoPDB20 or MDCVInfoPDB70.
- * Ref.: http://www.debuginfo.com/articles/debuginfomatch.html
- * MDCVInfoPDB70 is the expected structure type with recent toolchains. */
-
-typedef struct {
-  uint32_t signature;
-  uint32_t offset;     /* Offset to debug data (expect 0 in minidump) */
-} MDCVHeader;
-
-typedef struct {
-  MDCVHeader cv_header;
-  uint32_t   signature;         /* time_t debug information created */
-  uint32_t   age;               /* revision of PDB file */
-  uint8_t    pdb_file_name[1];  /* Pathname or filename of PDB file */
-} MDCVInfoPDB20;
-
-static const size_t MDCVInfoPDB20_minsize = offsetof(MDCVInfoPDB20,
-                                                     pdb_file_name[0]);
-
-#define MD_CVINFOPDB20_SIGNATURE 0x3031424e  /* cvHeader.signature = '01BN' */
-
-typedef struct {
-  uint32_t  cv_signature;
-  MDGUID    signature;         /* GUID, identifies PDB file */
-  uint32_t  age;               /* Identifies incremental changes to PDB file */
-  uint8_t   pdb_file_name[1];  /* Pathname or filename of PDB file,
-                                * 0-terminated 8-bit character data (UTF-8?) */
-} MDCVInfoPDB70;
-
-static const size_t MDCVInfoPDB70_minsize = offsetof(MDCVInfoPDB70,
-                                                     pdb_file_name[0]);
-
-#define MD_CVINFOPDB70_SIGNATURE 0x53445352  /* cvSignature = 'SDSR' */
-
-typedef struct {
-  uint32_t data1[2];
-  uint32_t data2;
-  uint32_t data3;
-  uint32_t data4;
-  uint32_t data5[3];
-  uint8_t  extra[2];
-} MDCVInfoELF;
-
-/* In addition to the two CodeView record formats above, used for linking
- * to external pdb files, it is possible for debugging data to be carried
- * directly in the CodeView record itself.  These signature values will
- * be found in the first 4 bytes of the CodeView record.  Additional values
- * not commonly experienced in the wild are given by "Microsoft Symbol and
- * Type Information", http://www.x86.org/ftp/manuals/tools/sym.pdf, section
- * 7.2.  An in-depth description of the CodeView 4.1 format is given by
- * "Undocumented Windows 2000 Secrets", Windows 2000 Debugging Support/
- * Microsoft Symbol File Internals/CodeView Subsections,
- * http://www.rawol.com/features/undocumented/sbs-w2k-1-windows-2000-debugging-support.pdf
- */
-#define MD_CVINFOCV41_SIGNATURE 0x3930424e  /* '90BN', CodeView 4.10. */
-#define MD_CVINFOCV50_SIGNATURE 0x3131424e  /* '11BN', CodeView 5.0,
-                                             * MS C7-format (/Z7). */
-
-#define MD_CVINFOUNKNOWN_SIGNATURE 0xffffffff  /* An unlikely value. */
-
-/* (MDRawModule).miscRecord can reference MDImageDebugMisc.  The Windows
- * structure is actually defined in WinNT.h.  This structure is effectively
- * obsolete with modules built by recent toolchains. */
-
-typedef struct {
-  uint32_t  data_type;    /* IMAGE_DEBUG_TYPE_*, not defined here because
-                           * this debug record type is mostly obsolete. */
-  uint32_t  length;       /* Length of entire MDImageDebugMisc structure */
-  uint8_t   unicode;      /* True if data is multibyte */
-  uint8_t   reserved[3];
-  uint8_t   data[1];
-} MDImageDebugMisc;  /* IMAGE_DEBUG_MISC */
-
-static const size_t MDImageDebugMisc_minsize = offsetof(MDImageDebugMisc,
-                                                        data[0]);
-
-
-typedef struct {
-  uint32_t    number_of_modules;
-  MDRawModule modules[1];
-} MDRawModuleList;  /* MINIDUMP_MODULE_LIST */
-
-static const size_t MDRawModuleList_minsize = offsetof(MDRawModuleList,
-                                                       modules[0]);
-
-
-typedef struct {
-  uint32_t           number_of_memory_ranges;
-  MDMemoryDescriptor memory_ranges[1];
-} MDRawMemoryList;  /* MINIDUMP_MEMORY_LIST */
-
-static const size_t MDRawMemoryList_minsize = offsetof(MDRawMemoryList,
-                                                       memory_ranges[0]);
-
-
-#define MD_EXCEPTION_MAXIMUM_PARAMETERS 15
-
-typedef struct {
-  uint32_t  exception_code;     /* Windows: MDExceptionCodeWin,
-                                 * Mac OS X: MDExceptionMac,
-                                 * Linux: MDExceptionCodeLinux. */
-  uint32_t  exception_flags;    /* Windows: 1 if noncontinuable,
-                                   Mac OS X: MDExceptionCodeMac. */
-  uint64_t  exception_record;   /* Address (in the minidump-producing host's
-                                 * memory) of another MDException, for
-                                 * nested exceptions. */
-  uint64_t  exception_address;  /* The address that caused the exception.
-                                 * Mac OS X: exception subcode (which is
-                                 *           typically the address). */
-  uint32_t  number_parameters;  /* Number of valid elements in
-                                 * exception_information. */
-  uint32_t  __align;
-  uint64_t  exception_information[MD_EXCEPTION_MAXIMUM_PARAMETERS];
-} MDException;  /* MINIDUMP_EXCEPTION */
-
-#include "minidump_exception_linux.h"
-#include "minidump_exception_mac.h"
-#include "minidump_exception_ps3.h"
-#include "minidump_exception_solaris.h"
-#include "minidump_exception_win32.h"
-
-typedef struct {
-  uint32_t             thread_id;         /* Thread in which the exception
-                                           * occurred.  Corresponds to
-                                           * (MDRawThread).thread_id. */
-  uint32_t             __align;
-  MDException          exception_record;
-  MDLocationDescriptor thread_context;    /* MDRawContext[CPU] */
-} MDRawExceptionStream;  /* MINIDUMP_EXCEPTION_STREAM */
-
-
-typedef union {
-  struct {
-    uint32_t vendor_id[3];               /* cpuid 0: ebx, edx, ecx */
-    uint32_t version_information;        /* cpuid 1: eax */
-    uint32_t feature_information;        /* cpuid 1: edx */
-    uint32_t amd_extended_cpu_features;  /* cpuid 0x80000001, ebx */
-  } x86_cpu_info;
-  struct {
-    uint32_t cpuid;
-    uint32_t elf_hwcaps;    /* linux specific, 0 otherwise */
-  } arm_cpu_info;
-  struct {
-    uint64_t processor_features[2];
-  } other_cpu_info;
-} MDCPUInformation;  /* CPU_INFORMATION */
-
-/* For (MDCPUInformation).arm_cpu_info.elf_hwcaps.
- * This matches the Linux kernel definitions from <asm/hwcaps.h> */
-typedef enum {
-  MD_CPU_ARM_ELF_HWCAP_SWP       = (1 << 0),
-  MD_CPU_ARM_ELF_HWCAP_HALF      = (1 << 1),
-  MD_CPU_ARM_ELF_HWCAP_THUMB     = (1 << 2),
-  MD_CPU_ARM_ELF_HWCAP_26BIT     = (1 << 3),
-  MD_CPU_ARM_ELF_HWCAP_FAST_MULT = (1 << 4),
-  MD_CPU_ARM_ELF_HWCAP_FPA       = (1 << 5),
-  MD_CPU_ARM_ELF_HWCAP_VFP       = (1 << 6),
-  MD_CPU_ARM_ELF_HWCAP_EDSP      = (1 << 7),
-  MD_CPU_ARM_ELF_HWCAP_JAVA      = (1 << 8),
-  MD_CPU_ARM_ELF_HWCAP_IWMMXT    = (1 << 9),
-  MD_CPU_ARM_ELF_HWCAP_CRUNCH    = (1 << 10),
-  MD_CPU_ARM_ELF_HWCAP_THUMBEE   = (1 << 11),
-  MD_CPU_ARM_ELF_HWCAP_NEON      = (1 << 12),
-  MD_CPU_ARM_ELF_HWCAP_VFPv3     = (1 << 13),
-  MD_CPU_ARM_ELF_HWCAP_VFPv3D16  = (1 << 14),
-  MD_CPU_ARM_ELF_HWCAP_TLS       = (1 << 15),
-  MD_CPU_ARM_ELF_HWCAP_VFPv4     = (1 << 16),
-  MD_CPU_ARM_ELF_HWCAP_IDIVA     = (1 << 17),
-  MD_CPU_ARM_ELF_HWCAP_IDIVT     = (1 << 18),
-} MDCPUInformationARMElfHwCaps;
-
-typedef struct {
-  /* The next 3 fields and numberOfProcessors are from the SYSTEM_INFO
-   * structure as returned by GetSystemInfo */
-  uint16_t         processor_architecture;
-  uint16_t         processor_level;         /* x86: 5 = 586, 6 = 686, ... */
-                                            /* ARM: 6 = ARMv6, 7 = ARMv7 ... */
-  uint16_t         processor_revision;      /* x86: 0xMMSS, where MM=model,
-                                             *      SS=stepping */
-                                            /* ARM: 0 */
-
-  uint8_t          number_of_processors;
-  uint8_t          product_type;            /* Windows: VER_NT_* from WinNT.h */
-
-  /* The next 5 fields are from the OSVERSIONINFO structure as returned
-   * by GetVersionEx */
-  uint32_t         major_version;
-  uint32_t         minor_version;
-  uint32_t         build_number;
-  uint32_t         platform_id;
-  MDRVA            csd_version_rva;  /* MDString further identifying the
-                                      * host OS.
-                                      * Windows: name of the installed OS
-                                      *          service pack.
-                                      * Mac OS X: the Apple OS build number
-                                      *           (sw_vers -buildVersion).
-                                      * Linux: uname -srvmo */
-
-  uint16_t         suite_mask;       /* Windows: VER_SUITE_* from WinNT.h */
-  uint16_t         reserved2;
-
-  MDCPUInformation cpu;
-} MDRawSystemInfo;  /* MINIDUMP_SYSTEM_INFO */
-
-/* For (MDRawSystemInfo).processor_architecture: */
-typedef enum {
-  MD_CPU_ARCHITECTURE_X86       =  0,  /* PROCESSOR_ARCHITECTURE_INTEL */
-  MD_CPU_ARCHITECTURE_MIPS      =  1,  /* PROCESSOR_ARCHITECTURE_MIPS */
-  MD_CPU_ARCHITECTURE_ALPHA     =  2,  /* PROCESSOR_ARCHITECTURE_ALPHA */
-  MD_CPU_ARCHITECTURE_PPC       =  3,  /* PROCESSOR_ARCHITECTURE_PPC */
-  MD_CPU_ARCHITECTURE_SHX       =  4,  /* PROCESSOR_ARCHITECTURE_SHX
-                                        * (Super-H) */
-  MD_CPU_ARCHITECTURE_ARM       =  5,  /* PROCESSOR_ARCHITECTURE_ARM */
-  MD_CPU_ARCHITECTURE_IA64      =  6,  /* PROCESSOR_ARCHITECTURE_IA64 */
-  MD_CPU_ARCHITECTURE_ALPHA64   =  7,  /* PROCESSOR_ARCHITECTURE_ALPHA64 */
-  MD_CPU_ARCHITECTURE_MSIL      =  8,  /* PROCESSOR_ARCHITECTURE_MSIL
-                                        * (Microsoft Intermediate Language) */
-  MD_CPU_ARCHITECTURE_AMD64     =  9,  /* PROCESSOR_ARCHITECTURE_AMD64 */
-  MD_CPU_ARCHITECTURE_X86_WIN64 = 10,
-      /* PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 (WoW64) */
-  MD_CPU_ARCHITECTURE_SPARC     = 0x8001, /* Breakpad-defined value for SPARC */
-  MD_CPU_ARCHITECTURE_PPC64     = 0x8002, /* Breakpad-defined value for PPC64 */
-  MD_CPU_ARCHITECTURE_ARM64     = 0x8003, /* Breakpad-defined value for ARM64 */
-  MD_CPU_ARCHITECTURE_UNKNOWN   = 0xffff  /* PROCESSOR_ARCHITECTURE_UNKNOWN */
-} MDCPUArchitecture;
-
-/* For (MDRawSystemInfo).platform_id: */
-typedef enum {
-  MD_OS_WIN32S        = 0,  /* VER_PLATFORM_WIN32s (Windows 3.1) */
-  MD_OS_WIN32_WINDOWS = 1,  /* VER_PLATFORM_WIN32_WINDOWS (Windows 95-98-Me) */
-  MD_OS_WIN32_NT      = 2,  /* VER_PLATFORM_WIN32_NT (Windows NT, 2000+) */
-  MD_OS_WIN32_CE      = 3,  /* VER_PLATFORM_WIN32_CE, VER_PLATFORM_WIN32_HH
-                             * (Windows CE, Windows Mobile, "Handheld") */
-
-  /* The following values are Breakpad-defined. */
-  MD_OS_UNIX          = 0x8000,  /* Generic Unix-ish */
-  MD_OS_MAC_OS_X      = 0x8101,  /* Mac OS X/Darwin */
-  MD_OS_IOS           = 0x8102,  /* iOS */
-  MD_OS_LINUX         = 0x8201,  /* Linux */
-  MD_OS_SOLARIS       = 0x8202,  /* Solaris */
-  MD_OS_ANDROID       = 0x8203,  /* Android */
-  MD_OS_PS3           = 0x8204,  /* PS3 */
-  MD_OS_NACL          = 0x8205   /* Native Client (NaCl) */
-} MDOSPlatform;
-
-typedef struct {
-  uint16_t year;
-  uint16_t month;
-  uint16_t day_of_week;
-  uint16_t day;
-  uint16_t hour;
-  uint16_t minute;
-  uint16_t second;
-  uint16_t milliseconds;
-} MDSystemTime;  /* SYSTEMTIME */
-
-typedef struct {
-  /* Required field.  The bias is the difference, in minutes, between
-   * Coordinated Universal Time (UTC) and local time.
-   *   Formula: UTC = local time + bias */
-  int32_t bias;
-  /* A description for standard time.  For example, "EST" could indicate Eastern
-   * Standard Time.  In practice this contains the full time zone names.  This
-   * string can be empty. */
-  uint16_t standard_name[32];  /* UTF-16-encoded, 0-terminated */
-  /* A MDSystemTime structure that contains a date and local time when the
-   * transition from daylight saving time to standard time occurs on this
-   * operating system.  If the time zone does not support daylight saving time, 
-   * the month member in the MDSystemTime structure is zero. */
-  MDSystemTime standard_date;
-  /* The bias value to be used during local time translations that occur during
-   * standard time. */
-  int32_t standard_bias;
-  /* A description for daylight saving time.  For example, "PDT" could indicate
-   * Pacific Daylight Time.  In practice this contains the full time zone names.
-   * This string can be empty. */
-  uint16_t daylight_name[32];  /* UTF-16-encoded, 0-terminated */
-  /* A MDSystemTime structure that contains a date and local time when the
-   * transition from standard time to daylight saving time occurs on this
-   * operating system.  If the time zone does not support daylight saving time, 
-   * the month member in the MDSystemTime structure is zero.*/
-  MDSystemTime daylight_date;
-  /* The bias value to be used during local time translations that occur during
-   * daylight saving time. */
-  int32_t daylight_bias;
-} MDTimeZoneInformation;  /* TIME_ZONE_INFORMATION */
-
-/* MAX_PATH from windef.h */
-#define MD_MAX_PATH 260
-
-/* The miscellaneous information stream contains a variety
- * of small pieces of information.  A member is valid if
- * it's within the available size and its corresponding
- * bit is set. */
-typedef struct {
-  uint32_t size_of_info;  /* Length of entire MDRawMiscInfo structure. */
-  uint32_t flags1;
-
-  /* The next field is only valid if flags1 contains
-   * MD_MISCINFO_FLAGS1_PROCESS_ID. */
-  uint32_t process_id;
-
-  /* The next 3 fields are only valid if flags1 contains
-   * MD_MISCINFO_FLAGS1_PROCESS_TIMES. */
-  uint32_t process_create_time;  /* time_t process started */
-  uint32_t process_user_time;    /* seconds of user CPU time */
-  uint32_t process_kernel_time;  /* seconds of kernel CPU time */
-
-  /* The following fields are not present in MINIDUMP_MISC_INFO but are
-   * in MINIDUMP_MISC_INFO_2.  When this struct is populated, these values
-   * may not be set.  Use flags1 and size_of_info to determine whether these
-   * values are present.  These are only valid when flags1 contains
-   * MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO. */
-  uint32_t processor_max_mhz;
-  uint32_t processor_current_mhz;
-  uint32_t processor_mhz_limit;
-  uint32_t processor_max_idle_state;
-  uint32_t processor_current_idle_state;
-
-  /* The following fields are not present in MINIDUMP_MISC_INFO_2 but are
-   * in MINIDUMP_MISC_INFO_3.  When this struct is populated, these values
-   * may not be set.  Use flags1 and size_of_info to determine whether these
-   * values are present. */
-   
-  /* The following field is only valid if flags1 contains
-   * MD_MISCINFO_FLAGS1_PROCESS_INTEGRITY. */
-  uint32_t process_integrity_level;
-
-  /* The following field is only valid if flags1 contains
-   * MD_MISCINFO_FLAGS1_PROCESS_EXECUTE_FLAGS. */
-  uint32_t process_execute_flags;
-
-  /* The following field is only valid if flags1 contains
-   * MD_MISCINFO_FLAGS1_PROTECTED_PROCESS. */
-  uint32_t protected_process;
-
-  /* The following 2 fields are only valid if flags1 contains
-   * MD_MISCINFO_FLAGS1_TIMEZONE. */
-  uint32_t time_zone_id;
-  MDTimeZoneInformation time_zone;
-
-  /* The following fields are not present in MINIDUMP_MISC_INFO_3 but are
-   * in MINIDUMP_MISC_INFO_4.  When this struct is populated, these values
-   * may not be set.  Use flags1 and size_of_info to determine whether these
-   * values are present. */
-
-  /* The following 2 fields are only valid if flags1 contains
-   * MD_MISCINFO_FLAGS1_BUILDSTRING. */
-  uint16_t build_string[MD_MAX_PATH];  /* UTF-16-encoded, 0-terminated */
-  uint16_t dbg_bld_str[40];            /* UTF-16-encoded, 0-terminated */
-} MDRawMiscInfo;  /* MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2,
-                   * MINIDUMP_MISC_INFO_3, MINIDUMP_MISC_INFO_4,
-                   * MINIDUMP_MISC_INFO_N */
-
-static const size_t MD_MISCINFO_SIZE =
-    offsetof(MDRawMiscInfo, processor_max_mhz);
-static const size_t MD_MISCINFO2_SIZE =
-    offsetof(MDRawMiscInfo, process_integrity_level);
-static const size_t MD_MISCINFO3_SIZE =
-    offsetof(MDRawMiscInfo, build_string[0]);
-static const size_t MD_MISCINFO4_SIZE = sizeof(MDRawMiscInfo);
-
-/* For (MDRawMiscInfo).flags1.  These values indicate which fields in the
- * MDRawMiscInfoStructure are valid. */
-typedef enum {
-  MD_MISCINFO_FLAGS1_PROCESS_ID            = 0x00000001,
-      /* MINIDUMP_MISC1_PROCESS_ID */
-  MD_MISCINFO_FLAGS1_PROCESS_TIMES         = 0x00000002,
-      /* MINIDUMP_MISC1_PROCESS_TIMES */
-  MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO  = 0x00000004,
-      /* MINIDUMP_MISC1_PROCESSOR_POWER_INFO */
-  MD_MISCINFO_FLAGS1_PROCESS_INTEGRITY     = 0x00000010,
-      /* MINIDUMP_MISC3_PROCESS_INTEGRITY */
-  MD_MISCINFO_FLAGS1_PROCESS_EXECUTE_FLAGS = 0x00000020,
-      /* MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS */
-  MD_MISCINFO_FLAGS1_TIMEZONE              = 0x00000040,
-      /* MINIDUMP_MISC3_TIMEZONE */
-  MD_MISCINFO_FLAGS1_PROTECTED_PROCESS     = 0x00000080,
-      /* MINIDUMP_MISC3_PROTECTED_PROCESS */
-  MD_MISCINFO_FLAGS1_BUILDSTRING           = 0x00000100,
-      /* MINIDUMP_MISC4_BUILDSTRING */
-} MDMiscInfoFlags1;
-
-/*
- * Around DbgHelp version 6.0, the style of new LIST structures changed
- * from including an array of length 1 at the end of the struct to
- * represent the variable-length data to including explicit
- * "size of header", "size of entry" and "number of entries" fields
- * in the header, presumably to allow backwards-compatibly-extending
- * the structures in the future. The actual list entries follow the
- * header data directly in this case.
- */
-
-typedef struct {
-  uint32_t size_of_header;    /* sizeof(MDRawMemoryInfoList) */
-  uint32_t size_of_entry;     /* sizeof(MDRawMemoryInfo) */
-  uint64_t number_of_entries;
-} MDRawMemoryInfoList;  /* MINIDUMP_MEMORY_INFO_LIST */
-
-typedef struct {
-  uint64_t  base_address;           /* Base address of a region of pages */
-  uint64_t  allocation_base;        /* Base address of a range of pages
-                                     * within this region. */
-  uint32_t  allocation_protection;  /* Memory protection when this region
-                                     * was originally allocated:
-                                     * MDMemoryProtection */
-  uint32_t  __alignment1;
-  uint64_t  region_size;
-  uint32_t  state;                  /* MDMemoryState */
-  uint32_t  protection;             /* MDMemoryProtection */
-  uint32_t  type;                   /* MDMemoryType */
-  uint32_t  __alignment2;
-} MDRawMemoryInfo;  /* MINIDUMP_MEMORY_INFO */
-
-/* For (MDRawMemoryInfo).state */
-typedef enum {
-  MD_MEMORY_STATE_COMMIT   = 0x1000,  /* physical storage has been allocated */
-  MD_MEMORY_STATE_RESERVE  = 0x2000,  /* reserved, but no physical storage */
-  MD_MEMORY_STATE_FREE     = 0x10000  /* available to be allocated */
-} MDMemoryState;
-
-/* For (MDRawMemoryInfo).allocation_protection and .protection */
-typedef enum {
-  MD_MEMORY_PROTECT_NOACCESS          = 0x01,  /* PAGE_NOACCESS */
-  MD_MEMORY_PROTECT_READONLY          = 0x02,  /* PAGE_READONLY */
-  MD_MEMORY_PROTECT_READWRITE         = 0x04,  /* PAGE_READWRITE */
-  MD_MEMORY_PROTECT_WRITECOPY         = 0x08,  /* PAGE_WRITECOPY */
-  MD_MEMORY_PROTECT_EXECUTE           = 0x10,  /* PAGE_EXECUTE */
-  MD_MEMORY_PROTECT_EXECUTE_READ      = 0x20,  /* PAGE_EXECUTE_READ */
-  MD_MEMORY_PROTECT_EXECUTE_READWRITE = 0x40,  /* PAGE_EXECUTE_READWRITE */
-  MD_MEMORY_PROTECT_EXECUTE_WRITECOPY = 0x80,  /* PAGE_EXECUTE_WRITECOPY */
-  /* These options can be combined with the previous flags. */
-  MD_MEMORY_PROTECT_GUARD             = 0x100,  /* PAGE_GUARD */
-  MD_MEMORY_PROTECT_NOCACHE           = 0x200,  /* PAGE_NOCACHE */
-  MD_MEMORY_PROTECT_WRITECOMBINE      = 0x400,  /* PAGE_WRITECOMBINE */
-} MDMemoryProtection;
-
-/* Used to mask the mutually exclusive options from the combinable flags. */
-const uint32_t MD_MEMORY_PROTECTION_ACCESS_MASK = 0xFF;
-
-/* For (MDRawMemoryInfo).type */
-typedef enum {
-  MD_MEMORY_TYPE_PRIVATE = 0x20000,   /* not shared by other processes */
-  MD_MEMORY_TYPE_MAPPED  = 0x40000,   /* mapped into the view of a section */
-  MD_MEMORY_TYPE_IMAGE   = 0x1000000  /* mapped into the view of an image */
-} MDMemoryType;
-
-/*
- * Breakpad extension types
- */
-
-
-typedef struct {
-  /* validity is a bitmask with values from MDBreakpadInfoValidity, indicating
-   * which of the other fields in the structure are valid. */
-  uint32_t validity;
-
-  /* Thread ID of the handler thread.  dump_thread_id should correspond to
-   * the thread_id of an MDRawThread in the minidump's MDRawThreadList if
-   * a dedicated thread in that list was used to produce the minidump.  If
-   * the MDRawThreadList does not contain a dedicated thread used to produce
-   * the minidump, this field should be set to 0 and the validity field
-   * must not contain MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID. */
-  uint32_t dump_thread_id;
-
-  /* Thread ID of the thread that requested the minidump be produced.  As
-   * with dump_thread_id, requesting_thread_id should correspond to the
-   * thread_id of an MDRawThread in the minidump's MDRawThreadList.  For
-   * minidumps produced as a result of an exception, requesting_thread_id
-   * will be the same as the MDRawExceptionStream's thread_id field.  For
-   * minidumps produced "manually" at the program's request,
-   * requesting_thread_id will indicate which thread caused the dump to be
-   * written.  If the minidump was produced at the request of something
-   * other than a thread in the MDRawThreadList, this field should be set
-   * to 0 and the validity field must not contain
-   * MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID. */
-  uint32_t requesting_thread_id;
-} MDRawBreakpadInfo;
-
-/* For (MDRawBreakpadInfo).validity: */
-typedef enum {
-  /* When set, the dump_thread_id field is valid. */
-  MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID       = 1 << 0,
-
-  /* When set, the requesting_thread_id field is valid. */
-  MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID = 1 << 1
-} MDBreakpadInfoValidity;
-
-typedef struct {
-  /* expression, function, and file are 0-terminated UTF-16 strings.  They
-   * may be truncated if necessary, but should always be 0-terminated when
-   * written to a file.
-   * Fixed-length strings are used because MiniDumpWriteDump doesn't offer
-   * a way for user streams to point to arbitrary RVAs for strings. */
-  uint16_t expression[128];  /* Assertion that failed... */
-  uint16_t function[128];    /* ...within this function... */
-  uint16_t file[128];        /* ...in this file... */
-  uint32_t line;             /* ...at this line. */
-  uint32_t type;
-} MDRawAssertionInfo;
-
-/* For (MDRawAssertionInfo).type: */
-typedef enum {
-  MD_ASSERTION_INFO_TYPE_UNKNOWN = 0,
-
-  /* Used for assertions that would be raised by the MSVC CRT but are
-   * directed to an invalid parameter handler instead. */
-  MD_ASSERTION_INFO_TYPE_INVALID_PARAMETER,
-
-  /* Used for assertions that would be raised by the MSVC CRT but are
-   * directed to a pure virtual call handler instead. */
-  MD_ASSERTION_INFO_TYPE_PURE_VIRTUAL_CALL
-} MDAssertionInfoData;
-
-/* These structs are used to store the DSO debug data in Linux minidumps,
- * which is necessary for converting minidumps to usable coredumps.
- * Because of a historical accident, several fields are variably encoded
- * according to client word size, so tools potentially need to support both. */
-
-typedef struct {
-  uint32_t  addr;
-  MDRVA     name;
-  uint32_t  ld;
-} MDRawLinkMap32;
-
-typedef struct {
-  uint32_t  version;
-  MDRVA     map;  /* array of MDRawLinkMap32 */
-  uint32_t  dso_count;
-  uint32_t  brk;
-  uint32_t  ldbase;
-  uint32_t  dynamic;
-} MDRawDebug32;
-
-typedef struct {
-  uint64_t  addr;
-  MDRVA     name;
-  uint64_t  ld;
-} MDRawLinkMap64;
-
-typedef struct {
-  uint32_t  version;
-  MDRVA     map;  /* array of MDRawLinkMap64 */
-  uint32_t  dso_count;
-  uint64_t  brk;
-  uint64_t  ldbase;
-  uint64_t  dynamic;
-} MDRawDebug64;
-
-#if defined(_MSC_VER)
-#pragma warning(pop)
-#endif  /* _MSC_VER */
-
-
-#endif  /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__ */
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_size.h b/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_size.h
deleted file mode 100644
index 918544b..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/common/minidump_size.h
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
-
-// minidump_size.h: Provides a C++ template for programmatic access to
-// the sizes of various types defined in minidump_format.h.
-//
-// Author: Mark Mentovai
-
-#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
-#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
-
-#include <sys/types.h>
-
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-template<typename T>
-class minidump_size {
- public:
-  static size_t size() { return sizeof(T); }
-};
-
-// Explicit specializations for variable-length types.  The size returned
-// for these should be the size for an object without its variable-length
-// section.
-
-template<>
-class minidump_size<MDString> {
- public:
-  static size_t size() { return MDString_minsize; }
-};
-
-template<>
-class minidump_size<MDRawThreadList> {
- public:
-  static size_t size() { return MDRawThreadList_minsize; }
-};
-
-template<>
-class minidump_size<MDCVInfoPDB20> {
- public:
-  static size_t size() { return MDCVInfoPDB20_minsize; }
-};
-
-template<>
-class minidump_size<MDCVInfoPDB70> {
- public:
-  static size_t size() { return MDCVInfoPDB70_minsize; }
-};
-
-template<>
-class minidump_size<MDImageDebugMisc> {
- public:
-  static size_t size() { return MDImageDebugMisc_minsize; }
-};
-
-template<>
-class minidump_size<MDRawModuleList> {
- public:
-  static size_t size() { return MDRawModuleList_minsize; }
-};
-
-template<>
-class minidump_size<MDRawMemoryList> {
- public:
-  static size_t size() { return MDRawMemoryList_minsize; }
-};
-
-// Explicit specialization for MDRawModule, for which sizeof may include
-// tail-padding on some architectures but not others.
-
-template<>
-class minidump_size<MDRawModule> {
- public:
-  static size_t size() { return MD_MODULE_SIZE; }
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/basic_source_line_resolver.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/basic_source_line_resolver.h
deleted file mode 100644
index 6bb6d86..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/basic_source_line_resolver.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// basic_source_line_resolver.h: BasicSourceLineResolver is derived from
-// SourceLineResolverBase, and is a concrete implementation of
-// SourceLineResolverInterface, using address map files produced by a
-// compatible writer, e.g. PDBSourceLineWriter.
-//
-// see "processor/source_line_resolver_base.h"
-// and "source_line_resolver_interface.h" for more documentation.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__
-
-#include <map>
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/processor/source_line_resolver_base.h"
-
-namespace google_breakpad {
-
-using std::map;
-
-class BasicSourceLineResolver : public SourceLineResolverBase {
- public:
-  BasicSourceLineResolver();
-  virtual ~BasicSourceLineResolver() { }
-
-  using SourceLineResolverBase::LoadModule;
-  using SourceLineResolverBase::LoadModuleUsingMapBuffer;
-  using SourceLineResolverBase::LoadModuleUsingMemoryBuffer;
-  using SourceLineResolverBase::ShouldDeleteMemoryBufferAfterLoadModule;
-  using SourceLineResolverBase::UnloadModule;
-  using SourceLineResolverBase::HasModule;
-  using SourceLineResolverBase::IsModuleCorrupt;
-  using SourceLineResolverBase::FillSourceLineInfo;
-  using SourceLineResolverBase::FindWindowsFrameInfo;
-  using SourceLineResolverBase::FindCFIFrameInfo;
-
- private:
-  // friend declarations:
-  friend class BasicModuleFactory;
-  friend class ModuleComparer;
-  friend class ModuleSerializer;
-  template<class> friend class SimpleSerializer;
-
-  // Function derives from SourceLineResolverBase::Function.
-  struct Function;
-  // Module implements SourceLineResolverBase::Module interface.
-  class Module;
-
-  // Disallow unwanted copy ctor and assignment operator
-  BasicSourceLineResolver(const BasicSourceLineResolver&);
-  void operator=(const BasicSourceLineResolver&);
-};
-
-// Helper class, containing useful methods for parsing of Breakpad symbol files.
-class SymbolParseHelper {
- public:
-  // Parses a |file_line| declaration.  Returns true on success.
-  // Format: FILE <id> <filename>.
-  // Notice, that this method modifies the input |file_line| which is why it
-  // can't be const.  On success, <id>, and <filename> are stored in |*index|,
-  // and |*filename|.  No allocation is done, |*filename| simply points inside
-  // |file_line|.
-  static bool ParseFile(char *file_line,   // in
-                        long *index,       // out
-                        char **filename);  // out
-
-  // Parses a |function_line| declaration.  Returns true on success.
-  // Format:  FUNC <address> <size> <stack_param_size> <name>.
-  // Notice, that this method modifies the input |function_line| which is why it
-  // can't be const.  On success, <address>, <size>, <stack_param_size>, and
-  // <name> are stored in |*address|, |*size|, |*stack_param_size|, and |*name|.
-  // No allocation is done, |*name| simply points inside |function_line|.
-  static bool ParseFunction(char *function_line,     // in
-                            uint64_t *address,       // out
-                            uint64_t *size,          // out
-                            long *stack_param_size,  // out
-                            char **name);            // out
-
-  // Parses a |line| declaration.  Returns true on success.
-  // Format:  <address> <size> <line number> <source file id>
-  // Notice, that this method modifies the input |function_line| which is why
-  // it can't be const.  On success, <address>, <size>, <line number>, and
-  // <source file id> are stored in |*address|, |*size|, |*line_number|, and
-  // |*source_file|.
-  static bool ParseLine(char *line_line,     // in
-                        uint64_t *address,   // out
-                        uint64_t *size,      // out
-                        long *line_number,   // out
-                        long *source_file);  // out
-
-  // Parses a |public_line| declaration.  Returns true on success.
-  // Format:  PUBLIC <address> <stack_param_size> <name>
-  // Notice, that this method modifies the input |function_line| which is why
-  // it can't be const.  On success, <address>, <stack_param_size>, <name>
-  // are stored in |*address|, |*stack_param_size|, and |*name|.
-  // No allocation is done, |*name| simply points inside |public_line|.
-  static bool ParsePublicSymbol(char *public_line,       // in
-                                uint64_t *address,       // out
-                                long *stack_param_size,  // out
-                                char **name);            // out
-
- private:
-  // Used for success checks after strtoull and strtol.
-  static bool IsValidAfterNumber(char *after_number);
-
-  // Only allow static methods.
-  SymbolParseHelper();
-  SymbolParseHelper(const SymbolParseHelper&);
-  void operator=(const SymbolParseHelper&);
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/call_stack.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/call_stack.h
deleted file mode 100644
index 21f595e..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/call_stack.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// call_stack.h: A call stack comprised of stack frames.
-//
-// This class manages a vector of stack frames.  It is used instead of
-// exposing the vector directly to allow the CallStack to own StackFrame
-// pointers without having to publicly export the linked_ptr class.  A
-// CallStack must be composed of pointers instead of objects to allow for
-// CPU-specific StackFrame subclasses.
-//
-// By convention, the stack frame at index 0 is the innermost callee frame,
-// and the frame at the highest index in a call stack is the outermost
-// caller.  CallStack only allows stacks to be built by pushing frames,
-// beginning with the innermost callee frame.
-//
-// Author: Mark Mentovai
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_CALL_STACK_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_CALL_STACK_H__
-
-#include <vector>
-
-namespace google_breakpad {
-
-using std::vector;
-
-struct StackFrame;
-template<typename T> class linked_ptr;
-
-class CallStack {
- public:
-  CallStack() { Clear(); }
-  ~CallStack();
-
-  // Resets the CallStack to its initial empty state
-  void Clear();
-  
-  const vector<StackFrame*>* frames() const { return &frames_; }
-
- private:
-  // Stackwalker is responsible for building the frames_ vector.
-  friend class Stackwalker;
-
-  // Storage for pushed frames.
-  vector<StackFrame*> frames_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCSSOR_CALL_STACK_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/code_module.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/code_module.h
deleted file mode 100644
index 4e89282..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/code_module.h
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// code_module.h: Carries information about code modules that are loaded
-// into a process.
-//
-// Author: Mark Mentovai
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULE_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULE_H__
-
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-class CodeModule {
- public:
-  virtual ~CodeModule() {}
-
-  // The base address of this code module as it was loaded by the process.
-  // (uint64_t)-1 on error.
-  virtual uint64_t base_address() const = 0;
-
-  // The size of the code module.  0 on error.
-  virtual uint64_t size() const = 0;
-
-  // The path or file name that the code module was loaded from.  Empty on
-  // error.
-  virtual string code_file() const = 0;
-
-  // An identifying string used to discriminate between multiple versions and
-  // builds of the same code module.  This may contain a uuid, timestamp,
-  // version number, or any combination of this or other information, in an
-  // implementation-defined format.  Empty on error.
-  virtual string code_identifier() const = 0;
-
-  // The filename containing debugging information associated with the code
-  // module.  If debugging information is stored in a file separate from the
-  // code module itself (as is the case when .pdb or .dSYM files are used),
-  // this will be different from code_file.  If debugging information is
-  // stored in the code module itself (possibly prior to stripping), this
-  // will be the same as code_file.  Empty on error.
-  virtual string debug_file() const = 0;
-
-  // An identifying string similar to code_identifier, but identifies a
-  // specific version and build of the associated debug file.  This may be
-  // the same as code_identifier when the debug_file and code_file are
-  // identical or when the same identifier is used to identify distinct
-  // debug and code files.
-  virtual string debug_identifier() const = 0;
-
-  // A human-readable representation of the code module's version.  Empty on
-  // error.
-  virtual string version() const = 0;
-
-  // Creates a new copy of this CodeModule object, which the caller takes
-  // ownership of.  The new CodeModule may be of a different concrete class
-  // than the CodeModule being copied, but will behave identically to the
-  // copied CodeModule as far as the CodeModule interface is concerned.
-  virtual const CodeModule* Copy() const = 0;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULE_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/code_modules.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/code_modules.h
deleted file mode 100644
index a38579a..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/code_modules.h
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// code_modules.h: Contains all of the CodeModule objects that were loaded
-// into a single process.
-//
-// Author: Mark Mentovai
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__
-
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-class CodeModule;
-
-class CodeModules {
- public:
-  virtual ~CodeModules() {}
-
-  // The number of contained CodeModule objects.
-  virtual unsigned int module_count() const = 0;
-
-  // Random access to modules.  Returns the module whose code is present
-  // at the address indicated by |address|.  If no module is present at this
-  // address, returns NULL.  Ownership of the returned CodeModule is retained
-  // by the CodeModules object; pointers returned by this method are valid for
-  // comparison with pointers returned by the other Get methods.
-  virtual const CodeModule* GetModuleForAddress(uint64_t address) const = 0;
-
-  // Returns the module corresponding to the main executable.  If there is
-  // no main executable, returns NULL.  Ownership of the returned CodeModule
-  // is retained by the CodeModules object; pointers returned by this method
-  // are valid for comparison with pointers returned by the other Get
-  // methods.
-  virtual const CodeModule* GetMainModule() const = 0;
-
-  // Sequential access to modules.  A sequence number of 0 corresponds to the
-  // module residing lowest in memory.  If the sequence number is out of
-  // range, returns NULL.  Ownership of the returned CodeModule is retained
-  // by the CodeModules object; pointers returned by this method are valid for
-  // comparison with pointers returned by the other Get methods.
-  virtual const CodeModule* GetModuleAtSequence(
-      unsigned int sequence) const = 0;
-
-  // Sequential access to modules.  This is similar to GetModuleAtSequence,
-  // except no ordering requirement is enforced.  A CodeModules implementation
-  // may return CodeModule objects from GetModuleAtIndex in any order it
-  // wishes, provided that the order remain the same throughout the life of
-  // the CodeModules object.  Typically, GetModuleAtIndex would be used by
-  // a caller to enumerate all CodeModule objects quickly when the enumeration
-  // does not require any ordering.  If the index argument is out of range,
-  // returns NULL.  Ownership of the returned CodeModule is retained by
-  // the CodeModules object; pointers returned by this method are valid for
-  // comparison with pointers returned by the other Get methods.
-  virtual const CodeModule* GetModuleAtIndex(unsigned int index) const = 0;
-
-  // Creates a new copy of this CodeModules object, which the caller takes
-  // ownership of.  The new object will also contain copies of the existing
-  // object's child CodeModule objects.  The new CodeModules object may be of
-  // a different concrete class than the object being copied, but will behave
-  // identically to the copied object as far as the CodeModules and CodeModule
-  // interfaces are concerned, except that the order that GetModuleAtIndex
-  // returns objects in may differ between a copy and the original CodeModules
-  // object.
-  virtual const CodeModules* Copy() const = 0;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/dump_context.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/dump_context.h
deleted file mode 100644
index df80bf7..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/dump_context.h
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright (c) 2014 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// dump_context.h: A (mini/micro) dump CPU-specific context.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_DUMP_CONTEXT_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_DUMP_CONTEXT_H__
-
-#include "google_breakpad/common/minidump_format.h"
-#include "google_breakpad/processor/dump_object.h"
-
-namespace google_breakpad {
-
-// DumpContext carries a CPU-specific MDRawContext structure, which contains CPU
-// context such as register states.
-class DumpContext : public DumpObject {
- public:
-  virtual ~DumpContext();
-
-  // Returns an MD_CONTEXT_* value such as MD_CONTEXT_X86 or MD_CONTEXT_PPC
-  // identifying the CPU type that the context was collected from.  The
-  // returned value will identify the CPU only, and will have any other
-  // MD_CONTEXT_* bits masked out.  Returns 0 on failure.
-  uint32_t GetContextCPU() const;
-
-  // Return the raw value of |context_flags_|
-  uint32_t GetContextFlags() const;
-
-  // Returns raw CPU-specific context data for the named CPU type.  If the
-  // context data does not match the CPU type or does not exist, returns NULL.
-  const MDRawContextAMD64* GetContextAMD64() const;
-  const MDRawContextARM*   GetContextARM() const;
-  const MDRawContextARM64* GetContextARM64() const;
-  const MDRawContextMIPS*  GetContextMIPS() const;
-  const MDRawContextPPC*   GetContextPPC() const;
-  const MDRawContextPPC64* GetContextPPC64() const;
-  const MDRawContextSPARC* GetContextSPARC() const;
-  const MDRawContextX86*   GetContextX86() const;
-
-  // A convenience method to get the instruction pointer out of the
-  // MDRawContext, since it varies per-CPU architecture.
-  bool GetInstructionPointer(uint64_t* ip) const;
-
-  // Similar to the GetInstructionPointer method, this method gets the stack
-  // pointer for all CPU architectures.
-  bool GetStackPointer(uint64_t* sp) const;
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- protected:
-  DumpContext();
-
-  // Sets row CPU-specific context data for the names CPU type.
-  void SetContextFlags(uint32_t context_flags);
-  void SetContextX86(MDRawContextX86* x86);
-  void SetContextPPC(MDRawContextPPC* ppc);
-  void SetContextPPC64(MDRawContextPPC64* ppc64);
-  void SetContextAMD64(MDRawContextAMD64* amd64);
-  void SetContextSPARC(MDRawContextSPARC* ctx_sparc);
-  void SetContextARM(MDRawContextARM* arm);
-  void SetContextARM64(MDRawContextARM64* arm64);
-  void SetContextMIPS(MDRawContextMIPS* ctx_mips);
-
-  // Free the CPU-specific context structure.
-  void FreeContext();
-
- private:
-  // The CPU-specific context structure.
-  union {
-    MDRawContextBase*  base;
-    MDRawContextX86*   x86;
-    MDRawContextPPC*   ppc;
-    MDRawContextPPC64* ppc64;
-    MDRawContextAMD64* amd64;
-    // on Solaris SPARC, sparc is defined as a numeric constant,
-    // so variables can NOT be named as sparc
-    MDRawContextSPARC* ctx_sparc;
-    MDRawContextARM*   arm;
-    MDRawContextARM64* arm64;
-    MDRawContextMIPS*  ctx_mips;
-  } context_;
-
-  // Store this separately because of the weirdo AMD64 context
-  uint32_t context_flags_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_DUMP_CONTEXT_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/dump_object.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/dump_object.h
deleted file mode 100644
index 112f687..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/dump_object.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (c) 2014 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// dump_object.h: A base class for all mini/micro dump object.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__
-
-namespace google_breakpad {
-
-// DumpObject is the base of various mini/micro dump's objects.
-class DumpObject {
- public:
-  DumpObject();
-
-  bool valid() const { return valid_; }
-
- protected:
-  // DumpObjects are not valid when created.  When a subclass populates its own
-  // fields, it can set valid_ to true.  Accessors and mutators may wish to
-  // consider or alter the valid_ state as they interact with objects.
-  bool valid_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/exploitability.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/exploitability.h
deleted file mode 100644
index 014413c..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/exploitability.h
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// exploitability_engine.h: Generic exploitability engine.
-//
-// The Exploitability class is an abstract base class providing common
-// generic methods that apply to exploitability engines for specific platforms.
-// Specific implementations will extend this class by providing run
-// methods to fill in the exploitability_ enumeration of the ProcessState
-// for a crash.
-//
-// Author: Cris Neckar
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_H_
-#define GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_H_
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/minidump.h"
-#include "google_breakpad/processor/process_state.h"
-
-namespace google_breakpad {
-
-class Exploitability {
- public:
-  virtual ~Exploitability() {}
-
-  static Exploitability *ExploitabilityForPlatform(Minidump *dump,
-                                                   ProcessState *process_state);
-
-  // The boolean parameter signals whether the exploitability engine is
-  // enabled to call out to objdump for disassembly. This is disabled by
-  // default. It is used to check the identity of the instruction that
-  // caused the program to crash. This should not be enabled if there are
-  // portability concerns.
-  static Exploitability *ExploitabilityForPlatform(Minidump *dump,
-                                                   ProcessState *process_state,
-                                                   bool enable_objdump);
-
-  ExploitabilityRating CheckExploitability();
-  bool AddressIsAscii(uint64_t);
-
- protected:
-  Exploitability(Minidump *dump,
-                 ProcessState *process_state);
-
-  Minidump *dump_;
-  ProcessState *process_state_;
-  SystemInfo *system_info_;
-
- private:
-  virtual ExploitabilityRating CheckPlatformExploitability() = 0;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_H_
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/fast_source_line_resolver.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/fast_source_line_resolver.h
deleted file mode 100644
index fdf9107..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/fast_source_line_resolver.h
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// fast_source_line_resolver.h: FastSourceLineResolver is derived from
-// SourceLineResolverBase, and is a concrete implementation of
-// SourceLineResolverInterface.
-//
-// FastSourceLineResolver is a sibling class of BasicSourceLineResolver.  The
-// difference is FastSourceLineResolver loads a serialized memory chunk of data
-// which can be used directly a Module without parsing or copying of underlying
-// data.  Therefore loading a symbol in FastSourceLineResolver is much faster
-// and more memory-efficient than BasicSourceLineResolver.
-//
-// See "source_line_resolver_base.h" and
-// "google_breakpad/source_line_resolver_interface.h" for more reference.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_FAST_SOURCE_LINE_RESOLVER_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_FAST_SOURCE_LINE_RESOLVER_H__
-
-#include <map>
-#include <string>
-
-#include "google_breakpad/processor/source_line_resolver_base.h"
-
-namespace google_breakpad {
-
-using std::map;
-
-class FastSourceLineResolver : public SourceLineResolverBase {
- public:
-  FastSourceLineResolver();
-  virtual ~FastSourceLineResolver() { }
-
-  using SourceLineResolverBase::FillSourceLineInfo;
-  using SourceLineResolverBase::FindCFIFrameInfo;
-  using SourceLineResolverBase::FindWindowsFrameInfo;
-  using SourceLineResolverBase::HasModule;
-  using SourceLineResolverBase::IsModuleCorrupt;
-  using SourceLineResolverBase::LoadModule;
-  using SourceLineResolverBase::LoadModuleUsingMapBuffer;
-  using SourceLineResolverBase::LoadModuleUsingMemoryBuffer;
-  using SourceLineResolverBase::UnloadModule;
-
- private:
-  // Friend declarations.
-  friend class ModuleComparer;
-  friend class ModuleSerializer;
-  friend class FastModuleFactory;
-
-  // Nested types that will derive from corresponding nested types defined in
-  // SourceLineResolverBase.
-  struct Line;
-  struct Function;
-  struct PublicSymbol;
-  class Module;
-
-  // Deserialize raw memory data to construct a WindowsFrameInfo object.
-  static WindowsFrameInfo CopyWFI(const char *raw_memory);
-
-  // FastSourceLineResolver requires the memory buffer stays alive during the
-  // lifetime of a corresponding module, therefore it needs to redefine this
-  // virtual method.
-  virtual bool ShouldDeleteMemoryBufferAfterLoadModule();
-
-  // Disallow unwanted copy ctor and assignment operator
-  FastSourceLineResolver(const FastSourceLineResolver&);
-  void operator=(const FastSourceLineResolver&);
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_FAST_SOURCE_LINE_RESOLVER_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/memory_region.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/memory_region.h
deleted file mode 100644
index 30f88df..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/memory_region.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// memory_region.h: Access to memory regions.
-//
-// A MemoryRegion provides virtual access to a range of memory.  It is an
-// abstraction allowing the actual source of memory to be independent of
-// methods which need to access a virtual memory space.
-//
-// Author: Mark Mentovai
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_MEMORY_REGION_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_MEMORY_REGION_H__
-
-
-#include "google_breakpad/common/breakpad_types.h"
-
-
-namespace google_breakpad {
-
-
-class MemoryRegion {
- public:
-  virtual ~MemoryRegion() {}
-
-  // The base address of this memory region.
-  virtual uint64_t GetBase() const = 0;
-
-  // The size of this memory region.
-  virtual uint32_t GetSize() const = 0;
-
-  // Access to data of various sizes within the memory region.  address
-  // is a pointer to read, and it must lie within the memory region as
-  // defined by its base address and size.  The location pointed to by
-  // value is set to the value at address.  Byte-swapping is performed
-  // if necessary so that the value is appropriate for the running
-  // program.  Returns true on success.  Fails and returns false if address
-  // is out of the region's bounds (after considering the width of value),
-  // or for other types of errors.
-  virtual bool GetMemoryAtAddress(uint64_t address, uint8_t*  value) const = 0;
-  virtual bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const = 0;
-  virtual bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const = 0;
-  virtual bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const = 0;
-
-  // Print a human-readable representation of the object to stdout.
-  virtual void Print() const = 0;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_MEMORY_REGION_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/microdump.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/microdump.h
deleted file mode 100644
index abdaecb..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/microdump.h
+++ /dev/null
@@ -1,126 +0,0 @@
-// Copyright (c) 2014 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// microdump.h: A microdump reader.  Microdump is a minified variant of a
-// minidump (see minidump.h for documentation) which contains the minimum
-// amount of information required to get a stack trace for the crashing thread.
-// The information contained in a microdump is:
-// - the crashing thread stack
-// - system information (os type / version)
-// - cpu context (state of the registers)
-// - list of mmaps
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_H__
-
-#include <string>
-#include <vector>
-
-#include "common/scoped_ptr.h"
-#include "common/using_std_string.h"
-#include "google_breakpad/processor/dump_context.h"
-#include "google_breakpad/processor/memory_region.h"
-#include "google_breakpad/processor/system_info.h"
-#include "processor/basic_code_modules.h"
-
-namespace google_breakpad {
-
-// MicrodumpModuleList contains all of the loaded code modules for a process
-// in the form of MicrodumpModules.  It maintains a vector of these modules
-// and provides access to a code module corresponding to a specific address.
-class MicrodumpModules : public BasicCodeModules {
- public:
-  // Takes over ownership of |module|.
-  void Add(const CodeModule* module);
-};
-
-// MicrodumpContext carries a CPU-specific context.
-// See dump_context.h for documentation.
-class MicrodumpContext : public DumpContext {
- public:
-  virtual void SetContextARM(MDRawContextARM* arm);
-  virtual void SetContextARM64(MDRawContextARM64* arm64);
-};
-
-// This class provides access to microdump memory regions.
-// See memory_region.h for documentation.
-class MicrodumpMemoryRegion : public MemoryRegion {
- public:
-  MicrodumpMemoryRegion();
-  virtual ~MicrodumpMemoryRegion() {}
-
-  // Set this region's address and contents. If we have placed an
-  // instance of this class in a test fixture class, individual tests
-  // can use this to provide the region's contents.
-  void Init(uint64_t base_address, const std::vector<uint8_t>& contents);
-
-  virtual uint64_t GetBase() const;
-  virtual uint32_t GetSize() const;
-
-  virtual bool GetMemoryAtAddress(uint64_t address, uint8_t* value) const;
-  virtual bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const;
-  virtual bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const;
-  virtual bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const;
-
-  // Print a human-readable representation of the object to stdout.
-  virtual void Print() const;
-
- private:
-  // Fetch a little-endian value from ADDRESS in contents_ whose size
-  // is BYTES, and store it in *VALUE.  Returns true on success.
-  template<typename ValueType>
-  bool GetMemoryLittleEndian(uint64_t address, ValueType* value) const;
-
-  uint64_t base_address_;
-  std::vector<uint8_t> contents_;
-};
-
-// Microdump is the user's interface to a microdump file.  It provides access to
-// the microdump's context, memory regions and modules.
-class Microdump {
- public:
-  explicit Microdump(const string& contents);
-  virtual ~Microdump() {}
-
-  DumpContext* GetContext() { return context_.get(); }
-  MicrodumpMemoryRegion* GetMemory() { return stack_region_.get(); }
-  MicrodumpModules* GetModules() { return modules_.get(); }
-  SystemInfo* GetSystemInfo() { return system_info_.get(); }
-
- private:
-  scoped_ptr<MicrodumpContext> context_;
-  scoped_ptr<MicrodumpMemoryRegion> stack_region_;
-  scoped_ptr<MicrodumpModules> modules_;
-  scoped_ptr<SystemInfo> system_info_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_H__
-
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/microdump_processor.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/microdump_processor.h
deleted file mode 100644
index 1322a01..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/microdump_processor.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright (c) 2014, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// The processor for microdump (a reduced dump containing only the state of the
-// crashing thread). See crbug.com/410294 for more info and design docs.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_PROCESSOR_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_PROCESSOR_H__
-
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/processor/process_result.h"
-
-namespace google_breakpad {
-
-class ProcessState;
-class StackFrameSymbolizer;
- 
-class MicrodumpProcessor {
- public:
-  // Initializes the MicrodumpProcessor with a stack frame symbolizer.
-  // Does not take ownership of frame_symbolizer, which must NOT be NULL.
-  explicit MicrodumpProcessor(StackFrameSymbolizer* frame_symbolizer);
-
-  virtual ~MicrodumpProcessor();
-
-  // Processes the microdump contents and fills process_state with the result.
-  google_breakpad::ProcessResult Process(const string& microdump_contents,
-                                         ProcessState* process_state);
- private:
-  StackFrameSymbolizer* frame_symbolizer_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_PROCESSOR_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/minidump.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/minidump.h
deleted file mode 100644
index 2b5025e..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/minidump.h
+++ /dev/null
@@ -1,1130 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// minidump.h: A minidump reader.
-//
-// The basic structure of this module tracks the structure of the minidump
-// file itself.  At the top level, a minidump file is represented by a
-// Minidump object.  Like most other classes in this module, Minidump
-// provides a Read method that initializes the object with information from
-// the file.  Most of the classes in this file are wrappers around the
-// "raw" structures found in the minidump file itself, and defined in
-// minidump_format.h.  For example, each thread is represented by a
-// MinidumpThread object, whose parameters are specified in an MDRawThread
-// structure.  A properly byte-swapped MDRawThread can be obtained from a
-// MinidumpThread easily by calling its thread() method.
-//
-// Most of the module lazily reads only the portion of the minidump file
-// necessary to fulfill the user's request.  Calling Minidump::Read
-// only reads the minidump's directory.  The thread list is not read until
-// it is needed, and even once it's read, the memory regions for each
-// thread's stack aren't read until they're needed.  This strategy avoids
-// unnecessary file input, and allocating memory for data in which the user
-// has no interest.  Note that although memory allocations for a typical
-// minidump file are not particularly large, it is possible for legitimate
-// minidumps to be sizable.  A full-memory minidump, for example, contains
-// a snapshot of the entire mapped memory space.  Even a normal minidump,
-// with stack memory only, can be large if, for example, the dump was
-// generated in response to a crash that occurred due to an infinite-
-// recursion bug that caused the stack's limits to be exceeded.  Finally,
-// some users of this library will unfortunately find themselves in the
-// position of having to process potentially-hostile minidumps that might
-// attempt to cause problems by forcing the minidump processor to over-
-// allocate memory.
-//
-// Memory management in this module is based on a strict
-// you-don't-own-anything policy.  The only object owned by the user is
-// the top-level Minidump object, the creation and destruction of which
-// must be the user's own responsibility.  All other objects obtained
-// through interaction with this module are ultimately owned by the
-// Minidump object, and will be freed upon the Minidump object's destruction.
-// Because memory regions can potentially involve large allocations, a
-// FreeMemory method is provided by MinidumpMemoryRegion, allowing the user
-// to release data when it is no longer needed.  Use of this method is
-// optional but recommended.  If freed data is later required, it will
-// be read back in from the minidump file again.
-//
-// There is one exception to this memory management policy:
-// Minidump::ReadString will return a string object to the user, and the user
-// is responsible for its deletion.
-//
-// Author: Mark Mentovai
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
-
-#include <stdint.h>
-
-#ifndef _WIN32
-#include <unistd.h>
-#endif
-
-#include <iostream>
-#include <map>
-#include <string>
-#include <vector>
-
-#include "common/basictypes.h"
-#include "common/using_std_string.h"
-#include "google_breakpad/processor/code_module.h"
-#include "google_breakpad/processor/code_modules.h"
-#include "google_breakpad/processor/dump_context.h"
-#include "google_breakpad/processor/dump_object.h"
-#include "google_breakpad/processor/memory_region.h"
-#include "google_breakpad/processor/proc_maps_linux.h"
-
-
-namespace google_breakpad {
-
-
-using std::map;
-using std::vector;
-
-
-class Minidump;
-template<typename AddressType, typename EntryType> class RangeMap;
-
-
-// MinidumpObject is the base of all Minidump* objects except for Minidump
-// itself.
-class MinidumpObject : public DumpObject {
- public:
-  virtual ~MinidumpObject() {}
-
- protected:
-  explicit MinidumpObject(Minidump* minidump);
-
-  // Refers to the Minidump object that is the ultimate parent of this
-  // Some MinidumpObjects are owned by other MinidumpObjects, but at the
-  // root of the ownership tree is always a Minidump.  The Minidump object
-  // is kept here for access to its seeking and reading facilities, and
-  // for access to data about the minidump file itself, such as whether
-  // it should be byte-swapped.
-  Minidump* minidump_;
-};
-
-
-// This class exists primarily to provide a virtual destructor in a base
-// class common to all objects that might be stored in
-// Minidump::mStreamObjects.  Some object types will never be stored in
-// Minidump::mStreamObjects, but are represented as streams and adhere to the
-// same interface, and may be derived from this class.
-class MinidumpStream : public MinidumpObject {
- public:
-  virtual ~MinidumpStream() {}
-
- protected:
-  explicit MinidumpStream(Minidump* minidump);
-
- private:
-  // Populate (and validate) the MinidumpStream.  minidump_ is expected
-  // to be positioned at the beginning of the stream, so that the next
-  // read from the minidump will be at the beginning of the stream.
-  // expected_size should be set to the stream's length as contained in
-  // the MDRawDirectory record or other identifying record.  A class
-  // that implements MinidumpStream can compare expected_size to a
-  // known size as an integrity check.
-  virtual bool Read(uint32_t expected_size) = 0;
-};
-
-
-// MinidumpContext carries a CPU-specific MDRawContext structure, which
-// contains CPU context such as register states.  Each thread has its
-// own context, and the exception record, if present, also has its own
-// context.  Note that if the exception record is present, the context it
-// refers to is probably what the user wants to use for the exception
-// thread, instead of that thread's own context.  The exception thread's
-// context (as opposed to the exception record's context) will contain
-// context for the exception handler (which performs minidump generation),
-// and not the context that caused the exception (which is probably what the
-// user wants).
-class MinidumpContext : public DumpContext {
- public:
-  virtual ~MinidumpContext();
-
- protected:
-  explicit MinidumpContext(Minidump* minidump);
-
- private:
-  friend class MinidumpThread;
-  friend class MinidumpException;
-
-  bool Read(uint32_t expected_size);
-
-  // If the minidump contains a SYSTEM_INFO_STREAM, makes sure that the
-  // system info stream gives an appropriate CPU type matching the context
-  // CPU type in context_cpu_type.  Returns false if the CPU type does not
-  // match.  Returns true if the CPU type matches or if the minidump does
-  // not contain a system info stream.
-  bool CheckAgainstSystemInfo(uint32_t context_cpu_type);
-
-  // Refers to the Minidump object that is the ultimate parent of this
-  // Some MinidumpObjects are owned by other MinidumpObjects, but at the
-  // root of the ownership tree is always a Minidump.  The Minidump object
-  // is kept here for access to its seeking and reading facilities, and
-  // for access to data about the minidump file itself, such as whether
-  // it should be byte-swapped.
-  Minidump* minidump_;
-};
-
-
-// MinidumpMemoryRegion does not wrap any MDRaw structure, and only contains
-// a reference to an MDMemoryDescriptor.  This object is intended to wrap
-// portions of a minidump file that contain memory dumps.  In normal
-// minidumps, each MinidumpThread owns a MinidumpMemoryRegion corresponding
-// to the thread's stack memory.  MinidumpMemoryList also gives access to
-// memory regions in its list as MinidumpMemoryRegions.  This class
-// adheres to MemoryRegion so that it may be used as a data provider to
-// the Stackwalker family of classes.
-class MinidumpMemoryRegion : public MinidumpObject,
-                             public MemoryRegion {
- public:
-  virtual ~MinidumpMemoryRegion();
-
-  static void set_max_bytes(uint32_t max_bytes) { max_bytes_ = max_bytes; }
-  static uint32_t max_bytes() { return max_bytes_; }
-
-  // Returns a pointer to the base of the memory region.  Returns the
-  // cached value if available, otherwise, reads the minidump file and
-  // caches the memory region.
-  const uint8_t* GetMemory() const;
-
-  // The address of the base of the memory region.
-  uint64_t GetBase() const;
-
-  // The size, in bytes, of the memory region.
-  uint32_t GetSize() const;
-
-  // Frees the cached memory region, if cached.
-  void FreeMemory();
-
-  // Obtains the value of memory at the pointer specified by address.
-  bool GetMemoryAtAddress(uint64_t address, uint8_t*  value) const;
-  bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const;
-  bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const;
-  bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const;
-
-  // Print a human-readable representation of the object to stdout.
-  void Print() const;
-
- protected:
-  explicit MinidumpMemoryRegion(Minidump* minidump);
-
- private:
-  friend class MinidumpThread;
-  friend class MinidumpMemoryList;
-
-  // Identify the base address and size of the memory region, and the
-  // location it may be found in the minidump file.
-  void SetDescriptor(MDMemoryDescriptor* descriptor);
-
-  // Implementation for GetMemoryAtAddress
-  template<typename T> bool GetMemoryAtAddressInternal(uint64_t address,
-                                                       T*        value) const;
-
-  // The largest memory region that will be read from a minidump.  The
-  // default is 1MB.
-  static uint32_t max_bytes_;
-
-  // Base address and size of the memory region, and its position in the
-  // minidump file.
-  MDMemoryDescriptor* descriptor_;
-
-  // Cached memory.
-  mutable vector<uint8_t>* memory_;
-};
-
-
-// MinidumpThread contains information about a thread of execution,
-// including a snapshot of the thread's stack and CPU context.  For
-// the thread that caused an exception, the context carried by
-// MinidumpException is probably desired instead of the CPU context
-// provided here.
-// Note that a MinidumpThread may be valid() even if it does not
-// contain a memory region or context.
-class MinidumpThread : public MinidumpObject {
- public:
-  virtual ~MinidumpThread();
-
-  const MDRawThread* thread() const { return valid_ ? &thread_ : NULL; }
-  // GetMemory may return NULL even if the MinidumpThread is valid,
-  // if the thread memory cannot be read.
-  virtual MinidumpMemoryRegion* GetMemory();
-  // GetContext may return NULL even if the MinidumpThread is valid.
-  virtual MinidumpContext* GetContext();
-
-  // The thread ID is used to determine if a thread is the exception thread,
-  // so a special getter is provided to retrieve this data from the
-  // MDRawThread structure.  Returns false if the thread ID cannot be
-  // determined.
-  virtual bool GetThreadID(uint32_t *thread_id) const;
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
-  // Returns the start address of the thread stack memory region.  Returns 0 if
-  // MinidumpThread is invalid.  Note that this method can be called even when
-  // the thread memory cannot be read and GetMemory returns NULL.
-  virtual uint64_t GetStartOfStackMemoryRange() const;
-
- protected:
-  explicit MinidumpThread(Minidump* minidump);
-
- private:
-  // These objects are managed by MinidumpThreadList.
-  friend class MinidumpThreadList;
-
-  // This works like MinidumpStream::Read, but is driven by
-  // MinidumpThreadList.  No size checking is done, because
-  // MinidumpThreadList handles that directly.
-  bool Read();
-
-  MDRawThread           thread_;
-  MinidumpMemoryRegion* memory_;
-  MinidumpContext*      context_;
-};
-
-
-// MinidumpThreadList contains all of the threads (as MinidumpThreads) in
-// a process.
-class MinidumpThreadList : public MinidumpStream {
- public:
-  virtual ~MinidumpThreadList();
-
-  static void set_max_threads(uint32_t max_threads) {
-    max_threads_ = max_threads;
-  }
-  static uint32_t max_threads() { return max_threads_; }
-
-  virtual unsigned int thread_count() const {
-    return valid_ ? thread_count_ : 0;
-  }
-
-  // Sequential access to threads.
-  virtual MinidumpThread* GetThreadAtIndex(unsigned int index) const;
-
-  // Random access to threads.
-  MinidumpThread* GetThreadByID(uint32_t thread_id);
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- protected:
-  explicit MinidumpThreadList(Minidump* aMinidump);
-
- private:
-  friend class Minidump;
-
-  typedef map<uint32_t, MinidumpThread*> IDToThreadMap;
-  typedef vector<MinidumpThread> MinidumpThreads;
-
-  static const uint32_t kStreamType = MD_THREAD_LIST_STREAM;
-
-  bool Read(uint32_t aExpectedSize);
-
-  // The largest number of threads that will be read from a minidump.  The
-  // default is 256.
-  static uint32_t max_threads_;
-
-  // Access to threads using the thread ID as the key.
-  IDToThreadMap    id_to_thread_map_;
-
-  // The list of threads.
-  MinidumpThreads* threads_;
-  uint32_t        thread_count_;
-};
-
-
-// MinidumpModule wraps MDRawModule, which contains information about loaded
-// code modules.  Access is provided to various data referenced indirectly
-// by MDRawModule, such as the module's name and a specification for where
-// to locate debugging information for the module.
-class MinidumpModule : public MinidumpObject,
-                       public CodeModule {
- public:
-  virtual ~MinidumpModule();
-
-  static void set_max_cv_bytes(uint32_t max_cv_bytes) {
-    max_cv_bytes_ = max_cv_bytes;
-  }
-  static uint32_t max_cv_bytes() { return max_cv_bytes_; }
-
-  static void set_max_misc_bytes(uint32_t max_misc_bytes) {
-    max_misc_bytes_ = max_misc_bytes;
-  }
-  static uint32_t max_misc_bytes() { return max_misc_bytes_; }
-
-  const MDRawModule* module() const { return valid_ ? &module_ : NULL; }
-
-  // CodeModule implementation
-  virtual uint64_t base_address() const {
-    return valid_ ? module_.base_of_image : static_cast<uint64_t>(-1);
-  }
-  virtual uint64_t size() const { return valid_ ? module_.size_of_image : 0; }
-  virtual string code_file() const;
-  virtual string code_identifier() const;
-  virtual string debug_file() const;
-  virtual string debug_identifier() const;
-  virtual string version() const;
-  virtual const CodeModule* Copy() const;
-
-  // The CodeView record, which contains information to locate the module's
-  // debugging information (pdb).  This is returned as uint8_t* because
-  // the data can be of types MDCVInfoPDB20* or MDCVInfoPDB70*, or it may be
-  // of a type unknown to Breakpad, in which case the raw data will still be
-  // returned but no byte-swapping will have been performed.  Check the
-  // record's signature in the first four bytes to differentiate between
-  // the various types.  Current toolchains generate modules which carry
-  // MDCVInfoPDB70 by default.  Returns a pointer to the CodeView record on
-  // success, and NULL on failure.  On success, the optional |size| argument
-  // is set to the size of the CodeView record.
-  const uint8_t* GetCVRecord(uint32_t* size);
-
-  // The miscellaneous debug record, which is obsolete.  Current toolchains
-  // do not generate this type of debugging information (dbg), and this
-  // field is not expected to be present.  Returns a pointer to the debugging
-  // record on success, and NULL on failure.  On success, the optional |size|
-  // argument is set to the size of the debugging record.
-  const MDImageDebugMisc* GetMiscRecord(uint32_t* size);
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- private:
-  // These objects are managed by MinidumpModuleList.
-  friend class MinidumpModuleList;
-
-  explicit MinidumpModule(Minidump* minidump);
-
-  // This works like MinidumpStream::Read, but is driven by
-  // MinidumpModuleList.  No size checking is done, because
-  // MinidumpModuleList handles that directly.
-  bool Read();
-
-  // Reads indirectly-referenced data, including the module name, CodeView
-  // record, and miscellaneous debugging record.  This is necessary to allow
-  // MinidumpModuleList to fully construct MinidumpModule objects without
-  // requiring seeks to read a contiguous set of MinidumpModule objects.
-  // All auxiliary data should be available when Read is called, in order to
-  // allow the CodeModule getters to be const methods.
-  bool ReadAuxiliaryData();
-
-  // The largest number of bytes that will be read from a minidump for a
-  // CodeView record or miscellaneous debugging record, respectively.  The
-  // default for each is 1024.
-  static uint32_t max_cv_bytes_;
-  static uint32_t max_misc_bytes_;
-
-  // True after a successful Read.  This is different from valid_, which is
-  // not set true until ReadAuxiliaryData also completes successfully.
-  // module_valid_ is only used by ReadAuxiliaryData and the functions it
-  // calls to determine whether the object is ready for auxiliary data to
-  // be read.
-  bool              module_valid_;
-
-  // True if debug info was read from the module.  Certain modules
-  // may contain debug records in formats we don't support,
-  // so we can just set this to false to ignore them.
-  bool              has_debug_info_;
-
-  MDRawModule       module_;
-
-  // Cached module name.
-  const string*     name_;
-
-  // Cached CodeView record - this is MDCVInfoPDB20 or (likely)
-  // MDCVInfoPDB70, or possibly something else entirely.  Stored as a uint8_t
-  // because the structure contains a variable-sized string and its exact
-  // size cannot be known until it is processed.
-  vector<uint8_t>* cv_record_;
-
-  // If cv_record_ is present, cv_record_signature_ contains a copy of the
-  // CodeView record's first four bytes, for ease of determinining the
-  // type of structure that cv_record_ contains.
-  uint32_t cv_record_signature_;
-
-  // Cached MDImageDebugMisc (usually not present), stored as uint8_t
-  // because the structure contains a variable-sized string and its exact
-  // size cannot be known until it is processed.
-  vector<uint8_t>* misc_record_;
-};
-
-
-// MinidumpModuleList contains all of the loaded code modules for a process
-// in the form of MinidumpModules.  It maintains a map of these modules
-// so that it may easily provide a code module corresponding to a specific
-// address.
-class MinidumpModuleList : public MinidumpStream,
-                           public CodeModules {
- public:
-  virtual ~MinidumpModuleList();
-
-  static void set_max_modules(uint32_t max_modules) {
-    max_modules_ = max_modules;
-  }
-  static uint32_t max_modules() { return max_modules_; }
-
-  // CodeModules implementation.
-  virtual unsigned int module_count() const {
-    return valid_ ? module_count_ : 0;
-  }
-  virtual const MinidumpModule* GetModuleForAddress(uint64_t address) const;
-  virtual const MinidumpModule* GetMainModule() const;
-  virtual const MinidumpModule* GetModuleAtSequence(
-      unsigned int sequence) const;
-  virtual const MinidumpModule* GetModuleAtIndex(unsigned int index) const;
-  virtual const CodeModules* Copy() const;
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- protected:
-  explicit MinidumpModuleList(Minidump* minidump);
-
- private:
-  friend class Minidump;
-
-  typedef vector<MinidumpModule> MinidumpModules;
-
-  static const uint32_t kStreamType = MD_MODULE_LIST_STREAM;
-
-  bool Read(uint32_t expected_size);
-
-  // The largest number of modules that will be read from a minidump.  The
-  // default is 1024.
-  static uint32_t max_modules_;
-
-  // Access to modules using addresses as the key.
-  RangeMap<uint64_t, unsigned int> *range_map_;
-
-  MinidumpModules *modules_;
-  uint32_t module_count_;
-};
-
-
-// MinidumpMemoryList corresponds to a minidump's MEMORY_LIST_STREAM stream,
-// which references the snapshots of all of the memory regions contained
-// within the minidump.  For a normal minidump, this includes stack memory
-// (also referenced by each MinidumpThread, in fact, the MDMemoryDescriptors
-// here and in MDRawThread both point to exactly the same data in a
-// minidump file, conserving space), as well as a 256-byte snapshot of memory
-// surrounding the instruction pointer in the case of an exception.  Other
-// types of minidumps may contain significantly more memory regions.  Full-
-// memory minidumps contain all of a process' mapped memory.
-class MinidumpMemoryList : public MinidumpStream {
- public:
-  virtual ~MinidumpMemoryList();
-
-  static void set_max_regions(uint32_t max_regions) {
-    max_regions_ = max_regions;
-  }
-  static uint32_t max_regions() { return max_regions_; }
-
-  unsigned int region_count() const { return valid_ ? region_count_ : 0; }
-
-  // Sequential access to memory regions.
-  MinidumpMemoryRegion* GetMemoryRegionAtIndex(unsigned int index);
-
-  // Random access to memory regions.  Returns the region encompassing
-  // the address identified by address.
-  virtual MinidumpMemoryRegion* GetMemoryRegionForAddress(uint64_t address);
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- private:
-  friend class Minidump;
-  friend class MockMinidumpMemoryList;
-
-  typedef vector<MDMemoryDescriptor>   MemoryDescriptors;
-  typedef vector<MinidumpMemoryRegion> MemoryRegions;
-
-  static const uint32_t kStreamType = MD_MEMORY_LIST_STREAM;
-
-  explicit MinidumpMemoryList(Minidump* minidump);
-
-  bool Read(uint32_t expected_size);
-
-  // The largest number of memory regions that will be read from a minidump.
-  // The default is 256.
-  static uint32_t max_regions_;
-
-  // Access to memory regions using addresses as the key.
-  RangeMap<uint64_t, unsigned int> *range_map_;
-
-  // The list of descriptors.  This is maintained separately from the list
-  // of regions, because MemoryRegion doesn't own its MemoryDescriptor, it
-  // maintains a pointer to it.  descriptors_ provides the storage for this
-  // purpose.
-  MemoryDescriptors *descriptors_;
-
-  // The list of regions.
-  MemoryRegions *regions_;
-  uint32_t region_count_;
-};
-
-
-// MinidumpException wraps MDRawExceptionStream, which contains information
-// about the exception that caused the minidump to be generated, if the
-// minidump was generated in an exception handler called as a result of an
-// exception.  It also provides access to a MinidumpContext object, which
-// contains the CPU context for the exception thread at the time the exception
-// occurred.
-class MinidumpException : public MinidumpStream {
- public:
-  virtual ~MinidumpException();
-
-  const MDRawExceptionStream* exception() const {
-    return valid_ ? &exception_ : NULL;
-  }
-
-  // The thread ID is used to determine if a thread is the exception thread,
-  // so a special getter is provided to retrieve this data from the
-  // MDRawExceptionStream structure.  Returns false if the thread ID cannot
-  // be determined.
-  bool GetThreadID(uint32_t *thread_id) const;
-
-  MinidumpContext* GetContext();
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- private:
-  friend class Minidump;
-
-  static const uint32_t kStreamType = MD_EXCEPTION_STREAM;
-
-  explicit MinidumpException(Minidump* minidump);
-
-  bool Read(uint32_t expected_size);
-
-  MDRawExceptionStream exception_;
-  MinidumpContext*     context_;
-};
-
-// MinidumpAssertion wraps MDRawAssertionInfo, which contains information
-// about an assertion that caused the minidump to be generated.
-class MinidumpAssertion : public MinidumpStream {
- public:
-  virtual ~MinidumpAssertion();
-
-  const MDRawAssertionInfo* assertion() const {
-    return valid_ ? &assertion_ : NULL;
-  }
-
-  string expression() const {
-    return valid_ ? expression_ : "";
-  }
-
-  string function() const {
-    return valid_ ? function_ : "";
-  }
-
-  string file() const {
-    return valid_ ? file_ : "";
-  }
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- private:
-  friend class Minidump;
-
-  static const uint32_t kStreamType = MD_ASSERTION_INFO_STREAM;
-
-  explicit MinidumpAssertion(Minidump* minidump);
-
-  bool Read(uint32_t expected_size);
-
-  MDRawAssertionInfo assertion_;
-  string expression_;
-  string function_;
-  string file_;
-};
-
-
-// MinidumpSystemInfo wraps MDRawSystemInfo and provides information about
-// the system on which the minidump was generated.  See also MinidumpMiscInfo.
-class MinidumpSystemInfo : public MinidumpStream {
- public:
-  virtual ~MinidumpSystemInfo();
-
-  const MDRawSystemInfo* system_info() const {
-    return valid_ ? &system_info_ : NULL;
-  }
-
-  // GetOS and GetCPU return textual representations of the operating system
-  // and CPU that produced the minidump.  Unlike most other Minidump* methods,
-  // they return string objects, not weak pointers.  Defined values for
-  // GetOS() are "mac", "windows", and "linux".  Defined values for GetCPU
-  // are "x86" and "ppc".  These methods return an empty string when their
-  // values are unknown.
-  string GetOS();
-  string GetCPU();
-
-  // I don't know what CSD stands for, but this field is documented as
-  // returning a textual representation of the OS service pack.  On other
-  // platforms, this provides additional information about an OS version
-  // level beyond major.minor.micro.  Returns NULL if unknown.
-  const string* GetCSDVersion();
-
-  // If a CPU vendor string can be determined, returns a pointer to it,
-  // otherwise, returns NULL.  CPU vendor strings can be determined from
-  // x86 CPUs with CPUID 0.
-  const string* GetCPUVendor();
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- protected:
-  explicit MinidumpSystemInfo(Minidump* minidump);
-  MDRawSystemInfo system_info_;
-
-  // Textual representation of the OS service pack, for minidumps produced
-  // by MiniDumpWriteDump on Windows.
-  const string* csd_version_;
-
- private:
-  friend class Minidump;
-
-  static const uint32_t kStreamType = MD_SYSTEM_INFO_STREAM;
-
-  bool Read(uint32_t expected_size);
-
-  // A string identifying the CPU vendor, if known.
-  const string* cpu_vendor_;
-};
-
-
-// MinidumpMiscInfo wraps MDRawMiscInfo and provides information about
-// the process that generated the minidump, and optionally additional system
-// information.  See also MinidumpSystemInfo.
-class MinidumpMiscInfo : public MinidumpStream {
- public:
-  const MDRawMiscInfo* misc_info() const {
-    return valid_ ? &misc_info_ : NULL;
-  }
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- private:
-  friend class Minidump;
-  friend class TestMinidumpMiscInfo;
-
-  static const uint32_t kStreamType = MD_MISC_INFO_STREAM;
-
-  explicit MinidumpMiscInfo(Minidump* minidump_);
-
-  bool Read(uint32_t expected_size_);
-
-  MDRawMiscInfo misc_info_;
-
-  // Populated by Read.  Contains the converted strings from the corresponding
-  // UTF-16 fields in misc_info_
-  string standard_name_;
-  string daylight_name_;
-  string build_string_;
-  string dbg_bld_str_;
-};
-
-
-// MinidumpBreakpadInfo wraps MDRawBreakpadInfo, which is an optional stream in
-// a minidump that provides additional information about the process state
-// at the time the minidump was generated.
-class MinidumpBreakpadInfo : public MinidumpStream {
- public:
-  const MDRawBreakpadInfo* breakpad_info() const {
-    return valid_ ? &breakpad_info_ : NULL;
-  }
-
-  // These thread IDs are used to determine if threads deserve special
-  // treatment, so special getters are provided to retrieve this data from
-  // the MDRawBreakpadInfo structure.  The getters return false if the thread
-  // IDs cannot be determined.
-  bool GetDumpThreadID(uint32_t *thread_id) const;
-  bool GetRequestingThreadID(uint32_t *thread_id) const;
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- private:
-  friend class Minidump;
-
-  static const uint32_t kStreamType = MD_BREAKPAD_INFO_STREAM;
-
-  explicit MinidumpBreakpadInfo(Minidump* minidump_);
-
-  bool Read(uint32_t expected_size_);
-
-  MDRawBreakpadInfo breakpad_info_;
-};
-
-// MinidumpMemoryInfo wraps MDRawMemoryInfo, which provides information
-// about mapped memory regions in a process, including their ranges
-// and protection.
-class MinidumpMemoryInfo : public MinidumpObject {
- public:
-  const MDRawMemoryInfo* info() const { return valid_ ? &memory_info_ : NULL; }
-
-  // The address of the base of the memory region.
-  uint64_t GetBase() const { return valid_ ? memory_info_.base_address : 0; }
-
-  // The size, in bytes, of the memory region.
-  uint64_t GetSize() const { return valid_ ? memory_info_.region_size : 0; }
-
-  // Return true if the memory protection allows execution.
-  bool IsExecutable() const;
-
-  // Return true if the memory protection allows writing.
-  bool IsWritable() const;
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- private:
-  // These objects are managed by MinidumpMemoryInfoList.
-  friend class MinidumpMemoryInfoList;
-
-  explicit MinidumpMemoryInfo(Minidump* minidump_);
-
-  // This works like MinidumpStream::Read, but is driven by
-  // MinidumpMemoryInfoList.  No size checking is done, because
-  // MinidumpMemoryInfoList handles that directly.
-  bool Read();
-
-  MDRawMemoryInfo memory_info_;
-};
-
-// MinidumpMemoryInfoList contains a list of information about
-// mapped memory regions for a process in the form of MDRawMemoryInfo.
-// It maintains a map of these structures so that it may easily provide
-// info corresponding to a specific address.
-class MinidumpMemoryInfoList : public MinidumpStream {
- public:
-  virtual ~MinidumpMemoryInfoList();
-
-  unsigned int info_count() const { return valid_ ? info_count_ : 0; }
-
-  const MinidumpMemoryInfo* GetMemoryInfoForAddress(uint64_t address) const;
-  const MinidumpMemoryInfo* GetMemoryInfoAtIndex(unsigned int index) const;
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- private:
-  friend class Minidump;
-
-  typedef vector<MinidumpMemoryInfo> MinidumpMemoryInfos;
-
-  static const uint32_t kStreamType = MD_MEMORY_INFO_LIST_STREAM;
-
-  explicit MinidumpMemoryInfoList(Minidump* minidump_);
-
-  bool Read(uint32_t expected_size);
-
-  // Access to memory info using addresses as the key.
-  RangeMap<uint64_t, unsigned int> *range_map_;
-
-  MinidumpMemoryInfos* infos_;
-  uint32_t info_count_;
-};
-
-// MinidumpLinuxMaps wraps information about a single mapped memory region
-// from /proc/self/maps.
-class MinidumpLinuxMaps : public MinidumpObject {
- public:
-  // The memory address of the base of the mapped region.
-  uint64_t GetBase() const { return valid_ ? region_.start : 0; }
-  // The size of the mapped region.
-  uint64_t GetSize() const { return valid_ ? region_.end - region_.start : 0; }
-
-  // The permissions of the mapped region.
-  bool IsReadable() const {
-    return valid_ ? region_.permissions & MappedMemoryRegion::READ : false;
-  }
-  bool IsWriteable() const {
-    return valid_ ? region_.permissions & MappedMemoryRegion::WRITE : false;
-  }
-  bool IsExecutable() const {
-    return valid_ ? region_.permissions & MappedMemoryRegion::EXECUTE : false;
-  }
-  bool IsPrivate() const {
-    return valid_ ? region_.permissions & MappedMemoryRegion::PRIVATE : false;
-  }
-
-  // The offset of the mapped region.
-  uint64_t GetOffset() const { return valid_ ? region_.offset : 0; }
-
-  // The major device number.
-  uint8_t GetMajorDevice() const { return valid_ ? region_.major_device : 0; }
-  // The minor device number.
-  uint8_t GetMinorDevice() const { return valid_ ? region_.minor_device : 0; }
-
-  // The inode of the mapped region.
-  uint64_t GetInode() const { return valid_ ? region_.inode : 0; }
-
-  // The pathname of the mapped region.
-  const string GetPathname() const { return valid_ ? region_.path : ""; }
-
-  // Print the contents of this mapping.
-  void Print() const;
-
- private:
-  // These objects are managed by MinidumpLinuxMapsList.
-  friend class MinidumpLinuxMapsList;
-
-  // This caller owns the pointer.
-  explicit MinidumpLinuxMaps(Minidump *minidump);
-
-  // The memory region struct that this class wraps.
-  MappedMemoryRegion region_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpLinuxMaps);
-};
-
-// MinidumpLinuxMapsList corresponds to the Linux-exclusive MD_LINUX_MAPS
-// stream, which contains the contents of /prod/self/maps, which contains
-// the mapped memory regions and their access permissions.
-class MinidumpLinuxMapsList : public MinidumpStream {
- public:
-  virtual ~MinidumpLinuxMapsList();
-
-  // Get number of mappings.
-  unsigned int get_maps_count() const { return valid_ ? maps_count_ : 0; }
-
-  // Get mapping at the given memory address. The caller owns the pointer.
-  const MinidumpLinuxMaps *GetLinuxMapsForAddress(uint64_t address) const;
-  // Get mapping at the given index. The caller owns the pointer.
-  const MinidumpLinuxMaps *GetLinuxMapsAtIndex(unsigned int index) const;
-
-  // Print the contents of /proc/self/maps to stdout.
-  void Print() const;
-
- private:
-  friend class Minidump;
-
-  typedef vector<MinidumpLinuxMaps *> MinidumpLinuxMappings;
-
-  static const uint32_t kStreamType = MD_LINUX_MAPS;
-
-  // The caller owns the pointer.
-  explicit MinidumpLinuxMapsList(Minidump *minidump);
-
-  // Read and load the contents of the process mapping data.
-  // The stream should have data in the form of /proc/self/maps.
-  // This method returns whether the stream was read successfully.
-  bool Read(uint32_t expected_size);
-
-  // The list of individual mappings.
-  MinidumpLinuxMappings *maps_;
-  // The number of mappings.
-  uint32_t maps_count_;
-
-  DISALLOW_COPY_AND_ASSIGN(MinidumpLinuxMapsList);
-};
-
-// Minidump is the user's interface to a minidump file.  It wraps MDRawHeader
-// and provides access to the minidump's top-level stream directory.
-class Minidump {
- public:
-  // path is the pathname of a file containing the minidump.
-  explicit Minidump(const string& path);
-  // input is an istream wrapping minidump data. Minidump holds a
-  // weak pointer to input, and the caller must ensure that the stream
-  // is valid as long as the Minidump object is.
-  explicit Minidump(std::istream& input);
-
-  virtual ~Minidump();
-
-  // path may be empty if the minidump was not opened from a file
-  virtual string path() const {
-    return path_;
-  }
-  static void set_max_streams(uint32_t max_streams) {
-    max_streams_ = max_streams;
-  }
-  static uint32_t max_streams() { return max_streams_; }
-
-  static void set_max_string_length(uint32_t max_string_length) {
-    max_string_length_ = max_string_length;
-  }
-  static uint32_t max_string_length() { return max_string_length_; }
-
-  virtual const MDRawHeader* header() const { return valid_ ? &header_ : NULL; }
-
-  // Reads the CPU information from the system info stream and generates the
-  // appropriate CPU flags.  The returned context_cpu_flags are the same as
-  // if the CPU type bits were set in the context_flags of a context record.
-  // On success, context_cpu_flags will have the flags that identify the CPU.
-  // If a system info stream is missing, context_cpu_flags will be 0.
-  // Returns true if the current position in the stream was not changed.
-  // Returns false when the current location in the stream was changed and the
-  // attempt to restore the original position failed.
-  bool GetContextCPUFlagsFromSystemInfo(uint32_t* context_cpu_flags);
-
-  // Reads the minidump file's header and top-level stream directory.
-  // The minidump is expected to be positioned at the beginning of the
-  // header.  Read() sets up the stream list and map, and validates the
-  // Minidump object.
-  virtual bool Read();
-
-  // The next set of methods are stubs that call GetStream.  They exist to
-  // force code generation of the templatized API within the module, and
-  // to avoid exposing an ugly API (GetStream needs to accept a garbage
-  // parameter).
-  virtual MinidumpThreadList* GetThreadList();
-  virtual MinidumpModuleList* GetModuleList();
-  virtual MinidumpMemoryList* GetMemoryList();
-  virtual MinidumpException* GetException();
-  virtual MinidumpAssertion* GetAssertion();
-  virtual MinidumpSystemInfo* GetSystemInfo();
-  virtual MinidumpMiscInfo* GetMiscInfo();
-  virtual MinidumpBreakpadInfo* GetBreakpadInfo();
-  virtual MinidumpMemoryInfoList* GetMemoryInfoList();
-
-  // The next method also calls GetStream, but is exclusive for Linux dumps.
-  virtual MinidumpLinuxMapsList *GetLinuxMapsList();
-
-  // The next set of methods are provided for users who wish to access
-  // data in minidump files directly, while leveraging the rest of
-  // this class and related classes to handle the basic minidump
-  // structure and known stream types.
-
-  unsigned int GetDirectoryEntryCount() const {
-    return valid_ ? header_.stream_count : 0;
-  }
-  const MDRawDirectory* GetDirectoryEntryAtIndex(unsigned int index) const;
-
-  // The next 2 methods are lower-level I/O routines.  They use fd_.
-
-  // Reads count bytes from the minidump at the current position into
-  // the storage area pointed to by bytes.  bytes must be of sufficient
-  // size.  After the read, the file position is advanced by count.
-  bool ReadBytes(void* bytes, size_t count);
-
-  // Sets the position of the minidump file to offset.
-  bool SeekSet(off_t offset);
-
-  // Returns the current position of the minidump file.
-  off_t Tell();
-
-  // The next 2 methods are medium-level I/O routines.
-
-  // ReadString returns a string which is owned by the caller!  offset
-  // specifies the offset that a length-encoded string is stored at in the
-  // minidump file.
-  string* ReadString(off_t offset);
-
-  // SeekToStreamType positions the file at the beginning of a stream
-  // identified by stream_type, and informs the caller of the stream's
-  // length by setting *stream_length.  Because stream_map maps each stream
-  // type to only one stream in the file, this might mislead the user into
-  // thinking that the stream that this seeks to is the only stream with
-  // type stream_type.  That can't happen for streams that these classes
-  // deal with directly, because they're only supposed to be present in the
-  // file singly, and that's verified when stream_map_ is built.  Users who
-  // are looking for other stream types should be aware of this
-  // possibility, and consider using GetDirectoryEntryAtIndex (possibly
-  // with GetDirectoryEntryCount) if expecting multiple streams of the same
-  // type in a single minidump file.
-  bool SeekToStreamType(uint32_t stream_type, uint32_t* stream_length);
-
-  bool swap() const { return valid_ ? swap_ : false; }
-
-  // Print a human-readable representation of the object to stdout.
-  void Print();
-
- private:
-  // MinidumpStreamInfo is used in the MinidumpStreamMap.  It lets
-  // the Minidump object locate interesting streams quickly, and
-  // provides a convenient place to stash MinidumpStream objects.
-  struct MinidumpStreamInfo {
-    MinidumpStreamInfo() : stream_index(0), stream(NULL) {}
-    ~MinidumpStreamInfo() { delete stream; }
-
-    // Index into the MinidumpDirectoryEntries vector
-    unsigned int    stream_index;
-
-    // Pointer to the stream if cached, or NULL if not yet populated
-    MinidumpStream* stream;
-  };
-
-  typedef vector<MDRawDirectory> MinidumpDirectoryEntries;
-  typedef map<uint32_t, MinidumpStreamInfo> MinidumpStreamMap;
-
-  template<typename T> T* GetStream(T** stream);
-
-  // Opens the minidump file, or if already open, seeks to the beginning.
-  bool Open();
-
-  // The largest number of top-level streams that will be read from a minidump.
-  // Note that streams are only read (and only consume memory) as needed,
-  // when directed by the caller.  The default is 128.
-  static uint32_t max_streams_;
-
-  // The maximum length of a UTF-16 string that will be read from a minidump
-  // in 16-bit words.  The default is 1024.  UTF-16 strings are converted
-  // to UTF-8 when stored in memory, and each UTF-16 word will be represented
-  // by as many as 3 bytes in UTF-8.
-  static unsigned int max_string_length_;
-
-  MDRawHeader               header_;
-
-  // The list of streams.
-  MinidumpDirectoryEntries* directory_;
-
-  // Access to streams using the stream type as the key.
-  MinidumpStreamMap*        stream_map_;
-
-  // The pathname of the minidump file to process, set in the constructor.
-  // This may be empty if the minidump was opened directly from a stream.
-  const string              path_;
-
-  // The stream for all file I/O.  Used by ReadBytes and SeekSet.
-  // Set based on the path in Open, or directly in the constructor.
-  std::istream*             stream_;
-
-  // swap_ is true if the minidump file should be byte-swapped.  If the
-  // minidump was produced by a CPU that is other-endian than the CPU
-  // processing the minidump, this will be true.  If the two CPUs are
-  // same-endian, this will be false.
-  bool                      swap_;
-
-  // Validity of the Minidump structure, false immediately after
-  // construction or after a failed Read(); true following a successful
-  // Read().
-  bool                      valid_;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/minidump_processor.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/minidump_processor.h
deleted file mode 100644
index 387115e..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/minidump_processor.h
+++ /dev/null
@@ -1,147 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_PROCESSOR_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_PROCESSOR_H__
-
-#include <assert.h>
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/process_result.h"
-
-namespace google_breakpad {
-
-class Minidump;
-class ProcessState;
-class StackFrameSymbolizer;
-class SourceLineResolverInterface;
-class SymbolSupplier;
-struct SystemInfo;
-
-class MinidumpProcessor {
- public:
-  // Initializes this MinidumpProcessor.  supplier should be an
-  // implementation of the SymbolSupplier abstract base class.
-  MinidumpProcessor(SymbolSupplier* supplier,
-                    SourceLineResolverInterface* resolver);
-
-  // Initializes the MinidumpProcessor with the option of
-  // enabling the exploitability framework to analyze dumps
-  // for probable security relevance.
-  MinidumpProcessor(SymbolSupplier* supplier,
-                    SourceLineResolverInterface* resolver,
-                    bool enable_exploitability);
-
-  // Initializes the MinidumpProcessor with source line resolver helper, and
-  // the option of enabling the exploitability framework to analyze dumps
-  // for probable security relevance.
-  // Does not take ownership of resolver_helper, which must NOT be NULL.
-  MinidumpProcessor(StackFrameSymbolizer* stack_frame_symbolizer,
-                    bool enable_exploitability);
-
-  ~MinidumpProcessor();
-
-  // Processes the minidump file and fills process_state with the result.
-  ProcessResult Process(const string &minidump_file,
-                        ProcessState* process_state);
-
-  // Processes the minidump structure and fills process_state with the
-  // result.
-  ProcessResult Process(Minidump* minidump,
-                        ProcessState* process_state);
-  // Populates the cpu_* fields of the |info| parameter with textual
-  // representations of the CPU type that the minidump in |dump| was
-  // produced on.  Returns false if this information is not available in
-  // the minidump.
-  static bool GetCPUInfo(Minidump* dump, SystemInfo* info);
-
-  // Populates the os_* fields of the |info| parameter with textual
-  // representations of the operating system that the minidump in |dump|
-  // was produced on.  Returns false if this information is not available in
-  // the minidump.
-  static bool GetOSInfo(Minidump* dump, SystemInfo* info);
-
-  // Populates the |process_create_time| parameter with the create time of the
-  // crashed process.  Returns false if this information is not available in
-  // the minidump |dump|.
-  static bool GetProcessCreateTime(Minidump* dump,
-                                   uint32_t* process_create_time);
-
-  // Returns a textual representation of the reason that a crash occurred,
-  // if the minidump in dump was produced as a result of a crash.  Returns
-  // an empty string if this information cannot be determined.  If address
-  // is non-NULL, it will be set to contain the address that caused the
-  // exception, if this information is available.  This will be a code
-  // address when the crash was caused by problems such as illegal
-  // instructions or divisions by zero, or a data address when the crash
-  // was caused by a memory access violation.
-  static string GetCrashReason(Minidump* dump, uint64_t* address);
-
-  // This function returns true if the passed-in error code is
-  // something unrecoverable(i.e. retry should not happen).  For
-  // instance, if the minidump is corrupt, then it makes no sense to
-  // retry as we won't be able to glean additional information.
-  // However, as an example of the other case, the symbol supplier can
-  // return an error code indicating it was 'interrupted', which can
-  // happen of the symbols are fetched from a remote store, and a
-  // retry might be successful later on.
-  // You should not call this method with PROCESS_OK! Test for
-  // that separately before calling this.
-  static bool IsErrorUnrecoverable(ProcessResult p) {
-    assert(p !=  PROCESS_OK);
-    return (p != PROCESS_SYMBOL_SUPPLIER_INTERRUPTED);
-  }
-
-  // Returns a textual representation of an assertion included
-  // in the minidump.  Returns an empty string if this information
-  // does not exist or cannot be determined.
-  static string GetAssertion(Minidump* dump);
-
-  void set_enable_objdump(bool enabled) { enable_objdump_ = enabled; }
-
- private:
-  StackFrameSymbolizer* frame_symbolizer_;
-  // Indicate whether resolver_helper_ is owned by this instance.
-  bool own_frame_symbolizer_;
-
-  // This flag enables the exploitability scanner which attempts to
-  // guess how likely it is that the crash represents an exploitable
-  // memory corruption issue.
-  bool enable_exploitability_;
-
-  // This flag permits the exploitability scanner to shell out to objdump
-  // for purposes of disassembly.
-  bool enable_objdump_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_PROCESSOR_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/proc_maps_linux.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/proc_maps_linux.h
deleted file mode 100644
index b8e6eb9..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/proc_maps_linux.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef BASE_DEBUG_PROC_MAPS_LINUX_H_
-#define BASE_DEBUG_PROC_MAPS_LINUX_H_
-
-#include <string>
-#include <vector>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-// Describes a region of mapped memory and the path of the file mapped.
-struct MappedMemoryRegion {
-  enum Permission {
-    READ = 1 << 0,
-    WRITE = 1 << 1,
-    EXECUTE = 1 << 2,
-    PRIVATE = 1 << 3,  // If set, region is private, otherwise it is shared.
-  };
-
-  // The address range [start,end) of mapped memory.
-  uint64_t start;
-  uint64_t end;
-
-  // Byte offset into |path| of the range mapped into memory.
-  uint64_t offset;
-
-  // Bitmask of read/write/execute/private/shared permissions.
-  uint8_t permissions;
-
-  // Major and minor devices.
-  uint8_t major_device;
-  uint8_t minor_device;
-
-  // Value of the inode.
-  uint64_t inode;
-
-  // Name of the file mapped into memory.
-  //
-  // NOTE: path names aren't guaranteed to point at valid files. For example,
-  // "[heap]" and "[stack]" are used to represent the location of the process'
-  // heap and stack, respectively.
-  string path;
-
-  // The line from /proc/<pid>/maps that this struct represents.
-  string line;
-};
-
-// Parses /proc/<pid>/maps input data and stores in |regions|. Returns true
-// and updates |regions| if and only if all of |input| was successfully parsed.
-bool ParseProcMaps(const std::string& input,
-                   std::vector<MappedMemoryRegion>* regions);
-
-}  // namespace google_breakpad
-
-#endif  // BASE_DEBUG_PROC_MAPS_LINUX_H_
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/process_result.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/process_result.h
deleted file mode 100644
index 15c7213..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/process_result.h
+++ /dev/null
@@ -1,66 +0,0 @@
-// Copyright (c) 2014, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_PROCESS_RESULT_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_PROCESS_RESULT_H__
-
-namespace google_breakpad {
-
-// Return type for MinidumpProcessor or MicrodumpProcessor's Process()
-enum ProcessResult {
-  PROCESS_OK,                                  // The dump was processed
-                                               // successfully.
-
-  PROCESS_ERROR_MINIDUMP_NOT_FOUND,            // The minidump file was not
-                                               // found.
-
-  PROCESS_ERROR_NO_MINIDUMP_HEADER,            // The minidump file had no
-                                               // header.
-
-  PROCESS_ERROR_NO_THREAD_LIST,                // The minidump file has no
-                                               // thread list.
-
-  PROCESS_ERROR_GETTING_THREAD,                // There was an error getting one
-                                               // thread's data from th dump.
-
-  PROCESS_ERROR_GETTING_THREAD_ID,             // There was an error getting a
-                                               // thread id from the thread's
-                                               // data.
-
-  PROCESS_ERROR_DUPLICATE_REQUESTING_THREADS,  // There was more than one
-                                               // requesting thread.
-
-  PROCESS_SYMBOL_SUPPLIER_INTERRUPTED          // The dump processing was
-                                               // interrupted by the
-                                               // SymbolSupplier(not fatal).
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_PROCESS_RESULT_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/process_state.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/process_state.h
deleted file mode 100644
index 728656f..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/process_state.h
+++ /dev/null
@@ -1,189 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// process_state.h: A snapshot of a process, in a fully-digested state.
-//
-// Author: Mark Mentovai
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__
-
-#include <string>
-#include <vector>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/system_info.h"
-#include "google_breakpad/processor/minidump.h"
-
-namespace google_breakpad {
-
-using std::vector;
-
-class CallStack;
-class CodeModules;
-
-enum ExploitabilityRating {
-  EXPLOITABILITY_HIGH,                 // The crash likely represents
-                                       // a exploitable memory corruption
-                                       // vulnerability.
-
-  EXPLOITABILITY_MEDIUM,               // The crash appears to corrupt
-                                       // memory in a way which may be
-                                       // exploitable in some situations.
-
-  EXPLOITABLITY_MEDIUM = EXPLOITABILITY_MEDIUM,  // an old misspelling
-
-  EXPLOITABILITY_LOW,                  // The crash either does not corrupt
-                                       // memory directly or control over
-                                       // the affected data is limited. The
-                                       // issue may still be exploitable
-                                       // on certain platforms or situations.
-
-  EXPLOITABILITY_INTERESTING,          // The crash does not appear to be
-                                       // directly exploitable. However it
-                                       // represents a condition which should
-                                       // be further analyzed.
-
-  EXPLOITABILITY_NONE,                 // The crash does not appear to represent
-                                       // an exploitable condition.
-
-  EXPLOITABILITY_NOT_ANALYZED,         // The crash was not analyzed for
-                                       // exploitability because the engine
-                                       // was disabled.
-
-  EXPLOITABILITY_ERR_NOENGINE,         // The supplied minidump's platform does
-                                       // not have a exploitability engine
-                                       // associated with it.
-
-  EXPLOITABILITY_ERR_PROCESSING        // An error occured within the
-                                       // exploitability engine and no rating
-                                       // was calculated.
-};
-
-class ProcessState {
- public:
-  ProcessState() : modules_(NULL) { Clear(); }
-  ~ProcessState();
-
-  // Resets the ProcessState to its default values
-  void Clear();
-
-  // Accessors.  See the data declarations below.
-  uint32_t time_date_stamp() const { return time_date_stamp_; }
-  uint32_t process_create_time() const { return process_create_time_; }
-  bool crashed() const { return crashed_; }
-  string crash_reason() const { return crash_reason_; }
-  uint64_t crash_address() const { return crash_address_; }
-  string assertion() const { return assertion_; }
-  int requesting_thread() const { return requesting_thread_; }
-  const vector<CallStack*>* threads() const { return &threads_; }
-  const vector<MemoryRegion*>* thread_memory_regions() const {
-    return &thread_memory_regions_;
-  }
-  const SystemInfo* system_info() const { return &system_info_; }
-  const CodeModules* modules() const { return modules_; }
-  const vector<const CodeModule*>* modules_without_symbols() const {
-    return &modules_without_symbols_;
-  }
-  const vector<const CodeModule*>* modules_with_corrupt_symbols() const {
-    return &modules_with_corrupt_symbols_;
-  }
-  ExploitabilityRating exploitability() const { return exploitability_; }
-
- private:
-  // MinidumpProcessor and MicrodumpProcessor are responsible for building
-  // ProcessState objects.
-  friend class MinidumpProcessor;
-  friend class MicrodumpProcessor;
-
-  // The time-date stamp of the minidump (time_t format)
-  uint32_t time_date_stamp_;
-
-  // The time-date stamp when the process was created (time_t format)
-  uint32_t process_create_time_;
-
-  // True if the process crashed, false if the dump was produced outside
-  // of an exception handler.
-  bool crashed_;
-
-  // If the process crashed, the type of crash.  OS- and possibly CPU-
-  // specific.  For example, "EXCEPTION_ACCESS_VIOLATION" (Windows),
-  // "EXC_BAD_ACCESS / KERN_INVALID_ADDRESS" (Mac OS X), "SIGSEGV"
-  // (other Unix).
-  string crash_reason_;
-
-  // If the process crashed, and if crash_reason implicates memory,
-  // the memory address that caused the crash.  For data access errors,
-  // this will be the data address that caused the fault.  For code errors,
-  // this will be the address of the instruction that caused the fault.
-  uint64_t crash_address_;
-
-  // If there was an assertion that was hit, a textual representation
-  // of that assertion, possibly including the file and line at which
-  // it occurred.
-  string assertion_;
-
-  // The index of the thread that requested a dump be written in the
-  // threads vector.  If a dump was produced as a result of a crash, this
-  // will point to the thread that crashed.  If the dump was produced as
-  // by user code without crashing, and the dump contains extended Breakpad
-  // information, this will point to the thread that requested the dump.
-  // If the dump was not produced as a result of an exception and no
-  // extended Breakpad information is present, this field will be set to -1,
-  // indicating that the dump thread is not available.
-  int requesting_thread_;
-
-  // Stacks for each thread (except possibly the exception handler
-  // thread) at the time of the crash.
-  vector<CallStack*> threads_;
-  vector<MemoryRegion*> thread_memory_regions_;
-
-  // OS and CPU information.
-  SystemInfo system_info_;
-
-  // The modules that were loaded into the process represented by the
-  // ProcessState.
-  const CodeModules *modules_;
-
-  // The modules that didn't have symbols when the report was processed.
-  vector<const CodeModule*> modules_without_symbols_;
-
-  // The modules that had corrupt symbols when the report was processed.
-  vector<const CodeModule*> modules_with_corrupt_symbols_;
-
-  // The exploitability rating as determined by the exploitability
-  // engine. When the exploitability engine is not enabled this
-  // defaults to EXPLOITABILITY_NOT_ANALYZED.
-  ExploitabilityRating exploitability_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/source_line_resolver_base.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/source_line_resolver_base.h
deleted file mode 100644
index c720b0c..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/source_line_resolver_base.h
+++ /dev/null
@@ -1,128 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// source_line_resolver_base.h: SourceLineResolverBase, an (incomplete)
-// implementation of SourceLineResolverInterface.  It serves as a common base
-// class for concrete implementations: FastSourceLineResolver and
-// BasicSourceLineResolver.  It is designed for refactoring that removes
-// code redundancy in the two concrete source line resolver classes.
-//
-// See "google_breakpad/processor/source_line_resolver_interface.h" for more
-// documentation.
-
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_BASE_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_BASE_H__
-
-#include <map>
-#include <set>
-#include <string>
-
-#include "google_breakpad/processor/source_line_resolver_interface.h"
-
-namespace google_breakpad {
-
-using std::map;
-using std::set;
-
-// Forward declaration.
-// ModuleFactory is a simple factory interface for creating a Module instance
-// at run-time.
-class ModuleFactory;
-
-class SourceLineResolverBase : public SourceLineResolverInterface {
- public:
-  // Read the symbol_data from a file with given file_name.
-  // The part of code was originally in BasicSourceLineResolver::Module's
-  // LoadMap() method.
-  // Place dynamically allocated heap buffer in symbol_data. Caller has the
-  // ownership of the buffer, and should call delete [] to free the buffer.
-  static bool ReadSymbolFile(const string &file_name,
-                             char **symbol_data,
-                             size_t *symbol_data_size);
-
- protected:
-  // Users are not allowed create SourceLineResolverBase instance directly.
-  SourceLineResolverBase(ModuleFactory *module_factory);
-  virtual ~SourceLineResolverBase();
-
-  // Virtual methods inherited from SourceLineResolverInterface.
-  virtual bool LoadModule(const CodeModule *module, const string &map_file);
-  virtual bool LoadModuleUsingMapBuffer(const CodeModule *module,
-                                        const string &map_buffer);
-  virtual bool LoadModuleUsingMemoryBuffer(const CodeModule *module,
-                                           char *memory_buffer,
-                                           size_t memory_buffer_size);
-  virtual bool ShouldDeleteMemoryBufferAfterLoadModule();
-  virtual void UnloadModule(const CodeModule *module);
-  virtual bool HasModule(const CodeModule *module);
-  virtual bool IsModuleCorrupt(const CodeModule *module);
-  virtual void FillSourceLineInfo(StackFrame *frame);
-  virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame);
-  virtual CFIFrameInfo *FindCFIFrameInfo(const StackFrame *frame);
-
-  // Nested structs and classes.
-  struct Line;
-  struct Function;
-  struct PublicSymbol;
-  struct CompareString {
-    bool operator()(const string &s1, const string &s2) const;
-  };
-  // Module is an interface for an in-memory symbol file.
-  class Module;
-  class AutoFileCloser;
-
-  // All of the modules that are loaded.
-  typedef map<string, Module*, CompareString> ModuleMap;
-  ModuleMap *modules_;
-
-  // The loaded modules that were detecting to be corrupt during load.
-  typedef set<string, CompareString> ModuleSet;
-  ModuleSet *corrupt_modules_;
-
-  // All of heap-allocated buffers that are owned locally by resolver.
-  typedef std::map<string, char*, CompareString> MemoryMap;
-  MemoryMap *memory_buffers_;
-
-  // Creates a concrete module at run-time.
-  ModuleFactory *module_factory_;
-
- private:
-  // ModuleFactory needs to have access to protected type Module.
-  friend class ModuleFactory;
-
-  // Disallow unwanted copy ctor and assignment operator
-  SourceLineResolverBase(const SourceLineResolverBase&);
-  void operator=(const SourceLineResolverBase&);
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_BASE_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/source_line_resolver_interface.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/source_line_resolver_interface.h
deleted file mode 100644
index a694bf2..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/source_line_resolver_interface.h
+++ /dev/null
@@ -1,117 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Abstract interface to return function/file/line info for a memory address.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_INTERFACE_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_INTERFACE_H__
-
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/code_module.h"
-
-namespace google_breakpad {
-
-struct StackFrame;
-struct WindowsFrameInfo;
-class CFIFrameInfo;
-
-class SourceLineResolverInterface {
- public:
-  typedef uint64_t MemAddr;
-
-  virtual ~SourceLineResolverInterface() {}
-
-  // Adds a module to this resolver, returning true on success.
-  //
-  // module should have at least the code_file, debug_file,
-  // and debug_identifier members populated.
-  //
-  // map_file should contain line/address mappings for this module.
-  virtual bool LoadModule(const CodeModule *module,
-                          const string &map_file) = 0;
-  // Same as above, but takes the contents of a pre-read map buffer
-  virtual bool LoadModuleUsingMapBuffer(const CodeModule *module,
-                                        const string &map_buffer) = 0;
-
-  // Add an interface to load symbol using C-String data instead of string.
-  // This is useful in the optimization design for avoiding unnecessary copying
-  // of symbol data, in order to improve memory efficiency.
-  // LoadModuleUsingMemoryBuffer() does NOT take ownership of memory_buffer.
-  // LoadModuleUsingMemoryBuffer() null terminates the passed in buffer, if
-  // the last character is not a null terminator.
-  virtual bool LoadModuleUsingMemoryBuffer(const CodeModule *module,
-                                           char *memory_buffer,
-                                           size_t memory_buffer_size) = 0;
-
-  // Return true if the memory buffer should be deleted immediately after
-  // LoadModuleUsingMemoryBuffer(). Return false if the memory buffer has to be
-  // alive during the lifetime of the corresponding Module.
-  virtual bool ShouldDeleteMemoryBufferAfterLoadModule() = 0;
-
-  // Request that the specified module be unloaded from this resolver.
-  // A resolver may choose to ignore such a request.
-  virtual void UnloadModule(const CodeModule *module) = 0;
-
-  // Returns true if the module has been loaded.
-  virtual bool HasModule(const CodeModule *module) = 0;
-
-  // Returns true if the module has been loaded and it is corrupt.
-  virtual bool IsModuleCorrupt(const CodeModule *module) = 0;
-
-  // Fills in the function_base, function_name, source_file_name,
-  // and source_line fields of the StackFrame.  The instruction and
-  // module_name fields must already be filled in.
-  virtual void FillSourceLineInfo(StackFrame *frame) = 0;
-
-  // If Windows stack walking information is available covering
-  // FRAME's instruction address, return a WindowsFrameInfo structure
-  // describing it. If the information is not available, returns NULL.
-  // A NULL return value does not indicate an error. The caller takes
-  // ownership of any returned WindowsFrameInfo object.
-  virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame) = 0;
-
-  // If CFI stack walking information is available covering ADDRESS,
-  // return a CFIFrameInfo structure describing it. If the information
-  // is not available, return NULL. The caller takes ownership of any
-  // returned CFIFrameInfo object.
-  virtual CFIFrameInfo *FindCFIFrameInfo(const StackFrame *frame) = 0;
-
- protected:
-  // SourceLineResolverInterface cannot be instantiated except by subclasses
-  SourceLineResolverInterface() {}
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_INTERFACE_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stack_frame.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stack_frame.h
deleted file mode 100644
index b55eb9c..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stack_frame.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_H__
-
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-class CodeModule;
-
-struct StackFrame {
-  // Indicates how well the instruction pointer derived during
-  // stack walking is trusted. Since the stack walker can resort to
-  // stack scanning, it can wind up with dubious frames.
-  // In rough order of "trust metric".
-  enum FrameTrust {
-    FRAME_TRUST_NONE,      // Unknown
-    FRAME_TRUST_SCAN,      // Scanned the stack, found this
-    FRAME_TRUST_CFI_SCAN,  // Found while scanning stack using call frame info
-    FRAME_TRUST_FP,        // Derived from frame pointer
-    FRAME_TRUST_CFI,       // Derived from call frame info
-    FRAME_TRUST_PREWALKED, // Explicitly provided by some external stack walker.
-    FRAME_TRUST_CONTEXT    // Given as instruction pointer in a context
-  };
-
-  StackFrame()
-      : instruction(),
-        module(NULL),
-        function_name(),
-        function_base(),
-        source_file_name(),
-        source_line(),
-        source_line_base(),
-        trust(FRAME_TRUST_NONE) {}
-  virtual ~StackFrame() {}
-
-  // Return a string describing how this stack frame was found
-  // by the stackwalker.
-  string trust_description() const {
-    switch (trust) {
-      case StackFrame::FRAME_TRUST_CONTEXT:
-        return "given as instruction pointer in context";
-      case StackFrame::FRAME_TRUST_PREWALKED:
-        return "recovered by external stack walker";
-      case StackFrame::FRAME_TRUST_CFI:
-        return "call frame info";
-      case StackFrame::FRAME_TRUST_CFI_SCAN:
-        return "call frame info with scanning";
-      case StackFrame::FRAME_TRUST_FP:
-        return "previous frame's frame pointer";
-      case StackFrame::FRAME_TRUST_SCAN:
-        return "stack scanning";
-      default:
-        return "unknown";
-    }
-  };
-
-  // Return the actual return address, as saved on the stack or in a
-  // register. See the comments for 'instruction', below, for details.
-  virtual uint64_t ReturnAddress() const { return instruction; }
-
-  // The program counter location as an absolute virtual address.
-  //
-  // - For the innermost called frame in a stack, this will be an exact
-  //   program counter or instruction pointer value.
-  //
-  // - For all other frames, this address is within the instruction that
-  //   caused execution to branch to this frame's callee (although it may
-  //   not point to the exact beginning of that instruction). This ensures
-  //   that, when we look up the source code location for this frame, we
-  //   get the source location of the call, not of the point at which
-  //   control will resume when the call returns, which may be on the next
-  //   line. (If the compiler knows the callee never returns, it may even
-  //   place the call instruction at the very end of the caller's machine
-  //   code, such that the "return address" (which will never be used)
-  //   immediately after the call instruction is in an entirely different
-  //   function, perhaps even from a different source file.)
-  //
-  // On some architectures, the return address as saved on the stack or in
-  // a register is fine for looking up the point of the call. On others, it
-  // requires adjustment. ReturnAddress returns the address as saved by the
-  // machine.
-  uint64_t instruction;
-
-  // The module in which the instruction resides.
-  const CodeModule *module;
-
-  // The function name, may be omitted if debug symbols are not available.
-  string function_name;
-
-  // The start address of the function, may be omitted if debug symbols
-  // are not available.
-  uint64_t function_base;
-
-  // The source file name, may be omitted if debug symbols are not available.
-  string source_file_name;
-
-  // The (1-based) source line number, may be omitted if debug symbols are
-  // not available.
-  int source_line;
-
-  // The start address of the source line, may be omitted if debug symbols
-  // are not available.
-  uint64_t source_line_base;
-
-  // Amount of trust the stack walker has in the instruction pointer
-  // of this frame.
-  FrameTrust trust;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stack_frame_cpu.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stack_frame_cpu.h
deleted file mode 100644
index dc5d8ae..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stack_frame_cpu.h
+++ /dev/null
@@ -1,405 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stack_frame_cpu.h: CPU-specific StackFrame extensions.
-//
-// These types extend the StackFrame structure to carry CPU-specific register
-// state.  They are defined in this header instead of stack_frame.h to
-// avoid the need to include minidump_format.h when only the generic
-// StackFrame type is needed.
-//
-// Author: Mark Mentovai
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_CPU_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_CPU_H__
-
-#include "google_breakpad/common/minidump_format.h"
-#include "google_breakpad/processor/stack_frame.h"
-
-namespace google_breakpad {
-
-struct WindowsFrameInfo;
-class CFIFrameInfo;
-
-struct StackFrameX86 : public StackFrame {
-  // ContextValidity has one entry for each relevant hardware pointer
-  // register (%eip and %esp) and one entry for each general-purpose
-  // register. It's worthwhile having validity flags for caller-saves
-  // registers: they are valid in the youngest frame, and such a frame
-  // might save a callee-saves register in a caller-saves register, but
-  // SimpleCFIWalker won't touch registers unless they're marked as valid.
-  enum ContextValidity {
-    CONTEXT_VALID_NONE = 0,
-    CONTEXT_VALID_EIP  = 1 << 0,
-    CONTEXT_VALID_ESP  = 1 << 1,
-    CONTEXT_VALID_EBP  = 1 << 2,
-    CONTEXT_VALID_EAX  = 1 << 3,
-    CONTEXT_VALID_EBX  = 1 << 4,
-    CONTEXT_VALID_ECX  = 1 << 5,
-    CONTEXT_VALID_EDX  = 1 << 6,
-    CONTEXT_VALID_ESI  = 1 << 7,
-    CONTEXT_VALID_EDI  = 1 << 8,
-    CONTEXT_VALID_ALL  = -1
-  };
-
-  StackFrameX86()
-     : context(),
-       context_validity(CONTEXT_VALID_NONE),
-       windows_frame_info(NULL),
-       cfi_frame_info(NULL) {}
-  ~StackFrameX86();
-
-  // Overriden to return the return address as saved on the stack.
-  virtual uint64_t ReturnAddress() const;
-
-  // Register state.  This is only fully valid for the topmost frame in a
-  // stack.  In other frames, the values of nonvolatile registers may be
-  // present, given sufficient debugging information.  Refer to
-  // context_validity.
-  MDRawContextX86 context;
-
-  // context_validity is actually ContextValidity, but int is used because
-  // the OR operator doesn't work well with enumerated types.  This indicates
-  // which fields in context are valid.
-  int context_validity;
-
-  // Any stack walking information we found describing this.instruction.
-  // These may be NULL if there is no such information for that address.
-  WindowsFrameInfo *windows_frame_info;
-  CFIFrameInfo *cfi_frame_info;
-};
-
-struct StackFramePPC : public StackFrame {
-  // ContextValidity should eventually contain entries for the validity of
-  // other nonvolatile (callee-save) registers as in
-  // StackFrameX86::ContextValidity, but the ppc stackwalker doesn't currently
-  // locate registers other than the ones listed here.
-  enum ContextValidity {
-    CONTEXT_VALID_NONE = 0,
-    CONTEXT_VALID_SRR0 = 1 << 0,
-    CONTEXT_VALID_GPR1 = 1 << 1,
-    CONTEXT_VALID_ALL  = -1
-  };
-
-  StackFramePPC() : context(), context_validity(CONTEXT_VALID_NONE) {}
-
-  // Register state.  This is only fully valid for the topmost frame in a
-  // stack.  In other frames, the values of nonvolatile registers may be
-  // present, given sufficient debugging information.  Refer to
-  // context_validity.
-  MDRawContextPPC context;
-
-  // context_validity is actually ContextValidity, but int is used because
-  // the OR operator doesn't work well with enumerated types.  This indicates
-  // which fields in context are valid.
-  int context_validity;
-};
-
-struct StackFramePPC64 : public StackFrame {
-  // ContextValidity should eventually contain entries for the validity of
-  // other nonvolatile (callee-save) registers as in
-  // StackFrameX86::ContextValidity, but the ppc stackwalker doesn't currently
-  // locate registers other than the ones listed here.
-  enum ContextValidity {
-    CONTEXT_VALID_NONE = 0,
-    CONTEXT_VALID_SRR0 = 1 << 0,
-    CONTEXT_VALID_GPR1 = 1 << 1,
-    CONTEXT_VALID_ALL  = -1
-  };
-
-  StackFramePPC64() : context(), context_validity(CONTEXT_VALID_NONE) {}
-
-  // Register state.  This is only fully valid for the topmost frame in a
-  // stack.  In other frames, the values of nonvolatile registers may be
-  // present, given sufficient debugging information.  Refer to
-  // context_validity.
-  MDRawContextPPC64 context;
-
-  // context_validity is actually ContextValidity, but int is used because
-  // the OR operator doesn't work well with enumerated types.  This indicates
-  // which fields in context are valid.
-  int context_validity;
-};
-
-struct StackFrameAMD64 : public StackFrame {
-  // ContextValidity has one entry for each register that we might be able
-  // to recover.
-  enum ContextValidity {
-    CONTEXT_VALID_NONE  = 0,
-    CONTEXT_VALID_RAX   = 1 << 0,
-    CONTEXT_VALID_RDX   = 1 << 1,
-    CONTEXT_VALID_RCX   = 1 << 2,
-    CONTEXT_VALID_RBX   = 1 << 3,
-    CONTEXT_VALID_RSI   = 1 << 4,
-    CONTEXT_VALID_RDI   = 1 << 5,
-    CONTEXT_VALID_RBP   = 1 << 6,
-    CONTEXT_VALID_RSP   = 1 << 7,
-    CONTEXT_VALID_R8    = 1 << 8,
-    CONTEXT_VALID_R9    = 1 << 9,
-    CONTEXT_VALID_R10   = 1 << 10,
-    CONTEXT_VALID_R11   = 1 << 11,
-    CONTEXT_VALID_R12   = 1 << 12,
-    CONTEXT_VALID_R13   = 1 << 13,
-    CONTEXT_VALID_R14   = 1 << 14,
-    CONTEXT_VALID_R15   = 1 << 15,
-    CONTEXT_VALID_RIP   = 1 << 16,
-    CONTEXT_VALID_ALL  = -1
-  };
-
-  StackFrameAMD64() : context(), context_validity(CONTEXT_VALID_NONE) {}
-
-  // Overriden to return the return address as saved on the stack.
-  virtual uint64_t ReturnAddress() const;
-
-  // Register state. This is only fully valid for the topmost frame in a
-  // stack. In other frames, which registers are present depends on what
-  // debugging information we had available. Refer to context_validity.
-  MDRawContextAMD64 context;
-
-  // For each register in context whose value has been recovered, we set
-  // the corresponding CONTEXT_VALID_ bit in context_validity.
-  //
-  // context_validity's type should actually be ContextValidity, but
-  // we use int instead because the bitwise inclusive or operator
-  // yields an int when applied to enum values, and C++ doesn't
-  // silently convert from ints to enums.
-  int context_validity;
-};
-
-struct StackFrameSPARC : public StackFrame {
-  // to be confirmed
-  enum ContextValidity {
-    CONTEXT_VALID_NONE = 0,
-    CONTEXT_VALID_PC   = 1 << 0,
-    CONTEXT_VALID_SP   = 1 << 1,
-    CONTEXT_VALID_FP   = 1 << 2,
-    CONTEXT_VALID_ALL  = -1
-  };
-
-  StackFrameSPARC() : context(), context_validity(CONTEXT_VALID_NONE) {}
-
-  // Register state.  This is only fully valid for the topmost frame in a
-  // stack.  In other frames, the values of nonvolatile registers may be
-  // present, given sufficient debugging information.  Refer to
-  // context_validity.
-  MDRawContextSPARC context;
-
-  // context_validity is actually ContextValidity, but int is used because
-  // the OR operator doesn't work well with enumerated types.  This indicates
-  // which fields in context are valid.
-  int context_validity;
-};
-
-struct StackFrameARM : public StackFrame {
-  // A flag for each register we might know.
-  enum ContextValidity {
-    CONTEXT_VALID_NONE = 0,
-    CONTEXT_VALID_R0   = 1 << 0,
-    CONTEXT_VALID_R1   = 1 << 1,
-    CONTEXT_VALID_R2   = 1 << 2,
-    CONTEXT_VALID_R3   = 1 << 3,
-    CONTEXT_VALID_R4   = 1 << 4,
-    CONTEXT_VALID_R5   = 1 << 5,
-    CONTEXT_VALID_R6   = 1 << 6,
-    CONTEXT_VALID_R7   = 1 << 7,
-    CONTEXT_VALID_R8   = 1 << 8,
-    CONTEXT_VALID_R9   = 1 << 9,
-    CONTEXT_VALID_R10  = 1 << 10,
-    CONTEXT_VALID_R11  = 1 << 11,
-    CONTEXT_VALID_R12  = 1 << 12,
-    CONTEXT_VALID_R13  = 1 << 13,
-    CONTEXT_VALID_R14  = 1 << 14,
-    CONTEXT_VALID_R15  = 1 << 15,
-    CONTEXT_VALID_ALL  = ~CONTEXT_VALID_NONE,
-
-    // Aliases for registers with dedicated or conventional roles.
-    CONTEXT_VALID_FP   = CONTEXT_VALID_R11,
-    CONTEXT_VALID_SP   = CONTEXT_VALID_R13,
-    CONTEXT_VALID_LR   = CONTEXT_VALID_R14,
-    CONTEXT_VALID_PC   = CONTEXT_VALID_R15
-  };
-
-  StackFrameARM() : context(), context_validity(CONTEXT_VALID_NONE) {}
-
-  // Return the ContextValidity flag for register rN.
-  static ContextValidity RegisterValidFlag(int n) {
-    return ContextValidity(1 << n);
-  }
-
-  // Register state.  This is only fully valid for the topmost frame in a
-  // stack.  In other frames, the values of nonvolatile registers may be
-  // present, given sufficient debugging information.  Refer to
-  // context_validity.
-  MDRawContextARM context;
-
-  // For each register in context whose value has been recovered, we set
-  // the corresponding CONTEXT_VALID_ bit in context_validity.
-  //
-  // context_validity's type should actually be ContextValidity, but
-  // we use int instead because the bitwise inclusive or operator
-  // yields an int when applied to enum values, and C++ doesn't
-  // silently convert from ints to enums.
-  int context_validity;
-};
-
-struct StackFrameARM64 : public StackFrame {
-  // A flag for each register we might know. Note that we can't use an enum
-  // here as there are 33 values to represent.
-  static const uint64_t CONTEXT_VALID_NONE = 0;
-  static const uint64_t CONTEXT_VALID_X0   = 1ULL << 0;
-  static const uint64_t CONTEXT_VALID_X1   = 1ULL << 1;
-  static const uint64_t CONTEXT_VALID_X2   = 1ULL << 2;
-  static const uint64_t CONTEXT_VALID_X3   = 1ULL << 3;
-  static const uint64_t CONTEXT_VALID_X4   = 1ULL << 4;
-  static const uint64_t CONTEXT_VALID_X5   = 1ULL << 5;
-  static const uint64_t CONTEXT_VALID_X6   = 1ULL << 6;
-  static const uint64_t CONTEXT_VALID_X7   = 1ULL << 7;
-  static const uint64_t CONTEXT_VALID_X8   = 1ULL << 8;
-  static const uint64_t CONTEXT_VALID_X9   = 1ULL << 9;
-  static const uint64_t CONTEXT_VALID_X10  = 1ULL << 10;
-  static const uint64_t CONTEXT_VALID_X11  = 1ULL << 11;
-  static const uint64_t CONTEXT_VALID_X12  = 1ULL << 12;
-  static const uint64_t CONTEXT_VALID_X13  = 1ULL << 13;
-  static const uint64_t CONTEXT_VALID_X14  = 1ULL << 14;
-  static const uint64_t CONTEXT_VALID_X15  = 1ULL << 15;
-  static const uint64_t CONTEXT_VALID_X16  = 1ULL << 16;
-  static const uint64_t CONTEXT_VALID_X17  = 1ULL << 17;
-  static const uint64_t CONTEXT_VALID_X18  = 1ULL << 18;
-  static const uint64_t CONTEXT_VALID_X19  = 1ULL << 19;
-  static const uint64_t CONTEXT_VALID_X20  = 1ULL << 20;
-  static const uint64_t CONTEXT_VALID_X21  = 1ULL << 21;
-  static const uint64_t CONTEXT_VALID_X22  = 1ULL << 22;
-  static const uint64_t CONTEXT_VALID_X23  = 1ULL << 23;
-  static const uint64_t CONTEXT_VALID_X24  = 1ULL << 24;
-  static const uint64_t CONTEXT_VALID_X25  = 1ULL << 25;
-  static const uint64_t CONTEXT_VALID_X26  = 1ULL << 26;
-  static const uint64_t CONTEXT_VALID_X27  = 1ULL << 27;
-  static const uint64_t CONTEXT_VALID_X28  = 1ULL << 28;
-  static const uint64_t CONTEXT_VALID_X29  = 1ULL << 29;
-  static const uint64_t CONTEXT_VALID_X30  = 1ULL << 30;
-  static const uint64_t CONTEXT_VALID_X31  = 1ULL << 31;
-  static const uint64_t CONTEXT_VALID_X32  = 1ULL << 32;
-  static const uint64_t CONTEXT_VALID_ALL  = ~CONTEXT_VALID_NONE;
-
-  // Aliases for registers with dedicated or conventional roles.
-  static const uint64_t CONTEXT_VALID_FP   = CONTEXT_VALID_X29;
-  static const uint64_t CONTEXT_VALID_LR   = CONTEXT_VALID_X30;
-  static const uint64_t CONTEXT_VALID_SP   = CONTEXT_VALID_X31;
-  static const uint64_t CONTEXT_VALID_PC   = CONTEXT_VALID_X32;
-
-  StackFrameARM64() : context(),
-                      context_validity(CONTEXT_VALID_NONE) {}
-
-  // Return the validity flag for register xN.
-  static uint64_t RegisterValidFlag(int n) {
-    return 1ULL << n;
-  }
-
-  // Register state.  This is only fully valid for the topmost frame in a
-  // stack.  In other frames, the values of nonvolatile registers may be
-  // present, given sufficient debugging information.  Refer to
-  // context_validity.
-  MDRawContextARM64 context;
-
-  // For each register in context whose value has been recovered, we set
-  // the corresponding CONTEXT_VALID_ bit in context_validity.
-  uint64_t context_validity;
-};
-
-struct StackFrameMIPS : public StackFrame {  
-  // MIPS callee save registers for o32 ABI (32bit registers) are: 
-  // 1. $s0-$s7, 
-  // 2. $sp, $fp
-  // 3. $f20-$f31 
-  // 
-  // The register structure is available at
-  // http://en.wikipedia.org/wiki/MIPS_architecture#Compiler_register_usage
-
-#define INDEX_MIPS_REG_S0 MD_CONTEXT_MIPS_REG_S0  // 16
-#define INDEX_MIPS_REG_S7 MD_CONTEXT_MIPS_REG_S7  // 23
-#define INDEX_MIPS_REG_GP MD_CONTEXT_MIPS_REG_GP  // 28
-#define INDEX_MIPS_REG_RA MD_CONTEXT_MIPS_REG_RA  // 31
-#define INDEX_MIPS_REG_PC 34 
-#define SHIFT_MIPS_REG_S0 0
-#define SHIFT_MIPS_REG_GP 8
-#define SHIFT_MIPS_REG_PC 12 
-
-  enum ContextValidity {
-    CONTEXT_VALID_NONE = 0,
-    CONTEXT_VALID_S0 = 1 << 0,  // $16
-    CONTEXT_VALID_S1 = 1 << 1,  // $17
-    CONTEXT_VALID_S2 = 1 << 2,  // $18
-    CONTEXT_VALID_S3 = 1 << 3,  // $19
-    CONTEXT_VALID_S4 = 1 << 4,  // $20
-    CONTEXT_VALID_S5 = 1 << 5,  // $21
-    CONTEXT_VALID_S6 = 1 << 6,  // $22
-    CONTEXT_VALID_S7 = 1 << 7,  // $23
-    // GP is not calee-save for o32 abi.
-    CONTEXT_VALID_GP = 1 << 8,  // $28
-    CONTEXT_VALID_SP = 1 << 9,  // $29
-    CONTEXT_VALID_FP = 1 << 10,  // $30
-    CONTEXT_VALID_RA = 1 << 11,  // $31  
-    CONTEXT_VALID_PC = 1 << 12,  // $34
-    CONTEXT_VALID_ALL = ~CONTEXT_VALID_NONE
-  };
-  
-  // Return the ContextValidity flag for register rN.
-  static ContextValidity RegisterValidFlag(int n) {
-    if (n >= INDEX_MIPS_REG_S0 && n <= INDEX_MIPS_REG_S7)
-      return ContextValidity(1 << (n - INDEX_MIPS_REG_S0 + SHIFT_MIPS_REG_S0));
-    else if (n >= INDEX_MIPS_REG_GP && n <= INDEX_MIPS_REG_RA)
-      return ContextValidity(1 << (n - INDEX_MIPS_REG_GP + SHIFT_MIPS_REG_GP));
-    else if (n == INDEX_MIPS_REG_PC)
-      return ContextValidity(1 << SHIFT_MIPS_REG_PC);
-
-    return CONTEXT_VALID_NONE;
-  }
-
-  StackFrameMIPS() : context(), context_validity(CONTEXT_VALID_NONE) {}
-
-  // Register state. This is only fully valid for the topmost frame in a
-  // stack. In other frames, which registers are present depends on what
-  // debugging information were available. Refer to 'context_validity' below.
-  MDRawContextMIPS context;   
-
-  // For each register in context whose value has been recovered,
-  // the corresponding CONTEXT_VALID_ bit in 'context_validity' is set.
-  //
-  // context_validity's type should actually be ContextValidity, but
-  // type int is used instead because the bitwise inclusive or operator
-  // yields an int when applied to enum values, and C++ doesn't
-  // silently convert from ints to enums.
-  int context_validity;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_CPU_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stack_frame_symbolizer.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stack_frame_symbolizer.h
deleted file mode 100644
index 074907c..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stack_frame_symbolizer.h
+++ /dev/null
@@ -1,108 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2012 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Helper class that encapsulates the logic of how symbol supplier interacts
-// with source line resolver to fill stack frame information.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_SYMBOLIZER_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_SYMBOLIZER_H__
-
-#include <set>
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/code_module.h"
-
-namespace google_breakpad {
-class CFIFrameInfo;
-class CodeModules;
-class SymbolSupplier;
-class SourceLineResolverInterface;
-struct StackFrame;
-struct SystemInfo;
-struct WindowsFrameInfo;
-
-class StackFrameSymbolizer {
- public:
-  enum SymbolizerResult {
-    // Symbol data was found and successfully loaded in resolver.
-    // This does NOT guarantee source line info is found within symbol file.
-    kNoError,
-    // This indicates non-critical error, such as, no code module found for
-    // frame's instruction, no symbol file, or resolver failed to load symbol.
-    kError,
-    // This indicates error for which stack walk should be interrupted
-    // and retried in future.
-    kInterrupt,
-    // Symbol data was found and loaded in resolver however some corruptions
-    // were detected.
-    kWarningCorruptSymbols,
-  };
-
-  StackFrameSymbolizer(SymbolSupplier* supplier,
-                       SourceLineResolverInterface* resolver);
-
-  virtual ~StackFrameSymbolizer() { }
-
-  // Encapsulate the step of resolving source line info for a stack frame.
-  // "frame" must not be NULL.
-  virtual SymbolizerResult FillSourceLineInfo(const CodeModules* modules,
-                                              const SystemInfo* system_info,
-                                              StackFrame* stack_frame);
-
-  virtual WindowsFrameInfo* FindWindowsFrameInfo(const StackFrame* frame);
-
-  virtual CFIFrameInfo* FindCFIFrameInfo(const StackFrame* frame);
-
-  // Reset internal (locally owned) data as if the helper is re-instantiated.
-  // A typical case is to call Reset() after processing an individual report
-  // before start to process next one, in order to reset internal information
-  // about missing symbols found so far.
-  virtual void Reset() { no_symbol_modules_.clear(); }
-
-  // Returns true if there is valid implementation for stack symbolization.
-  virtual bool HasImplementation() { return resolver_ && supplier_; }
-
-  SourceLineResolverInterface* resolver() { return resolver_; }
-  SymbolSupplier* supplier() { return supplier_; }
-
- protected:
-  SymbolSupplier* supplier_;
-  SourceLineResolverInterface* resolver_;
-  // A list of modules known to have symbols missing. This helps avoid
-  // repeated lookups for the missing symbols within one minidump.
-  std::set<string> no_symbol_modules_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_SYMBOLIZER_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stackwalker.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stackwalker.h
deleted file mode 100644
index a1bd3e7..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/stackwalker.h
+++ /dev/null
@@ -1,235 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalker.h: Generic stackwalker.
-//
-// The Stackwalker class is an abstract base class providing common generic
-// methods that apply to stacks from all systems.  Specific implementations
-// will extend this class by providing GetContextFrame and GetCallerFrame
-// methods to fill in system-specific data in a StackFrame structure.
-// Stackwalker assembles these StackFrame strucutres into a CallStack.
-//
-// Author: Mark Mentovai
-
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__
-
-#include <set>
-#include <string>
-#include <vector>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/code_modules.h"
-#include "google_breakpad/processor/memory_region.h"
-#include "google_breakpad/processor/stack_frame_symbolizer.h"
-
-namespace google_breakpad {
-
-class CallStack;
-class DumpContext;
-class StackFrameSymbolizer;
-
-using std::set;
-using std::vector;
-
-class Stackwalker {
- public:
-  virtual ~Stackwalker() {}
-
-  // Populates the given CallStack by calling GetContextFrame and
-  // GetCallerFrame.  The frames are further processed to fill all available
-  // data.  Returns true if the stackwalk completed, or false if it was
-  // interrupted by SymbolSupplier::GetSymbolFile().
-  // Upon return, |modules_without_symbols| will be populated with pointers to
-  // the code modules (CodeModule*) that DON'T have symbols.
-  // |modules_with_corrupt_symbols| will be populated with pointers to the
-  // modules which have corrupt symbols.  |modules_without_symbols| and
-  // |modules_with_corrupt_symbols| DO NOT take ownership of the code modules.
-  // The lifetime of these code modules is the same as the lifetime of the
-  // CodeModules passed to the StackWalker constructor (which currently
-  // happens to be the lifetime of the Breakpad's ProcessingState object).
-  // There is a check for duplicate modules so no duplicates are expected.
-  bool Walk(CallStack* stack,
-            vector<const CodeModule*>* modules_without_symbols,
-            vector<const CodeModule*>* modules_with_corrupt_symbols);
-
-  // Returns a new concrete subclass suitable for the CPU that a stack was
-  // generated on, according to the CPU type indicated by the context
-  // argument.  If no suitable concrete subclass exists, returns NULL.
-  static Stackwalker* StackwalkerForCPU(
-     const SystemInfo* system_info,
-     DumpContext* context,
-     MemoryRegion* memory,
-     const CodeModules* modules,
-     StackFrameSymbolizer* resolver_helper);
-
-  static void set_max_frames(uint32_t max_frames) {
-    max_frames_ = max_frames;
-    max_frames_set_ = true;
-  }
-  static uint32_t max_frames() { return max_frames_; }
-
-  static void set_max_frames_scanned(uint32_t max_frames_scanned) {
-    max_frames_scanned_ = max_frames_scanned;
-  }
-
- protected:
-  // system_info identifies the operating system, NULL or empty if unknown.
-  // memory identifies a MemoryRegion that provides the stack memory
-  // for the stack to walk.  modules, if non-NULL, is a CodeModules
-  // object that is used to look up which code module each stack frame is
-  // associated with.  frame_symbolizer is a StackFrameSymbolizer object that
-  // encapsulates the logic of how source line resolver interacts with symbol
-  // supplier to symbolize stack frame and look up caller frame information
-  // (see stack_frame_symbolizer.h).
-  // frame_symbolizer MUST NOT be NULL (asserted).
-  Stackwalker(const SystemInfo* system_info,
-              MemoryRegion* memory,
-              const CodeModules* modules,
-              StackFrameSymbolizer* frame_symbolizer);
-
-  // This can be used to filter out potential return addresses when
-  // the stack walker resorts to stack scanning.
-  // Returns true if any of:
-  // * This address is within a loaded module, but we don't have symbols
-  //   for that module.
-  // * This address is within a loaded module for which we have symbols,
-  //   and falls inside a function in that module.
-  // Returns false otherwise.
-  bool InstructionAddressSeemsValid(uint64_t address);
-
-  // The default number of words to search through on the stack
-  // for a return address.
-  static const int kRASearchWords;
-
-  template<typename InstructionType>
-  bool ScanForReturnAddress(InstructionType location_start,
-                            InstructionType* location_found,
-                            InstructionType* ip_found,
-                            bool is_context_frame) {
-    // When searching for the caller of the context frame,
-    // allow the scanner to look farther down the stack.
-    const int search_words = is_context_frame ?
-      kRASearchWords * 4 :
-      kRASearchWords;
-
-    return ScanForReturnAddress(location_start, location_found, ip_found,
-                                search_words);
-  }
-
-  // Scan the stack starting at location_start, looking for an address
-  // that looks like a valid instruction pointer. Addresses must
-  // 1) be contained in the current stack memory
-  // 2) pass the checks in InstructionAddressSeemsValid
-  //
-  // Returns true if a valid-looking instruction pointer was found.
-  // When returning true, sets location_found to the address at which
-  // the value was found, and ip_found to the value contained at that
-  // location in memory.
-  template<typename InstructionType>
-  bool ScanForReturnAddress(InstructionType location_start,
-                            InstructionType* location_found,
-                            InstructionType* ip_found,
-                            int searchwords) {
-    for (InstructionType location = location_start;
-         location <= location_start + searchwords * sizeof(InstructionType);
-         location += sizeof(InstructionType)) {
-      InstructionType ip;
-      if (!memory_->GetMemoryAtAddress(location, &ip))
-        break;
-
-      if (modules_ && modules_->GetModuleForAddress(ip) &&
-          InstructionAddressSeemsValid(ip)) {
-        *ip_found = ip;
-        *location_found = location;
-        return true;
-      }
-    }
-    // nothing found
-    return false;
-  }
-
-  // Information about the system that produced the minidump.  Subclasses
-  // and the SymbolSupplier may find this information useful.
-  const SystemInfo* system_info_;
-
-  // The stack memory to walk.  Subclasses will require this region to
-  // get information from the stack.
-  MemoryRegion* memory_;
-
-  // A list of modules, for populating each StackFrame's module information.
-  // This field is optional and may be NULL.
-  const CodeModules* modules_;
-
- protected:
-  // The StackFrameSymbolizer implementation.
-  StackFrameSymbolizer* frame_symbolizer_;
-
- private:
-  // Obtains the context frame, the innermost called procedure in a stack
-  // trace.  Returns NULL on failure.  GetContextFrame allocates a new
-  // StackFrame (or StackFrame subclass), ownership of which is taken by
-  // the caller.
-  virtual StackFrame* GetContextFrame() = 0;
-
-  // Obtains a caller frame.  Each call to GetCallerFrame should return the
-  // frame that called the last frame returned by GetContextFrame or
-  // GetCallerFrame.  To aid this purpose, stack contains the CallStack
-  // made of frames that have already been walked.  GetCallerFrame should
-  // return NULL on failure or when there are no more caller frames (when
-  // the end of the stack has been reached).  GetCallerFrame allocates a new
-  // StackFrame (or StackFrame subclass), ownership of which is taken by
-  // the caller.  |stack_scan_allowed| controls whether stack scanning is
-  // an allowable frame-recovery method, since it is desirable to be able to
-  // disable stack scanning in performance-critical use cases.
-  virtual StackFrame* GetCallerFrame(const CallStack* stack,
-                                     bool stack_scan_allowed) = 0;
-
-  // The maximum number of frames Stackwalker will walk through.
-  // This defaults to 1024 to prevent infinite loops.
-  static uint32_t max_frames_;
-
-  // Keep track of whether max_frames_ has been set by the user, since
-  // it affects whether or not an error message is printed in the case
-  // where an unwind got stopped by the limit.
-  static bool max_frames_set_;
-
-  // The maximum number of stack-scanned and otherwise untrustworthy
-  // frames allowed.  Stack-scanning can be expensive, so the option to
-  // disable or limit it is helpful in cases where unwind performance is
-  // important.  This defaults to 1024, the same as max_frames_.
-  static uint32_t max_frames_scanned_;
-};
-
-}  // namespace google_breakpad
-
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/symbol_supplier.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/symbol_supplier.h
deleted file mode 100644
index a042081..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/symbol_supplier.h
+++ /dev/null
@@ -1,99 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// The caller may implement the SymbolSupplier abstract base class
-// to provide symbols for a given module.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_SYMBOL_SUPPLIER_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_SYMBOL_SUPPLIER_H__
-
-#include <string>
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-class CodeModule;
-struct SystemInfo;
-
-class SymbolSupplier {
- public:
-  // Result type for GetSymbolFile
-  enum SymbolResult {
-    // no symbols were found, but continue processing
-    NOT_FOUND,
-
-    // symbols were found, and the path has been placed in symbol_file
-    FOUND,
-
-    // stops processing the minidump immediately
-    INTERRUPT
-  };
-
-  virtual ~SymbolSupplier() {}
-
-  // Retrieves the symbol file for the given CodeModule, placing the
-  // path in symbol_file if successful.  system_info contains strings
-  // identifying the operating system and CPU; SymbolSupplier may use
-  // to help locate the symbol file.  system_info may be NULL or its
-  // fields may be empty if these values are unknown.  symbol_file
-  // must be a pointer to a valid string
-  virtual SymbolResult GetSymbolFile(const CodeModule *module,
-                                     const SystemInfo *system_info,
-                                     string *symbol_file) = 0;
-  // Same as above, except also places symbol data into symbol_data.
-  // If symbol_data is NULL, the data is not returned.
-  // TODO(nealsid) Once we have symbol data caching behavior implemented
-  // investigate making all symbol suppliers implement all methods,
-  // and make this pure virtual
-  virtual SymbolResult GetSymbolFile(const CodeModule *module,
-                                     const SystemInfo *system_info,
-                                     string *symbol_file,
-                                     string *symbol_data) = 0;
-
-  // Same as above, except allocates data buffer on heap and then places the
-  // symbol data into the buffer as C-string.
-  // SymbolSupplier is responsible for deleting the data buffer. After the call
-  // to GetCStringSymbolData(), the caller should call FreeSymbolData(const
-  // Module *module) once the data buffer is no longer needed.
-  // If symbol_data is not NULL, symbol supplier won't return FOUND unless it
-  // returns a valid buffer in symbol_data, e.g., returns INTERRUPT on memory
-  // allocation failure.
-  virtual SymbolResult GetCStringSymbolData(const CodeModule *module,
-                                            const SystemInfo *system_info,
-                                            string *symbol_file,
-                                            char **symbol_data,
-                                            size_t *symbol_data_size) = 0;
-
-  // Frees the data buffer allocated for the module in GetCStringSymbolData.
-  virtual void FreeSymbolData(const CodeModule *module) = 0;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_SYMBOL_SUPPLIER_H__
diff --git a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/system_info.h b/breakpad/linux-x86/include/breakpad/google_breakpad/processor/system_info.h
deleted file mode 100644
index 9583d9e..0000000
--- a/breakpad/linux-x86/include/breakpad/google_breakpad/processor/system_info.h
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// system_info.h: Information about the system that was running a program
-// when a crash report was produced.
-//
-// Author: Mark Mentovai
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_SYSTEM_INFO_H__
-#define GOOGLE_BREAKPAD_PROCESSOR_SYSTEM_INFO_H__
-
-#include <string>
-
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-struct SystemInfo {
- public:
-  SystemInfo() : os(), os_short(), os_version(), cpu(), cpu_info(),
-    cpu_count(0) {}
-
-  // Resets the SystemInfo object to its default values.
-  void Clear() {
-    os.clear();
-    os_short.clear();
-    os_version.clear();
-    cpu.clear();
-    cpu_info.clear();
-    cpu_count = 0;
-  }
-
-  // A string identifying the operating system, such as "Windows NT",
-  // "Mac OS X", or "Linux".  If the information is present in the dump but
-  // its value is unknown, this field will contain a numeric value.  If
-  // the information is not present in the dump, this field will be empty.
-  string os;
-
-  // A short form of the os string, using lowercase letters and no spaces,
-  // suitable for use in a filesystem.  Possible values include "windows",
-  // "mac", "linux" and "nacl".  Empty if the information is not present
-  // in the dump or if the OS given by the dump is unknown.  The values
-  // stored in this field should match those used by
-  // MinidumpSystemInfo::GetOS.
-  string os_short;
-
-  // A string identifying the version of the operating system, such as
-  // "5.1.2600 Service Pack 2" or "10.4.8 8L2127".  If the dump does not
-  // contain this information, this field will be empty.
-  string os_version;
-
-  // A string identifying the basic CPU family, such as "x86" or "ppc".
-  // If this information is present in the dump but its value is unknown,
-  // this field will contain a numeric value.  If the information is not
-  // present in the dump, this field will be empty.  The values stored in
-  // this field should match those used by MinidumpSystemInfo::GetCPU.
-  string cpu;
-
-  // A string further identifying the specific CPU, such as
-  // "GenuineIntel level 6 model 13 stepping 8".  If the information is not
-  // present in the dump, or additional identifying information is not
-  // defined for the CPU family, this field will be empty.
-  string cpu_info;
-
-  // The number of processors in the system.  Will be greater than one for
-  // multi-core systems.
-  int cpu_count;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_SYSTEM_INFO_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/address_map-inl.h b/breakpad/linux-x86/include/breakpad/processor/address_map-inl.h
deleted file mode 100644
index 251c447..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/address_map-inl.h
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// address_map-inl.h: Address map implementation.
-//
-// See address_map.h for documentation.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_ADDRESS_MAP_INL_H__
-#define PROCESSOR_ADDRESS_MAP_INL_H__
-
-#include "processor/address_map.h"
-
-#include <assert.h>
-
-#include "processor/logging.h"
-
-namespace google_breakpad {
-
-template<typename AddressType, typename EntryType>
-bool AddressMap<AddressType, EntryType>::Store(const AddressType &address,
-                                               const EntryType &entry) {
-  // Ensure that the specified address doesn't conflict with something already
-  // in the map.
-  if (map_.find(address) != map_.end()) {
-    BPLOG(INFO) << "Store failed, address " << HexString(address) <<
-                   " is already present";
-    return false;
-  }
-
-  map_.insert(MapValue(address, entry));
-  return true;
-}
-
-template<typename AddressType, typename EntryType>
-bool AddressMap<AddressType, EntryType>::Retrieve(
-    const AddressType &address,
-    EntryType *entry, AddressType *entry_address) const {
-  BPLOG_IF(ERROR, !entry) << "AddressMap::Retrieve requires |entry|";
-  assert(entry);
-
-  // upper_bound gives the first element whose key is greater than address,
-  // but we want the first element whose key is less than or equal to address.
-  // Decrement the iterator to get there, but not if the upper_bound already
-  // points to the beginning of the map - in that case, address is lower than
-  // the lowest stored key, so return false.
-  MapConstIterator iterator = map_.upper_bound(address);
-  if (iterator == map_.begin())
-    return false;
-  --iterator;
-
-  *entry = iterator->second;
-  if (entry_address)
-    *entry_address = iterator->first;
-
-  return true;
-}
-
-template<typename AddressType, typename EntryType>
-void AddressMap<AddressType, EntryType>::Clear() {
-  map_.clear();
-}
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_ADDRESS_MAP_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/address_map.h b/breakpad/linux-x86/include/breakpad/processor/address_map.h
deleted file mode 100644
index 2972cbb..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/address_map.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// address_map.h: Address maps.
-//
-// An address map contains a set of objects keyed by address.  Objects are
-// retrieved from the map by returning the object with the highest key less
-// than or equal to the lookup key.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_ADDRESS_MAP_H__
-#define PROCESSOR_ADDRESS_MAP_H__
-
-#include <map>
-
-namespace google_breakpad {
-
-// Forward declarations (for later friend declarations).
-template<class, class> class AddressMapSerializer;
-
-template<typename AddressType, typename EntryType>
-class AddressMap {
- public:
-  AddressMap() : map_() {}
-
-  // Inserts an entry into the map.  Returns false without storing the entry
-  // if an entry is already stored in the map at the same address as specified
-  // by the address argument.
-  bool Store(const AddressType &address, const EntryType &entry);
-
-  // Locates the entry stored at the highest address less than or equal to
-  // the address argument.  If there is no such range, returns false.  The
-  // entry is returned in entry, which is a required argument.  If
-  // entry_address is not NULL, it will be set to the address that the entry
-  // was stored at.
-  bool Retrieve(const AddressType &address,
-                EntryType *entry, AddressType *entry_address) const;
-
-  // Empties the address map, restoring it to the same state as when it was
-  // initially created.
-  void Clear();
-
- private:
-  friend class AddressMapSerializer<AddressType, EntryType>;
-  friend class ModuleComparer;
-
-  // Convenience types.
-  typedef std::map<AddressType, EntryType> AddressToEntryMap;
-  typedef typename AddressToEntryMap::const_iterator MapConstIterator;
-  typedef typename AddressToEntryMap::value_type MapValue;
-
-  // Maps the address of each entry to an EntryType.
-  AddressToEntryMap map_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_ADDRESS_MAP_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/basic_code_module.h b/breakpad/linux-x86/include/breakpad/processor/basic_code_module.h
deleted file mode 100644
index 3fe782b..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/basic_code_module.h
+++ /dev/null
@@ -1,109 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// basic_code_module.h: Carries information about code modules that are loaded
-// into a process.
-//
-// This is a basic concrete implementation of CodeModule.  It cannot be
-// instantiated directly, only based on other objects that implement
-// the CodeModule interface.  It exists to provide a CodeModule implementation
-// a place to store information when the life of the original object (such as
-// a MinidumpModule) cannot be guaranteed.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_BASIC_CODE_MODULE_H__
-#define PROCESSOR_BASIC_CODE_MODULE_H__
-
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/processor/code_module.h"
-
-namespace google_breakpad {
-
-class BasicCodeModule : public CodeModule {
- public:
-  // Creates a new BasicCodeModule given any existing CodeModule
-  // implementation.  This is useful to make a copy of the data relevant to
-  // the CodeModule interface without requiring all of the resources that
-  // other CodeModule implementations may require.
-  explicit BasicCodeModule(const CodeModule *that)
-      : base_address_(that->base_address()),
-        size_(that->size()),
-        code_file_(that->code_file()),
-        code_identifier_(that->code_identifier()),
-        debug_file_(that->debug_file()),
-        debug_identifier_(that->debug_identifier()),
-        version_(that->version()) {}
-
-  BasicCodeModule(uint64_t base_address, uint64_t size,
-		  const string &code_file,
-		  const string &code_identifier,
-		  const string &debug_file,
-		  const string &debug_identifier,
-		  const string &version)
-    : base_address_(base_address),
-      size_(size),
-      code_file_(code_file),
-      code_identifier_(code_identifier),
-      debug_file_(debug_file),
-      debug_identifier_(debug_identifier),
-      version_(version)
-    {}
-  virtual ~BasicCodeModule() {}
-
-  // See code_module.h for descriptions of these methods and the associated
-  // members.
-  virtual uint64_t base_address() const { return base_address_; }
-  virtual uint64_t size() const { return size_; }
-  virtual string code_file() const { return code_file_; }
-  virtual string code_identifier() const { return code_identifier_; }
-  virtual string debug_file() const { return debug_file_; }
-  virtual string debug_identifier() const { return debug_identifier_; }
-  virtual string version() const { return version_; }
-  virtual const CodeModule* Copy() const { return new BasicCodeModule(this); }
-
- private:
-  uint64_t base_address_;
-  uint64_t size_;
-  string code_file_;
-  string code_identifier_;
-  string debug_file_;
-  string debug_identifier_;
-  string version_;
-
-  // Disallow copy constructor and assignment operator.
-  BasicCodeModule(const BasicCodeModule &that);
-  void operator=(const BasicCodeModule &that);
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_BASIC_CODE_MODULE_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/basic_code_modules.h b/breakpad/linux-x86/include/breakpad/processor/basic_code_modules.h
deleted file mode 100644
index ace569b..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/basic_code_modules.h
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// basic_code_modules.h: Contains all of the CodeModule objects that
-// were loaded into a single process.
-//
-// This is a basic concrete implementation of CodeModules.  It cannot be
-// instantiated directly, only based on other objects that implement
-// the CodeModules interface.  It exists to provide a CodeModules
-// implementation a place to store information when the life of the original
-// object (such as a MinidumpModuleList) cannot be guaranteed.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_BASIC_CODE_MODULES_H__
-#define PROCESSOR_BASIC_CODE_MODULES_H__
-
-#include "google_breakpad/processor/code_modules.h"
-
-namespace google_breakpad {
-
-template<typename T> class linked_ptr;
-template<typename AddressType, typename EntryType> class RangeMap;
-
-class BasicCodeModules : public CodeModules {
- public:
-  // Creates a new BasicCodeModules object given any existing CodeModules
-  // implementation.  This is useful to make a copy of the data relevant to
-  // the CodeModules and CodeModule interfaces without requiring all of the
-  // resources that other implementations may require.  A copy will be
-  // made of each contained CodeModule using CodeModule::Copy.
-  explicit BasicCodeModules(const CodeModules *that);
-
-  virtual ~BasicCodeModules();
-
-  // See code_modules.h for descriptions of these methods.
-  virtual unsigned int module_count() const;
-  virtual const CodeModule* GetModuleForAddress(uint64_t address) const;
-  virtual const CodeModule* GetMainModule() const;
-  virtual const CodeModule* GetModuleAtSequence(unsigned int sequence) const;
-  virtual const CodeModule* GetModuleAtIndex(unsigned int index) const;
-  virtual const CodeModules* Copy() const;
-
- protected:
-  BasicCodeModules();
-
-  // The base address of the main module.
-  uint64_t main_address_;
-
-  // The map used to contain each CodeModule, keyed by each CodeModule's
-  // address range.
-  RangeMap<uint64_t, linked_ptr<const CodeModule> > *map_;
-
- private:
-  // Disallow copy constructor and assignment operator.
-  BasicCodeModules(const BasicCodeModules &that);
-  void operator=(const BasicCodeModules &that);
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_BASIC_CODE_MODULES_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/basic_source_line_resolver_types.h b/breakpad/linux-x86/include/breakpad/processor/basic_source_line_resolver_types.h
deleted file mode 100644
index a022bc0..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/basic_source_line_resolver_types.h
+++ /dev/null
@@ -1,177 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// basic_source_line_types.h: definition of nested classes/structs in
-// BasicSourceLineResolver.  It moves the definitions out of
-// basic_source_line_resolver.cc, so that other classes could have access
-// to these private nested types without including basic_source_line_resolver.cc
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_TYPES_H__
-#define PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_TYPES_H__
-
-#include <map>
-#include <string>
-
-#include "common/scoped_ptr.h"
-#include "google_breakpad/processor/basic_source_line_resolver.h"
-#include "processor/source_line_resolver_base_types.h"
-
-#include "processor/address_map-inl.h"
-#include "processor/range_map-inl.h"
-#include "processor/contained_range_map-inl.h"
-
-#include "processor/linked_ptr.h"
-#include "google_breakpad/processor/stack_frame.h"
-#include "processor/cfi_frame_info.h"
-#include "processor/windows_frame_info.h"
-
-namespace google_breakpad {
-
-struct
-BasicSourceLineResolver::Function : public SourceLineResolverBase::Function {
-  Function(const string &function_name,
-           MemAddr function_address,
-           MemAddr code_size,
-           int set_parameter_size) : Base(function_name,
-                                          function_address,
-                                          code_size,
-                                          set_parameter_size),
-                                     lines() { }
-  RangeMap< MemAddr, linked_ptr<Line> > lines;
- private:
-  typedef SourceLineResolverBase::Function Base;
-};
-
-
-class BasicSourceLineResolver::Module : public SourceLineResolverBase::Module {
- public:
-  explicit Module(const string &name) : name_(name), is_corrupt_(false) { }
-  virtual ~Module() { }
-
-  // Loads a map from the given buffer in char* type.
-  // Does NOT have ownership of memory_buffer.
-  // The passed in |memory buffer| is of size |memory_buffer_size|.  If it is
-  // not null terminated, LoadMapFromMemory() will null terminate it by
-  // modifying the passed in buffer.
-  virtual bool LoadMapFromMemory(char *memory_buffer,
-                                 size_t memory_buffer_size);
-
-  // Tells whether the loaded symbol data is corrupt.  Return value is
-  // undefined, if the symbol data hasn't been loaded yet.
-  virtual bool IsCorrupt() const { return is_corrupt_; }
-
-  // Looks up the given relative address, and fills the StackFrame struct
-  // with the result.
-  virtual void LookupAddress(StackFrame *frame) const;
-
-  // If Windows stack walking information is available covering ADDRESS,
-  // return a WindowsFrameInfo structure describing it. If the information
-  // is not available, returns NULL. A NULL return value does not indicate
-  // an error. The caller takes ownership of any returned WindowsFrameInfo
-  // object.
-  virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame) const;
-
-  // If CFI stack walking information is available covering ADDRESS,
-  // return a CFIFrameInfo structure describing it. If the information
-  // is not available, return NULL. The caller takes ownership of any
-  // returned CFIFrameInfo object.
-  virtual CFIFrameInfo *FindCFIFrameInfo(const StackFrame *frame) const;
-
- private:
-  // Friend declarations.
-  friend class BasicSourceLineResolver;
-  friend class ModuleComparer;
-  friend class ModuleSerializer;
-
-  typedef std::map<int, string> FileMap;
-
-  // Logs parse errors.  |*num_errors| is increased every time LogParseError is
-  // called.
-  static void LogParseError(
-      const string &message,
-      int line_number,
-      int *num_errors);
-
-  // Parses a file declaration
-  bool ParseFile(char *file_line);
-
-  // Parses a function declaration, returning a new Function object.
-  Function* ParseFunction(char *function_line);
-
-  // Parses a line declaration, returning a new Line object.
-  Line* ParseLine(char *line_line);
-
-  // Parses a PUBLIC symbol declaration, storing it in public_symbols_.
-  // Returns false if an error occurs.
-  bool ParsePublicSymbol(char *public_line);
-
-  // Parses a STACK WIN or STACK CFI frame info declaration, storing
-  // it in the appropriate table.
-  bool ParseStackInfo(char *stack_info_line);
-
-  // Parses a STACK CFI record, storing it in cfi_frame_info_.
-  bool ParseCFIFrameInfo(char *stack_info_line);
-
-  string name_;
-  FileMap files_;
-  RangeMap< MemAddr, linked_ptr<Function> > functions_;
-  AddressMap< MemAddr, linked_ptr<PublicSymbol> > public_symbols_;
-  bool is_corrupt_;
-
-  // Each element in the array is a ContainedRangeMap for a type
-  // listed in WindowsFrameInfoTypes. These are split by type because
-  // there may be overlaps between maps of different types, but some
-  // information is only available as certain types.
-  ContainedRangeMap< MemAddr, linked_ptr<WindowsFrameInfo> >
-    windows_frame_info_[WindowsFrameInfo::STACK_INFO_LAST];
-
-  // DWARF CFI stack walking data. The Module stores the initial rule sets
-  // and rule deltas as strings, just as they appear in the symbol file:
-  // although the file may contain hundreds of thousands of STACK CFI
-  // records, walking a stack will only ever use a few of them, so it's
-  // best to delay parsing a record until it's actually needed.
-
-  // STACK CFI INIT records: for each range, an initial set of register
-  // recovery rules. The RangeMap's itself gives the starting and ending
-  // addresses.
-  RangeMap<MemAddr, string> cfi_initial_rules_;
-
-  // STACK CFI records: at a given address, the changes to the register
-  // recovery rules that take effect at that address. The map key is the
-  // starting address; the ending address is the key of the next entry in
-  // this map, or the end of the range as given by the cfi_initial_rules_
-  // entry (which FindCFIFrameInfo looks up first).
-  std::map<MemAddr, string> cfi_delta_rules_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_TYPES_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/cfi_frame_info-inl.h b/breakpad/linux-x86/include/breakpad/processor/cfi_frame_info-inl.h
deleted file mode 100644
index 7e7af0a..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/cfi_frame_info-inl.h
+++ /dev/null
@@ -1,119 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// cfi_frame_info-inl.h: Definitions for cfi_frame_info.h inlined functions.
-
-#ifndef PROCESSOR_CFI_FRAME_INFO_INL_H_
-#define PROCESSOR_CFI_FRAME_INFO_INL_H_
-
-#include <string.h>
-
-namespace google_breakpad {
-
-template <typename RegisterType, class RawContextType>
-bool SimpleCFIWalker<RegisterType, RawContextType>::FindCallerRegisters(
-    const MemoryRegion &memory,
-    const CFIFrameInfo &cfi_frame_info,
-    const RawContextType &callee_context,
-    int callee_validity,
-    RawContextType *caller_context,
-    int *caller_validity) const {
-  typedef CFIFrameInfo::RegisterValueMap<RegisterType> ValueMap;
-  ValueMap callee_registers;
-  ValueMap caller_registers;
-  // Just for brevity.
-  typename ValueMap::const_iterator caller_none = caller_registers.end();
-
-  // Populate callee_registers with register values from callee_context.
-  for (size_t i = 0; i < map_size_; i++) {
-    const RegisterSet &r = register_map_[i];
-    if (callee_validity & r.validity_flag)
-      callee_registers[r.name] = callee_context.*r.context_member;
-  }
-
-  // Apply the rules, and see what register values they yield.
-  if (!cfi_frame_info.FindCallerRegs<RegisterType>(callee_registers, memory,
-                                                   &caller_registers))
-    return false;
-
-  // Populate *caller_context with the values the rules placed in
-  // caller_registers.
-  memset(caller_context, 0xda, sizeof(*caller_context));
-  *caller_validity = 0;
-  for (size_t i = 0; i < map_size_; i++) {
-    const RegisterSet &r = register_map_[i];
-    typename ValueMap::const_iterator caller_entry;
-
-    // Did the rules provide a value for this register by its name?
-    caller_entry = caller_registers.find(r.name);
-    if (caller_entry != caller_none) {
-      caller_context->*r.context_member = caller_entry->second;
-      *caller_validity |= r.validity_flag;
-      continue;
-    }
-
-    // Did the rules provide a value for this register under its
-    // alternate name?
-    if (r.alternate_name) {
-      caller_entry = caller_registers.find(r.alternate_name);
-      if (caller_entry != caller_none) {
-        caller_context->*r.context_member = caller_entry->second;
-        *caller_validity |= r.validity_flag;
-        continue;
-      }
-    }
-
-    // Is this a callee-saves register? The walker assumes that these
-    // still hold the caller's value if the CFI doesn't mention them.
-    //
-    // Note that other frame walkers may fail to recover callee-saves
-    // registers; for example, the x86 "traditional" strategy only
-    // recovers %eip, %esp, and %ebp, even though %ebx, %esi, and %edi
-    // are callee-saves, too. It is not correct to blindly set the
-    // valid bit for all callee-saves registers, without first
-    // checking its validity bit in the callee.
-    if (r.callee_saves && (callee_validity & r.validity_flag) != 0) {
-      caller_context->*r.context_member = callee_context.*r.context_member;
-      *caller_validity |= r.validity_flag;
-      continue;
-    }
-
-    // Otherwise, the register's value is unknown.
-  }
-
-  return true;
-}
-
-} // namespace google_breakpad
-
-#endif // PROCESSOR_CFI_FRAME_INFO_INL_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/cfi_frame_info.h b/breakpad/linux-x86/include/breakpad/processor/cfi_frame_info.h
deleted file mode 100644
index bba2978..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/cfi_frame_info.h
+++ /dev/null
@@ -1,275 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// cfi_frame_info.h: Define the CFIFrameInfo class, which holds the
-// set of 'STACK CFI'-derived register recovery rules that apply at a
-// given instruction.
-
-#ifndef PROCESSOR_CFI_FRAME_INFO_H_
-#define PROCESSOR_CFI_FRAME_INFO_H_
-
-#include <map>
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-using std::map;
-
-class MemoryRegion;
-
-// A set of rules for recovering the calling frame's registers'
-// values, when the PC is at a given address in the current frame's
-// function. See the description of 'STACK CFI' records at:
-//
-// http://code.google.com/p/google-breakpad/wiki/SymbolFiles
-//
-// To prepare an instance of CFIFrameInfo for use at a given
-// instruction, first populate it with the rules from the 'STACK CFI
-// INIT' record that covers that instruction, and then apply the
-// changes given by the 'STACK CFI' records up to our instruction's
-// address. Then, use the FindCallerRegs member function to apply the
-// rules to the callee frame's register values, yielding the caller
-// frame's register values.
-class CFIFrameInfo {
- public:
-  // A map from register names onto values.
-  template<typename ValueType> class RegisterValueMap: 
-    public map<string, ValueType> { };
-
-  // Set the expression for computing a call frame address, return
-  // address, or register's value. At least the CFA rule and the RA
-  // rule must be set before calling FindCallerRegs.
-  void SetCFARule(const string &expression) { cfa_rule_ = expression; }
-  void SetRARule(const string &expression)  { ra_rule_ = expression; }
-  void SetRegisterRule(const string &register_name, const string &expression) {
-    register_rules_[register_name] = expression;
-  }
-
-  // Compute the values of the calling frame's registers, according to
-  // this rule set. Use ValueType in expression evaluation; this
-  // should be uint32_t on machines with 32-bit addresses, or
-  // uint64_t on machines with 64-bit addresses.
-  //
-  // Return true on success, false otherwise.
-  //
-  // MEMORY provides access to the contents of the stack. REGISTERS is
-  // a dictionary mapping the names of registers whose values are
-  // known in the current frame to their values. CALLER_REGISTERS is
-  // populated with the values of the recoverable registers in the
-  // frame that called the current frame.
-  //
-  // In addition, CALLER_REGISTERS[".ra"] will be the return address,
-  // and CALLER_REGISTERS[".cfa"] will be the call frame address.
-  // These may be helpful in computing the caller's PC and stack
-  // pointer, if their values are not explicitly specified.
-  template<typename ValueType>
-  bool FindCallerRegs(const RegisterValueMap<ValueType> &registers,
-                      const MemoryRegion &memory,
-                      RegisterValueMap<ValueType> *caller_registers) const;
-
-  // Serialize the rules in this object into a string in the format
-  // of STACK CFI records.
-  string Serialize() const;
-
- private:
-
-  // A map from register names onto evaluation rules. 
-  typedef map<string, string> RuleMap;
-
-  // In this type, a "postfix expression" is an expression of the sort
-  // interpreted by google_breakpad::PostfixEvaluator.
-
-  // A postfix expression for computing the current frame's CFA (call
-  // frame address). The CFA is a reference address for the frame that
-  // remains unchanged throughout the frame's lifetime. You should
-  // evaluate this expression with a dictionary initially populated
-  // with the values of the current frame's known registers.
-  string cfa_rule_;
-
-  // The following expressions should be evaluated with a dictionary
-  // initially populated with the values of the current frame's known
-  // registers, and with ".cfa" set to the result of evaluating the
-  // cfa_rule expression, above.
-
-  // A postfix expression for computing the current frame's return
-  // address. 
-  string ra_rule_;
-
-  // For a register named REG, rules[REG] is a postfix expression
-  // which leaves the value of REG in the calling frame on the top of
-  // the stack. You should evaluate this expression
-  RuleMap register_rules_;
-};
-
-// A parser for STACK CFI-style rule sets.
-// This may seem bureaucratic: there's no legitimate run-time reason
-// to use a parser/handler pattern for this, as it's not a likely
-// reuse boundary. But doing so makes finer-grained unit testing
-// possible.
-class CFIRuleParser {
- public:
-
-  class Handler {
-   public:
-    Handler() { }
-    virtual ~Handler() { }
-
-    // The input specifies EXPRESSION as the CFA/RA computation rule.
-    virtual void CFARule(const string &expression) = 0;
-    virtual void RARule(const string &expression) = 0;
-
-    // The input specifies EXPRESSION as the recovery rule for register NAME.
-    virtual void RegisterRule(const string &name, const string &expression) = 0;
-  };
-    
-  // Construct a parser which feeds its results to HANDLER.
-  CFIRuleParser(Handler *handler) : handler_(handler) { }
-
-  // Parse RULE_SET as a set of CFA computation and RA/register
-  // recovery rules, as appearing in STACK CFI records. Report the
-  // results of parsing by making the appropriate calls to handler_.
-  // Return true if parsing was successful, false otherwise.
-  bool Parse(const string &rule_set);
-
- private:
-  // Report any accumulated rule to handler_
-  bool Report();
-
-  // The handler to which the parser reports its findings.
-  Handler *handler_;
-
-  // Working data.
-  string name_, expression_;
-};
-
-// A handler for rule set parsing that populates a CFIFrameInfo with
-// the results.
-class CFIFrameInfoParseHandler: public CFIRuleParser::Handler {
- public:
-  // Populate FRAME_INFO with the results of parsing.
-  CFIFrameInfoParseHandler(CFIFrameInfo *frame_info)
-      : frame_info_(frame_info) { }
-
-  void CFARule(const string &expression);
-  void RARule(const string &expression);
-  void RegisterRule(const string &name, const string &expression);
-
- private:
-  CFIFrameInfo *frame_info_;
-};
-
-// A utility class template for simple 'STACK CFI'-driven stack walkers.
-// Given a CFIFrameInfo instance, a table describing the architecture's
-// register set, and a context holding the last frame's registers, an
-// instance of this class can populate a new context with the caller's
-// registers.
-//
-// This class template doesn't use any internal knowledge of CFIFrameInfo
-// or the other stack walking structures; it just uses the public interface
-// of CFIFrameInfo to do the usual things. But the logic it handles should
-// be common to many different architectures' stack walkers, so wrapping it
-// up in a class should allow the walkers to share code.
-//
-// RegisterType should be the type of this architecture's registers, either
-// uint32_t or uint64_t. RawContextType should be the raw context
-// structure type for this architecture.
-template <typename RegisterType, class RawContextType>
-class SimpleCFIWalker {
- public:
-  // A structure describing one architecture register.
-  struct RegisterSet {
-    // The register name, as it appears in STACK CFI rules.
-    const char *name;
-
-    // An alternate name that the register's value might be found
-    // under in a register value dictionary, or NULL. When generating
-    // names, prefer NAME to this value. It's common to list ".cfa" as
-    // an alternative name for the stack pointer, and ".ra" as an
-    // alternative name for the instruction pointer.
-    const char *alternate_name;
-
-    // True if the callee is expected to preserve the value of this
-    // register. If this flag is true for some register R, and the STACK
-    // CFI records provide no rule to recover R, then SimpleCFIWalker
-    // assumes that the callee has not changed R's value, and the caller's
-    // value for R is that currently in the callee's context.
-    bool callee_saves;
-
-    // The ContextValidity flag representing the register's presence.
-    int validity_flag;
-
-    // A pointer to the RawContextType member that holds the
-    // register's value.
-    RegisterType RawContextType::*context_member;
-  };
-
-  // Create a simple CFI-based frame walker, given a description of the
-  // architecture's register set. REGISTER_MAP is an array of
-  // RegisterSet structures; MAP_SIZE is the number of elements in the
-  // array.
-  SimpleCFIWalker(const RegisterSet *register_map, size_t map_size)
-      : register_map_(register_map), map_size_(map_size) { }
-
-  // Compute the calling frame's raw context given the callee's raw
-  // context.
-  //
-  // Given:
-  //
-  // - MEMORY, holding the stack's contents,
-  // - CFI_FRAME_INFO, describing the called function,
-  // - CALLEE_CONTEXT, holding the called frame's registers, and
-  // - CALLEE_VALIDITY, indicating which registers in CALLEE_CONTEXT are valid,
-  //
-  // fill in CALLER_CONTEXT with the caller's register values, and set
-  // CALLER_VALIDITY to indicate which registers are valid in
-  // CALLER_CONTEXT. Return true on success, or false on failure.
-  bool FindCallerRegisters(const MemoryRegion &memory,
-                           const CFIFrameInfo &cfi_frame_info,
-                           const RawContextType &callee_context,
-                           int callee_validity,
-                           RawContextType *caller_context,
-                           int *caller_validity) const;
-
- private:
-  const RegisterSet *register_map_;
-  size_t map_size_;
-};
-
-}  // namespace google_breakpad
-
-#include "cfi_frame_info-inl.h"
-
-#endif  // PROCESSOR_CFI_FRAME_INFO_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/contained_range_map-inl.h b/breakpad/linux-x86/include/breakpad/processor/contained_range_map-inl.h
deleted file mode 100644
index 4c0ad41..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/contained_range_map-inl.h
+++ /dev/null
@@ -1,197 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// contained_range_map-inl.h: Hierarchically-organized range map implementation.
-//
-// See contained_range_map.h for documentation.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_CONTAINED_RANGE_MAP_INL_H__
-#define PROCESSOR_CONTAINED_RANGE_MAP_INL_H__
-
-#include "processor/contained_range_map.h"
-
-#include <assert.h>
-
-#include "processor/logging.h"
-
-
-namespace google_breakpad {
-
-
-template<typename AddressType, typename EntryType>
-ContainedRangeMap<AddressType, EntryType>::~ContainedRangeMap() {
-  // Clear frees the children pointed to by the map, and frees the map itself.
-  Clear();
-}
-
-
-template<typename AddressType, typename EntryType>
-bool ContainedRangeMap<AddressType, EntryType>::StoreRange(
-    const AddressType &base, const AddressType &size, const EntryType &entry) {
-  AddressType high = base + size - 1;
-
-  // Check for undersize or overflow.
-  if (size <= 0 || high < base) {
-    //TODO(nealsid) We are commenting this out in order to prevent
-    // excessive logging.  We plan to move to better logging as this
-    // failure happens quite often and is expected(see comment in
-    // basic_source_line_resolver.cc:671).
-    // BPLOG(INFO) << "StoreRange failed, " << HexString(base) << "+"
-    // << HexString(size) << ", " << HexString(high);
-    return false;
-  }
-
-  if (!map_)
-    map_ = new AddressToRangeMap();
-
-  MapIterator iterator_base = map_->lower_bound(base);
-  MapIterator iterator_high = map_->lower_bound(high);
-  MapIterator iterator_end = map_->end();
-
-  if (iterator_base == iterator_high && iterator_base != iterator_end &&
-      base >= iterator_base->second->base_) {
-    // The new range is entirely within an existing child range.
-
-    // If the new range's geometry is exactly equal to an existing child
-    // range's, it violates the containment rules, and an attempt to store
-    // it must fail.  iterator_base->first contains the key, which was the
-    // containing child's high address.
-    if (iterator_base->second->base_ == base && iterator_base->first == high) {
-      // TODO(nealsid): See the TODO above on why this is commented out.
-//       BPLOG(INFO) << "StoreRange failed, identical range is already "
-//                      "present: " << HexString(base) << "+" << HexString(size);
-      return false;
-    }
-
-    // Pass the new range on to the child to attempt to store.
-    return iterator_base->second->StoreRange(base, size, entry);
-  }
-
-  // iterator_high might refer to an irrelevant range: one whose base address
-  // is higher than the new range's high address.  Set contains_high to true
-  // only if iterator_high refers to a range that is at least partially
-  // within the new range.
-  bool contains_high = iterator_high != iterator_end &&
-                       high >= iterator_high->second->base_;
-
-  // If the new range encompasses any existing child ranges, it must do so
-  // fully.  Partial containment isn't allowed.
-  if ((iterator_base != iterator_end && base > iterator_base->second->base_) ||
-      (contains_high && high < iterator_high->first)) {
-    // TODO(mmentovai): Some symbol files will trip this check frequently
-    // on STACK lines.  Too many messages will be produced.  These are more
-    // suitable for a DEBUG channel than an INFO channel.
-    // BPLOG(INFO) << "StoreRange failed, new range partially contains "
-    //               "existing range: " << HexString(base) << "+" <<
-    //               HexString(size);
-    return false;
-  }
-
-  // When copying and erasing contained ranges, the "end" iterator needs to
-  // point one past the last item of the range to copy.  If contains_high is
-  // false, the iterator's already in the right place; the increment is safe
-  // because contains_high can't be true if iterator_high == iterator_end.
-  if (contains_high)
-    ++iterator_high;
-
-  // Optimization: if the iterators are equal, no child ranges would be
-  // moved.  Create the new child range with a NULL map to conserve space
-  // in leaf nodes, of which there will be many.
-  AddressToRangeMap *child_map = NULL;
-
-  if (iterator_base != iterator_high) {
-    // The children of this range that are contained by the new range must
-    // be transferred over to the new range.  Create the new child range map
-    // and copy the pointers to range maps it should contain into it.
-    child_map = new AddressToRangeMap(iterator_base, iterator_high);
-
-    // Remove the copied child pointers from this range's map of children.
-    map_->erase(iterator_base, iterator_high);
-  }
-
-  // Store the new range in the map by its high address.  Any children that
-  // the new child range contains were formerly children of this range but
-  // are now this range's grandchildren.  Ownership of these is transferred
-  // to the new child range.
-  map_->insert(MapValue(high,
-                        new ContainedRangeMap(base, entry, child_map)));
-  return true;
-}
-
-
-template<typename AddressType, typename EntryType>
-bool ContainedRangeMap<AddressType, EntryType>::RetrieveRange(
-    const AddressType &address, EntryType *entry) const {
-  BPLOG_IF(ERROR, !entry) << "ContainedRangeMap::RetrieveRange requires "
-                             "|entry|";
-  assert(entry);
-
-  // If nothing was ever stored, then there's nothing to retrieve.
-  if (!map_)
-    return false;
-
-  // Get an iterator to the child range whose high address is equal to or
-  // greater than the supplied address.  If the supplied address is higher
-  // than all of the high addresses in the range, then this range does not
-  // contain a child at address, so return false.  If the supplied address
-  // is lower than the base address of the child range, then it is not within
-  // the child range, so return false.
-  MapConstIterator iterator = map_->lower_bound(address);
-  if (iterator == map_->end() || address < iterator->second->base_)
-    return false;
-
-  // The child in iterator->second contains the specified address.  Find out
-  // if it has a more-specific descendant that also contains it.  If it does,
-  // it will set |entry| appropriately.  If not, set |entry| to the child.
-  if (!iterator->second->RetrieveRange(address, entry))
-    *entry = iterator->second->entry_;
-
-  return true;
-}
-
-
-template<typename AddressType, typename EntryType>
-void ContainedRangeMap<AddressType, EntryType>::Clear() {
-  if (map_) {
-    MapConstIterator end = map_->end();
-    for (MapConstIterator child = map_->begin(); child != end; ++child)
-      delete child->second;
-
-    delete map_;
-    map_ = NULL;
-  }
-}
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_CONTAINED_RANGE_MAP_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/contained_range_map.h b/breakpad/linux-x86/include/breakpad/processor/contained_range_map.h
deleted file mode 100644
index 1015ae8..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/contained_range_map.h
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// contained_range_map.h: Hierarchically-organized range maps.
-//
-// A contained range map is similar to a standard range map, except it allows
-// objects to be organized hierarchically.  A contained range map allows
-// objects to contain other objects.  It is not sensitive to the order that
-// objects are added to the map: larger, more general, containing objects
-// may be added either before or after smaller, more specific, contained
-// ones.
-//
-// Contained range maps guarantee that each object may only contain smaller
-// objects than itself, and that a parent object may only contain child
-// objects located entirely within the parent's address space.  Attempts
-// to introduce objects (via StoreRange) that violate these rules will fail.
-// Retrieval (via RetrieveRange) always returns the most specific (smallest)
-// object that contains the address being queried.  Note that while it is
-// not possible to insert two objects into a map that have exactly the same
-// geometry (base address and size), it is possible to completely mask a
-// larger object by inserting smaller objects that entirely fill the larger
-// object's address space.
-//
-// Internally, contained range maps are implemented as a tree.  Each tree
-// node except for the root node describes an object in the map.  Each node
-// maintains its list of children in a map similar to a standard range map,
-// keyed by the highest address that each child occupies.  Each node's
-// children occupy address ranges entirely within the node.  The root node
-// is the only node directly accessible to the user, and represents the
-// entire address space.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_CONTAINED_RANGE_MAP_H__
-#define PROCESSOR_CONTAINED_RANGE_MAP_H__
-
-
-#include <map>
-
-
-namespace google_breakpad {
-
-// Forward declarations (for later friend declarations of specialized template).
-template<class, class> class ContainedRangeMapSerializer;
-
-template<typename AddressType, typename EntryType>
-class ContainedRangeMap {
- public:
-  // The default constructor creates a ContainedRangeMap with no geometry
-  // and no entry, and as such is only suitable for the root node of a
-  // ContainedRangeMap tree.
-  ContainedRangeMap() : base_(), entry_(), map_(NULL) {}
-
-  ~ContainedRangeMap();
-
-  // Inserts a range into the map.  If the new range is encompassed by
-  // an existing child range, the new range is passed into the child range's
-  // StoreRange method.  If the new range encompasses any existing child
-  // ranges, those child ranges are moved to the new range, becoming
-  // grandchildren of this ContainedRangeMap.  Returns false for a
-  // parameter error, or if the ContainedRangeMap hierarchy guarantees
-  // would be violated.
-  bool StoreRange(const AddressType &base,
-                  const AddressType &size,
-                  const EntryType &entry);
-
-  // Retrieves the most specific (smallest) descendant range encompassing
-  // the specified address.  This method will only return entries held by
-  // child ranges, and not the entry contained by |this|.  This is necessary
-  // to support a sparsely-populated root range.  If no descendant range
-  // encompasses the address, returns false.
-  bool RetrieveRange(const AddressType &address, EntryType *entry) const;
-
-  // Removes all children.  Note that Clear only removes descendants,
-  // leaving the node on which it is called intact.  Because the only
-  // meaningful things contained by a root node are descendants, this
-  // is sufficient to restore an entire ContainedRangeMap to its initial
-  // empty state when called on the root node.
-  void Clear();
-
- private:
-  friend class ContainedRangeMapSerializer<AddressType, EntryType>;
-  friend class ModuleComparer;
-
-  // AddressToRangeMap stores pointers.  This makes reparenting simpler in
-  // StoreRange, because it doesn't need to copy entire objects.
-  typedef std::map<AddressType, ContainedRangeMap *> AddressToRangeMap;
-  typedef typename AddressToRangeMap::const_iterator MapConstIterator;
-  typedef typename AddressToRangeMap::iterator MapIterator;
-  typedef typename AddressToRangeMap::value_type MapValue;
-
-  // Creates a new ContainedRangeMap with the specified base address, entry,
-  // and initial child map, which may be NULL.  This is only used internally
-  // by ContainedRangeMap when it creates a new child.
-  ContainedRangeMap(const AddressType &base, const EntryType &entry,
-                    AddressToRangeMap *map)
-      : base_(base), entry_(entry), map_(map) {}
-
-  // The base address of this range.  The high address does not need to
-  // be stored, because it is used as the key to an object in its parent's
-  // map, and all ContainedRangeMaps except for the root range are contained
-  // within maps.  The root range does not actually contain an entry, so its
-  // base_ field is meaningless, and the fact that it has no parent and thus
-  // no key is unimportant.  For this reason, the base_ field should only be
-  // is accessed on child ContainedRangeMap objects, and never on |this|.
-  const AddressType base_;
-
-  // The entry corresponding to this range.  The root range does not
-  // actually contain an entry, so its entry_ field is meaningless.  For
-  // this reason, the entry_ field should only be accessed on child
-  // ContainedRangeMap objects, and never on |this|.
-  const EntryType entry_;
-
-  // The map containing child ranges, keyed by each child range's high
-  // address.  This is a pointer to avoid allocating map structures for
-  // leaf nodes, where they are not needed.
-  AddressToRangeMap *map_;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_CONTAINED_RANGE_MAP_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/disassembler_x86.h b/breakpad/linux-x86/include/breakpad/processor/disassembler_x86.h
deleted file mode 100644
index 7106941..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/disassembler_x86.h
+++ /dev/null
@@ -1,127 +0,0 @@
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// disassembler_x86.h: Basic x86 bytecode disassembler
-//
-// Provides a simple disassembler which wraps libdisasm. This allows simple
-// tests to be run against bytecode to test for various properties.
-//
-// Author: Cris Neckar
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_DISASSEMBLER_X86_H_
-#define GOOGLE_BREAKPAD_PROCESSOR_DISASSEMBLER_X86_H_
-
-#include <stddef.h>
-#include <sys/types.h>
-
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace libdis {
-#include "third_party/libdisasm/libdis.h"
-}
-
-namespace google_breakpad {
-
-enum {
-  DISX86_NONE =                 0x0,
-  DISX86_BAD_BRANCH_TARGET =    0x1,
-  DISX86_BAD_ARGUMENT_PASSED =  0x2,
-  DISX86_BAD_WRITE =            0x4,
-  DISX86_BAD_BLOCK_WRITE =      0x8,
-  DISX86_BAD_READ =             0x10,
-  DISX86_BAD_BLOCK_READ =       0x20,
-  DISX86_BAD_COMPARISON =       0x40
-};
-
-class DisassemblerX86 {
-  public:
-    // TODO(cdn): Modify this class to take a MemoryRegion instead of just
-    // a raw buffer. This will make it easier to use this on arbitrary
-    // minidumps without first copying out the code segment.
-    DisassemblerX86(const uint8_t *bytecode, uint32_t, uint32_t);
-    ~DisassemblerX86();
-
-    // This walks to the next instruction in the memory region and
-    // sets flags based on the type of instruction and previous state
-    // including any registers marked as bad through setBadRead()
-    // or setBadWrite(). This method can be called in a loop to
-    // disassemble until the end of a region.
-    uint32_t NextInstruction();
-
-    // Indicates whether the current disassembled instruction was valid.
-    bool currentInstructionValid() { return instr_valid_; }
-
-    // Returns the current instruction as defined in libdis.h,
-    // or NULL if the current instruction is not valid.
-    const libdis::x86_insn_t* currentInstruction() {
-      return instr_valid_ ? &current_instr_ : NULL;
-    }
-
-    // Returns the type of the current instruction as defined in libdis.h.
-    libdis::x86_insn_group currentInstructionGroup() {
-      return current_instr_.group;
-    }
-
-    // Indicates whether a return instruction has been encountered.
-    bool endOfBlock() { return end_of_block_; }
-
-    // The flags set so far for the disassembly.
-    uint16_t flags() { return flags_; }
-
-    // This sets an indicator that the register used to determine
-    // src or dest for the current instruction is tainted. These can
-    // be used after examining the current instruction to indicate,
-    // for example that a bad read or write occurred and the pointer
-    // stored in the register is currently invalid.
-    bool setBadRead();
-    bool setBadWrite();
-
-  protected:
-    const uint8_t *bytecode_;
-    uint32_t size_;
-    uint32_t virtual_address_;
-    uint32_t current_byte_offset_;
-    uint32_t current_inst_offset_;
-
-    bool instr_valid_;
-    libdis::x86_insn_t current_instr_;
-
-    // TODO(cdn): Maybe also track an expression's index register.
-    // ex: mov eax, [ebx + ecx]; ebx is base, ecx is index.
-    bool register_valid_;
-    libdis::x86_reg_t bad_register_;
-
-    bool pushed_bad_value_;
-    bool end_of_block_;
-
-    uint16_t flags_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_DISASSEMBLER_X86_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/exploitability_linux.h b/breakpad/linux-x86/include/breakpad/processor/exploitability_linux.h
deleted file mode 100644
index 93c5082..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/exploitability_linux.h
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright (c) 2013 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// exploitability_linux.h: Linux specific exploitability engine.
-//
-// Provides a guess at the exploitability of the crash for the Linux
-// platform given a minidump and process_state.
-//
-// Author: Matthew Riley
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_
-#define GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/exploitability.h"
-
-namespace google_breakpad {
-
-class ExploitabilityLinux : public Exploitability {
- public:
-  ExploitabilityLinux(Minidump *dump,
-                      ProcessState *process_state);
-
-  // Parameters are the minidump to analyze, the object representing process
-  // state, and whether to enable objdump disassembly.
-  // Enabling objdump will allow exploitability analysis to call out to
-  // objdump for diassembly. It is used to check the identity of the
-  // instruction that caused the program to crash. If there are any
-  // portability concerns, this should not be enabled.
-  ExploitabilityLinux(Minidump *dump,
-                      ProcessState *process_state,
-                      bool enable_objdump);
-
-  virtual ExploitabilityRating CheckPlatformExploitability();
-
- private:
-  friend class ExploitabilityLinuxTest;
-
-  // Takes the address of the instruction pointer and returns
-  // whether the instruction pointer lies in a valid instruction region.
-  bool InstructionPointerInCode(uint64_t instruction_ptr);
-
-  // Checks the exception that triggered the creation of the
-  // minidump and reports whether the exception suggests no exploitability.
-  bool BenignCrashTrigger(const MDRawExceptionStream *raw_exception_stream);
-
-  // This method checks if the crash occurred during a write to read-only or
-  // invalid memory. It does so by checking if the instruction at the
-  // instruction pointer is a write instruction, and if the target of the
-  // instruction is at a spot in memory that prohibits writes.
-  bool EndedOnIllegalWrite(uint64_t instruction_ptr);
-
-#ifndef _WIN32
-  // Disassembles raw bytes via objdump and pipes the output into the provided
-  // buffer, given the desired architecture, the file from which objdump will
-  // read, and the buffer length. The method returns whether the disassembly
-  // was a success, and the caller owns all pointers.
-  static bool DisassembleBytes(const string &architecture,
-                               const uint8_t *raw_bytes,
-                               const unsigned int MAX_OBJDUMP_BUFFER_LEN,
-                               char *objdump_output_buffer);
-
-  // Tokenizes out the operation and operands from a line of instruction
-  // disassembled by objdump. This method modifies the pointers to match the
-  // tokens of the instruction, and returns if the tokenizing was a success.
-  // The caller owns all pointers.
-  static bool TokenizeObjdumpInstruction(const string &line,
-                                         string *operation,
-                                         string *dest,
-                                         string *src);
-
-  // Calculates the effective address of an expression in the form reg+a or
-  // reg-a, where 'reg' is a register and 'a' is a constant, and writes the
-  // result in the pointer. The method returns whether the calculation was
-  // a success. The caller owns the pointer.
-  static bool CalculateAddress(const string &address_expression,
-                               const DumpContext &context,
-                               uint64_t *write_address);
-#endif  // _WIN32
-
-  // Checks if the stack pointer points to a memory mapping that is not
-  // labelled as the stack.
-  bool StackPointerOffStack(uint64_t stack_ptr);
-
-  // Checks if the stack or heap are marked executable according
-  // to the memory mappings.
-  bool ExecutableStackOrHeap();
-
-  // Whether this exploitability engine is permitted to shell out to objdump
-  // to disassemble raw bytes.
-  bool enable_objdump_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_LINUX_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/exploitability_win.h b/breakpad/linux-x86/include/breakpad/processor/exploitability_win.h
deleted file mode 100644
index 4e08aef..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/exploitability_win.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// exploitability_win.h: Windows specific exploitability engine.
-//
-// Provides a guess at the exploitability of the crash for the Windows
-// platform given a minidump and process_state.
-//
-// Author: Cris Neckar
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_WIN_H_
-#define GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_WIN_H_
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/exploitability.h"
-
-namespace google_breakpad {
-
-class ExploitabilityWin : public Exploitability {
-  public:
-    ExploitabilityWin(Minidump *dump,
-                      ProcessState *process_state);
-
-    virtual ExploitabilityRating CheckPlatformExploitability();
-};
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_WIN_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/fast_source_line_resolver_types.h b/breakpad/linux-x86/include/breakpad/processor/fast_source_line_resolver_types.h
deleted file mode 100644
index 2c01047..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/fast_source_line_resolver_types.h
+++ /dev/null
@@ -1,185 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// fast_source_line_resolver_types.h: definition of nested classes/structs in
-// FastSourceLineResolver.  It moves the definitions out of
-// fast_source_line_resolver.cc, so that other classes could have access
-// to these private nested types without including fast_source_line_resolver.cc
-//
-// Author: lambxsy@google.com (Siyang Xie)
-
-#ifndef PROCESSOR_FAST_SOURCE_LINE_RESOLVER_TYPES_H__
-#define PROCESSOR_FAST_SOURCE_LINE_RESOLVER_TYPES_H__
-
-#include "google_breakpad/processor/fast_source_line_resolver.h"
-#include "processor/source_line_resolver_base_types.h"
-
-#include <map>
-#include <string>
-
-#include "google_breakpad/processor/stack_frame.h"
-#include "processor/cfi_frame_info.h"
-#include "processor/static_address_map-inl.h"
-#include "processor/static_contained_range_map-inl.h"
-#include "processor/static_map.h"
-#include "processor/static_range_map-inl.h"
-#include "processor/windows_frame_info.h"
-
-namespace google_breakpad {
-
-struct FastSourceLineResolver::Line : public SourceLineResolverBase::Line {
-  void CopyFrom(const Line *line_ptr) {
-    const char *raw = reinterpret_cast<const char*>(line_ptr);
-    CopyFrom(raw);
-  }
-
-  // De-serialize the memory data of a Line.
-  void CopyFrom(const char *raw) {
-    address = *(reinterpret_cast<const MemAddr*>(raw));
-    size = *(reinterpret_cast<const MemAddr*>(raw + sizeof(address)));
-    source_file_id = *(reinterpret_cast<const int32_t *>(
-        raw + 2 * sizeof(address)));
-    line = *(reinterpret_cast<const int32_t*>(
-        raw + 2 * sizeof(address) + sizeof(source_file_id)));
-  }
-};
-
-struct FastSourceLineResolver::Function :
-public SourceLineResolverBase::Function {
-  void CopyFrom(const Function *func_ptr) {
-    const char *raw = reinterpret_cast<const char*>(func_ptr);
-    CopyFrom(raw);
-  }
-
-  // De-serialize the memory data of a Function.
-  void CopyFrom(const char *raw) {
-    size_t name_size = strlen(raw) + 1;
-    name = raw;
-    address = *(reinterpret_cast<const MemAddr*>(raw + name_size));
-    size = *(reinterpret_cast<const MemAddr*>(
-        raw + name_size + sizeof(MemAddr)));
-    parameter_size = *(reinterpret_cast<const int32_t*>(
-        raw + name_size + 2 * sizeof(MemAddr)));
-    lines = StaticRangeMap<MemAddr, Line>(
-        raw + name_size + 2 * sizeof(MemAddr) + sizeof(int32_t));
-  }
-
-  StaticRangeMap<MemAddr, Line> lines;
-};
-
-struct FastSourceLineResolver::PublicSymbol :
-public SourceLineResolverBase::PublicSymbol {
-  void CopyFrom(const PublicSymbol *public_symbol_ptr) {
-    const char *raw = reinterpret_cast<const char*>(public_symbol_ptr);
-    CopyFrom(raw);
-  }
-
-  // De-serialize the memory data of a PublicSymbol.
-  void CopyFrom(const char *raw) {
-    size_t name_size = strlen(raw) + 1;
-    name = raw;
-    address = *(reinterpret_cast<const MemAddr*>(raw + name_size));
-    parameter_size = *(reinterpret_cast<const int32_t*>(
-        raw + name_size + sizeof(MemAddr)));
-  }
-};
-
-class FastSourceLineResolver::Module: public SourceLineResolverBase::Module {
- public:
-  explicit Module(const string &name) : name_(name), is_corrupt_(false) { }
-  virtual ~Module() { }
-
-  // Looks up the given relative address, and fills the StackFrame struct
-  // with the result.
-  virtual void LookupAddress(StackFrame *frame) const;
-
-  // Loads a map from the given buffer in char* type.
-  virtual bool LoadMapFromMemory(char *memory_buffer,
-                                 size_t memory_buffer_size);
-
-  // Tells whether the loaded symbol data is corrupt.  Return value is
-  // undefined, if the symbol data hasn't been loaded yet.
-  virtual bool IsCorrupt() const { return is_corrupt_; }
-
-  // If Windows stack walking information is available covering ADDRESS,
-  // return a WindowsFrameInfo structure describing it. If the information
-  // is not available, returns NULL. A NULL return value does not indicate
-  // an error. The caller takes ownership of any returned WindowsFrameInfo
-  // object.
-  virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame) const;
-
-  // If CFI stack walking information is available covering ADDRESS,
-  // return a CFIFrameInfo structure describing it. If the information
-  // is not available, return NULL. The caller takes ownership of any
-  // returned CFIFrameInfo object.
-  virtual CFIFrameInfo *FindCFIFrameInfo(const StackFrame *frame) const;
-
-  // Number of serialized map components of Module.
-  static const int kNumberMaps_ = 5 + WindowsFrameInfo::STACK_INFO_LAST;
-
- private:
-  friend class FastSourceLineResolver;
-  friend class ModuleComparer;
-  typedef StaticMap<int, char> FileMap;
-
-  string name_;
-  StaticMap<int, char> files_;
-  StaticRangeMap<MemAddr, Function> functions_;
-  StaticAddressMap<MemAddr, PublicSymbol> public_symbols_;
-  bool is_corrupt_;
-
-  // Each element in the array is a ContainedRangeMap for a type
-  // listed in WindowsFrameInfoTypes. These are split by type because
-  // there may be overlaps between maps of different types, but some
-  // information is only available as certain types.
-  StaticContainedRangeMap<MemAddr, char>
-    windows_frame_info_[WindowsFrameInfo::STACK_INFO_LAST];
-
-  // DWARF CFI stack walking data. The Module stores the initial rule sets
-  // and rule deltas as strings, just as they appear in the symbol file:
-  // although the file may contain hundreds of thousands of STACK CFI
-  // records, walking a stack will only ever use a few of them, so it's
-  // best to delay parsing a record until it's actually needed.
-  //
-  // STACK CFI INIT records: for each range, an initial set of register
-  // recovery rules. The RangeMap's itself gives the starting and ending
-  // addresses.
-  StaticRangeMap<MemAddr, char> cfi_initial_rules_;
-
-  // STACK CFI records: at a given address, the changes to the register
-  // recovery rules that take effect at that address. The map key is the
-  // starting address; the ending address is the key of the next entry in
-  // this map, or the end of the range as given by the cfi_initial_rules_
-  // entry (which FindCFIFrameInfo looks up first).
-  StaticMap<MemAddr, char> cfi_delta_rules_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_FAST_SOURCE_LINE_RESOLVER_TYPES_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/linked_ptr.h b/breakpad/linux-x86/include/breakpad/processor/linked_ptr.h
deleted file mode 100644
index 72fbba8..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/linked_ptr.h
+++ /dev/null
@@ -1,193 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// A "smart" pointer type with reference tracking.  Every pointer to a
-// particular object is kept on a circular linked list.  When the last pointer
-// to an object is destroyed or reassigned, the object is deleted.
-//
-// Used properly, this deletes the object when the last reference goes away.
-// There are several caveats:
-// - Like all reference counting schemes, cycles lead to leaks.
-// - Each smart pointer is actually two pointers (8 bytes instead of 4).
-// - Every time a pointer is assigned, the entire list of pointers to that
-//   object is traversed.  This class is therefore NOT SUITABLE when there
-//   will often be more than two or three pointers to a particular object.
-// - References are only tracked as long as linked_ptr<> objects are copied.
-//   If a linked_ptr<> is converted to a raw pointer and back, BAD THINGS
-//   will happen (double deletion).
-//
-// A good use of this class is storing object references in STL containers.
-// You can safely put linked_ptr<> in a vector<>.
-// Other uses may not be as good.
-//
-// Note: If you use an incomplete type with linked_ptr<>, the class
-// *containing* linked_ptr<> must have a constructor and destructor (even
-// if they do nothing!).
-
-#ifndef PROCESSOR_LINKED_PTR_H__
-#define PROCESSOR_LINKED_PTR_H__
-
-namespace google_breakpad {
-
-// This is used internally by all instances of linked_ptr<>.  It needs to be
-// a non-template class because different types of linked_ptr<> can refer to
-// the same object (linked_ptr<Superclass>(obj) vs linked_ptr<Subclass>(obj)).
-// So, it needs to be possible for different types of linked_ptr to participate
-// in the same circular linked list, so we need a single class type here.
-//
-// DO NOT USE THIS CLASS DIRECTLY YOURSELF.  Use linked_ptr<T>.
-class linked_ptr_internal {
- public:
-  // Create a new circle that includes only this instance.
-  void join_new() {
-    next_ = this;
-  }
-
-  // Join an existing circle.
-  void join(linked_ptr_internal const* ptr) {
-    linked_ptr_internal const* p = ptr;
-    while (p->next_ != ptr) p = p->next_;
-    p->next_ = this;
-    next_ = ptr;
-  }
-
-  // Leave whatever circle we're part of.  Returns true iff we were the
-  // last member of the circle.  Once this is done, you can join() another.
-  bool depart() {
-    if (next_ == this) return true;
-    linked_ptr_internal const* p = next_;
-    while (p->next_ != this) p = p->next_;
-    p->next_ = next_;
-    return false;
-  }
-
- private:
-  mutable linked_ptr_internal const* next_;
-};
-
-template <typename T>
-class linked_ptr {
- public:
-  typedef T element_type;
-
-  // Take over ownership of a raw pointer.  This should happen as soon as
-  // possible after the object is created.
-  explicit linked_ptr(T* ptr = NULL) { capture(ptr); }
-  ~linked_ptr() { depart(); }
-
-  // Copy an existing linked_ptr<>, adding ourselves to the list of references.
-  template <typename U> linked_ptr(linked_ptr<U> const& ptr) { copy(&ptr); }
-  linked_ptr(linked_ptr const& ptr) { copy(&ptr); }
-
-  // Assignment releases the old value and acquires the new.
-  template <typename U> linked_ptr& operator=(linked_ptr<U> const& ptr) {
-    depart();
-    copy(&ptr);
-    return *this;
-  }
-
-  linked_ptr& operator=(linked_ptr const& ptr) {
-    if (&ptr != this) {
-      depart();
-      copy(&ptr);
-    }
-    return *this;
-  }
-
-  // Smart pointer members.
-  void reset(T* ptr = NULL) { depart(); capture(ptr); }
-  T* get() const { return value_; }
-  T* operator->() const { return value_; }
-  T& operator*() const { return *value_; }
-  // Release ownership of the pointed object and returns it.
-  // Sole ownership by this linked_ptr object is required.
-  T* release() {
-    link_.depart();
-    T* v = value_;
-    value_ = NULL;
-    return v;
-  }
-
-  bool operator==(T* p) const { return value_ == p; }
-  bool operator!=(T* p) const { return value_ != p; }
-  template <typename U>
-  bool operator==(linked_ptr<U> const& ptr) const {
-    return value_ == ptr.get();
-  }
-  template <typename U>
-  bool operator!=(linked_ptr<U> const& ptr) const {
-    return value_ != ptr.get();
-  }
-
- private:
-  template <typename U>
-  friend class linked_ptr;
-
-  T* value_;
-  linked_ptr_internal link_;
-
-  void depart() {
-    if (link_.depart()) delete value_;
-  }
-
-  void capture(T* ptr) {
-    value_ = ptr;
-    link_.join_new();
-  }
-
-  template <typename U> void copy(linked_ptr<U> const* ptr) {
-    value_ = ptr->get();
-    if (value_)
-      link_.join(&ptr->link_);
-    else
-      link_.join_new();
-  }
-};
-
-template<typename T> inline
-bool operator==(T* ptr, const linked_ptr<T>& x) {
-  return ptr == x.get();
-}
-
-template<typename T> inline
-bool operator!=(T* ptr, const linked_ptr<T>& x) {
-  return ptr != x.get();
-}
-
-// A function to convert T* into linked_ptr<T>
-// Doing e.g. make_linked_ptr(new FooBarBaz<type>(arg)) is a shorter notation
-// for linked_ptr<FooBarBaz<type> >(new FooBarBaz<type>(arg))
-template <typename T>
-linked_ptr<T> make_linked_ptr(T* ptr) {
-  return linked_ptr<T>(ptr);
-}
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_LINKED_PTR_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/logging.h b/breakpad/linux-x86/include/breakpad/processor/logging.h
deleted file mode 100644
index 406fb67..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/logging.h
+++ /dev/null
@@ -1,186 +0,0 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// logging.h: Breakpad logging
-//
-// Breakpad itself uses Breakpad logging with statements of the form:
-//   BPLOG(severity) << "message";
-// severity may be INFO, ERROR, or other values defined in this file.
-//
-// BPLOG is an overridable macro so that users can customize Breakpad's
-// logging.  Left at the default, logging messages are sent to stderr along
-// with a timestamp and the source code location that produced a message.
-// The streams may be changed by redefining BPLOG_*_STREAM, the logging
-// behavior may be changed by redefining BPLOG_*, and the entire logging
-// system may be overridden by redefining BPLOG(severity).  These
-// redefinitions may be passed to the preprocessor as a command-line flag
-// (-D).
-//
-// If an additional header is required to override Breakpad logging, it can
-// be specified by the BP_LOGGING_INCLUDE macro.  If defined, this header
-// will #include the header specified by that macro.
-//
-// If any initialization is needed before logging, it can be performed by
-// a function called through the BPLOG_INIT macro.  Each main function of
-// an executable program in the Breakpad processor library calls
-// BPLOG_INIT(&argc, &argv); before any logging can be performed; define
-// BPLOG_INIT appropriately if initialization is required.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_LOGGING_H__
-#define PROCESSOR_LOGGING_H__
-
-#include <iostream>
-#include <string>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-
-#ifdef BP_LOGGING_INCLUDE
-#include BP_LOGGING_INCLUDE
-#endif  // BP_LOGGING_INCLUDE
-
-#ifndef THIRD_PARTY_BREAKPAD_GOOGLE_GLUE_LOGGING_H_
-namespace base_logging {
-
-// The open-source copy of logging.h has diverged from Google's internal copy
-// (temporarily, at least).  To support the transition to structured logging
-// a definition for base_logging::LogMessage is needed, which is a ostream-
-// like object for streaming arguments to construct a log message.
-typedef std::ostream LogMessage;
-
-}  // namespace base_logging
-#endif  // THIRD_PARTY_BREAKPAD_GOOGLE_GLUE_LOGGING_H_
-
-namespace google_breakpad {
-
-// These are defined in Microsoft headers.
-#ifdef SEVERITY_ERROR
-#undef SEVERITY_ERROR
-#endif
-
-#ifdef ERROR
-#undef ERROR
-#endif
-
-class LogStream {
- public:
-  enum Severity {
-    SEVERITY_INFO,
-    SEVERITY_ERROR
-  };
-
-  // Begin logging a message to the stream identified by |stream|, at the
-  // indicated severity.  The file and line parameters should be set so as to
-  // identify the line of source code that is producing a message.
-  LogStream(std::ostream &stream, Severity severity,
-            const char *file, int line);
-
-  // Finish logging by printing a newline and flushing the output stream.
-  ~LogStream();
-
-  template<typename T> std::ostream& operator<<(const T &t) {
-    return stream_ << t;
-  }
-
- private:
-  std::ostream &stream_;
-
-  // Disallow copy constructor and assignment operator
-  explicit LogStream(const LogStream &that);
-  void operator=(const LogStream &that);
-};
-
-// This class is used to explicitly ignore values in the conditional logging
-// macros.  This avoids compiler warnings like "value computed is not used"
-// and "statement has no effect".
-class LogMessageVoidify {
- public:
-  LogMessageVoidify() {}
-
-  // This has to be an operator with a precedence lower than << but higher
-  // than ?:
-  void operator&(base_logging::LogMessage &) {}
-};
-
-// Returns number formatted as a hexadecimal string, such as "0x7b".
-string HexString(uint32_t number);
-string HexString(uint64_t number);
-string HexString(int number);
-
-// Returns the error code as set in the global errno variable, and sets
-// error_string, a required argument, to a string describing that error
-// code.
-int ErrnoString(string *error_string);
-
-}  // namespace google_breakpad
-
-#ifndef BPLOG_INIT
-#define BPLOG_INIT(pargc, pargv)
-#endif  // BPLOG_INIT
-
-#define BPLOG_LAZY_STREAM(stream, condition) \
-    !(condition) ? (void) 0 : \
-                   google_breakpad::LogMessageVoidify() & (BPLOG_ ## stream)
-
-#ifndef BPLOG_MINIMUM_SEVERITY
-#define BPLOG_MINIMUM_SEVERITY SEVERITY_INFO
-#endif
-
-#define BPLOG_LOG_IS_ON(severity) \
-    ((google_breakpad::LogStream::SEVERITY_ ## severity) >= \
-     (google_breakpad::LogStream::BPLOG_MINIMUM_SEVERITY))
-
-#ifndef BPLOG
-#define BPLOG(severity) BPLOG_LAZY_STREAM(severity, BPLOG_LOG_IS_ON(severity))
-#endif  // BPLOG
-
-#ifndef BPLOG_INFO
-#ifndef BPLOG_INFO_STREAM
-#define BPLOG_INFO_STREAM std::clog
-#endif  // BPLOG_INFO_STREAM
-#define BPLOG_INFO google_breakpad::LogStream(BPLOG_INFO_STREAM, \
-                       google_breakpad::LogStream::SEVERITY_INFO, \
-                       __FILE__, __LINE__)
-#endif  // BPLOG_INFO
-
-#ifndef BPLOG_ERROR
-#ifndef BPLOG_ERROR_STREAM
-#define BPLOG_ERROR_STREAM std::cerr
-#endif  // BPLOG_ERROR_STREAM
-#define BPLOG_ERROR google_breakpad::LogStream(BPLOG_ERROR_STREAM, \
-                        google_breakpad::LogStream::SEVERITY_ERROR, \
-                        __FILE__, __LINE__)
-#endif  // BPLOG_ERROR
-
-#define BPLOG_IF(severity, condition) \
-    BPLOG_LAZY_STREAM(severity, ((condition) && BPLOG_LOG_IS_ON(severity)))
-
-#endif  // PROCESSOR_LOGGING_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/map_serializers-inl.h b/breakpad/linux-x86/include/breakpad/processor/map_serializers-inl.h
deleted file mode 100644
index 61c7bbd..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/map_serializers-inl.h
+++ /dev/null
@@ -1,266 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// map_serializers_inl.h: implementation for serializing std::map and its
-// wrapper classes.
-//
-// See map_serializers.h for documentation.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_MAP_SERIALIZERS_INL_H__
-#define PROCESSOR_MAP_SERIALIZERS_INL_H__
-
-#include <map>
-#include <string>
-
-#include "processor/map_serializers.h"
-#include "processor/simple_serializer.h"
-
-#include "processor/address_map-inl.h"
-#include "processor/range_map-inl.h"
-#include "processor/contained_range_map-inl.h"
-
-#include "processor/logging.h"
-
-namespace google_breakpad {
-
-template<typename Key, typename Value>
-size_t StdMapSerializer<Key, Value>::SizeOf(
-    const std::map<Key, Value> &m) const {
-  size_t size = 0;
-  size_t header_size = (1 + m.size()) * sizeof(uint32_t);
-  size += header_size;
-
-  typename std::map<Key, Value>::const_iterator iter;
-  for (iter = m.begin(); iter != m.end(); ++iter) {
-    size += key_serializer_.SizeOf(iter->first);
-    size += value_serializer_.SizeOf(iter->second);
-  }
-  return size;
-}
-
-template<typename Key, typename Value>
-char *StdMapSerializer<Key, Value>::Write(const std::map<Key, Value> &m,
-                                          char *dest) const {
-  if (!dest) {
-    BPLOG(ERROR) << "StdMapSerializer failed: write to NULL address.";
-    return NULL;
-  }
-  char *start_address = dest;
-
-  // Write header:
-  // Number of nodes.
-  dest = SimpleSerializer<uint32_t>::Write(m.size(), dest);
-  // Nodes offsets.
-  uint32_t *offsets = reinterpret_cast<uint32_t*>(dest);
-  dest += sizeof(uint32_t) * m.size();
-
-  char *key_address = dest;
-  dest += sizeof(Key) * m.size();
-
-  // Traverse map.
-  typename std::map<Key, Value>::const_iterator iter;
-  int index = 0;
-  for (iter = m.begin(); iter != m.end(); ++iter, ++index) {
-    offsets[index] = static_cast<uint32_t>(dest - start_address);
-    key_address = key_serializer_.Write(iter->first, key_address);
-    dest = value_serializer_.Write(iter->second, dest);
-  }
-  return dest;
-}
-
-template<typename Key, typename Value>
-char *StdMapSerializer<Key, Value>::Serialize(
-    const std::map<Key, Value> &m, unsigned int *size) const {
-  // Compute size of memory to be allocated.
-  unsigned int size_to_alloc = SizeOf(m);
-  // Allocate memory.
-  char *serialized_data = new char[size_to_alloc];
-  if (!serialized_data) {
-    BPLOG(INFO) << "StdMapSerializer memory allocation failed.";
-    if (size) *size = 0;
-    return NULL;
-  }
-  // Write serialized data into memory.
-  Write(m, serialized_data);
-
-  if (size) *size = size_to_alloc;
-  return serialized_data;
-}
-
-template<typename Address, typename Entry>
-size_t RangeMapSerializer<Address, Entry>::SizeOf(
-    const RangeMap<Address, Entry> &m) const {
-  size_t size = 0;
-  size_t header_size = (1 + m.map_.size()) * sizeof(uint32_t);
-  size += header_size;
-
-  typename std::map<Address, Range>::const_iterator iter;
-  for (iter = m.map_.begin(); iter != m.map_.end(); ++iter) {
-    // Size of key (high address).
-    size += address_serializer_.SizeOf(iter->first);
-    // Size of base (low address).
-    size += address_serializer_.SizeOf(iter->second.base());
-    // Size of entry.
-    size += entry_serializer_.SizeOf(iter->second.entry());
-  }
-  return size;
-}
-
-template<typename Address, typename Entry>
-char *RangeMapSerializer<Address, Entry>::Write(
-    const RangeMap<Address, Entry> &m, char *dest) const {
-  if (!dest) {
-    BPLOG(ERROR) << "RangeMapSerializer failed: write to NULL address.";
-    return NULL;
-  }
-  char *start_address = dest;
-
-  // Write header:
-  // Number of nodes.
-  dest = SimpleSerializer<uint32_t>::Write(m.map_.size(), dest);
-  // Nodes offsets.
-  uint32_t *offsets = reinterpret_cast<uint32_t*>(dest);
-  dest += sizeof(uint32_t) * m.map_.size();
-
-  char *key_address = dest;
-  dest += sizeof(Address) * m.map_.size();
-
-  // Traverse map.
-  typename std::map<Address, Range>::const_iterator iter;
-  int index = 0;
-  for (iter = m.map_.begin(); iter != m.map_.end(); ++iter, ++index) {
-    offsets[index] = static_cast<uint32_t>(dest - start_address);
-    key_address = address_serializer_.Write(iter->first, key_address);
-    dest = address_serializer_.Write(iter->second.base(), dest);
-    dest = entry_serializer_.Write(iter->second.entry(), dest);
-  }
-  return dest;
-}
-
-template<typename Address, typename Entry>
-char *RangeMapSerializer<Address, Entry>::Serialize(
-    const RangeMap<Address, Entry> &m, unsigned int *size) const {
-  // Compute size of memory to be allocated.
-  unsigned int size_to_alloc = SizeOf(m);
-  // Allocate memory.
-  char *serialized_data = new char[size_to_alloc];
-  if (!serialized_data) {
-    BPLOG(INFO) << "RangeMapSerializer memory allocation failed.";
-    if (size) *size = 0;
-    return NULL;
-  }
-
-  // Write serialized data into memory.
-  Write(m, serialized_data);
-
-  if (size) *size = size_to_alloc;
-  return serialized_data;
-}
-
-
-template<class AddrType, class EntryType>
-size_t ContainedRangeMapSerializer<AddrType, EntryType>::SizeOf(
-    const ContainedRangeMap<AddrType, EntryType> *m) const {
-  size_t size = 0;
-  size_t header_size = addr_serializer_.SizeOf(m->base_)
-                       + entry_serializer_.SizeOf(m->entry_)
-                       + sizeof(uint32_t);
-  size += header_size;
-  // In case m.map_ == NULL, we treat it as an empty map:
-  size += sizeof(uint32_t);
-  if (m->map_) {
-    size += m->map_->size() * sizeof(uint32_t);
-    typename Map::const_iterator iter;
-    for (iter = m->map_->begin(); iter != m->map_->end(); ++iter) {
-      size += addr_serializer_.SizeOf(iter->first);
-      // Recursive calculation of size:
-      size += SizeOf(iter->second);
-    }
-  }
-  return size;
-}
-
-template<class AddrType, class EntryType>
-char *ContainedRangeMapSerializer<AddrType, EntryType>::Write(
-    const ContainedRangeMap<AddrType, EntryType> *m, char *dest) const {
-  if (!dest) {
-    BPLOG(ERROR) << "StdMapSerializer failed: write to NULL address.";
-    return NULL;
-  }
-  dest = addr_serializer_.Write(m->base_, dest);
-  dest = SimpleSerializer<uint32_t>::Write(entry_serializer_.SizeOf(m->entry_),
-                                            dest);
-  dest = entry_serializer_.Write(m->entry_, dest);
-
-  // Write map<<AddrType, ContainedRangeMap*>:
-  char *map_address = dest;
-  if (m->map_ == NULL) {
-    dest = SimpleSerializer<uint32_t>::Write(0, dest);
-  } else {
-    dest = SimpleSerializer<uint32_t>::Write(m->map_->size(), dest);
-    uint32_t *offsets = reinterpret_cast<uint32_t*>(dest);
-    dest += sizeof(uint32_t) * m->map_->size();
-
-    char *key_address = dest;
-    dest += sizeof(AddrType) * m->map_->size();
-
-    // Traverse map.
-    typename Map::const_iterator iter;
-    int index = 0;
-    for (iter = m->map_->begin(); iter != m->map_->end(); ++iter, ++index) {
-      offsets[index] = static_cast<uint32_t>(dest - map_address);
-      key_address = addr_serializer_.Write(iter->first, key_address);
-      // Recursively write.
-      dest = Write(iter->second, dest);
-    }
-  }
-  return dest;
-}
-
-template<class AddrType, class EntryType>
-char *ContainedRangeMapSerializer<AddrType, EntryType>::Serialize(
-    const ContainedRangeMap<AddrType, EntryType> *m, unsigned int *size) const {
-  unsigned int size_to_alloc = SizeOf(m);
-  // Allocating memory.
-  char *serialized_data = new char[size_to_alloc];
-  if (!serialized_data) {
-    BPLOG(INFO) << "ContainedRangeMapSerializer memory allocation failed.";
-    if (size) *size = 0;
-    return NULL;
-  }
-  Write(m, serialized_data);
-  if (size) *size = size_to_alloc;
-  return serialized_data;
-}
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_MAP_SERIALIZERS_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/map_serializers.h b/breakpad/linux-x86/include/breakpad/processor/map_serializers.h
deleted file mode 100644
index a0b9d3f..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/map_serializers.h
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// map_serializers.h: defines templates for serializing std::map and its
-// wrappers: AddressMap, RangeMap, and ContainedRangeMap.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-
-#ifndef PROCESSOR_MAP_SERIALIZERS_H__
-#define PROCESSOR_MAP_SERIALIZERS_H__
-
-#include <map>
-#include <string>
-
-#include "processor/simple_serializer.h"
-
-#include "processor/address_map-inl.h"
-#include "processor/range_map-inl.h"
-#include "processor/contained_range_map-inl.h"
-
-namespace google_breakpad {
-
-// StdMapSerializer allocates memory and serializes an std::map instance into a
-// chunk of memory data.
-template<typename Key, typename Value>
-class StdMapSerializer {
- public:
-  // Calculate the memory size of serialized data.
-  size_t SizeOf(const std::map<Key, Value> &m) const;
-
-  // Writes the serialized data to memory with start address = dest,
-  // and returns the "end" of data, i.e., return the address follow the final
-  // byte of data.
-  // NOTE: caller has to allocate enough memory before invoke Write() method.
-  char* Write(const std::map<Key, Value> &m, char* dest) const;
-
-  // Serializes a std::map object into a chunk of memory data with format
-  // described in "StaticMap.h" comment.
-  // Returns a pointer to the serialized data.  If size != NULL, *size is set
-  // to the size of serialized data, i.e., SizeOf(m).
-  // Caller has the ownership of memory allocated as "new char[]".
-  char* Serialize(const std::map<Key, Value> &m, unsigned int *size) const;
-
- private:
-  SimpleSerializer<Key> key_serializer_;
-  SimpleSerializer<Value> value_serializer_;
-};
-
-// AddressMapSerializer allocates memory and serializes an AddressMap into a
-// chunk of memory data.
-template<typename Addr, typename Entry>
-class AddressMapSerializer {
- public:
-  // Calculate the memory size of serialized data.
-  size_t SizeOf(const AddressMap<Addr, Entry> &m) const {
-    return std_map_serializer_.SizeOf(m.map_);
-  }
-
-  // Write the serialized data to specified memory location.  Return the "end"
-  // of data, i.e., return the address after the final byte of data.
-  // NOTE: caller has to allocate enough memory before invoke Write() method.
-  char* Write(const AddressMap<Addr, Entry> &m, char *dest) const {
-    return std_map_serializer_.Write(m.map_, dest);
-  }
-
-  // Serializes an AddressMap object into a chunk of memory data.
-  // Returns a pointer to the serialized data.  If size != NULL, *size is set
-  // to the size of serialized data, i.e., SizeOf(m).
-  // Caller has the ownership of memory allocated as "new char[]".
-  char* Serialize(const AddressMap<Addr, Entry> &m, unsigned int *size) const {
-    return std_map_serializer_.Serialize(m.map_, size);
-  }
-
- private:
-  // AddressMapSerializer is a simple wrapper of StdMapSerializer, just as
-  // AddressMap is a simple wrapper of std::map.
-  StdMapSerializer<Addr, Entry> std_map_serializer_;
-};
-
-// RangeMapSerializer allocates memory and serializes a RangeMap instance into a
-// chunk of memory data.
-template<typename Address, typename Entry>
-class RangeMapSerializer {
- public:
-  // Calculate the memory size of serialized data.
-  size_t SizeOf(const RangeMap<Address, Entry> &m) const;
-
-  // Write the serialized data to specified memory location.  Return the "end"
-  // of data, i.e., return the address after the final byte of data.
-  // NOTE: caller has to allocate enough memory before invoke Write() method.
-  char* Write(const RangeMap<Address, Entry> &m, char* dest) const;
-
-  // Serializes a RangeMap object into a chunk of memory data.
-  // Returns a pointer to the serialized data.  If size != NULL, *size is set
-  // to the size of serialized data, i.e., SizeOf(m).
-  // Caller has the ownership of memory allocated as "new char[]".
-  char* Serialize(const RangeMap<Address, Entry> &m, unsigned int *size) const;
-
- private:
-  // Convenient type name for Range.
-  typedef typename RangeMap<Address, Entry>::Range Range;
-
-  // Serializer for RangeMap's key and Range::base_.
-  SimpleSerializer<Address> address_serializer_;
-  // Serializer for RangeMap::Range::entry_.
-  SimpleSerializer<Entry> entry_serializer_;
-};
-
-// ContainedRangeMapSerializer allocates memory and serializes a
-// ContainedRangeMap instance into a chunk of memory data.
-template<class AddrType, class EntryType>
-class ContainedRangeMapSerializer {
- public:
-  // Calculate the memory size of serialized data.
-  size_t SizeOf(const ContainedRangeMap<AddrType, EntryType> *m) const;
-
-  // Write the serialized data to specified memory location.  Return the "end"
-  // of data, i.e., return the address after the final byte of data.
-  // NOTE: caller has to allocate enough memory before invoke Write() method.
-  char* Write(const ContainedRangeMap<AddrType, EntryType> *m,
-              char* dest) const;
-
-  // Serializes a ContainedRangeMap object into a chunk of memory data.
-  // Returns a pointer to the serialized data.  If size != NULL, *size is set
-  // to the size of serialized data, i.e., SizeOf(m).
-  // Caller has the ownership of memory allocated as "new char[]".
-  char* Serialize(const ContainedRangeMap<AddrType, EntryType> *m,
-                  unsigned int *size) const;
-
- private:
-  // Convenient type name for the underlying map type.
-  typedef std::map<AddrType, ContainedRangeMap<AddrType, EntryType>*> Map;
-
-  // Serializer for addresses and entries stored in ContainedRangeMap.
-  SimpleSerializer<AddrType> addr_serializer_;
-  SimpleSerializer<EntryType> entry_serializer_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_MAP_SERIALIZERS_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/module_comparer.h b/breakpad/linux-x86/include/breakpad/processor/module_comparer.h
deleted file mode 100644
index fcbd517..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/module_comparer.h
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// module_comparer.h: ModuleComparer reads a string format of symbol file, and
-// loads the symbol into both BasicSourceLineResolver::Module and
-// FastSourceLineResolve::Module.  It then traverses both Modules and compare
-// the content of data to verify the correctness of new fast module.
-// ModuleCompare class is a tool to verify correctness of a loaded
-// FastSourceLineResolver::Module instance, i.e., in-memory representation of
-// parsed symbol.  ModuleComparer class should be used for testing purpose only,
-// e.g., in fast_source_line_resolver_unittest.
-//
-// Author: lambxsy@google.com (Siyang Xie)
-
-#ifndef PROCESSOR_MODULE_COMPARER_H__
-#define PROCESSOR_MODULE_COMPARER_H__
-
-#include <string>
-
-#include "processor/basic_source_line_resolver_types.h"
-#include "processor/fast_source_line_resolver_types.h"
-#include "processor/module_serializer.h"
-#include "processor/windows_frame_info.h"
-
-namespace google_breakpad {
-
-class ModuleComparer {
- public:
-  ModuleComparer(): fast_resolver_(new FastSourceLineResolver),
-                   basic_resolver_(new BasicSourceLineResolver) { }
-  ~ModuleComparer() {
-    delete fast_resolver_;
-    delete basic_resolver_;
-  }
-
-  // BasicSourceLineResolver loads its module using the symbol data,
-  // ModuleSerializer serialize the loaded module into a memory chunk,
-  // FastSourceLineResolver loads its module using the serialized memory chunk,
-  // Then, traverse both modules together and compare underlying data
-  // return true if both modules contain exactly same data.
-  bool Compare(const string &symbol_data);
-
- private:
-  typedef BasicSourceLineResolver::Module BasicModule;
-  typedef FastSourceLineResolver::Module FastModule;
-  typedef BasicSourceLineResolver::Function BasicFunc;
-  typedef FastSourceLineResolver::Function FastFunc;
-  typedef BasicSourceLineResolver::Line BasicLine;
-  typedef FastSourceLineResolver::Line FastLine;
-  typedef BasicSourceLineResolver::PublicSymbol BasicPubSymbol;
-  typedef FastSourceLineResolver::PublicSymbol FastPubSymbol;
-  typedef WindowsFrameInfo WFI;
-
-  bool CompareModule(const BasicModule *oldmodule,
-                     const FastModule *newmodule) const;
-  bool CompareFunction(const BasicFunc *oldfunc, const FastFunc *newfunc) const;
-  bool CompareLine(const BasicLine *oldline, const FastLine *newline) const;
-  bool ComparePubSymbol(const BasicPubSymbol*, const FastPubSymbol*) const;
-  bool CompareWFI(const WindowsFrameInfo&, const WindowsFrameInfo&) const;
-
-  // Compare ContainedRangeMap
-  bool CompareCRM(const ContainedRangeMap<MemAddr, linked_ptr<WFI> >*,
-                  const StaticContainedRangeMap<MemAddr, char>*) const;
-
-  FastSourceLineResolver *fast_resolver_;
-  BasicSourceLineResolver *basic_resolver_;
-  ModuleSerializer serializer_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_MODULE_COMPARER_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/module_factory.h b/breakpad/linux-x86/include/breakpad/processor/module_factory.h
deleted file mode 100644
index 7aa7caa..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/module_factory.h
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// module_factory.h: ModuleFactory a factory that provides
-// an interface for creating a Module and deferring instantiation to subclasses
-// BasicModuleFactory and FastModuleFactory.
-
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_MODULE_FACTORY_H__
-#define PROCESSOR_MODULE_FACTORY_H__
-
-#include "processor/basic_source_line_resolver_types.h"
-#include "processor/fast_source_line_resolver_types.h"
-#include "processor/source_line_resolver_base_types.h"
-
-namespace google_breakpad {
-
-class ModuleFactory {
- public:
-  virtual ~ModuleFactory() { };
-  virtual SourceLineResolverBase::Module* CreateModule(
-      const string &name) const = 0;
-};
-
-class BasicModuleFactory : public ModuleFactory {
- public:
-  virtual ~BasicModuleFactory() { }
-  virtual BasicSourceLineResolver::Module* CreateModule(
-      const string &name) const {
-    return new BasicSourceLineResolver::Module(name);
-  }
-};
-
-class FastModuleFactory : public ModuleFactory {
- public:
-  virtual ~FastModuleFactory() { }
-  virtual FastSourceLineResolver::Module* CreateModule(
-      const string &name) const {
-    return new FastSourceLineResolver::Module(name);
-  }
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_MODULE_FACTORY_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/module_serializer.h b/breakpad/linux-x86/include/breakpad/processor/module_serializer.h
deleted file mode 100644
index effb009..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/module_serializer.h
+++ /dev/null
@@ -1,127 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// module_serializer.h: ModuleSerializer serializes a loaded symbol,
-// i.e., a loaded BasicSouceLineResolver::Module instance, into a memory
-// chunk of data. The serialized data can be read and loaded by
-// FastSourceLineResolver without CPU & memory-intensive parsing.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_MODULE_SERIALIZER_H__
-#define PROCESSOR_MODULE_SERIALIZER_H__
-
-#include <map>
-#include <string>
-
-#include "google_breakpad/processor/basic_source_line_resolver.h"
-#include "google_breakpad/processor/fast_source_line_resolver.h"
-#include "processor/basic_source_line_resolver_types.h"
-#include "processor/fast_source_line_resolver_types.h"
-#include "processor/linked_ptr.h"
-#include "processor/map_serializers-inl.h"
-#include "processor/simple_serializer-inl.h"
-#include "processor/windows_frame_info.h"
-
-namespace google_breakpad {
-
-// ModuleSerializer serializes a loaded BasicSourceLineResolver::Module into a
-// chunk of memory data. ModuleSerializer also provides interface to compute
-// memory size of the serialized data, write serialized data directly into
-// memory, convert ASCII format symbol data into serialized binary data, and
-// convert loaded BasicSourceLineResolver::Module into
-// FastSourceLineResolver::Module.
-class ModuleSerializer {
- public:
-  // Compute the size of memory required to serialize a module.  Return the
-  // total size needed for serialization.
-  size_t SizeOf(const BasicSourceLineResolver::Module &module);
-
-  // Write a module into an allocated memory chunk with required size.
-  // Return the "end" of data, i.e., the address after the final byte of data.
-  char* Write(const BasicSourceLineResolver::Module &module, char *dest);
-
-  // Serializes a loaded Module object into a chunk of memory data and returns
-  // the address of memory chunk.  If size != NULL, *size is set to the memory
-  // size allocated for the serialized data.
-  // Caller takes the ownership of the memory chunk (allocated on heap), and
-  // owner should call delete [] to free the memory after use.
-  char* Serialize(const BasicSourceLineResolver::Module &module,
-                  unsigned int *size = NULL);
-
-  // Given the string format symbol_data, produces a chunk of serialized data.
-  // Caller takes ownership of the serialized data (on heap), and owner should
-  // call delete [] to free the memory after use.
-  char* SerializeSymbolFileData(const string &symbol_data,
-                                unsigned int *size = NULL);
-
-  // Serializes one loaded module with given moduleid in the basic source line
-  // resolver, and loads the serialized data into the fast source line resolver.
-  // Return false if the basic source line doesn't have a module with the given
-  // moduleid.
-  bool ConvertOneModule(const string &moduleid,
-                        const BasicSourceLineResolver *basic_resolver,
-                        FastSourceLineResolver *fast_resolver);
-
-  // Serializes all the loaded modules in a basic source line resolver, and
-  // loads the serialized data into a fast source line resolver.
-  void ConvertAllModules(const BasicSourceLineResolver *basic_resolver,
-                         FastSourceLineResolver *fast_resolver);
-
- private:
-  // Convenient type names.
-  typedef BasicSourceLineResolver::Line Line;
-  typedef BasicSourceLineResolver::Function Function;
-  typedef BasicSourceLineResolver::PublicSymbol PublicSymbol;
-
-  // Internal implementation for ConvertOneModule and ConvertAllModules methods.
-  bool SerializeModuleAndLoadIntoFastResolver(
-      const BasicSourceLineResolver::ModuleMap::const_iterator &iter,
-      FastSourceLineResolver *fast_resolver);
-
-  // Number of Maps that Module class contains.
-  static const int32_t kNumberMaps_ =
-      FastSourceLineResolver::Module::kNumberMaps_;
-
-  // Memory sizes required to serialize map components in Module.
-  uint32_t map_sizes_[kNumberMaps_];
-
-  // Serializers for each individual map component in Module class.
-  StdMapSerializer<int, string> files_serializer_;
-  RangeMapSerializer<MemAddr, linked_ptr<Function> > functions_serializer_;
-  AddressMapSerializer<MemAddr, linked_ptr<PublicSymbol> > pubsym_serializer_;
-  ContainedRangeMapSerializer<MemAddr,
-                              linked_ptr<WindowsFrameInfo> > wfi_serializer_;
-  RangeMapSerializer<MemAddr, string> cfi_init_rules_serializer_;
-  StdMapSerializer<MemAddr, string> cfi_delta_rules_serializer_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_MODULE_SERIALIZER_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/pathname_stripper.h b/breakpad/linux-x86/include/breakpad/processor/pathname_stripper.h
deleted file mode 100644
index 423ca0d..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/pathname_stripper.h
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// pathname_stripper.h: Manipulates pathnames into their component parts.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_PATHNAME_STRIPPER_H__
-#define PROCESSOR_PATHNAME_STRIPPER_H__
-
-#include <string>
-
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-class PathnameStripper {
- public:
-  // Given path, a pathname with components separated by slashes (/) or
-  // backslashes (\), returns the trailing component, without any separator.
-  // If path ends in a separator character, returns an empty string.
-  static string File(const string &path);
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_PATHNAME_STRIPPER_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/postfix_evaluator-inl.h b/breakpad/linux-x86/include/breakpad/processor/postfix_evaluator-inl.h
deleted file mode 100644
index d7dbeac..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/postfix_evaluator-inl.h
+++ /dev/null
@@ -1,363 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// postfix_evaluator-inl.h: Postfix (reverse Polish) notation expression
-// evaluator.
-//
-// Documentation in postfix_evaluator.h.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_POSTFIX_EVALUATOR_INL_H__
-#define PROCESSOR_POSTFIX_EVALUATOR_INL_H__
-
-#include "processor/postfix_evaluator.h"
-
-#include <stdio.h>
-
-#include <sstream>
-
-#include "google_breakpad/processor/memory_region.h"
-#include "processor/logging.h"
-
-namespace google_breakpad {
-
-using std::istringstream;
-using std::ostringstream;
-
-
-// A small class used in Evaluate to make sure to clean up the stack
-// before returning failure.
-class AutoStackClearer {
- public:
-  explicit AutoStackClearer(vector<string> *stack) : stack_(stack) {}
-  ~AutoStackClearer() { stack_->clear(); }
-
- private:
-  vector<string> *stack_;
-};
-
-
-template<typename ValueType>
-bool PostfixEvaluator<ValueType>::EvaluateToken(
-    const string &token,
-    const string &expression,
-    DictionaryValidityType *assigned) {
-  // There are enough binary operations that do exactly the same thing
-  // (other than the specific operation, of course) that it makes sense
-  // to share as much code as possible.
-  enum BinaryOperation {
-    BINARY_OP_NONE = 0,
-    BINARY_OP_ADD,
-    BINARY_OP_SUBTRACT,
-    BINARY_OP_MULTIPLY,
-    BINARY_OP_DIVIDE_QUOTIENT,
-    BINARY_OP_DIVIDE_MODULUS,
-    BINARY_OP_ALIGN
-  };
-
-  BinaryOperation operation = BINARY_OP_NONE;
-  if (token == "+")
-    operation = BINARY_OP_ADD;
-  else if (token == "-")
-    operation = BINARY_OP_SUBTRACT;
-  else if (token == "*")
-    operation = BINARY_OP_MULTIPLY;
-  else if (token == "/")
-    operation = BINARY_OP_DIVIDE_QUOTIENT;
-  else if (token == "%")
-    operation = BINARY_OP_DIVIDE_MODULUS;
-  else if (token == "@")
-    operation = BINARY_OP_ALIGN;
-
-  if (operation != BINARY_OP_NONE) {
-    // Get the operands.
-    ValueType operand1 = ValueType();
-    ValueType operand2 = ValueType();
-    if (!PopValues(&operand1, &operand2)) {
-      BPLOG(ERROR) << "Could not PopValues to get two values for binary "
-                      "operation " << token << ": " << expression;
-      return false;
-    }
-
-    // Perform the operation.
-    ValueType result;
-    switch (operation) {
-      case BINARY_OP_ADD:
-        result = operand1 + operand2;
-        break;
-      case BINARY_OP_SUBTRACT:
-        result = operand1 - operand2;
-        break;
-      case BINARY_OP_MULTIPLY:
-        result = operand1 * operand2;
-        break;
-      case BINARY_OP_DIVIDE_QUOTIENT:
-        result = operand1 / operand2;
-        break;
-      case BINARY_OP_DIVIDE_MODULUS:
-        result = operand1 % operand2;
-        break;
-      case BINARY_OP_ALIGN:
-	result =
-	  operand1 & (static_cast<ValueType>(-1) ^ (operand2 - 1));
-        break;
-      case BINARY_OP_NONE:
-        // This will not happen, but compilers will want a default or
-        // BINARY_OP_NONE case.
-        BPLOG(ERROR) << "Not reached!";
-        return false;
-        break;
-    }
-
-    // Save the result.
-    PushValue(result);
-  } else if (token == "^") {
-    // ^ for unary dereference.  Can't dereference without memory.
-    if (!memory_) {
-      BPLOG(ERROR) << "Attempt to dereference without memory: " <<
-                      expression;
-      return false;
-    }
-
-    ValueType address;
-    if (!PopValue(&address)) {
-      BPLOG(ERROR) << "Could not PopValue to get value to derefence: " <<
-                      expression;
-      return false;
-    }
-
-    ValueType value;
-    if (!memory_->GetMemoryAtAddress(address, &value)) {
-      BPLOG(ERROR) << "Could not dereference memory at address " <<
-                      HexString(address) << ": " << expression;
-      return false;
-    }
-
-    PushValue(value);
-  } else if (token == "=") {
-    // = for assignment.
-    ValueType value;
-    if (!PopValue(&value)) {
-      BPLOG(INFO) << "Could not PopValue to get value to assign: " <<
-                     expression;
-      return false;
-    }
-
-    // Assignment is only meaningful when assigning into an identifier.
-    // The identifier must name a variable, not a constant.  Variables
-    // begin with '$'.
-    string identifier;
-    if (PopValueOrIdentifier(NULL, &identifier) != POP_RESULT_IDENTIFIER) {
-      BPLOG(ERROR) << "PopValueOrIdentifier returned a value, but an "
-                      "identifier is needed to assign " <<
-                      HexString(value) << ": " << expression;
-      return false;
-    }
-    if (identifier.empty() || identifier[0] != '$') {
-      BPLOG(ERROR) << "Can't assign " << HexString(value) << " to " <<
-                      identifier << ": " << expression;
-      return false;
-    }
-
-    (*dictionary_)[identifier] = value;
-    if (assigned)
-      (*assigned)[identifier] = true;
-  } else {
-    // The token is not an operator, it's a literal value or an identifier.
-    // Push it onto the stack as-is.  Use push_back instead of PushValue
-    // because PushValue pushes ValueType as a string, but token is already
-    // a string.
-    stack_.push_back(token);
-  }
-  return true;
-}
-
-template<typename ValueType>
-bool PostfixEvaluator<ValueType>::EvaluateInternal(
-    const string &expression,
-    DictionaryValidityType *assigned) {
-  // Tokenize, splitting on whitespace.
-  istringstream stream(expression);
-  string token;
-  while (stream >> token) {
-    // Normally, tokens are whitespace-separated, but occasionally, the
-    // assignment operator is smashed up against the next token, i.e.
-    // $T0 $ebp 128 + =$eip $T0 4 + ^ =$ebp $T0 ^ =
-    // This has been observed in program strings produced by MSVS 2010 in LTO
-    // mode.
-    if (token.size() > 1 && token[0] == '=') {
-      if (!EvaluateToken("=", expression, assigned)) {
-        return false;
-      }
-
-      if (!EvaluateToken(token.substr(1), expression, assigned)) {
-        return false;
-      }
-    } else if (!EvaluateToken(token, expression, assigned)) {
-      return false;
-    }
-  }
-
-  return true;
-}
-
-template<typename ValueType>
-bool PostfixEvaluator<ValueType>::Evaluate(const string &expression,
-                                           DictionaryValidityType *assigned) {
-  // Ensure that the stack is cleared before returning.
-  AutoStackClearer clearer(&stack_);
-
-  if (!EvaluateInternal(expression, assigned))
-    return false;
-
-  // If there's anything left on the stack, it indicates incomplete execution.
-  // This is a failure case.  If the stack is empty, evalution was complete
-  // and successful.
-  if (stack_.empty())
-    return true;
-
-  BPLOG(ERROR) << "Incomplete execution: " << expression;
-  return false;
-}
-
-template<typename ValueType>
-bool PostfixEvaluator<ValueType>::EvaluateForValue(const string &expression,
-                                                   ValueType *result) {
-  // Ensure that the stack is cleared before returning.
-  AutoStackClearer clearer(&stack_);
-
-  if (!EvaluateInternal(expression, NULL))
-    return false;
-
-  // A successful execution should leave exactly one value on the stack.
-  if (stack_.size() != 1) {
-    BPLOG(ERROR) << "Expression yielded bad number of results: "
-                 << "'" << expression << "'";
-    return false;
-  }
-
-  return PopValue(result);
-}
-
-template<typename ValueType>
-typename PostfixEvaluator<ValueType>::PopResult
-PostfixEvaluator<ValueType>::PopValueOrIdentifier(
-    ValueType *value, string *identifier) {
-  // There needs to be at least one element on the stack to pop.
-  if (!stack_.size())
-    return POP_RESULT_FAIL;
-
-  string token = stack_.back();
-  stack_.pop_back();
-
-  // First, try to treat the value as a literal. Literals may have leading
-  // '-' sign, and the entire remaining string must be parseable as
-  // ValueType. If this isn't possible, it can't be a literal, so treat it
-  // as an identifier instead.
-  //
-  // Some versions of the libstdc++, the GNU standard C++ library, have
-  // stream extractors for unsigned integer values that permit a leading
-  // '-' sign (6.0.13); others do not (6.0.9). Since we require it, we
-  // handle it explicitly here.
-  istringstream token_stream(token);
-  ValueType literal = ValueType();
-  bool negative;
-  if (token_stream.peek() == '-') {
-    negative = true;
-    token_stream.get();
-  } else {
-    negative = false;
-  }
-  if (token_stream >> literal && token_stream.peek() == EOF) {
-    if (value) {
-      *value = literal;
-    }
-    if (negative)
-      *value = -*value;
-    return POP_RESULT_VALUE;
-  } else {
-    if (identifier) {
-      *identifier = token;
-    }
-    return POP_RESULT_IDENTIFIER;
-  }
-}
-
-
-template<typename ValueType>
-bool PostfixEvaluator<ValueType>::PopValue(ValueType *value) {
-  ValueType literal = ValueType();
-  string token;
-  PopResult result;
-  if ((result = PopValueOrIdentifier(&literal, &token)) == POP_RESULT_FAIL) {
-    return false;
-  } else if (result == POP_RESULT_VALUE) {
-    // This is the easy case.
-    *value = literal;
-  } else {  // result == POP_RESULT_IDENTIFIER
-    // There was an identifier at the top of the stack.  Resolve it to a
-    // value by looking it up in the dictionary.
-    typename DictionaryType::const_iterator iterator =
-        dictionary_->find(token);
-    if (iterator == dictionary_->end()) {
-      // The identifier wasn't found in the dictionary.  Don't imply any
-      // default value, just fail.
-      BPLOG(INFO) << "Identifier " << token << " not in dictionary";
-      return false;
-    }
-
-    *value = iterator->second;
-  }
-
-  return true;
-}
-
-
-template<typename ValueType>
-bool PostfixEvaluator<ValueType>::PopValues(ValueType *value1,
-                                            ValueType *value2) {
-  return PopValue(value2) && PopValue(value1);
-}
-
-
-template<typename ValueType>
-void PostfixEvaluator<ValueType>::PushValue(const ValueType &value) {
-  ostringstream token_stream;
-  token_stream << value;
-  stack_.push_back(token_stream.str());
-}
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_POSTFIX_EVALUATOR_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/postfix_evaluator.h b/breakpad/linux-x86/include/breakpad/processor/postfix_evaluator.h
deleted file mode 100644
index 94b6619..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/postfix_evaluator.h
+++ /dev/null
@@ -1,179 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// postfix_evaluator.h: Postfix (reverse Polish) notation expression evaluator.
-//
-// PostfixEvaluator evaluates an expression, using the expression itself
-// in postfix (reverse Polish) notation and a dictionary mapping constants
-// and variables to their values.  The evaluator supports standard
-// arithmetic operations, assignment into variables, and when an optional
-// MemoryRange is provided, dereferencing.  (Any unary key-to-value operation
-// may be used with a MemoryRange implementation that returns the appropriate
-// values, but PostfixEvaluator was written with dereferencing in mind.)
-//
-// The expression language is simple.  Expressions are supplied as strings,
-// with operands and operators delimited by whitespace.  Operands may be
-// either literal values suitable for ValueType, or constants or variables,
-// which reference the dictionary.  The supported binary operators are +
-// (addition), - (subtraction), * (multiplication), / (quotient of division),
-// % (modulus of division), and @ (data alignment). The alignment operator (@)
-// accepts a value and an alignment size, and produces a result that is a
-// multiple of the alignment size by truncating the input value.
-// The unary ^ (dereference) operator is also provided.  These operators
-// allow any operand to be either a literal value, constant, or variable.
-// Assignment (=) of any type of operand into a variable is also supported.
-//
-// The dictionary is provided as a map with string keys.  Keys beginning
-// with the '$' character are treated as variables.  All other keys are
-// treated as constants.  Any results must be assigned into variables in the
-// dictionary.  These variables do not need to exist prior to calling
-// Evaluate, unless used in an expression prior to being assigned to.  The
-// internal stack state is not made available after evaluation, and any
-// values remaining on the stack are treated as evidence of incomplete
-// execution and cause the evaluator to indicate failure.
-//
-// PostfixEvaluator is intended to support evaluation of "program strings"
-// obtained from MSVC frame data debugging information in pdb files as
-// returned by the DIA APIs.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_POSTFIX_EVALUATOR_H__
-#define PROCESSOR_POSTFIX_EVALUATOR_H__
-
-
-#include <map>
-#include <string>
-#include <vector>
-
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-using std::map;
-using std::vector;
-
-class MemoryRegion;
-
-template<typename ValueType>
-class PostfixEvaluator {
- public:
-  typedef map<string, ValueType> DictionaryType;
-  typedef map<string, bool> DictionaryValidityType;
-
-  // Create a PostfixEvaluator object that may be used (with Evaluate) on
-  // one or more expressions.  PostfixEvaluator does not take ownership of
-  // either argument.  |memory| may be NULL, in which case dereferencing
-  // (^) will not be supported.  |dictionary| may be NULL, but evaluation
-  // will fail in that case unless set_dictionary is used before calling
-  // Evaluate.
-  PostfixEvaluator(DictionaryType *dictionary, const MemoryRegion *memory)
-      : dictionary_(dictionary), memory_(memory), stack_() {}
-
-  // Evaluate the expression, starting with an empty stack. The results of
-  // execution will be stored in one (or more) variables in the dictionary.
-  // Returns false if any failures occur during execution, leaving
-  // variables in the dictionary in an indeterminate state. If assigned is
-  // non-NULL, any keys set in the dictionary as a result of evaluation
-  // will also be set to true in assigned, providing a way to determine if
-  // an expression modifies any of its input variables.
-  bool Evaluate(const string &expression, DictionaryValidityType *assigned);
-
-  // Like Evaluate, but provides the value left on the stack to the
-  // caller. If evaluation succeeds and leaves exactly one value on
-  // the stack, pop that value, store it in *result, and return true.
-  // Otherwise, return false.
-  bool EvaluateForValue(const string &expression, ValueType *result);
-
-  DictionaryType* dictionary() const { return dictionary_; }
-
-  // Reset the dictionary.  PostfixEvaluator does not take ownership.
-  void set_dictionary(DictionaryType *dictionary) {dictionary_ = dictionary; }
-
- private:
-  // Return values for PopValueOrIdentifier
-  enum PopResult {
-    POP_RESULT_FAIL = 0,
-    POP_RESULT_VALUE,
-    POP_RESULT_IDENTIFIER
-  };
-
-  // Retrieves the topmost literal value, constant, or variable from the
-  // stack.  Returns POP_RESULT_VALUE if the topmost entry is a literal
-  // value, and sets |value| accordingly.  Returns POP_RESULT_IDENTIFIER
-  // if the topmost entry is a constant or variable identifier, and sets
-  // |identifier| accordingly.  Returns POP_RESULT_FAIL on failure, such
-  // as when the stack is empty.
-  PopResult PopValueOrIdentifier(ValueType *value, string *identifier);
-
-  // Retrieves the topmost value on the stack.  If the topmost entry is
-  // an identifier, the dictionary is queried for the identifier's value.
-  // Returns false on failure, such as when the stack is empty or when
-  // a nonexistent identifier is named.
-  bool PopValue(ValueType *value);
-
-  // Retrieves the top two values on the stack, in the style of PopValue.
-  // value2 is popped before value1, so that value1 corresponds to the
-  // entry that was pushed prior to value2.  Returns false on failure.
-  bool PopValues(ValueType *value1, ValueType *value2);
-
-  // Pushes a new value onto the stack.
-  void PushValue(const ValueType &value);
-
-  // Evaluate expression, updating *assigned if it is non-zero. Return
-  // true if evaluation completes successfully. Do not clear the stack
-  // upon successful evaluation.
-  bool EvaluateInternal(const string &expression,
-                        DictionaryValidityType *assigned);
-
-  bool EvaluateToken(const string &token,
-                     const string &expression,
-                     DictionaryValidityType *assigned);
-
-  // The dictionary mapping constant and variable identifiers (strings) to
-  // values.  Keys beginning with '$' are treated as variable names, and
-  // PostfixEvaluator is free to create and modify these keys.  Weak pointer.
-  DictionaryType *dictionary_;
-
-  // If non-NULL, the MemoryRegion used for dereference (^) operations.
-  // If NULL, dereferencing is unsupported and will fail.  Weak pointer.
-  const MemoryRegion *memory_;
-
-  // The stack contains state information as execution progresses.  Values
-  // are pushed on to it as the expression string is read and as operations
-  // yield values; values are popped when used as operands to operators.
-  vector<string> stack_;
-};
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_POSTFIX_EVALUATOR_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/range_map-inl.h b/breakpad/linux-x86/include/breakpad/processor/range_map-inl.h
deleted file mode 100644
index 55dae83..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/range_map-inl.h
+++ /dev/null
@@ -1,220 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// range_map-inl.h: Range map implementation.
-//
-// See range_map.h for documentation.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_RANGE_MAP_INL_H__
-#define PROCESSOR_RANGE_MAP_INL_H__
-
-
-#include <assert.h>
-
-#include "processor/range_map.h"
-#include "processor/logging.h"
-
-
-namespace google_breakpad {
-
-
-template<typename AddressType, typename EntryType>
-bool RangeMap<AddressType, EntryType>::StoreRange(const AddressType &base,
-                                                  const AddressType &size,
-                                                  const EntryType &entry) {
-  AddressType high = base + size - 1;
-
-  // Check for undersize or overflow.
-  if (size <= 0 || high < base) {
-    // The processor will hit this case too frequently with common symbol
-    // files in the size == 0 case, which is more suited to a DEBUG channel.
-    // Filter those out since there's no DEBUG channel at the moment.
-    BPLOG_IF(INFO, size != 0) << "StoreRange failed, " << HexString(base) <<
-                                 "+" << HexString(size) << ", " <<
-                                 HexString(high);
-    return false;
-  }
-
-  // Ensure that this range does not overlap with another one already in the
-  // map.
-  MapConstIterator iterator_base = map_.lower_bound(base);
-  MapConstIterator iterator_high = map_.lower_bound(high);
-
-  if (iterator_base != iterator_high) {
-    // Some other range begins in the space used by this range.  It may be
-    // contained within the space used by this range, or it may extend lower.
-    // Regardless, it is an error.
-    // The processor hits this case too frequently with common symbol files.
-    // This is most appropriate for a DEBUG channel, but since none exists now
-    // simply comment out this logging.
-    //
-    // AddressType other_base = iterator_base->second.base();
-    // AddressType other_size = iterator_base->first - other_base + 1;
-    // BPLOG(INFO) << "StoreRange failed, an existing range is contained by or "
-    //                "extends lower than the new range: new " <<
-    //                 HexString(base) << "+" << HexString(size) <<
-    //                 ", existing " << HexString(other_base) << "+" <<
-    //                 HexString(other_size);
-
-    return false;
-  }
-
-  if (iterator_high != map_.end()) {
-    if (iterator_high->second.base() <= high) {
-      // The range above this one overlaps with this one.  It may fully
-      // contain this range, or it may begin within this range and extend
-      // higher.  Regardless, it's an error.
-      // The processor hits this case too frequently with common symbol files.
-      // This is most appropriate for a DEBUG channel, but since none exists now
-      // simply comment out this logging.
-      //
-      // AddressType other_base = iterator_high->second.base();
-      // AddressType other_size = iterator_high->first - other_base + 1;
-      // BPLOG(INFO) << "StoreRange failed, an existing range contains or "
-      //                "extends higher than the new range: new " <<
-      //                HexString(base) << "+" << HexString(size) <<
-      //                ", existing " << HexString(other_base) << "+" <<
-      //                HexString(other_size);
-      return false;
-    }
-  }
-
-  // Store the range in the map by its high address, so that lower_bound can
-  // be used to quickly locate a range by address.
-  map_.insert(MapValue(high, Range(base, entry)));
-  return true;
-}
-
-
-template<typename AddressType, typename EntryType>
-bool RangeMap<AddressType, EntryType>::RetrieveRange(
-    const AddressType &address, EntryType *entry,
-    AddressType *entry_base, AddressType *entry_size) const {
-  BPLOG_IF(ERROR, !entry) << "RangeMap::RetrieveRange requires |entry|";
-  assert(entry);
-
-  MapConstIterator iterator = map_.lower_bound(address);
-  if (iterator == map_.end())
-    return false;
-
-  // The map is keyed by the high address of each range, so |address| is
-  // guaranteed to be lower than the range's high address.  If |range| is
-  // not directly preceded by another range, it's possible for address to
-  // be below the range's low address, though.  When that happens, address
-  // references something not within any range, so return false.
-  if (address < iterator->second.base())
-    return false;
-
-  *entry = iterator->second.entry();
-  if (entry_base)
-    *entry_base = iterator->second.base();
-  if (entry_size)
-    *entry_size = iterator->first - iterator->second.base() + 1;
-
-  return true;
-}
-
-
-template<typename AddressType, typename EntryType>
-bool RangeMap<AddressType, EntryType>::RetrieveNearestRange(
-    const AddressType &address, EntryType *entry,
-    AddressType *entry_base, AddressType *entry_size) const {
-  BPLOG_IF(ERROR, !entry) << "RangeMap::RetrieveNearestRange requires |entry|";
-  assert(entry);
-
-  // If address is within a range, RetrieveRange can handle it.
-  if (RetrieveRange(address, entry, entry_base, entry_size))
-    return true;
-
-  // upper_bound gives the first element whose key is greater than address,
-  // but we want the first element whose key is less than or equal to address.
-  // Decrement the iterator to get there, but not if the upper_bound already
-  // points to the beginning of the map - in that case, address is lower than
-  // the lowest stored key, so return false.
-  MapConstIterator iterator = map_.upper_bound(address);
-  if (iterator == map_.begin())
-    return false;
-  --iterator;
-
-  *entry = iterator->second.entry();
-  if (entry_base)
-    *entry_base = iterator->second.base();
-  if (entry_size)
-    *entry_size = iterator->first - iterator->second.base() + 1;
-
-  return true;
-}
-
-
-template<typename AddressType, typename EntryType>
-bool RangeMap<AddressType, EntryType>::RetrieveRangeAtIndex(
-    int index, EntryType *entry,
-    AddressType *entry_base, AddressType *entry_size) const {
-  BPLOG_IF(ERROR, !entry) << "RangeMap::RetrieveRangeAtIndex requires |entry|";
-  assert(entry);
-
-  if (index >= GetCount()) {
-    BPLOG(ERROR) << "Index out of range: " << index << "/" << GetCount();
-    return false;
-  }
-
-  // Walk through the map.  Although it's ordered, it's not a vector, so it
-  // can't be addressed directly by index.
-  MapConstIterator iterator = map_.begin();
-  for (int this_index = 0; this_index < index; ++this_index)
-    ++iterator;
-
-  *entry = iterator->second.entry();
-  if (entry_base)
-    *entry_base = iterator->second.base();
-  if (entry_size)
-    *entry_size = iterator->first - iterator->second.base() + 1;
-
-  return true;
-}
-
-
-template<typename AddressType, typename EntryType>
-int RangeMap<AddressType, EntryType>::GetCount() const {
-  return map_.size();
-}
-
-
-template<typename AddressType, typename EntryType>
-void RangeMap<AddressType, EntryType>::Clear() {
-  map_.clear();
-}
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_RANGE_MAP_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/range_map.h b/breakpad/linux-x86/include/breakpad/processor/range_map.h
deleted file mode 100644
index 2572e49..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/range_map.h
+++ /dev/null
@@ -1,132 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// range_map.h: Range maps.
-//
-// A range map associates a range of addresses with a specific object.  This
-// is useful when certain objects of variable size are located within an
-// address space.  The range map makes it simple to determine which object is
-// associated with a specific address, which may be any address within the
-// range associated with an object.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_RANGE_MAP_H__
-#define PROCESSOR_RANGE_MAP_H__
-
-
-#include <map>
-
-
-namespace google_breakpad {
-
-// Forward declarations (for later friend declarations of specialized template).
-template<class, class> class RangeMapSerializer;
-
-template<typename AddressType, typename EntryType>
-class RangeMap {
- public:
-  RangeMap() : map_() {}
-
-  // Inserts a range into the map.  Returns false for a parameter error,
-  // or if the location of the range would conflict with a range already
-  // stored in the map.
-  bool StoreRange(const AddressType &base,
-                  const AddressType &size,
-                  const EntryType &entry);
-
-  // Locates the range encompassing the supplied address.  If there is
-  // no such range, returns false.  entry_base and entry_size, if non-NULL,
-  // are set to the base and size of the entry's range.
-  bool RetrieveRange(const AddressType &address, EntryType *entry,
-                     AddressType *entry_base, AddressType *entry_size) const;
-
-  // Locates the range encompassing the supplied address, if one exists.
-  // If no range encompasses the supplied address, locates the nearest range
-  // to the supplied address that is lower than the address.  Returns false
-  // if no range meets these criteria.  entry_base and entry_size, if
-  // non-NULL, are set to the base and size of the entry's range.
-  bool RetrieveNearestRange(const AddressType &address, EntryType *entry,
-                            AddressType *entry_base, AddressType *entry_size)
-                            const;
-
-  // Treating all ranges as a list ordered by the address spaces that they
-  // occupy, locates the range at the index specified by index.  Returns
-  // false if index is larger than the number of ranges stored.  entry_base
-  // and entry_size, if non-NULL, are set to the base and size of the entry's
-  // range.
-  //
-  // RetrieveRangeAtIndex is not optimized for speedy operation.
-  bool RetrieveRangeAtIndex(int index, EntryType *entry,
-                            AddressType *entry_base, AddressType *entry_size)
-                            const;
-
-  // Returns the number of ranges stored in the RangeMap.
-  int GetCount() const;
-
-  // Empties the range map, restoring it to the state it was when it was
-  // initially created.
-  void Clear();
-
- private:
-  // Friend declarations.
-  friend class ModuleComparer;
-  friend class RangeMapSerializer<AddressType, EntryType>;
-
-  class Range {
-   public:
-    Range(const AddressType &base, const EntryType &entry)
-        : base_(base), entry_(entry) {}
-
-    AddressType base() const { return base_; }
-    EntryType entry() const { return entry_; }
-
-   private:
-    // The base address of the range.  The high address does not need to
-    // be stored, because RangeMap uses it as the key to the map.
-    const AddressType base_;
-
-    // The entry corresponding to a range.
-    const EntryType entry_;
-  };
-
-  // Convenience types.
-  typedef std::map<AddressType, Range> AddressToRangeMap;
-  typedef typename AddressToRangeMap::const_iterator MapConstIterator;
-  typedef typename AddressToRangeMap::value_type MapValue;
-
-  // Maps the high address of each range to a EntryType.
-  AddressToRangeMap map_;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_RANGE_MAP_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/simple_serializer-inl.h b/breakpad/linux-x86/include/breakpad/processor/simple_serializer-inl.h
deleted file mode 100644
index 606bb3c..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/simple_serializer-inl.h
+++ /dev/null
@@ -1,260 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// simple_serializer-inl.h: template specializations for following types:
-// bool, const char *(C-string), string,
-// Line, Function, PublicSymbol, WindowsFrameInfo and their linked pointers.
-//
-// See simple_serializer.h for moredocumentation.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_SIMPLE_SERIALIZER_INL_H__
-#define PROCESSOR_SIMPLE_SERIALIZER_INL_H__
-
-#include <string>
-
-#include "processor/simple_serializer.h"
-#include "map_serializers-inl.h"
-
-#include "google_breakpad/processor/basic_source_line_resolver.h"
-#include "processor/basic_source_line_resolver_types.h"
-#include "processor/linked_ptr.h"
-#include "processor/windows_frame_info.h"
-
-namespace google_breakpad {
-
-// Specializations of SimpleSerializer: bool
-template<>
-class SimpleSerializer<bool> {
- public:
-  static size_t SizeOf(bool boolean) { return 1; }
-
-  static char *Write(bool boolean, char *dest) {
-    *dest = static_cast<char>(boolean? 255 : 0);
-    return ++dest;
-  }
-
-  static const char *Read(const char *source, bool *value) {
-    *value = ((*source) == 0 ? false : true);
-    return ++source;
-  }
-};
-
-// Specializations of SimpleSerializer: string
-template<>
-class SimpleSerializer<string> {
- public:
-  static size_t SizeOf(const string &str) { return str.size() + 1; }
-
-  static char *Write(const string &str, char *dest) {
-    strcpy(dest, str.c_str());
-    return dest + SizeOf(str);
-  }
-};
-
-// Specializations of SimpleSerializer: C-string
-template<>
-class SimpleSerializer<const char*> {
- public:
-  static size_t SizeOf(const char *cstring) {
-    return strlen(cstring) + 1;
-  }
-
-  static char *Write(const char *cstring, char *dest) {
-    strcpy(dest, cstring);
-    return dest + SizeOf(cstring);
-  }
-};
-
-// Specializations of SimpleSerializer: Line
-template<>
-class SimpleSerializer<BasicSourceLineResolver::Line> {
-  typedef BasicSourceLineResolver::Line Line;
- public:
-  static size_t SizeOf(const Line &line) {
-    return SimpleSerializer<MemAddr>::SizeOf(line.address)
-         + SimpleSerializer<MemAddr>::SizeOf(line.size)
-         + SimpleSerializer<int32_t>::SizeOf(line.source_file_id)
-         + SimpleSerializer<int32_t>::SizeOf(line.line);
-  }
-  static char *Write(const Line &line, char *dest) {
-    dest = SimpleSerializer<MemAddr>::Write(line.address, dest);
-    dest = SimpleSerializer<MemAddr>::Write(line.size, dest);
-    dest = SimpleSerializer<int32_t>::Write(line.source_file_id, dest);
-    dest = SimpleSerializer<int32_t>::Write(line.line, dest);
-    return dest;
-  }
-};
-
-// Specializations of SimpleSerializer: PublicSymbol
-template<>
-class SimpleSerializer<BasicSourceLineResolver::PublicSymbol> {
-  typedef BasicSourceLineResolver::PublicSymbol PublicSymbol;
- public:
-  static size_t SizeOf(const PublicSymbol &pubsymbol) {
-    return SimpleSerializer<string>::SizeOf(pubsymbol.name)
-         + SimpleSerializer<MemAddr>::SizeOf(pubsymbol.address)
-         + SimpleSerializer<int32_t>::SizeOf(pubsymbol.parameter_size);
-  }
-  static char *Write(const PublicSymbol &pubsymbol, char *dest) {
-    dest = SimpleSerializer<string>::Write(pubsymbol.name, dest);
-    dest = SimpleSerializer<MemAddr>::Write(pubsymbol.address, dest);
-    dest = SimpleSerializer<int32_t>::Write(pubsymbol.parameter_size, dest);
-    return dest;
-  }
-};
-
-// Specializations of SimpleSerializer: WindowsFrameInfo
-template<>
-class SimpleSerializer<WindowsFrameInfo> {
- public:
-  static size_t SizeOf(const WindowsFrameInfo &wfi) {
-    unsigned int size = 0;
-    size += sizeof(int32_t);  // wfi.type_
-    size += SimpleSerializer<int32_t>::SizeOf(wfi.valid);
-    size += SimpleSerializer<uint32_t>::SizeOf(wfi.prolog_size);
-    size += SimpleSerializer<uint32_t>::SizeOf(wfi.epilog_size);
-    size += SimpleSerializer<uint32_t>::SizeOf(wfi.parameter_size);
-    size += SimpleSerializer<uint32_t>::SizeOf(wfi.saved_register_size);
-    size += SimpleSerializer<uint32_t>::SizeOf(wfi.local_size);
-    size += SimpleSerializer<uint32_t>::SizeOf(wfi.max_stack_size);
-    size += SimpleSerializer<bool>::SizeOf(wfi.allocates_base_pointer);
-    size += SimpleSerializer<string>::SizeOf(wfi.program_string);
-    return size;
-  }
-  static char *Write(const WindowsFrameInfo &wfi, char *dest) {
-    dest = SimpleSerializer<int32_t>::Write(
-        static_cast<const int32_t>(wfi.type_), dest);
-    dest = SimpleSerializer<int32_t>::Write(wfi.valid, dest);
-    dest = SimpleSerializer<uint32_t>::Write(wfi.prolog_size, dest);
-    dest = SimpleSerializer<uint32_t>::Write(wfi.epilog_size, dest);
-    dest = SimpleSerializer<uint32_t>::Write(wfi.parameter_size, dest);
-    dest = SimpleSerializer<uint32_t>::Write(wfi.saved_register_size, dest);
-    dest = SimpleSerializer<uint32_t>::Write(wfi.local_size, dest);
-    dest = SimpleSerializer<uint32_t>::Write(wfi.max_stack_size, dest);
-    dest = SimpleSerializer<bool>::Write(wfi.allocates_base_pointer, dest);
-    return SimpleSerializer<string>::Write(wfi.program_string, dest);
-  }
-};
-
-// Specializations of SimpleSerializer: Linked_ptr version of
-// Line, Function, PublicSymbol, WindowsFrameInfo.
-template<>
-class SimpleSerializer< linked_ptr<BasicSourceLineResolver::Line> > {
-  typedef BasicSourceLineResolver::Line Line;
- public:
-  static size_t SizeOf(const linked_ptr<Line> &lineptr) {
-    if (lineptr.get() == NULL) return 0;
-    return SimpleSerializer<Line>::SizeOf(*(lineptr.get()));
-  }
-  static char *Write(const linked_ptr<Line> &lineptr, char *dest) {
-    if (lineptr.get())
-      dest = SimpleSerializer<Line>::Write(*(lineptr.get()), dest);
-    return dest;
-  }
-};
-
-template<>
-class SimpleSerializer<BasicSourceLineResolver::Function> {
-  // Convenient type names.
-  typedef BasicSourceLineResolver::Function Function;
-  typedef BasicSourceLineResolver::Line Line;
- public:
-  static size_t SizeOf(const Function &func) {
-    unsigned int size = 0;
-    size += SimpleSerializer<string>::SizeOf(func.name);
-    size += SimpleSerializer<MemAddr>::SizeOf(func.address);
-    size += SimpleSerializer<MemAddr>::SizeOf(func.size);
-    size += SimpleSerializer<int32_t>::SizeOf(func.parameter_size);
-    size += range_map_serializer_.SizeOf(func.lines);
-    return size;
-  }
-
-  static char *Write(const Function &func, char *dest) {
-    dest = SimpleSerializer<string>::Write(func.name, dest);
-    dest = SimpleSerializer<MemAddr>::Write(func.address, dest);
-    dest = SimpleSerializer<MemAddr>::Write(func.size, dest);
-    dest = SimpleSerializer<int32_t>::Write(func.parameter_size, dest);
-    dest = range_map_serializer_.Write(func.lines, dest);
-    return dest;
-  }
- private:
-  // This static member is defined in module_serializer.cc.
-  static RangeMapSerializer< MemAddr, linked_ptr<Line> > range_map_serializer_;
-};
-
-template<>
-class SimpleSerializer< linked_ptr<BasicSourceLineResolver::Function> > {
-  typedef BasicSourceLineResolver::Function Function;
- public:
-  static size_t SizeOf(const linked_ptr<Function> &func) {
-    if (!func.get()) return 0;
-    return SimpleSerializer<Function>::SizeOf(*(func.get()));
-  }
-
-  static char *Write(const linked_ptr<Function> &func, char *dest) {
-    if (func.get())
-      dest = SimpleSerializer<Function>::Write(*(func.get()), dest);
-    return dest;
-  }
-};
-
-template<>
-class SimpleSerializer< linked_ptr<BasicSourceLineResolver::PublicSymbol> > {
-  typedef BasicSourceLineResolver::PublicSymbol PublicSymbol;
- public:
-  static size_t SizeOf(const linked_ptr<PublicSymbol> &pubsymbol) {
-    if (pubsymbol.get() == NULL) return 0;
-    return SimpleSerializer<PublicSymbol>::SizeOf(*(pubsymbol.get()));
-  }
-  static char *Write(const linked_ptr<PublicSymbol> &pubsymbol, char *dest) {
-    if (pubsymbol.get())
-      dest = SimpleSerializer<PublicSymbol>::Write(*(pubsymbol.get()), dest);
-    return dest;
-  }
-};
-
-template<>
-class SimpleSerializer< linked_ptr<WindowsFrameInfo> > {
- public:
-  static size_t SizeOf(const linked_ptr<WindowsFrameInfo> &wfi) {
-    if (wfi.get() == NULL) return 0;
-    return SimpleSerializer<WindowsFrameInfo>::SizeOf(*(wfi.get()));
-  }
-  static char *Write(const linked_ptr<WindowsFrameInfo> &wfi, char *dest) {
-    if (wfi.get())
-      dest = SimpleSerializer<WindowsFrameInfo>::Write(*(wfi.get()), dest);
-    return dest;
-  }
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_SIMPLE_SERIALIZER_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/simple_serializer.h b/breakpad/linux-x86/include/breakpad/processor/simple_serializer.h
deleted file mode 100644
index 275f51c..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/simple_serializer.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// simple_serializer.h: SimpleSerializer is a template for calculating size and
-// writing to specific memory location for objects of primitive types, C-style
-// string, string, breakpad types/structs etc.
-// All specializations of SimpleSerializer template are defined in the
-// "simple_serializer-inl.h" file.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_SIMPLE_SERIALIZER_H__
-#define PROCESSOR_SIMPLE_SERIALIZER_H__
-
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-typedef uint64_t MemAddr;
-
-// Default implementation of SimpleSerializer template.
-// Specializations are defined in "simple_serializer-inl.h".
-template<class Type> class SimpleSerializer {
- public:
-  // Calculate and return the size of the 'item'.
-  static size_t SizeOf(const Type &item) { return sizeof(item); }
-  // Write 'item' to memory location 'dest', and return to the "end" address of
-  // data written, i.e., the address after the final byte written.
-  static char *Write(const Type &item, char *dest) {
-    new (dest) Type(item);
-    return dest + SizeOf(item);
-  }
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_SIMPLE_SERIALIZER_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/simple_symbol_supplier.h b/breakpad/linux-x86/include/breakpad/processor/simple_symbol_supplier.h
deleted file mode 100644
index 0cde85c..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/simple_symbol_supplier.h
+++ /dev/null
@@ -1,140 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// simple_symbol_supplier.h: A simple SymbolSupplier implementation
-//
-// SimpleSymbolSupplier is a straightforward implementation of SymbolSupplier
-// that stores symbol files in a filesystem tree.  A SimpleSymbolSupplier is
-// created with one or more base directories, which are the root paths for all
-// symbol files.  Each symbol file contained therein has a directory entry in
-// the base directory with a name identical to the corresponding debugging 
-// file (pdb).  Within each of these directories, there are subdirectories
-// named for the debugging file's identifier.  For recent pdb files, this is
-// a concatenation of the pdb's uuid and age, presented in hexadecimal form,
-// without any dashes or separators.  The uuid is in uppercase hexadecimal
-// and the age is in lowercase hexadecimal.  Within that subdirectory,
-// SimpleSymbolSupplier expects to find the symbol file, which is named
-// identically to the debug file, but with a .sym extension.  If the original
-// debug file had a name ending in .pdb, the .pdb extension will be replaced
-// with .sym.  This sample hierarchy is rooted at the "symbols" base
-// directory:
-//
-// symbols
-// symbols/test_app.pdb
-// symbols/test_app.pdb/63FE4780728D49379B9D7BB6460CB42A1
-// symbols/test_app.pdb/63FE4780728D49379B9D7BB6460CB42A1/test_app.sym
-// symbols/kernel32.pdb
-// symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542
-// symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542/kernel32.sym
-//
-// In this case, the uuid of test_app.pdb is
-// 63fe4780-728d-4937-9b9d-7bb6460cb42a and its age is 1.
-//
-// This scheme was chosen to be roughly analogous to the way that
-// symbol files may be accessed from Microsoft Symbol Server.  A hierarchy
-// used for Microsoft Symbol Server storage is usable as a hierarchy for
-// SimpleSymbolServer, provided that the pdb files are transformed to dumped
-// format using a tool such as dump_syms, and given a .sym extension.
-//
-// SimpleSymbolSupplier will iterate over all root paths searching for
-// a symbol file existing in that path.
-//
-// SimpleSymbolSupplier supports any debugging file which can be identified
-// by a CodeModule object's debug_file and debug_identifier accessors.  The
-// expected ultimate source of these CodeModule objects are MinidumpModule
-// objects; it is this class that is responsible for assigning appropriate
-// values for debug_file and debug_identifier.
-//
-// Author: Mark Mentovai
-
-#ifndef PROCESSOR_SIMPLE_SYMBOL_SUPPLIER_H__
-#define PROCESSOR_SIMPLE_SYMBOL_SUPPLIER_H__
-
-#include <map>
-#include <string>
-#include <vector>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/processor/symbol_supplier.h"
-
-namespace google_breakpad {
-
-using std::map;
-using std::vector;
-
-class CodeModule;
-
-class SimpleSymbolSupplier : public SymbolSupplier {
- public:
-  // Creates a new SimpleSymbolSupplier, using path as the root path where
-  // symbols are stored.
-  explicit SimpleSymbolSupplier(const string &path) : paths_(1, path) {}
-
-  // Creates a new SimpleSymbolSupplier, using paths as a list of root
-  // paths where symbols may be stored.
-  explicit SimpleSymbolSupplier(const vector<string> &paths) : paths_(paths) {}
-
-  virtual ~SimpleSymbolSupplier() {}
-
-  // Returns the path to the symbol file for the given module.  See the
-  // description above.
-  virtual SymbolResult GetSymbolFile(const CodeModule *module,
-                                     const SystemInfo *system_info,
-                                     string *symbol_file);
-
-  virtual SymbolResult GetSymbolFile(const CodeModule *module,
-                                     const SystemInfo *system_info,
-                                     string *symbol_file,
-                                     string *symbol_data);
-
-  // Allocates data buffer on heap and writes symbol data into buffer.
-  // Symbol supplier ALWAYS takes ownership of the data buffer.
-  virtual SymbolResult GetCStringSymbolData(const CodeModule *module,
-                                            const SystemInfo *system_info,
-                                            string *symbol_file,
-                                            char **symbol_data,
-                                            size_t *symbol_data_size);
-
-  // Free the data buffer allocated in the above GetCStringSymbolData();
-  virtual void FreeSymbolData(const CodeModule *module);
-
- protected:
-  SymbolResult GetSymbolFileAtPathFromRoot(const CodeModule *module,
-                                           const SystemInfo *system_info,
-                                           const string &root_path,
-                                           string *symbol_file);
-
- private:
-  map<string, char *> memory_buffers_;
-  vector<string> paths_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_SIMPLE_SYMBOL_SUPPLIER_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/source_line_resolver_base_types.h b/breakpad/linux-x86/include/breakpad/processor/source_line_resolver_base_types.h
deleted file mode 100644
index 4a9dfb3..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/source_line_resolver_base_types.h
+++ /dev/null
@@ -1,158 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// source_line_resolver_base_types.h: definition of nested classes/structs in
-// SourceLineResolverBase.  It moves the definitions out of
-// source_line_resolver_base.cc, so that other classes may have access
-// to these private nested types without including source_line_resolver_base.cc
-// In addition, Module is defined as a pure abstract class to be implemented by
-// each concrete source line resolver class.
-//
-// See source_line_resolver_base.h for more documentation.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#include <stdio.h>
-
-#include <map>
-#include <string>
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/source_line_resolver_base.h"
-#include "google_breakpad/processor/stack_frame.h"
-#include "processor/cfi_frame_info.h"
-#include "processor/windows_frame_info.h"
-
-#ifndef PROCESSOR_SOURCE_LINE_RESOLVER_BASE_TYPES_H__
-#define PROCESSOR_SOURCE_LINE_RESOLVER_BASE_TYPES_H__
-
-namespace google_breakpad {
-
-class SourceLineResolverBase::AutoFileCloser {
- public:
-  explicit AutoFileCloser(FILE *file) : file_(file) {}
-  ~AutoFileCloser() {
-    if (file_)
-      fclose(file_);
-  }
-
- private:
-  FILE *file_;
-};
-
-struct SourceLineResolverBase::Line {
-  Line() { }
-  Line(MemAddr addr, MemAddr code_size, int file_id, int source_line)
-      : address(addr)
-      , size(code_size)
-      , source_file_id(file_id)
-      , line(source_line) { }
-
-  MemAddr address;
-  MemAddr size;
-  int32_t source_file_id;
-  int32_t line;
-};
-
-struct SourceLineResolverBase::Function {
-  Function() { }
-  Function(const string &function_name,
-           MemAddr function_address,
-           MemAddr code_size,
-           int set_parameter_size)
-      : name(function_name), address(function_address), size(code_size),
-        parameter_size(set_parameter_size) { }
-
-  string name;
-  MemAddr address;
-  MemAddr size;
-
-  // The size of parameters passed to this function on the stack.
-  int32_t parameter_size;
-};
-
-struct SourceLineResolverBase::PublicSymbol {
-  PublicSymbol() { }
-  PublicSymbol(const string& set_name,
-               MemAddr set_address,
-               int set_parameter_size)
-      : name(set_name),
-        address(set_address),
-        parameter_size(set_parameter_size) {}
-
-  string name;
-  MemAddr address;
-
-  // If the public symbol is used as a function entry point, parameter_size
-  // is set to the size of the parameters passed to the funciton on the
-  // stack, if known.
-  int32_t parameter_size;
-};
-
-class SourceLineResolverBase::Module {
- public:
-  virtual ~Module() { };
-  // Loads a map from the given buffer in char* type.
-  // Does NOT take ownership of memory_buffer (the caller, source line resolver,
-  // is the owner of memory_buffer).
-  // The passed in |memory buffer| is of size |memory_buffer_size|.  If it is
-  // not null terminated, LoadMapFromMemory will null terminate it by modifying
-  // the passed in buffer.
-  virtual bool LoadMapFromMemory(char *memory_buffer,
-                                 size_t memory_buffer_size) = 0;
-
-  // Tells whether the loaded symbol data is corrupt.  Return value is
-  // undefined, if the symbol data hasn't been loaded yet.
-  virtual bool IsCorrupt() const = 0;
-
-  // Looks up the given relative address, and fills the StackFrame struct
-  // with the result.
-  virtual void LookupAddress(StackFrame *frame) const = 0;
-
-  // If Windows stack walking information is available covering ADDRESS,
-  // return a WindowsFrameInfo structure describing it. If the information
-  // is not available, returns NULL. A NULL return value does not indicate
-  // an error. The caller takes ownership of any returned WindowsFrameInfo
-  // object.
-  virtual WindowsFrameInfo *
-  FindWindowsFrameInfo(const StackFrame *frame) const = 0;
-
-  // If CFI stack walking information is available covering ADDRESS,
-  // return a CFIFrameInfo structure describing it. If the information
-  // is not available, return NULL. The caller takes ownership of any
-  // returned CFIFrameInfo object.
-  virtual CFIFrameInfo *FindCFIFrameInfo(const StackFrame *frame) const = 0;
- protected:
-  virtual bool ParseCFIRuleSet(const string &rule_set,
-                               CFIFrameInfo *frame_info) const;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_SOURCE_LINE_RESOLVER_BASE_TYPES_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalk_common.h b/breakpad/linux-x86/include/breakpad/processor/stackwalk_common.h
deleted file mode 100644
index 6b9710a..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalk_common.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalk_common.cc: Module shared by the {micro,mini}dump_stackwalck
-// executables to print the content of dumps (w/ stack traces) on the console.
-
-
-#ifndef PROCESSOR_STACKWALK_COMMON_H__
-#define PROCESSOR_STACKWALK_COMMON_H__
-#include <stdio.h>
-
-namespace google_breakpad {
-
-class ProcessState;
-class SourceLineResolverInterface;
-
-void SetPrintStream(FILE* fp);
-
-void PrintProcessStateMachineReadable(const ProcessState& process_state);
-void PrintProcessState(const ProcessState& process_state,
-                       bool output_stack_contents,
-                       SourceLineResolverInterface* resolver);
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STACKWALK_COMMON_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalker_address_list.h b/breakpad/linux-x86/include/breakpad/processor/stackwalker_address_list.h
deleted file mode 100644
index 0f8c989..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalker_address_list.h
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright (c) 2013 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalker_address_list.h: a pseudo stackwalker.
-//
-// Doesn't actually walk a stack, rather initializes a CallStack given an
-// explicit list of already walked return addresses.
-//
-// Author: Chris Hamilton <chrisha@chromium.org>
-
-#ifndef PROCESSOR_STACKWALKER_ADDRESS_LIST_H_
-#define PROCESSOR_STACKWALKER_ADDRESS_LIST_H_
-
-#include "common/basictypes.h"
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/stackwalker.h"
-
-namespace google_breakpad {
-
-class CodeModules;
-
-class StackwalkerAddressList : public Stackwalker {
- public:
-  // Initializes this stack walker with an explicit set of frame addresses.
-  // |modules| and |frame_symbolizer| are passed directly through to the base
-  // Stackwalker constructor.
-  StackwalkerAddressList(const uint64_t* frames,
-                         size_t frame_count,
-                         const CodeModules* modules,
-                         StackFrameSymbolizer* frame_symbolizer);
-
- private:
-  // Implementation of Stackwalker.
-  virtual StackFrame* GetContextFrame();
-  virtual StackFrame* GetCallerFrame(const CallStack* stack,
-                                     bool stack_scan_allowed);
-
-  const uint64_t* frames_;
-  size_t frame_count_;
-
-  DISALLOW_COPY_AND_ASSIGN(StackwalkerAddressList);
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STACKWALKER_ADDRESS_LIST_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalker_amd64.h b/breakpad/linux-x86/include/breakpad/processor/stackwalker_amd64.h
deleted file mode 100644
index 8f3dbd5..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalker_amd64.h
+++ /dev/null
@@ -1,108 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalker_amd64.h: amd64-specific stackwalker.
-//
-// Provides stack frames given amd64 register context and a memory region
-// corresponding to a amd64 stack.
-//
-// Author: Mark Mentovai, Ted Mielczarek
-
-
-#ifndef PROCESSOR_STACKWALKER_AMD64_H__
-#define PROCESSOR_STACKWALKER_AMD64_H__
-
-#include <vector>
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/common/minidump_format.h"
-#include "google_breakpad/processor/stackwalker.h"
-#include "google_breakpad/processor/stack_frame_cpu.h"
-#include "processor/cfi_frame_info.h"
-
-namespace google_breakpad {
-
-class CodeModules;
-
-class StackwalkerAMD64 : public Stackwalker {
- public:
-  // context is a amd64 context object that gives access to amd64-specific
-  // register state corresponding to the innermost called frame to be
-  // included in the stack.  The other arguments are passed directly through
-  // to the base Stackwalker constructor.
-  StackwalkerAMD64(const SystemInfo* system_info,
-                   const MDRawContextAMD64* context,
-                   MemoryRegion* memory,
-                   const CodeModules* modules,
-                   StackFrameSymbolizer* frame_symbolizer);
-
- private:
-  // A STACK CFI-driven frame walker for the AMD64
-  typedef SimpleCFIWalker<uint64_t, MDRawContextAMD64> CFIWalker;
-
-  // Implementation of Stackwalker, using amd64 context (stack pointer in %rsp,
-  // stack base in %rbp) and stack conventions (saved stack pointer at 0(%rbp))
-  virtual StackFrame* GetContextFrame();
-  virtual StackFrame* GetCallerFrame(const CallStack* stack,
-                                     bool stack_scan_allowed);
-
-  // Use cfi_frame_info (derived from STACK CFI records) to construct
-  // the frame that called frames.back(). The caller takes ownership
-  // of the returned frame. Return NULL on failure.
-  StackFrameAMD64* GetCallerByCFIFrameInfo(const vector<StackFrame*> &frames,
-                                           CFIFrameInfo* cfi_frame_info);
-
-  // Assumes a traditional frame layout where the frame pointer has not been
-  // omitted. The expectation is that caller's %rbp is pushed to the stack
-  // after the return address of the callee, and that the callee's %rsp can
-  // be used to find the pushed %rbp.
-  // Caller owns the returned frame object. Returns NULL on failure.
-  StackFrameAMD64* GetCallerByFramePointerRecovery(
-      const vector<StackFrame*>& frames);
-
-  // Scan the stack for plausible return addresses. The caller takes ownership
-  // of the returned frame. Return NULL on failure.
-  StackFrameAMD64* GetCallerByStackScan(const vector<StackFrame*> &frames);
-
-  // Stores the CPU context corresponding to the innermost stack frame to
-  // be returned by GetContextFrame.
-  const MDRawContextAMD64* context_;
-
-  // Our register map, for cfi_walker_.
-  static const CFIWalker::RegisterSet cfi_register_map_[];
-
-  // Our CFI frame walker.
-  const CFIWalker cfi_walker_;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_STACKWALKER_AMD64_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalker_arm.h b/breakpad/linux-x86/include/breakpad/processor/stackwalker_arm.h
deleted file mode 100644
index 9081a40..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalker_arm.h
+++ /dev/null
@@ -1,107 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalker_arm.h: arm-specific stackwalker.
-//
-// Provides stack frames given arm register context and a memory region
-// corresponding to an arm stack.
-//
-// Author: Mark Mentovai, Ted Mielczarek
-
-
-#ifndef PROCESSOR_STACKWALKER_ARM_H__
-#define PROCESSOR_STACKWALKER_ARM_H__
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/common/minidump_format.h"
-#include "google_breakpad/processor/stackwalker.h"
-
-namespace google_breakpad {
-
-class CodeModules;
-
-class StackwalkerARM : public Stackwalker {
- public:
-  // context is an arm context object that gives access to arm-specific
-  // register state corresponding to the innermost called frame to be
-  // included in the stack.  The other arguments are passed directly through
-  // to the base Stackwalker constructor.
-  StackwalkerARM(const SystemInfo* system_info,
-                 const MDRawContextARM* context,
-                 int fp_register,
-                 MemoryRegion* memory,
-                 const CodeModules* modules,
-                 StackFrameSymbolizer* frame_symbolizer);
-
-  // Change the context validity mask of the frame returned by
-  // GetContextFrame to VALID. This is only for use by unit tests; the
-  // default behavior is correct for all application code.
-  void SetContextFrameValidity(int valid) { context_frame_validity_ = valid; }
-
- private:
-  // Implementation of Stackwalker, using arm context and stack conventions.
-  virtual StackFrame* GetContextFrame();
-  virtual StackFrame* GetCallerFrame(const CallStack* stack,
-                                     bool stack_scan_allowed);
-
-  // Use cfi_frame_info (derived from STACK CFI records) to construct
-  // the frame that called frames.back(). The caller takes ownership
-  // of the returned frame. Return NULL on failure.
-  StackFrameARM* GetCallerByCFIFrameInfo(const vector<StackFrame*> &frames,
-                                         CFIFrameInfo* cfi_frame_info);
-
-  // Use the frame pointer. The caller takes ownership of the returned frame.
-  // Return NULL on failure.
-  StackFrameARM* GetCallerByFramePointer(const vector<StackFrame*> &frames);
-
-  // Scan the stack for plausible return addresses. The caller takes ownership
-  // of the returned frame. Return NULL on failure.
-  StackFrameARM* GetCallerByStackScan(const vector<StackFrame*> &frames);
-
-  // Stores the CPU context corresponding to the youngest stack frame, to
-  // be returned by GetContextFrame.
-  const MDRawContextARM* context_;
-
-  // The register to use a as frame pointer. The value is -1 if frame pointer
-  // cannot be used.
-  int fp_register_;
-
-  // Validity mask for youngest stack frame. This is always
-  // CONTEXT_VALID_ALL in real use; it is only changeable for the sake of
-  // unit tests.
-  int context_frame_validity_;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_STACKWALKER_ARM_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalker_arm64.h b/breakpad/linux-x86/include/breakpad/processor/stackwalker_arm64.h
deleted file mode 100644
index 121e824..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalker_arm64.h
+++ /dev/null
@@ -1,104 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2013 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalker_arm64.h: arm64-specific stackwalker.
-//
-// Provides stack frames given arm64 register context and a memory region
-// corresponding to an arm64 stack.
-//
-// Author: Mark Mentovai, Ted Mielczarek, Colin Blundell
-
-
-#ifndef PROCESSOR_STACKWALKER_ARM64_H__
-#define PROCESSOR_STACKWALKER_ARM64_H__
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/common/minidump_format.h"
-#include "google_breakpad/processor/stackwalker.h"
-
-namespace google_breakpad {
-
-class CodeModules;
-
-class StackwalkerARM64 : public Stackwalker {
- public:
-  // context is an arm64 context object that gives access to arm64-specific
-  // register state corresponding to the innermost called frame to be
-  // included in the stack.  The other arguments are passed directly through
-  // to the base Stackwalker constructor.
-  StackwalkerARM64(const SystemInfo* system_info,
-                   const MDRawContextARM64* context,
-                   MemoryRegion* memory,
-                   const CodeModules* modules,
-                   StackFrameSymbolizer* frame_symbolizer);
-
-  // Change the context validity mask of the frame returned by
-  // GetContextFrame to VALID. This is only for use by unit tests; the
-  // default behavior is correct for all application code.
-  void SetContextFrameValidity(uint64_t valid) {
-    context_frame_validity_ = valid;
-  }
-
- private:
-  // Implementation of Stackwalker, using arm64 context and stack conventions.
-  virtual StackFrame* GetContextFrame();
-  virtual StackFrame* GetCallerFrame(const CallStack* stack,
-                                     bool stack_scan_allowed);
-
-  // Use cfi_frame_info (derived from STACK CFI records) to construct
-  // the frame that called frames.back(). The caller takes ownership
-  // of the returned frame. Return NULL on failure.
-  StackFrameARM64* GetCallerByCFIFrameInfo(const vector<StackFrame*> &frames,
-                                           CFIFrameInfo* cfi_frame_info);
-
-  // Use the frame pointer. The caller takes ownership of the returned frame.
-  // Return NULL on failure.
-  StackFrameARM64* GetCallerByFramePointer(const vector<StackFrame*> &frames);
-
-  // Scan the stack for plausible return addresses. The caller takes ownership
-  // of the returned frame. Return NULL on failure.
-  StackFrameARM64* GetCallerByStackScan(const vector<StackFrame*> &frames);
-
-  // Stores the CPU context corresponding to the youngest stack frame, to
-  // be returned by GetContextFrame.
-  const MDRawContextARM64* context_;
-
-  // Validity mask for youngest stack frame. This is always
-  // CONTEXT_VALID_ALL in real use; it is only changeable for the sake of
-  // unit tests.
-  uint64_t context_frame_validity_;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_STACKWALKER_ARM64_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalker_mips.h b/breakpad/linux-x86/include/breakpad/processor/stackwalker_mips.h
deleted file mode 100644
index 5f97791..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalker_mips.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright (c) 2013 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalker_mips.h: MIPS-specific stackwalker.
-//
-// Provides stack frames given MIPS register context and a memory region
-// corresponding to a MIPSstack.
-//
-// Author: Tata Elxsi
-
-#ifndef PROCESSOR_STACKWALKER_MIPS_H__
-#define PROCESSOR_STACKWALKER_MIPS_H__
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/common/minidump_format.h"
-#include "google_breakpad/processor/stackwalker.h"
-#include "google_breakpad/processor/stack_frame_cpu.h"
-#include "processor/cfi_frame_info.h"
-
-namespace google_breakpad {
-
-class CodeModules;
-
-class StackwalkerMIPS : public Stackwalker {
- public:
-  // Context is a MIPS context object that gives access to mips-specific
-  // register state corresponding to the innermost called frame to be
-  // included in the stack.  The other arguments are passed directly
-  // through to the base Stackwalker constructor.
-  StackwalkerMIPS(const SystemInfo* system_info,
-                  const MDRawContextMIPS* context,
-                  MemoryRegion* memory,
-                  const CodeModules* modules,
-                  StackFrameSymbolizer* frame_symbolizer);
-
- private:
-  // Implementation of Stackwalker, using mips context and stack conventions.
-  virtual StackFrame* GetContextFrame();
-  virtual StackFrame* GetCallerFrame(const CallStack* stack,
-                                     bool stack_scan_allowed);
-
-  // Use cfi_frame_info (derived from STACK CFI records) to construct
-  // the frame that called frames.back(). The caller takes ownership
-  // of the returned frame. Return NULL on failure.
-  StackFrameMIPS* GetCallerByCFIFrameInfo(const vector<StackFrame*>& frames,
-                                          CFIFrameInfo* cfi_frame_info);
-
-  // Scan the stack for plausible return address and frame pointer pair. 
-  // The caller takes ownership of the returned frame. Return NULL on failure.
-  StackFrameMIPS* GetCallerByStackScan(const vector<StackFrame*>& frames);
-
-  // Stores the CPU context corresponding to the innermost stack frame to
-  // be returned by GetContextFrame.
-  const MDRawContextMIPS* context_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STACKWALKER_MIPS_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalker_ppc.h b/breakpad/linux-x86/include/breakpad/processor/stackwalker_ppc.h
deleted file mode 100644
index 012e5c3..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalker_ppc.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalker_ppc.h: ppc-specific stackwalker.
-//
-// Provides stack frames given ppc register context and a memory region
-// corresponding to a ppc stack.
-//
-// Author: Mark Mentovai
-
-
-#ifndef PROCESSOR_STACKWALKER_PPC_H__
-#define PROCESSOR_STACKWALKER_PPC_H__
-
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/common/minidump_format.h"
-#include "google_breakpad/processor/stackwalker.h"
-
-namespace google_breakpad {
-
-class CodeModules;
-
-class StackwalkerPPC : public Stackwalker {
- public:
-  // context is a ppc context object that gives access to ppc-specific
-  // register state corresponding to the innermost called frame to be
-  // included in the stack.  The other arguments are passed directly through
-  // to the base Stackwalker constructor.
-  StackwalkerPPC(const SystemInfo* system_info,
-                 const MDRawContextPPC* context,
-                 MemoryRegion* memory,
-                 const CodeModules* modules,
-                 StackFrameSymbolizer* frame_symbolizer);
-
- private:
-  // Implementation of Stackwalker, using ppc context (stack pointer in %r1,
-  // saved program counter in %srr0) and stack conventions (saved stack
-  // pointer at 0(%r1), return address at 8(0(%r1)).
-  virtual StackFrame* GetContextFrame();
-  virtual StackFrame* GetCallerFrame(const CallStack* stack,
-                                     bool stack_scan_allowed);
-
-  // Stores the CPU context corresponding to the innermost stack frame to
-  // be returned by GetContextFrame.
-  const MDRawContextPPC* context_;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_STACKWALKER_PPC_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalker_ppc64.h b/breakpad/linux-x86/include/breakpad/processor/stackwalker_ppc64.h
deleted file mode 100644
index a406343..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalker_ppc64.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright (c) 2013 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalker_ppc64.h: ppc-specific stackwalker.
-//
-// Provides stack frames given ppc64 register context and a memory region
-// corresponding to a ppc64 stack.
-
-
-#ifndef PROCESSOR_STACKWALKER_PPC64_H__
-#define PROCESSOR_STACKWALKER_PPC64_H__
-
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/common/minidump_format.h"
-#include "google_breakpad/processor/stackwalker.h"
-
-namespace google_breakpad {
-
-class CodeModules;
-
-class StackwalkerPPC64 : public Stackwalker {
- public:
-  // context is a ppc64 context object that gives access to ppc64-specific
-  // register state corresponding to the innermost called frame to be
-  // included in the stack.  The other arguments are passed directly through
-  // to the base Stackwalker constructor.
-  StackwalkerPPC64(const SystemInfo* system_info,
-                   const MDRawContextPPC64* context,
-                   MemoryRegion* memory,
-                   const CodeModules* modules,
-                   StackFrameSymbolizer* frame_symbolizer);
-
- private:
-  // Implementation of Stackwalker, using ppc64 context (stack pointer in %r1,
-  // saved program counter in %srr0) and stack conventions (saved stack
-  // pointer at 0(%r1), return address at 8(0(%r1)).
-  virtual StackFrame* GetContextFrame();
-  virtual StackFrame* GetCallerFrame(const CallStack* stack,
-                                     bool stack_scan_allowed);
-
-  // Stores the CPU context corresponding to the innermost stack frame to
-  // be returned by GetContextFrame.
-  const MDRawContextPPC64* context_;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_STACKWALKER_PPC64_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalker_sparc.h b/breakpad/linux-x86/include/breakpad/processor/stackwalker_sparc.h
deleted file mode 100644
index e8f2a38..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalker_sparc.h
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalker_sparc.h: sparc-specific stackwalker.
-//
-// Provides stack frames given sparc register context and a memory region
-// corresponding to an sparc stack.
-//
-// Author: Michael Shang
-
-
-#ifndef PROCESSOR_STACKWALKER_SPARC_H__
-#define PROCESSOR_STACKWALKER_SPARC_H__
-
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/common/minidump_format.h"
-#include "google_breakpad/processor/stackwalker.h"
-
-namespace google_breakpad {
-
-class CodeModules;
-
-class StackwalkerSPARC : public Stackwalker {
- public:
-  // context is a sparc context object that gives access to sparc-specific
-  // register state corresponding to the innermost called frame to be
-  // included in the stack.  The other arguments are passed directly through
-  // to the base Stackwalker constructor.
-  StackwalkerSPARC(const SystemInfo* system_info,
-                   const MDRawContextSPARC* context,
-                   MemoryRegion* memory,
-                   const CodeModules* modules,
-                   StackFrameSymbolizer* frame_symbolizer);
-
- private:
-  // Implementation of Stackwalker, using sparc context (%fp, %sp, %pc) and
-  // stack conventions
-  virtual StackFrame* GetContextFrame();
-  virtual StackFrame* GetCallerFrame(const CallStack* stack,
-                                     bool stack_scan_allowed);
-
-  // Stores the CPU context corresponding to the innermost stack frame to
-  // be returned by GetContextFrame.
-  const MDRawContextSPARC* context_;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_STACKWALKER_SPARC_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalker_unittest_utils.h b/breakpad/linux-x86/include/breakpad/processor/stackwalker_unittest_utils.h
deleted file mode 100644
index 73ceb19..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalker_unittest_utils.h
+++ /dev/null
@@ -1,211 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// Mock classes for writing stackwalker tests, shared amongst architectures.
-
-#ifndef PROCESSOR_STACKWALKER_UNITTEST_UTILS_H_
-#define PROCESSOR_STACKWALKER_UNITTEST_UTILS_H_
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string>
-#include <vector>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/processor/code_module.h"
-#include "google_breakpad/processor/code_modules.h"
-#include "google_breakpad/processor/memory_region.h"
-#include "google_breakpad/processor/symbol_supplier.h"
-#include "google_breakpad/processor/system_info.h"
-
-class MockMemoryRegion: public google_breakpad::MemoryRegion {
- public:
-  MockMemoryRegion(): base_address_(0) { }
-
-  // Set this region's address and contents. If we have placed an
-  // instance of this class in a test fixture class, individual tests
-  // can use this to provide the region's contents.
-  void Init(uint64_t base_address, const string &contents) {
-    base_address_ = base_address;
-    contents_ = contents;
-  }
-
-  uint64_t GetBase() const { return base_address_; }
-  uint32_t GetSize() const { return contents_.size(); }
-
-  bool GetMemoryAtAddress(uint64_t address, uint8_t  *value) const {
-    return GetMemoryLittleEndian(address, value);
-  }
-  bool GetMemoryAtAddress(uint64_t address, uint16_t *value) const {
-    return GetMemoryLittleEndian(address, value);
-  }
-  bool GetMemoryAtAddress(uint64_t address, uint32_t *value) const {
-    return GetMemoryLittleEndian(address, value);
-  }
-  bool GetMemoryAtAddress(uint64_t address, uint64_t *value) const {
-    return GetMemoryLittleEndian(address, value);
-  }
-  void Print() const {
-    assert(false);
-  }
-
- private:
-  // Fetch a little-endian value from ADDRESS in contents_ whose size
-  // is BYTES, and store it in *VALUE. Return true on success.
-  template<typename ValueType>
-  bool GetMemoryLittleEndian(uint64_t address, ValueType *value) const {
-    if (address < base_address_ ||
-        address - base_address_ + sizeof(ValueType) > contents_.size())
-      return false;
-    ValueType v = 0;
-    int start = address - base_address_;
-    // The loop condition is odd, but it's correct for size_t.
-    for (size_t i = sizeof(ValueType) - 1; i < sizeof(ValueType); i--)
-      v = (v << 8) | static_cast<unsigned char>(contents_[start + i]);
-    *value = v;
-    return true;
-  }
-
-  uint64_t base_address_;
-  string contents_;
-};
-
-class MockCodeModule: public google_breakpad::CodeModule {
- public:
-  MockCodeModule(uint64_t base_address, uint64_t size,
-                 const string &code_file, const string &version)
-      : base_address_(base_address), size_(size), code_file_(code_file) { }
-
-  uint64_t base_address()       const { return base_address_; }
-  uint64_t size()               const { return size_; }
-  string code_file()        const { return code_file_; }
-  string code_identifier()  const { return code_file_; }
-  string debug_file()       const { return code_file_; }
-  string debug_identifier() const { return code_file_; }
-  string version()          const { return version_; }
-  const google_breakpad::CodeModule *Copy() const {
-    abort(); // Tests won't use this.
-  }
-
- private:
-  uint64_t base_address_;
-  uint64_t size_;
-  string code_file_;
-  string version_;
-};
-
-class MockCodeModules: public google_breakpad::CodeModules {
- public:  
-  typedef google_breakpad::CodeModule CodeModule;
-  typedef google_breakpad::CodeModules CodeModules;
-
-  void Add(const MockCodeModule *module) { 
-    modules_.push_back(module);
-  }
-
-  unsigned int module_count() const { return modules_.size(); }
-
-  const CodeModule *GetModuleForAddress(uint64_t address) const {
-    for (ModuleVector::const_iterator i = modules_.begin();
-         i != modules_.end(); i++) {
-      const MockCodeModule *module = *i;
-      if (module->base_address() <= address &&
-          address - module->base_address() < module->size())
-        return module;
-    }
-    return NULL;
-  };
-
-  const CodeModule *GetMainModule() const { return modules_[0]; }
-
-  const CodeModule *GetModuleAtSequence(unsigned int sequence) const {
-    return modules_.at(sequence);
-  }
-
-  const CodeModule *GetModuleAtIndex(unsigned int index) const {
-    return modules_.at(index);
-  }
-
-  const CodeModules *Copy() const { abort(); } // Tests won't use this.
-
- private:  
-  typedef std::vector<const MockCodeModule *> ModuleVector;
-  ModuleVector modules_;
-};
-
-class MockSymbolSupplier: public google_breakpad::SymbolSupplier {
- public:
-  typedef google_breakpad::CodeModule CodeModule;
-  typedef google_breakpad::SystemInfo SystemInfo;
-  MOCK_METHOD3(GetSymbolFile, SymbolResult(const CodeModule *module,
-                                           const SystemInfo *system_info,
-                                           string *symbol_file));
-  MOCK_METHOD4(GetSymbolFile, SymbolResult(const CodeModule *module,
-                                           const SystemInfo *system_info,
-                                           string *symbol_file,
-                                           string *symbol_data));
-  MOCK_METHOD5(GetCStringSymbolData, SymbolResult(const CodeModule *module,
-                                                  const SystemInfo *system_info,
-                                                  string *symbol_file,
-                                                  char **symbol_data,
-                                                  size_t *symbol_data_size));
-  MOCK_METHOD1(FreeSymbolData, void(const CodeModule *module));
-
-  // Copies the passed string contents into a newly allocated buffer.
-  // The newly allocated buffer will be freed during destruction.
-  char* CopySymbolDataAndOwnTheCopy(const std::string &info,
-                                    size_t *symbol_data_size) {
-    *symbol_data_size = info.size() + 1;
-    char *symbol_data = new char[*symbol_data_size];
-    memcpy(symbol_data, info.c_str(), info.size());
-    symbol_data[info.size()] = '\0';
-    symbol_data_to_free_.push_back(symbol_data);
-    return symbol_data;
-  }
-
-  virtual ~MockSymbolSupplier() {
-    for (SymbolDataVector::const_iterator i = symbol_data_to_free_.begin();
-         i != symbol_data_to_free_.end(); i++) {
-      char* symbol_data = *i;
-      delete [] symbol_data;
-    }
-  }
-
- private:
-  // List of symbol data to be freed upon destruction
-  typedef std::vector<char*> SymbolDataVector;
-  SymbolDataVector symbol_data_to_free_;
-};
-
-#endif // PROCESSOR_STACKWALKER_UNITTEST_UTILS_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/stackwalker_x86.h b/breakpad/linux-x86/include/breakpad/processor/stackwalker_x86.h
deleted file mode 100644
index 0659a13..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/stackwalker_x86.h
+++ /dev/null
@@ -1,117 +0,0 @@
-// -*- mode: c++ -*-
-
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// stackwalker_x86.h: x86-specific stackwalker.
-//
-// Provides stack frames given x86 register context and a memory region
-// corresponding to an x86 stack.
-//
-// Author: Mark Mentovai
-
-
-#ifndef PROCESSOR_STACKWALKER_X86_H__
-#define PROCESSOR_STACKWALKER_X86_H__
-
-#include <vector>
-
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/common/minidump_format.h"
-#include "google_breakpad/processor/stackwalker.h"
-#include "google_breakpad/processor/stack_frame_cpu.h"
-#include "processor/cfi_frame_info.h"
-
-namespace google_breakpad {
-
-class CodeModules;
-
-
-class StackwalkerX86 : public Stackwalker {
- public:
-  // context is an x86 context object that gives access to x86-specific
-  // register state corresponding to the innermost called frame to be
-  // included in the stack.  The other arguments are passed directly through
-  // to the base Stackwalker constructor.
-  StackwalkerX86(const SystemInfo* system_info,
-                 const MDRawContextX86* context,
-                 MemoryRegion* memory,
-                 const CodeModules* modules,
-                 StackFrameSymbolizer* frame_symbolizer);
-
- private:
-  // A STACK CFI-driven frame walker for the X86.
-  typedef SimpleCFIWalker<uint32_t, MDRawContextX86> CFIWalker;
-
-  // Implementation of Stackwalker, using x86 context (%ebp, %esp, %eip) and
-  // stack conventions (saved %ebp at [%ebp], saved %eip at 4[%ebp], or
-  // alternate conventions as guided by any WindowsFrameInfo available for the
-  // code in question.).
-  virtual StackFrame* GetContextFrame();
-  virtual StackFrame* GetCallerFrame(const CallStack* stack,
-                                     bool stack_scan_allowed);
-
-  // Use windows_frame_info (derived from STACK WIN and FUNC records)
-  // to construct the frame that called frames.back(). The caller
-  // takes ownership of the returned frame. Return NULL on failure.
-  StackFrameX86* GetCallerByWindowsFrameInfo(
-      const vector<StackFrame*> &frames,
-      WindowsFrameInfo* windows_frame_info,
-      bool stack_scan_allowed);
-
-  // Use cfi_frame_info (derived from STACK CFI records) to construct
-  // the frame that called frames.back(). The caller takes ownership
-  // of the returned frame. Return NULL on failure.
-  StackFrameX86* GetCallerByCFIFrameInfo(const vector<StackFrame*> &frames,
-                                         CFIFrameInfo* cfi_frame_info);
-
-  // Assuming a traditional frame layout --- where the caller's %ebp
-  // has been pushed just after the return address and the callee's
-  // %ebp points to the saved %ebp --- construct the frame that called
-  // frames.back(). The caller takes ownership of the returned frame.
-  // Return NULL on failure.
-  StackFrameX86* GetCallerByEBPAtBase(const vector<StackFrame*> &frames,
-                                      bool stack_scan_allowed);
-
-  // Stores the CPU context corresponding to the innermost stack frame to
-  // be returned by GetContextFrame.
-  const MDRawContextX86* context_;
-
-  // Our register map, for cfi_walker_.
-  static const CFIWalker::RegisterSet cfi_register_map_[];
-
-  // Our CFI frame walker.
-  const CFIWalker cfi_walker_;
-};
-
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_STACKWALKER_X86_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/static_address_map-inl.h b/breakpad/linux-x86/include/breakpad/processor/static_address_map-inl.h
deleted file mode 100644
index 67e0797..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/static_address_map-inl.h
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// static_address_map-inl.h: StaticAddressMap implementation.
-//
-// See static_address_map.h for documentation.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_STATIC_ADDRESS_MAP_INL_H__
-#define PROCESSOR_STATIC_ADDRESS_MAP_INL_H__
-
-#include "processor/static_address_map.h"
-
-#include "processor/logging.h"
-
-namespace google_breakpad {
-
-template<typename AddressType, typename EntryType>
-bool StaticAddressMap<AddressType, EntryType>::Retrieve(
-    const AddressType &address,
-    const EntryType *&entry, AddressType *entry_address) const {
-
-  // upper_bound gives the first element whose key is greater than address,
-  // but we want the first element whose key is less than or equal to address.
-  // Decrement the iterator to get there, but not if the upper_bound already
-  // points to the beginning of the map - in that case, address is lower than
-  // the lowest stored key, so return false.
-
-  MapConstIterator iterator = map_.upper_bound(address);
-  if (iterator == map_.begin())
-    return false;
-  --iterator;
-
-  entry = iterator.GetValuePtr();
-  // Make sure AddressType is a copyable basic type
-  if (entry_address)
-    *entry_address = iterator.GetKey();
-
-  return true;
-}
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STATIC_ADDRESS_MAP_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/static_address_map.h b/breakpad/linux-x86/include/breakpad/processor/static_address_map.h
deleted file mode 100644
index 6bafc66..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/static_address_map.h
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// static_address_map.h: StaticAddressMap.
-//
-// StaticAddressMap is a wrapper class of StaticMap, just as AddressMap wraps
-// std::map.  StaticAddressMap provides read-only Retrieve() operation, similar
-// as AddressMap.  However, the difference between StaticAddressMap and
-// AddressMap is that StaticAddressMap does not support dynamic operation
-// Store() due to the static nature of the underlying StaticMap.
-//
-// See address_map.h for reference.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_STATIC_ADDRESS_MAP_H__
-#define PROCESSOR_STATIC_ADDRESS_MAP_H__
-
-#include "processor/static_map-inl.h"
-
-namespace google_breakpad {
-
-// AddressType MUST be a basic type, e.g.: integer types etc
-// EntryType could be a complex type, so we retrieve its pointer instead.
-template<typename AddressType, typename EntryType>
-class StaticAddressMap {
- public:
-  StaticAddressMap(): map_() { }
-  explicit StaticAddressMap(const char *map_data): map_(map_data) { }
-
-  // Locates the entry stored at the highest address less than or equal to
-  // the address argument.  If there is no such range, returns false.  The
-  // entry is returned in entry, which is a required argument.  If
-  // entry_address is not NULL, it will be set to the address that the entry
-  // was stored at.
-  bool Retrieve(const AddressType &address,
-                const EntryType *&entry, AddressType *entry_address) const;
-
- private:
-  friend class ModuleComparer;
-  // Convenience types.
-  typedef StaticAddressMap* SelfPtr;
-  typedef StaticMap<AddressType, EntryType> AddressToEntryMap;
-  typedef typename AddressToEntryMap::const_iterator MapConstIterator;
-
-  AddressToEntryMap map_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STATIC_ADDRESS_MAP_H__
-
diff --git a/breakpad/linux-x86/include/breakpad/processor/static_contained_range_map-inl.h b/breakpad/linux-x86/include/breakpad/processor/static_contained_range_map-inl.h
deleted file mode 100644
index 777c762..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/static_contained_range_map-inl.h
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// static_contained_range_map-inl.h: Hierarchically-organized range map,
-// i.e., StaticContainedRangeMap implementation.
-//
-// See static_contained_range_map.h for documentation.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_STATIC_CONTAINED_RANGE_MAP_INL_H__
-#define PROCESSOR_STATIC_CONTAINED_RANGE_MAP_INL_H__
-
-#include "processor/static_contained_range_map.h"
-#include "processor/logging.h"
-
-namespace google_breakpad {
-
-template<typename AddressType, typename EntryType>
-StaticContainedRangeMap<AddressType, EntryType>::StaticContainedRangeMap(
-    const char *base)
-    : base_(*(reinterpret_cast<const AddressType*>(base))),
-      entry_size_(*(reinterpret_cast<const uint32_t*>(base + sizeof(base_)))),
-      entry_ptr_(reinterpret_cast<const EntryType *>(
-          base + sizeof(base_) + sizeof(entry_size_))),
-      map_(base + sizeof(base_) + sizeof(entry_size_) + entry_size_) {
-  if (entry_size_ == 0)
-    entry_ptr_ = NULL;
-}
-
-
-template<typename AddressType, typename EntryType>
-bool StaticContainedRangeMap<AddressType, EntryType>::RetrieveRange(
-    const AddressType &address, const EntryType *&entry) const {
-
-  // Get an iterator to the child range whose high address is equal to or
-  // greater than the supplied address.  If the supplied address is higher
-  // than all of the high addresses in the range, then this range does not
-  // contain a child at address, so return false.  If the supplied address
-  // is lower than the base address of the child range, then it is not within
-  // the child range, so return false.
-  MapConstIterator iterator = map_.lower_bound(address);
-
-  if (iterator == map_.end())
-    return false;
-
-  const char *memory_child =
-      reinterpret_cast<const char*>(iterator.GetValuePtr());
-
-  StaticContainedRangeMap child_map(memory_child);
-
-  if (address < child_map.base_)
-    return false;
-
-  // The child in iterator->second contains the specified address.  Find out
-  // if it has a more-specific descendant that also contains it.  If it does,
-  // it will set |entry| appropriately.  If not, set |entry| to the child.
-  if (!child_map.RetrieveRange(address, entry))
-    entry = child_map.entry_ptr_;
-
-  return true;
-}
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STATIC_CONTAINED_RANGE_MAP_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/static_contained_range_map.h b/breakpad/linux-x86/include/breakpad/processor/static_contained_range_map.h
deleted file mode 100644
index 6a9b8b7..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/static_contained_range_map.h
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// static_contained_range_map.h: StaticContainedRangeMap.
-//
-// StaticContainedRangeMap is similar to ContainedRangeMap.  However,
-// StaticContainedRangeMap wraps a StaticMap instead of std::map, and does not
-// support dynamic operations like StoreRange(...).
-// StaticContainedRangeMap provides same RetrieveRange(...) interfaces as
-// ContainedRangeMap.
-//
-// Please see contained_range_map.h for more documentation.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_STATIC_CONTAINED_RANGE_MAP_H__
-#define PROCESSOR_STATIC_CONTAINED_RANGE_MAP_H__
-
-#include "processor/static_map-inl.h"
-
-namespace google_breakpad {
-
-template<typename AddressType, typename EntryType>
-class StaticContainedRangeMap {
- public:
-  StaticContainedRangeMap(): base_(), entry_size_(), entry_ptr_(), map_() { }
-  explicit StaticContainedRangeMap(const char *base);
-
-  // Retrieves the most specific (smallest) descendant range encompassing
-  // the specified address.  This method will only return entries held by
-  // child ranges, and not the entry contained by |this|.  This is necessary
-  // to support a sparsely-populated root range.  If no descendant range
-  // encompasses the address, returns false.
-  bool RetrieveRange(const AddressType &address, const EntryType *&entry) const;
-
- private:
-  friend class ModuleComparer;
-  // AddressToRangeMap stores pointers.  This makes reparenting simpler in
-  // StoreRange, because it doesn't need to copy entire objects.
-  typedef StaticContainedRangeMap* SelfPtr;
-  typedef
-  StaticMap<AddressType, StaticContainedRangeMap> AddressToRangeMap;
-  typedef typename AddressToRangeMap::const_iterator MapConstIterator;
-
-  // The base address of this range.  The high address does not need to
-  // be stored, because it is used as the key to an object in its parent's
-  // map, and all ContainedRangeMaps except for the root range are contained
-  // within maps.  The root range does not actually contain an entry, so its
-  // base_ field is meaningless, and the fact that it has no parent and thus
-  // no key is unimportant.  For this reason, the base_ field should only be
-  // is accessed on child ContainedRangeMap objects, and never on |this|.
-  AddressType base_;
-
-  // The entry corresponding to this range.  The root range does not
-  // actually contain an entry, so its entry_ field is meaningless.  For
-  // this reason, the entry_ field should only be accessed on child
-  // ContainedRangeMap objects, and never on |this|.
-  uint32_t entry_size_;
-  const EntryType *entry_ptr_;
-
-  // The map containing child ranges, keyed by each child range's high
-  // address.  This is a pointer to avoid allocating map structures for
-  // leaf nodes, where they are not needed.
-  AddressToRangeMap map_;
-};
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_STATIC_CONTAINED_RANGE_MAP_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/static_map-inl.h b/breakpad/linux-x86/include/breakpad/processor/static_map-inl.h
deleted file mode 100644
index e6aac6a..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/static_map-inl.h
+++ /dev/null
@@ -1,176 +0,0 @@
-// Copyright 2010 Google Inc. All Rights Reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// static_map-inl.h: StaticMap implementation.
-//
-// See static_map.h for documentation.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-
-#ifndef PROCESSOR_STATIC_MAP_INL_H__
-#define PROCESSOR_STATIC_MAP_INL_H__
-
-#include "processor/static_map.h"
-#include "processor/static_map_iterator-inl.h"
-#include "processor/logging.h"
-
-namespace google_breakpad {
-
-template<typename Key, typename Value, typename Compare>
-StaticMap<Key, Value, Compare>::StaticMap(const char* raw_data)
-    : raw_data_(raw_data),
-      compare_() {
-  // First 4 Bytes store the number of nodes.
-  num_nodes_ = *(reinterpret_cast<const uint32_t*>(raw_data_));
-
-  offsets_ = reinterpret_cast<const uint32_t*>(
-      raw_data_ + sizeof(num_nodes_));
-
-  keys_ = reinterpret_cast<const Key*>(
-      raw_data_ + (1 + num_nodes_) * sizeof(uint32_t));
-}
-
-// find(), lower_bound() and upper_bound() implement binary search algorithm.
-template<typename Key, typename Value, typename Compare>
-StaticMapIterator<Key, Value, Compare>
-StaticMap<Key, Value, Compare>::find(const Key &key) const {
-  int begin = 0;
-  int end = num_nodes_;
-  int middle;
-  int compare_result;
-  while (begin < end) {
-    middle = begin + (end - begin) / 2;
-    compare_result = compare_(key, GetKeyAtIndex(middle));
-    if (compare_result == 0)
-      return IteratorAtIndex(middle);
-    if (compare_result < 0) {
-      end = middle;
-    } else {
-      begin = middle + 1;
-    }
-  }
-  return this->end();
-}
-
-template<typename Key, typename Value, typename Compare>
-StaticMapIterator<Key, Value, Compare>
-StaticMap<Key, Value, Compare>::lower_bound(const Key &key) const {
-  int begin = 0;
-  int end = num_nodes_;
-  int middle;
-  int comp_result;
-  while (begin < end) {
-    middle = begin + (end - begin) / 2;
-    comp_result = compare_(key, GetKeyAtIndex(middle));
-    if (comp_result == 0)
-      return IteratorAtIndex(middle);
-    if (comp_result < 0) {
-      end = middle;
-    } else {
-      begin = middle + 1;
-    }
-  }
-  return IteratorAtIndex(begin);
-}
-
-template<typename Key, typename Value, typename Compare>
-StaticMapIterator<Key, Value, Compare>
-StaticMap<Key, Value, Compare>::upper_bound(const Key &key) const {
-  int begin = 0;
-  int end = num_nodes_;
-  int middle;
-  int compare_result;
-  while (begin < end) {
-    middle = begin + (end - begin) / 2;
-    compare_result = compare_(key, GetKeyAtIndex(middle));
-    if (compare_result == 0)
-      return IteratorAtIndex(middle + 1);
-    if (compare_result < 0) {
-      end = middle;
-    } else {
-      begin = middle + 1;
-    }
-  }
-  return IteratorAtIndex(begin);
-}
-
-template<typename Key, typename Value, typename Compare>
-bool StaticMap<Key, Value, Compare>::ValidateInMemoryStructure() const {
-  // check the number of nodes is non-negative:
-  if (!raw_data_) return false;
-  int32_t num_nodes = *(reinterpret_cast<const int32_t*>(raw_data_));
-  if (num_nodes < 0) {
-    BPLOG(INFO) << "StaticMap check failed: negative number of nodes";
-    return false;
-  }
-
-  int node_index = 0;
-  if (num_nodes_) {
-    uint64_t first_offset = sizeof(int32_t) * (num_nodes_ + 1)
-                           + sizeof(Key) * num_nodes_;
-    // Num_nodes_ is too large.
-    if (first_offset > 0xffffffffUL) {
-      BPLOG(INFO) << "StaticMap check failed: size exceeds limit";
-      return false;
-    }
-    if (offsets_[node_index] != static_cast<uint32_t>(first_offset)) {
-      BPLOG(INFO) << "StaticMap check failed: first node offset is incorrect";
-      return false;
-    }
-  }
-
-  for (node_index = 1; node_index < num_nodes_; ++node_index) {
-    // Check offsets[i] is strictly increasing:
-    if (offsets_[node_index] <= offsets_[node_index - 1]) {
-      BPLOG(INFO) << "StaticMap check failed: node offsets non-increasing";
-      return false;
-    }
-    // Check Key[i] is strictly increasing as no duplicate keys are allowed.
-    if (compare_(GetKeyAtIndex(node_index),
-                 GetKeyAtIndex(node_index - 1)) <= 0) {
-      BPLOG(INFO) << "StaticMap check failed: node keys non-increasing";
-      return false;
-    }
-  }
-  return true;
-}
-
-template<typename Key, typename Value, typename Compare>
-const Key StaticMap<Key, Value, Compare>::GetKeyAtIndex(int index) const {
-  if (index < 0 || index >= num_nodes_) {
-    BPLOG(ERROR) << "Key index out of range error";
-    // Key type is required to be primitive type.  Return 0 if index is invalid.
-    return 0;
-  }
-  return keys_[index];
-}
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STATIC_MAP_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/static_map.h b/breakpad/linux-x86/include/breakpad/processor/static_map.h
deleted file mode 100644
index 9723ab2..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/static_map.h
+++ /dev/null
@@ -1,144 +0,0 @@
-// Copyright 2010 Google Inc. All Rights Reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// static_map.h: StaticMap.
-//
-// StaticMap provides lookup interfaces and iterators similar as stl::map's.
-// These lookup operations are purely Read-Only, thus memory
-// allocation & deallocation is mostly avoided (intentionally).
-//
-// The chunk of memory should contain data with pre-defined pattern:
-// **************** header ***************
-// uint32 (4 bytes): number of nodes
-// uint32 (4 bytes): address offset of node1's mapped_value
-// uint32 (4 bytes): address offset of node2's mapped_value
-// ...
-// uint32 (4 bytes): address offset of nodeN's mapped_value
-//
-// ************* Key array ************
-// (X bytes): node1's key
-// (X bytes): node2's key
-// ...
-// (X bytes): nodeN's key
-//
-// ************* Value array **********
-// (? bytes): node1's mapped_value
-// (? bytes): node2's mapped_value
-// ...
-// (? bytes): nodeN's mapped_value
-//
-// REQUIREMENT: Key type MUST be primitive type or pointers so that:
-// X = sizeof(typename Key);
-//
-// Note: since address offset is stored as uint32, user should keep in mind that
-// StaticMap only supports up to 4GB size of memory data.
-
-// Author: Siyang Xie (lambxsy@google.com)
-
-
-#ifndef PROCESSOR_STATIC_MAP_H__
-#define PROCESSOR_STATIC_MAP_H__
-
-#include "processor/static_map_iterator-inl.h"
-
-namespace google_breakpad {
-
-// Default functor to compare keys.
-template<typename Key>
-class DefaultCompare {
- public:
-  int operator()(const Key &k1, const Key &k2) const {
-    if (k1 < k2) return -1;
-    if (k1 == k2) return 0;
-    return 1;
-  }
-};
-
-template<typename Key, typename Value, typename Compare = DefaultCompare<Key> >
-class StaticMap {
- public:
-  typedef StaticMapIterator<Key, Value, Compare> iterator;
-  typedef StaticMapIterator<Key, Value, Compare> const_iterator;
-
-  StaticMap() : raw_data_(0),
-                num_nodes_(0),
-                offsets_(0),
-                compare_() { }
-
-  explicit StaticMap(const char* raw_data);
-
-  inline bool empty() const { return num_nodes_ == 0; }
-  inline unsigned int size() const { return num_nodes_; }
-
-  // Return iterators.
-  inline iterator begin() const { return IteratorAtIndex(0); }
-  inline iterator last() const { return IteratorAtIndex(num_nodes_ - 1); }
-  inline iterator end() const { return IteratorAtIndex(num_nodes_); }
-  inline iterator IteratorAtIndex(int index) const {
-    return iterator(raw_data_, index);
-  }
-
-  // Lookup operations.
-  iterator find(const Key &k) const;
-
-  // lower_bound(k) searches in a sorted range for the first element that has a
-  // key not less than the argument k.
-  iterator lower_bound(const Key &k) const;
-
-  // upper_bound(k) searches in a sorted range for the first element that has a
-  // key greater than the argument k.
-  iterator upper_bound(const Key &k) const;
-
-  // Checks if the underlying memory data conforms to the predefined pattern:
-  // first check the number of nodes is non-negative,
-  // then check both offsets and keys are strictly increasing (sorted).
-  bool ValidateInMemoryStructure() const;
-
- private:
-  const Key GetKeyAtIndex(int i) const;
-
-  // Start address of a raw memory chunk with serialized data.
-  const char* raw_data_;
-
-  // Number of nodes in the static map.
-  int32_t num_nodes_;
-
-  // Array of offset addresses for stored values.
-  // For example:
-  // address_of_i-th_node_value = raw_data_ + offsets_[i]
-  const uint32_t* offsets_;
-
-  // keys_[i] = key of i_th node
-  const Key* keys_;
-
-  Compare compare_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STATIC_MAP_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/static_map_iterator-inl.h b/breakpad/linux-x86/include/breakpad/processor/static_map_iterator-inl.h
deleted file mode 100644
index 7a7db5a..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/static_map_iterator-inl.h
+++ /dev/null
@@ -1,147 +0,0 @@
-// Copyright 2010 Google Inc. All Rights Reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// static_map_iterator-inl.h: StaticMapIterator implementation.
-//
-// See static_map_iterator.h for documentation.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_STATIC_MAP_ITERATOR_INL_H__
-#define PROCESSOR_STATIC_MAP_ITERATOR_INL_H__
-
-#include "processor/static_map_iterator.h"
-
-#include "processor/logging.h"
-
-namespace google_breakpad {
-
-template<typename Key, typename Value, typename Compare>
-StaticMapIterator<Key, Value, Compare>::StaticMapIterator(const char* base,
-                                                            const int &index):
-      index_(index), base_(base) {
-  // See static_map.h for documentation on
-  // bytes format of serialized StaticMap data.
-  num_nodes_ = *(reinterpret_cast<const int32_t*>(base_));
-  offsets_ = reinterpret_cast<const uint32_t*>(base_ + sizeof(num_nodes_));
-  keys_ = reinterpret_cast<const Key*>(
-      base_ + (1 + num_nodes_) * sizeof(num_nodes_));
-}
-
-// Increment & Decrement operators:
-template<typename Key, typename Value, typename Compare>
-StaticMapIterator<Key, Value, Compare>&
-StaticMapIterator<Key, Value, Compare>::operator++() {
-  if (!IsValid()) {
-    BPLOG(ERROR) << "operator++ on invalid iterator";
-    return *this;
-  }
-  if (++index_ > num_nodes_) index_ = num_nodes_;
-  return *this;
-}
-
-template<typename Key, typename Value, typename Compare>
-StaticMapIterator<Key, Value, Compare>
-StaticMapIterator<Key, Value, Compare>::operator++(int postfix_operator) {
-  if (!IsValid()) {
-    BPLOG(ERROR) << "operator++ on invalid iterator";
-    return *this;
-  }
-  StaticMapIterator<Key, Value, Compare> tmp = *this;
-  if (++index_ > num_nodes_) index_ = num_nodes_;
-  return tmp;
-}
-
-template<typename Key, typename Value, typename Compare>
-StaticMapIterator<Key, Value, Compare>&
-StaticMapIterator<Key, Value, Compare>::operator--() {
-  if (!IsValid()) {
-    BPLOG(ERROR) << "operator++ on invalid iterator";
-    return *this;
-  }
-
-  if (--index_ < 0) index_ = 0;
-  return *this;
-}
-
-template<typename Key, typename Value, typename Compare>
-StaticMapIterator<Key, Value, Compare>
-StaticMapIterator<Key, Value, Compare>::operator--(int postfix_operator) {
-  if (!IsValid()) {
-    BPLOG(ERROR) << "operator++ on invalid iterator";
-    return *this;
-  }
-  StaticMapIterator<Key, Value, Compare> tmp = *this;
-
-  if (--index_ < 0) index_ = 0;
-  return tmp;
-}
-
-template<typename Key, typename Value, typename Compare>
-const Key* StaticMapIterator<Key, Value, Compare>::GetKeyPtr() const {
-  if (!IsValid()) {
-    BPLOG(ERROR) << "call GetKeyPtr() on invalid iterator";
-    return NULL;
-  }
-  return &(keys_[index_]);
-}
-
-template<typename Key, typename Value, typename Compare>
-const char* StaticMapIterator<Key, Value, Compare>::GetValueRawPtr() const {
-  if (!IsValid()) {
-    BPLOG(ERROR) << "call GetValuePtr() on invalid iterator";
-    return NULL;
-  }
-  return base_ + offsets_[index_];
-}
-
-template<typename Key, typename Value, typename Compare>
-bool StaticMapIterator<Key, Value, Compare>::operator==(
-    const StaticMapIterator<Key, Value, Compare>& x) const {
-  return base_ == x.base_ && index_ == x.index_;
-}
-
-template<typename Key, typename Value, typename Compare>
-bool StaticMapIterator<Key, Value, Compare>::operator!=(
-    const StaticMapIterator<Key, Value, Compare>& x) const {
-  // Only need to compare base_ and index_.
-  // Other data members are auxiliary.
-  return base_ != x.base_ || index_ != x.index_;
-}
-
-template<typename Key, typename Value, typename Compare>
-bool StaticMapIterator<Key, Value, Compare>::IsValid() const {
-  if (!base_ || index_ < 0 || index_ > num_nodes_)
-    return false;
-
-  return true;
-}
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STATIC_MAP_ITERATOR_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/static_map_iterator.h b/breakpad/linux-x86/include/breakpad/processor/static_map_iterator.h
deleted file mode 100644
index 1af8fff..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/static_map_iterator.h
+++ /dev/null
@@ -1,112 +0,0 @@
-// Copyright 2010 Google Inc. All Rights Reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// static_map_iterator.h: StaticMapIterator template class declaration.
-//
-// StaticMapIterator provides increment and decrement operators to iterate
-// through a StaticMap map.  It does not provide *, -> operators, user should
-// use GetKeyPtr(), GetKey(), GetValuePtr() interfaces to retrieve data or
-// pointer to data.  StaticMapIterator is essentially a const_iterator.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-
-#ifndef PROCESSOR_STATIC_MAP_ITERATOR_H__
-#define PROCESSOR_STATIC_MAP_ITERATOR_H__
-
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-// Forward declaration.
-template<typename Key, typename Value, typename Compare> class StaticMap;
-
-// StaticMapIterator does not support operator*() or operator->(),
-// User should use GetKey(), GetKeyPtr(), GetValuePtr() instead;
-template<typename Key, typename Value, typename Compare>
-class StaticMapIterator {
- public:
-  // Constructors.
-  StaticMapIterator(): index_(-1), base_(NULL) { }
-
-  // Increment & Decrement operators:
-  StaticMapIterator& operator++();
-  StaticMapIterator operator++(int post_fix_operator);
-
-  StaticMapIterator& operator--();
-  StaticMapIterator operator--(int post_fix_operator);
-
-  // Interface for retrieving data / pointer to data.
-  const Key* GetKeyPtr() const;
-
-  // Run time error will occur if GetKey() is called on an invalid iterator.
-  inline const Key GetKey() const { return *GetKeyPtr(); }
-
-  // return a raw memory pointer that points to the start address of value.
-  const char* GetValueRawPtr() const;
-
-  // return a reinterpret-casted pointer to the value.
-  inline const Value* GetValuePtr() const {
-    return reinterpret_cast<const Value*>(GetValueRawPtr());
-  }
-
-  bool operator==(const StaticMapIterator& x) const;
-  bool operator!=(const StaticMapIterator& x) const;
-
-  // Check if this iterator is valid.
-  // If iterator is invalid, user is forbidden to use ++/-- operator
-  // or interfaces for retrieving data / pointer to data.
-  bool IsValid() const;
-
- private:
-  friend class StaticMap<Key, Value, Compare>;
-
-  // Only StaticMap can call this constructor.
-  explicit StaticMapIterator(const char* base, const int32_t &index);
-
-  // Index of node that the iterator is pointing to.
-  int32_t index_;
-
-  // Beginning address of the serialized map data.
-  const char* base_;
-
-  // Number of nodes in the map.  Use it to identify end() iterator.
-  int32_t num_nodes_;
-
-  // offsets_ is an array of offset addresses of mapped values.
-  // For example:
-  // address_of_i-th_node_value = base_ + offsets_[i]
-  const uint32_t* offsets_;
-
-  // keys_[i] = key of i_th node.
-  const Key* keys_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STATIC_MAP_ITERATOR_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/static_range_map-inl.h b/breakpad/linux-x86/include/breakpad/processor/static_range_map-inl.h
deleted file mode 100644
index f6cef1a..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/static_range_map-inl.h
+++ /dev/null
@@ -1,130 +0,0 @@
-// Copyright (c) 2010 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// static_range_map-inl.h: StaticRangeMap implementation.
-//
-// See static_range_map.h for documentation.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_STATIC_RANGE_MAP_INL_H__
-#define PROCESSOR_STATIC_RANGE_MAP_INL_H__
-
-#include "processor/static_range_map.h"
-#include "processor/logging.h"
-
-namespace google_breakpad {
-
-template<typename AddressType, typename EntryType>
-bool StaticRangeMap<AddressType, EntryType>::RetrieveRange(
-    const AddressType &address, const EntryType *&entry,
-    AddressType *entry_base, AddressType *entry_size) const {
-  MapConstIterator iterator = map_.lower_bound(address);
-  if (iterator == map_.end())
-    return false;
-
-  // The map is keyed by the high address of each range, so |address| is
-  // guaranteed to be lower than the range's high address.  If |range| is
-  // not directly preceded by another range, it's possible for address to
-  // be below the range's low address, though.  When that happens, address
-  // references something not within any range, so return false.
-
-  const Range *range = iterator.GetValuePtr();
-
-  // Make sure AddressType and EntryType are copyable basic types
-  // e.g.: integer types, pointers etc
-  if (address < range->base())
-    return false;
-
-  entry = range->entryptr();
-  if (entry_base)
-    *entry_base = range->base();
-  if (entry_size)
-    *entry_size = iterator.GetKey() - range->base() + 1;
-
-  return true;
-}
-
-
-template<typename AddressType, typename EntryType>
-bool StaticRangeMap<AddressType, EntryType>::RetrieveNearestRange(
-    const AddressType &address, const EntryType *&entry,
-    AddressType *entry_base, AddressType *entry_size) const {
-  // If address is within a range, RetrieveRange can handle it.
-  if (RetrieveRange(address, entry, entry_base, entry_size))
-    return true;
-
-  // upper_bound gives the first element whose key is greater than address,
-  // but we want the first element whose key is less than or equal to address.
-  // Decrement the iterator to get there, but not if the upper_bound already
-  // points to the beginning of the map - in that case, address is lower than
-  // the lowest stored key, so return false.
-
-  MapConstIterator iterator = map_.upper_bound(address);
-  if (iterator == map_.begin())
-    return false;
-  --iterator;
-
-  const Range *range = iterator.GetValuePtr();
-  entry = range->entryptr();
-  if (entry_base)
-    *entry_base = range->base();
-  if (entry_size)
-    *entry_size = iterator.GetKey() - range->base() + 1;
-
-  return true;
-}
-
-template<typename AddressType, typename EntryType>
-bool StaticRangeMap<AddressType, EntryType>::RetrieveRangeAtIndex(
-    int index, const EntryType *&entry,
-    AddressType *entry_base, AddressType *entry_size) const {
-
-  if (index >= GetCount()) {
-    BPLOG(ERROR) << "Index out of range: " << index << "/" << GetCount();
-    return false;
-  }
-
-  MapConstIterator iterator = map_.IteratorAtIndex(index);
-
-  const Range *range = iterator.GetValuePtr();
-
-  entry = range->entryptr();
-  if (entry_base)
-    *entry_base = range->base();
-  if (entry_size)
-    *entry_size = iterator.GetKey() - range->base() + 1;
-
-  return true;
-}
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_STATIC_RANGE_MAP_INL_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/static_range_map.h b/breakpad/linux-x86/include/breakpad/processor/static_range_map.h
deleted file mode 100644
index 91aabb0..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/static_range_map.h
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// static_range_map.h: StaticRangeMap.
-//
-// StaticRangeMap is similar as RangeMap.  However, StaticRangeMap wraps a
-// StaticMap instead of std::map, and does not support dynamic operations like
-// StoreRange(...).  StaticRangeMap provides same Retrieve*() interfaces as
-// RangeMap.  Please see range_map.h for more documentation.
-//
-// Author: Siyang Xie (lambxsy@google.com)
-
-#ifndef PROCESSOR_STATIC_RANGE_MAP_H__
-#define PROCESSOR_STATIC_RANGE_MAP_H__
-
-
-#include "processor/static_map-inl.h"
-
-namespace google_breakpad {
-
-// AddressType is basic type, e.g.: integer types, pointers etc
-// EntryType could be a complex type, so we retrieve its pointer instead.
-template<typename AddressType, typename EntryType>
-class StaticRangeMap {
- public:
-  StaticRangeMap(): map_() { }
-  explicit StaticRangeMap(const char *memory): map_(memory) { }
-
-  // Locates the range encompassing the supplied address.  If there is
-  // no such range, returns false.  entry_base and entry_size, if non-NULL,
-  // are set to the base and size of the entry's range.
-  bool RetrieveRange(const AddressType &address, const EntryType *&entry,
-                     AddressType *entry_base, AddressType *entry_size) const;
-
-  // Locates the range encompassing the supplied address, if one exists.
-  // If no range encompasses the supplied address, locates the nearest range
-  // to the supplied address that is lower than the address.  Returns false
-  // if no range meets these criteria.  entry_base and entry_size, if
-  // non-NULL, are set to the base and size of the entry's range.
-  bool RetrieveNearestRange(const AddressType &address, const EntryType *&entry,
-                            AddressType *entry_base, AddressType *entry_size)
-                            const;
-
-  // Treating all ranges as a list ordered by the address spaces that they
-  // occupy, locates the range at the index specified by index.  Returns
-  // false if index is larger than the number of ranges stored.  entry_base
-  // and entry_size, if non-NULL, are set to the base and size of the entry's
-  // range.
-  //
-  // RetrieveRangeAtIndex is not optimized for speedy operation.
-  bool RetrieveRangeAtIndex(int index, const EntryType *&entry,
-                            AddressType *entry_base, AddressType *entry_size)
-                            const;
-
-  // Returns the number of ranges stored in the RangeMap.
-  inline int GetCount() const { return map_.size(); }
-
- private:
-  friend class ModuleComparer;
-  class Range {
-   public:
-    AddressType base() const {
-      return *(reinterpret_cast<const AddressType*>(this));
-    }
-    const EntryType* entryptr() const {
-      return reinterpret_cast<const EntryType*>(this + sizeof(AddressType));
-    }
-  };
-
-  // Convenience types.
-  typedef StaticRangeMap* SelfPtr;
-  typedef StaticMap<AddressType, Range> AddressToRangeMap;
-  typedef typename AddressToRangeMap::const_iterator MapConstIterator;
-
-  AddressToRangeMap map_;
-};
-
-}  // namespace google_breakpad
-
-#endif  // PROCESSOR_STATIC_RANGE_MAP_H__
diff --git a/breakpad/linux-x86/include/breakpad/processor/symbolic_constants_win.h b/breakpad/linux-x86/include/breakpad/processor/symbolic_constants_win.h
deleted file mode 100644
index c05c916..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/symbolic_constants_win.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (c) 2015 Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// ntstatus_reason_win.h: Windows NTSTATUS code to string.
-//
-// Provides a means to convert NTSTATUS codes to strings.
-//
-// Author: Ben Wagner
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_SYMBOLIC_CONSTANTS_WIN_H_
-#define GOOGLE_BREAKPAD_PROCESSOR_SYMBOLIC_CONSTANTS_WIN_H_
-
-#include <string>
-
-#include "google_breakpad/common/breakpad_types.h"
-
-namespace google_breakpad {
-
-/* Converts a NTSTATUS code to a reason string. */
-std::string NTStatusToString(uint32_t ntstatus);
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_SYMBOLIC_CONSTANTS_WIN_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/synth_minidump.h b/breakpad/linux-x86/include/breakpad/processor/synth_minidump.h
deleted file mode 100644
index 8dac878..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/synth_minidump.h
+++ /dev/null
@@ -1,372 +0,0 @@
-// -*- mode: C++ -*-
-
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Original author: Jim Blandy <jimb@mozilla.com> <jimb@red-bean.com>
-
-// synth_minidump.h: Interface to SynthMinidump: fake minidump generator.
-//
-// We treat a minidump file as the concatenation of a bunch of
-// test_assembler::Sections. The file header, stream directory,
-// streams, memory regions, strings, and so on --- each is a Section
-// that eventually gets appended to the minidump. Dump, Memory,
-// Context, Thread, and so on all inherit from test_assembler::Section.
-// For example:
-//
-//    using google_breakpad::test_assembler::kLittleEndian;
-//    using google_breakpad::SynthMinidump::Context;
-//    using google_breakpad::SynthMinidump::Dump;
-//    using google_breakpad::SynthMinidump::Memory;
-//    using google_breakpad::SynthMinidump::Thread;
-//    
-//    Dump minidump(MD_NORMAL, kLittleEndian);
-//    
-//    Memory stack1(minidump, 0x569eb0a9);
-//    ... build contents of stack1 with test_assembler::Section functions ...
-//    
-//    MDRawContextX86 x86_context1;
-//    x86_context1.context_flags = MD_CONTEXT_X86;
-//    x86_context1.eip = 0x7c90eb94;
-//    x86_context1.esp = 0x569eb0a9;
-//    x86_context1.ebp = x86_context1.esp + something appropriate;
-//    Context context1(minidump, x86_context1);
-//    
-//    Thread thread1(minidump, 0xe4a4821d, stack1, context1);
-//    
-//    minidump.Add(&stack1);
-//    minidump.Add(&context1);
-//    minidump.Add(&thread1);
-//    minidump.Finish();
-//    
-//    string contents;
-//    EXPECT_TRUE(minidump.GetContents(&contents));
-//    // contents now holds the bytes of a minidump file
-//
-// Because the test_assembler classes let us write Label references to
-// sections before the Labels' values are known, this gives us
-// flexibility in how we put the dump together: minidump pieces can
-// hold the file offsets of other minidump pieces before the
-// referents' positions have been decided. As long as everything has
-// been placed by the time we call dump.GetContents to obtain the
-// bytes, all the Labels' values will be known, and everything will
-// get patched up appropriately.
-//   
-// The dump.Add(thing) functions append THINGS's contents to the
-// minidump, but they also do two other things:
-//
-// - dump.Add(thing) invokes thing->Finish, which tells *thing the
-//   offset within the file at which it was placed, and allows *thing
-//   to do any final content generation.
-//
-// - If THING is something which should receive an entry in some sort
-//   of list or directory, then dump.Add(THING) automatically creates
-//   the appropriate directory or list entry. Streams must appear in
-//   the stream directory; memory ranges should be listed in the
-//   memory list; threads should be placed in the thread list; and so
-//   on.
-//
-// By convention, Section subclass constructors that take references
-// to other Sections do not take care of 'Add'ing their arguments to
-// the dump. For example, although the Thread constructor takes
-// references to a Memory and a Context, it does not add them to the
-// dump on the caller's behalf. Rather, the caller is responsible for
-// 'Add'ing every section they create. This allows Sections to be
-// cited from more than one place; for example, Memory ranges are
-// cited both from Thread objects (as their stack contents) and by the
-// memory list stream.
-//
-// If you forget to Add some Section, the Dump::GetContents call will
-// fail, as the test_assembler::Labels used to cite the Section's
-// contents from elsewhere will still be undefined.
-#ifndef PROCESSOR_SYNTH_MINIDUMP_H_
-#define PROCESSOR_SYNTH_MINIDUMP_H_
-
-#include <assert.h>
-
-#include <iostream>
-#include <string>
-
-#include "common/test_assembler.h"
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-#include "google_breakpad/common/minidump_format.h"
-
-namespace google_breakpad {
-
-namespace SynthMinidump {
-
-using test_assembler::Endianness;
-using test_assembler::kBigEndian;
-using test_assembler::kLittleEndian;
-using test_assembler::kUnsetEndian;
-using test_assembler::Label;
-
-class Dump;
-class Memory;
-class String;
-
-// A test_assembler::Section which will be appended to a minidump.
-class Section: public test_assembler::Section {
- public:
-  explicit Section(const Dump &dump);
-
-  // Append an MDLocationDescriptor referring to this section to SECTION.
-  // If 'this' is NULL, append a descriptor with a zero length and MDRVA.
-  //
-  // (I couldn't find the language in the C++ standard that says that
-  // invoking member functions of a NULL pointer to a class type is
-  // bad, if such language exists. Having this function handle NULL
-  // 'this' is convenient, but if it causes trouble, it's not hard to
-  // do differently.)
-  void CiteLocationIn(test_assembler::Section *section) const;
-
-  // Note that this section's contents are complete, and that it has
-  // been placed in the minidump file at OFFSET. The 'Add' member
-  // functions call the Finish member function of the object being
-  // added for you; if you are 'Add'ing this section, you needn't Finish it.
-  virtual void Finish(const Label &offset) { 
-    file_offset_ = offset; size_ = Size();
-  }
-
- protected:
-  // This section's size and offset within the minidump file.
-  Label file_offset_, size_;
-};
-
-// A stream within a minidump file. 'Add'ing a stream to a minidump
-// creates an entry for it in the minidump's stream directory.
-class Stream: public Section {
- public:
-  // Create a stream of type TYPE.  You can append whatever contents
-  // you like to this stream using the test_assembler::Section methods.
-  Stream(const Dump &dump, uint32_t type) : Section(dump), type_(type) { }
-
-  // Append an MDRawDirectory referring to this stream to SECTION.
-  void CiteStreamIn(test_assembler::Section *section) const;
-
- private:
-  // The type of this stream.
-  uint32_t type_;
-};
-
-class SystemInfo: public Stream {
- public:
-  // Create an MD_SYSTEM_INFO_STREAM stream belonging to DUMP holding
-  // an MDRawSystem info structure initialized with the values from
-  // SYSTEM_INFO, except that the csd_version field is replaced with
-  // the file offset of the string CSD_VERSION, which can be 'Add'ed
-  // to the dump at the desired location.
-  // 
-  // Remember that you are still responsible for 'Add'ing CSD_VERSION
-  // to the dump yourself.
-  SystemInfo(const Dump &dump,
-             const MDRawSystemInfo &system_info,
-             const String &csd_version);
-
-  // Stock MDRawSystemInfo information and associated strings, for
-  // writing tests.
-  static const MDRawSystemInfo windows_x86;
-  static const string windows_x86_csd_version;
-};
-
-// An MDString: a string preceded by a 32-bit length.
-class String: public Section {
- public:
-  String(const Dump &dump, const string &value);
-
-  // Append an MDRVA referring to this string to SECTION.
-  void CiteStringIn(test_assembler::Section *section) const;
-};
-
-// A range of memory contents. 'Add'ing a memory range to a minidump
-// creates n entry for it in the minidump's memory list. By
-// convention, the 'start', 'Here', and 'Mark' member functions refer
-// to memory addresses.
-class Memory: public Section {
- public:
-  Memory(const Dump &dump, uint64_t address)
-      : Section(dump), address_(address) { start() = address; }
-
-  // Append an MDMemoryDescriptor referring to this memory range to SECTION.
-  void CiteMemoryIn(test_assembler::Section *section) const;
-
- private:
-  // The process address from which these memory contents were taken.
-  // Shouldn't this be a Label?
-  uint64_t address_;
-};
-
-class Context: public Section {
- public:
-  // Create a context belonging to DUMP whose contents are a copy of CONTEXT.
-  Context(const Dump &dump, const MDRawContextX86 &context);
-  Context(const Dump &dump, const MDRawContextARM &context);
-  Context(const Dump &dump, const MDRawContextMIPS &context);
-  // Add an empty context to the dump.
-  Context(const Dump &dump) : Section(dump) {}
-  // Add constructors for other architectures here. Remember to byteswap.
-};
-
-class Thread: public Section {
- public:
-  // Create a thread belonging to DUMP with the given values, citing
-  // STACK and CONTEXT (which you must Add to the dump separately).
-  Thread(const Dump &dump,
-         uint32_t thread_id,
-         const Memory &stack,
-         const Context &context,
-         uint32_t suspend_count = 0,
-         uint32_t priority_class = 0,
-         uint32_t priority = 0,
-         uint64_t teb = 0);
-};
-
-class Module: public Section {
- public:
-  // Create a module with the given values. Note that CV_RECORD and
-  // MISC_RECORD can be NULL, in which case the corresponding location
-  // descriptior in the minidump will have a length of zero.
-  Module(const Dump &dump,
-         uint64_t base_of_image,
-         uint32_t size_of_image,
-         const String &name,
-         uint32_t time_date_stamp = 1262805309,
-         uint32_t checksum = 0,
-         const MDVSFixedFileInfo &version_info = Module::stock_version_info,
-         const Section *cv_record = NULL,
-         const Section *misc_record = NULL);
-
- private:
-  // A standard MDVSFixedFileInfo structure to use as a default for
-  // minidumps.  There's no reason to make users write out all this crap
-  // over and over.
-  static const MDVSFixedFileInfo stock_version_info;
-};
-
-class Exception : public Stream {
-public:
-  Exception(const Dump &dump,
-            const Context &context,
-            uint32_t thread_id = 0,
-            uint32_t exception_code = 0,
-            uint32_t exception_flags = 0,
-            uint64_t exception_address = 0);
-};
-
-// A list of entries starting with a 32-bit count, like a memory list
-// or a thread list.
-template<typename Element>
-class List: public Stream {
- public:
-  List(const Dump &dump, uint32_t type) : Stream(dump, type), count_(0) {
-    D32(count_label_);
-  }
-
-  // Add ELEMENT to this list.
-  void Add(Element *element) {
-    element->Finish(file_offset_ + Size());
-    Append(*element);
-    count_++;
-  }
-
-  // Return true if this List is empty, false otherwise.
-  bool Empty() { return count_ == 0; }
-
-  // Finish up the contents of this section, mark it as having been
-  // placed at OFFSET.
-  virtual void Finish(const Label &offset) {
-    Stream::Finish(offset);
-    count_label_ = count_;
-  }
-
- private:
-  size_t count_;
-  Label count_label_;
-};
-
-class Dump: public test_assembler::Section {
- public:
-
-  // Create a test_assembler::Section containing a minidump file whose
-  // header uses the given values. ENDIANNESS determines the
-  // endianness of the signature; we set this section's default
-  // endianness by this.
-  Dump(uint64_t flags,
-       Endianness endianness = kLittleEndian,
-       uint32_t version = MD_HEADER_VERSION,
-       uint32_t date_time_stamp = 1262805309);
-
-  // The following functions call OBJECT->Finish(), and append the
-  // contents of OBJECT to this minidump. They also record OBJECT in
-  // whatever directory or list is appropriate for its type. The
-  // stream directory, memory list, thread list, and module list are
-  // accumulated this way.
-  Dump &Add(SynthMinidump::Section *object); // simply append data
-  Dump &Add(Stream *object); // append, record in stream directory
-  Dump &Add(Memory *object); // append, record in memory list
-  Dump &Add(Thread *object); // append, record in thread list
-  Dump &Add(Module *object); // append, record in module list
-
-  // Complete the construction of the minidump, given the Add calls
-  // we've seen up to this point. After this call, this Dump's
-  // contents are complete, all labels should be defined if everything
-  // Cited has been Added, and you may call GetContents on it.
-  void Finish();
-
- private:
-  // A label representing the start of the minidump file.
-  Label file_start_;
-
-  // The stream directory.  We construct this incrementally from
-  // Add(Stream *) calls.
-  SynthMinidump::Section stream_directory_; // The directory's contents.
-  size_t stream_count_;                 // The number of streams so far.
-  Label stream_count_label_;            // Cited in file header.
-  Label stream_directory_rva_;          // The directory's file offset.
-
-  // This minidump's thread list. We construct this incrementally from
-  // Add(Thread *) calls.
-  List<Thread> thread_list_;
-
-  // This minidump's module list. We construct this incrementally from
-  // Add(Module *) calls.
-  List<Module> module_list_;
-
-  // This minidump's memory list. We construct this incrementally from
-  // Add(Memory *) calls. This is actually a list of MDMemoryDescriptors,
-  // not memory ranges --- thus the odd type.
-  List<SynthMinidump::Section> memory_list_;
-};
-
-} // namespace SynthMinidump
-
-} // namespace google_breakpad
-
-#endif  // PROCESSOR_SYNTH_MINIDUMP_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/synth_minidump_unittest_data.h b/breakpad/linux-x86/include/breakpad/processor/synth_minidump_unittest_data.h
deleted file mode 100644
index 3403372..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/synth_minidump_unittest_data.h
+++ /dev/null
@@ -1,418 +0,0 @@
-// -*- mode: C++ -*-
-
-// Not copyrightable: random test data.
-// synth_minidump_unittest_data.h: verbose test data for SynthMinidump tests.
-
-#ifndef PROCESSOR_SYNTH_MINIDUMP_UNITTEST_DATA_H_
-#define PROCESSOR_SYNTH_MINIDUMP_UNITTEST_DATA_H_
-
-#include "google_breakpad/common/minidump_format.h"
-
-static const MDRawContextX86 x86_raw_context = {
-  0xded5d71b,                           // context_flags
-  0x9fdb432e,                           // dr0
-  0x26b7a81a,                           // dr1
-  0xcac7e348,                           // dr2
-  0xcf99ec09,                           // dr3
-  0x7dc8c2cd,                           // dr6
-  0x21deb880,                           // dr7
-
-  // float_save
-  {
-    0x8a5d2bb0,                         // control_word
-    0x0286c4c9,                         // status_word
-    0xf1feea21,                         // tag_word
-    0xb2d40576,                         // error_offset
-    0x48146cde,                         // error_selector
-    0x983f9b21,                         // data_offset
-    0x475be12c,                         // data_selector
-
-    // register_area
-    {
-      0xd9, 0x04, 0x20, 0x6b, 0x88, 0x3a, 0x3f, 0xd5,
-      0x59, 0x7a, 0xa9, 0xeb, 0xd0, 0x5c, 0xdf, 0xfe,
-      0xad, 0xdd, 0x4a, 0x8b, 0x10, 0xcc, 0x9a, 0x33,
-      0xcb, 0xb6, 0xf7, 0x86, 0xcd, 0x69, 0x25, 0xae,
-      0x25, 0xe5, 0x7a, 0xa1, 0x8f, 0xb2, 0x84, 0xd9,
-      0xf7, 0x2d, 0x8a, 0xa1, 0x80, 0x81, 0x7f, 0x67,
-      0x07, 0xa8, 0x23, 0xf1, 0x8c, 0xdc, 0xd8, 0x04,
-      0x8b, 0x9d, 0xb1, 0xcd, 0x61, 0x0c, 0x9c, 0x69,
-      0xc7, 0x8d, 0x17, 0xb6, 0xe5, 0x0b, 0x94, 0xf7,
-      0x78, 0x9b, 0x63, 0x49, 0xba, 0xfc, 0x08, 0x4d
-    },
-
-    0x84c53a90,                         // cr0_npx_state
-  },
-
-  0x79f71e76,                           // gs
-  0x8107bd25,                           // fs
-  0x452d2921,                           // es
-  0x87ec2875,                           // ds
-  0xf8bb73f5,                           // edi
-  0xa63ebb88,                           // esi
-  0x95d35ebe,                           // ebx
-  0x17aa2456,                           // edx
-  0x135fa208,                           // ecx
-  0x500615e6,                           // eax
-  0x66d14205,                           // ebp
-  0x000719a5,                           // eip
-  0x477b481b,                           // cs
-  0x8684dfba,                           // eflags
-  0xe33ccddf,                           // esp
-  0xc0e65d33,                           // ss
-
-  // extended_registers
-  {
-    0x68, 0x63, 0xdf, 0x50, 0xf7, 0x3b, 0xe8, 0xe5,
-    0xcb, 0xd6, 0x66, 0x60, 0xe5, 0xa3, 0x58, 0xb3,
-    0x6f, 0x34, 0xca, 0x02, 0x9b, 0x5f, 0xd0, 0x41,
-    0xbd, 0xc5, 0x2d, 0xf8, 0xff, 0x15, 0xa2, 0xd0,
-    0xe3, 0x2b, 0x3b, 0x8a, 0x9f, 0xc3, 0x9e, 0x28,
-    0x0a, 0xc2, 0xac, 0x3b, 0x67, 0x37, 0x01, 0xfd,
-    0xc3, 0xaf, 0x60, 0xf6, 0x2c, 0x4f, 0xa9, 0x52,
-    0x92, 0xe5, 0x28, 0xde, 0x34, 0xb6, 0x2e, 0x44,
-    0x15, 0xa4, 0xb6, 0xe4, 0xc9, 0x1a, 0x14, 0xb9,
-    0x51, 0x33, 0x3c, 0xe0, 0xc7, 0x94, 0xf0, 0xf7,
-    0x78, 0xdd, 0xe5, 0xca, 0xb7, 0xa6, 0xe0, 0x14,
-    0xa6, 0x03, 0xab, 0x77, 0xad, 0xbd, 0xd2, 0x53,
-    0x3d, 0x07, 0xe7, 0xaf, 0x90, 0x44, 0x71, 0xbe,
-    0x0c, 0xdf, 0x2b, 0x97, 0x40, 0x48, 0xd5, 0xf9,
-    0x62, 0x03, 0x91, 0x84, 0xd6, 0xdd, 0x29, 0x97,
-    0x35, 0x02, 0xfb, 0x59, 0x97, 0xb0, 0xec, 0xa9,
-    0x39, 0x6f, 0x81, 0x71, 0x2a, 0xf0, 0xe7, 0x2c,
-    0x4e, 0x93, 0x90, 0xcb, 0x67, 0x69, 0xde, 0xd7,
-    0x68, 0x3b, 0x0f, 0x69, 0xa8, 0xf4, 0xa8, 0x83,
-    0x42, 0x80, 0x47, 0x65, 0x7a, 0xc9, 0x19, 0x5d,
-    0xcb, 0x43, 0xa5, 0xff, 0xf8, 0x9e, 0x62, 0xf4,
-    0xe2, 0x6c, 0xcc, 0x17, 0x55, 0x7c, 0x0d, 0x5c,
-    0x8d, 0x16, 0x01, 0xd7, 0x3a, 0x0c, 0xf4, 0x7f,
-    0x71, 0xdc, 0x48, 0xe9, 0x4b, 0xfe, 0x1a, 0xd0,
-    0x04, 0x15, 0x33, 0xec, 0x78, 0xc6, 0x7e, 0xde,
-    0x7c, 0x23, 0x18, 0x8d, 0x8f, 0xc2, 0x74, 0xc1,
-    0x48, 0xcd, 0x5d, 0xee, 0xee, 0x81, 0x9e, 0x49,
-    0x47, 0x8a, 0xf8, 0x61, 0xa3, 0x9c, 0x81, 0x96,
-    0xbe, 0x2b, 0x5e, 0xbc, 0xcd, 0x34, 0x0a, 0x2a,
-    0x3b, 0x8b, 0x7d, 0xa1, 0xf2, 0x8d, 0xb4, 0x51,
-    0x9e, 0x14, 0x78, 0xa3, 0x58, 0x65, 0x2d, 0xd6,
-    0x50, 0x40, 0x36, 0x32, 0x31, 0xd4, 0x3e, 0xc2,
-    0xe0, 0x87, 0x1c, 0x05, 0x95, 0x80, 0x84, 0x24,
-    0x08, 0x6f, 0x5b, 0xc7, 0xe1, 0x1d, 0xd5, 0xa3,
-    0x94, 0x44, 0xa1, 0x7c, 0xd8, 0x4b, 0x86, 0xd2,
-    0xc6, 0xa9, 0xf3, 0xe2, 0x4d, 0x6e, 0x1f, 0x0e,
-    0xf2, 0xf5, 0x71, 0xf9, 0x71, 0x05, 0x24, 0xc9,
-    0xc1, 0xe8, 0x91, 0x42, 0x61, 0x86, 0x57, 0x68,
-    0xd9, 0xc9, 0x1d, 0xd5, 0x5a, 0xe9, 0xba, 0xe6,
-    0x15, 0x8f, 0x87, 0xbd, 0x62, 0x56, 0xed, 0xda,
-    0xc2, 0xa5, 0xd5, 0x39, 0xac, 0x05, 0x10, 0x14,
-    0x4a, 0xe7, 0xe7, 0x3c, 0x3f, 0xb7, 0xbb, 0xed,
-    0x01, 0x6e, 0xcd, 0xee, 0x81, 0xb4, 0x62, 0xf4,
-    0x62, 0x16, 0xff, 0x20, 0xb4, 0xf0, 0xbc, 0xff,
-    0x7d, 0xd9, 0xcf, 0x95, 0x30, 0x27, 0xe0, 0x2f,
-    0x98, 0x53, 0x80, 0x15, 0x13, 0xef, 0x44, 0x58,
-    0x12, 0x16, 0xdb, 0x11, 0xef, 0x73, 0x51, 0xcd,
-    0x42, 0x3f, 0x98, 0x6c, 0xc9, 0x68, 0xc3, 0xf4,
-    0x5b, 0x0f, 0x5d, 0x77, 0xed, 0xdf, 0x0f, 0xff,
-    0xb8, 0x69, 0x98, 0x50, 0x77, 0x7a, 0xe8, 0x90,
-    0x27, 0x46, 0x10, 0xd2, 0xb5, 0x00, 0x3b, 0x36,
-    0x43, 0x6d, 0x67, 0x41, 0x20, 0x3a, 0x32, 0xe0,
-    0x2e, 0x5a, 0xfb, 0x4e, 0x4f, 0xa4, 0xf7, 0xc2,
-    0xe6, 0x81, 0x1a, 0x51, 0xa8, 0x7c, 0xd4, 0x60,
-    0x7c, 0x45, 0xe2, 0xba, 0x5b, 0x42, 0xf3, 0xbf,
-    0x28, 0xaa, 0xf2, 0x90, 0xe4, 0x94, 0xdd, 0xaa,
-    0x22, 0xd3, 0x71, 0x33, 0xa1, 0x01, 0x43, 0x0e,
-    0xfa, 0x46, 0xd2, 0x6e, 0x55, 0x5e, 0x49, 0xeb,
-    0x94, 0xf0, 0xb0, 0xb1, 0x2e, 0xf2, 0x3d, 0x6c,
-    0x00, 0x5e, 0x01, 0x56, 0x3b, 0xfd, 0x5b, 0xa1,
-    0x2f, 0x63, 0x1d, 0xbf, 0xf9, 0xd8, 0x13, 0xf7,
-    0x4d, 0xb7, 0x1e, 0x3d, 0x98, 0xd2, 0xee, 0xb8,
-    0x48, 0xc8, 0x5b, 0x91, 0x0f, 0x54, 0x9e, 0x26,
-    0xb2, 0xc7, 0x3a, 0x6c, 0x8a, 0x35, 0xe1, 0xba
-  }
-};
-
-static const uint8_t x86_expected_contents[] = {
-  0x1b, 0xd7, 0xd5, 0xde,
-  0x2e, 0x43, 0xdb, 0x9f,
-  0x1a, 0xa8, 0xb7, 0x26,
-  0x48, 0xe3, 0xc7, 0xca,
-  0x09, 0xec, 0x99, 0xcf,
-  0xcd, 0xc2, 0xc8, 0x7d,
-  0x80, 0xb8, 0xde, 0x21,
-  0xb0, 0x2b, 0x5d, 0x8a,
-  0xc9, 0xc4, 0x86, 0x02,
-  0x21, 0xea, 0xfe, 0xf1,
-  0x76, 0x05, 0xd4, 0xb2,
-  0xde, 0x6c, 0x14, 0x48,
-  0x21, 0x9b, 0x3f, 0x98,
-  0x2c, 0xe1, 0x5b, 0x47,
-
-  // float_save.register_area --- unswapped
-  0xd9, 0x04, 0x20, 0x6b, 0x88, 0x3a, 0x3f, 0xd5,
-  0x59, 0x7a, 0xa9, 0xeb, 0xd0, 0x5c, 0xdf, 0xfe,
-  0xad, 0xdd, 0x4a, 0x8b, 0x10, 0xcc, 0x9a, 0x33,
-  0xcb, 0xb6, 0xf7, 0x86, 0xcd, 0x69, 0x25, 0xae,
-  0x25, 0xe5, 0x7a, 0xa1, 0x8f, 0xb2, 0x84, 0xd9,
-  0xf7, 0x2d, 0x8a, 0xa1, 0x80, 0x81, 0x7f, 0x67,
-  0x07, 0xa8, 0x23, 0xf1, 0x8c, 0xdc, 0xd8, 0x04,
-  0x8b, 0x9d, 0xb1, 0xcd, 0x61, 0x0c, 0x9c, 0x69,
-  0xc7, 0x8d, 0x17, 0xb6, 0xe5, 0x0b, 0x94, 0xf7,
-  0x78, 0x9b, 0x63, 0x49, 0xba, 0xfc, 0x08, 0x4d,
-
-  0x90, 0x3a, 0xc5, 0x84,
-  0x76, 0x1e, 0xf7, 0x79,
-  0x25, 0xbd, 0x07, 0x81,
-  0x21, 0x29, 0x2d, 0x45,
-  0x75, 0x28, 0xec, 0x87,
-  0xf5, 0x73, 0xbb, 0xf8,
-  0x88, 0xbb, 0x3e, 0xa6,
-  0xbe, 0x5e, 0xd3, 0x95,
-  0x56, 0x24, 0xaa, 0x17,
-  0x08, 0xa2, 0x5f, 0x13,
-  0xe6, 0x15, 0x06, 0x50,
-  0x05, 0x42, 0xd1, 0x66,
-  0xa5, 0x19, 0x07, 0x00,
-  0x1b, 0x48, 0x7b, 0x47,
-  0xba, 0xdf, 0x84, 0x86,
-  0xdf, 0xcd, 0x3c, 0xe3,
-  0x33, 0x5d, 0xe6, 0xc0,
-
-  // extended_registers --- unswapped
-  0x68, 0x63, 0xdf, 0x50, 0xf7, 0x3b, 0xe8, 0xe5,
-  0xcb, 0xd6, 0x66, 0x60, 0xe5, 0xa3, 0x58, 0xb3,
-  0x6f, 0x34, 0xca, 0x02, 0x9b, 0x5f, 0xd0, 0x41,
-  0xbd, 0xc5, 0x2d, 0xf8, 0xff, 0x15, 0xa2, 0xd0,
-  0xe3, 0x2b, 0x3b, 0x8a, 0x9f, 0xc3, 0x9e, 0x28,
-  0x0a, 0xc2, 0xac, 0x3b, 0x67, 0x37, 0x01, 0xfd,
-  0xc3, 0xaf, 0x60, 0xf6, 0x2c, 0x4f, 0xa9, 0x52,
-  0x92, 0xe5, 0x28, 0xde, 0x34, 0xb6, 0x2e, 0x44,
-  0x15, 0xa4, 0xb6, 0xe4, 0xc9, 0x1a, 0x14, 0xb9,
-  0x51, 0x33, 0x3c, 0xe0, 0xc7, 0x94, 0xf0, 0xf7,
-  0x78, 0xdd, 0xe5, 0xca, 0xb7, 0xa6, 0xe0, 0x14,
-  0xa6, 0x03, 0xab, 0x77, 0xad, 0xbd, 0xd2, 0x53,
-  0x3d, 0x07, 0xe7, 0xaf, 0x90, 0x44, 0x71, 0xbe,
-  0x0c, 0xdf, 0x2b, 0x97, 0x40, 0x48, 0xd5, 0xf9,
-  0x62, 0x03, 0x91, 0x84, 0xd6, 0xdd, 0x29, 0x97,
-  0x35, 0x02, 0xfb, 0x59, 0x97, 0xb0, 0xec, 0xa9,
-  0x39, 0x6f, 0x81, 0x71, 0x2a, 0xf0, 0xe7, 0x2c,
-  0x4e, 0x93, 0x90, 0xcb, 0x67, 0x69, 0xde, 0xd7,
-  0x68, 0x3b, 0x0f, 0x69, 0xa8, 0xf4, 0xa8, 0x83,
-  0x42, 0x80, 0x47, 0x65, 0x7a, 0xc9, 0x19, 0x5d,
-  0xcb, 0x43, 0xa5, 0xff, 0xf8, 0x9e, 0x62, 0xf4,
-  0xe2, 0x6c, 0xcc, 0x17, 0x55, 0x7c, 0x0d, 0x5c,
-  0x8d, 0x16, 0x01, 0xd7, 0x3a, 0x0c, 0xf4, 0x7f,
-  0x71, 0xdc, 0x48, 0xe9, 0x4b, 0xfe, 0x1a, 0xd0,
-  0x04, 0x15, 0x33, 0xec, 0x78, 0xc6, 0x7e, 0xde,
-  0x7c, 0x23, 0x18, 0x8d, 0x8f, 0xc2, 0x74, 0xc1,
-  0x48, 0xcd, 0x5d, 0xee, 0xee, 0x81, 0x9e, 0x49,
-  0x47, 0x8a, 0xf8, 0x61, 0xa3, 0x9c, 0x81, 0x96,
-  0xbe, 0x2b, 0x5e, 0xbc, 0xcd, 0x34, 0x0a, 0x2a,
-  0x3b, 0x8b, 0x7d, 0xa1, 0xf2, 0x8d, 0xb4, 0x51,
-  0x9e, 0x14, 0x78, 0xa3, 0x58, 0x65, 0x2d, 0xd6,
-  0x50, 0x40, 0x36, 0x32, 0x31, 0xd4, 0x3e, 0xc2,
-  0xe0, 0x87, 0x1c, 0x05, 0x95, 0x80, 0x84, 0x24,
-  0x08, 0x6f, 0x5b, 0xc7, 0xe1, 0x1d, 0xd5, 0xa3,
-  0x94, 0x44, 0xa1, 0x7c, 0xd8, 0x4b, 0x86, 0xd2,
-  0xc6, 0xa9, 0xf3, 0xe2, 0x4d, 0x6e, 0x1f, 0x0e,
-  0xf2, 0xf5, 0x71, 0xf9, 0x71, 0x05, 0x24, 0xc9,
-  0xc1, 0xe8, 0x91, 0x42, 0x61, 0x86, 0x57, 0x68,
-  0xd9, 0xc9, 0x1d, 0xd5, 0x5a, 0xe9, 0xba, 0xe6,
-  0x15, 0x8f, 0x87, 0xbd, 0x62, 0x56, 0xed, 0xda,
-  0xc2, 0xa5, 0xd5, 0x39, 0xac, 0x05, 0x10, 0x14,
-  0x4a, 0xe7, 0xe7, 0x3c, 0x3f, 0xb7, 0xbb, 0xed,
-  0x01, 0x6e, 0xcd, 0xee, 0x81, 0xb4, 0x62, 0xf4,
-  0x62, 0x16, 0xff, 0x20, 0xb4, 0xf0, 0xbc, 0xff,
-  0x7d, 0xd9, 0xcf, 0x95, 0x30, 0x27, 0xe0, 0x2f,
-  0x98, 0x53, 0x80, 0x15, 0x13, 0xef, 0x44, 0x58,
-  0x12, 0x16, 0xdb, 0x11, 0xef, 0x73, 0x51, 0xcd,
-  0x42, 0x3f, 0x98, 0x6c, 0xc9, 0x68, 0xc3, 0xf4,
-  0x5b, 0x0f, 0x5d, 0x77, 0xed, 0xdf, 0x0f, 0xff,
-  0xb8, 0x69, 0x98, 0x50, 0x77, 0x7a, 0xe8, 0x90,
-  0x27, 0x46, 0x10, 0xd2, 0xb5, 0x00, 0x3b, 0x36,
-  0x43, 0x6d, 0x67, 0x41, 0x20, 0x3a, 0x32, 0xe0,
-  0x2e, 0x5a, 0xfb, 0x4e, 0x4f, 0xa4, 0xf7, 0xc2,
-  0xe6, 0x81, 0x1a, 0x51, 0xa8, 0x7c, 0xd4, 0x60,
-  0x7c, 0x45, 0xe2, 0xba, 0x5b, 0x42, 0xf3, 0xbf,
-  0x28, 0xaa, 0xf2, 0x90, 0xe4, 0x94, 0xdd, 0xaa,
-  0x22, 0xd3, 0x71, 0x33, 0xa1, 0x01, 0x43, 0x0e,
-  0xfa, 0x46, 0xd2, 0x6e, 0x55, 0x5e, 0x49, 0xeb,
-  0x94, 0xf0, 0xb0, 0xb1, 0x2e, 0xf2, 0x3d, 0x6c,
-  0x00, 0x5e, 0x01, 0x56, 0x3b, 0xfd, 0x5b, 0xa1,
-  0x2f, 0x63, 0x1d, 0xbf, 0xf9, 0xd8, 0x13, 0xf7,
-  0x4d, 0xb7, 0x1e, 0x3d, 0x98, 0xd2, 0xee, 0xb8,
-  0x48, 0xc8, 0x5b, 0x91, 0x0f, 0x54, 0x9e, 0x26,
-  0xb2, 0xc7, 0x3a, 0x6c, 0x8a, 0x35, 0xe1, 0xba
-};
-
-static const MDRawContextARM arm_raw_context = {
-  // context_flags
-  0x591b9e6a,
-  // iregs
-  {
-    0xa21594de,
-    0x820d8a25,
-    0xc4e133b2,
-    0x173a1c02,
-    0x105fb175,
-    0xe871793f,
-    0x5def70b3,
-    0xcee3a623,
-    0x7b3aa9b8,
-    0x52518537,
-    0x627012c5,
-    0x22723dcc,
-    0x16fcc971,
-    0x20988bcb,
-    0xf1ab806b,
-    0x99d5fc03,
-  },
-  // cpsr
-  0xb70df511,
-  // float_save
-  {
-    // fpscr
-    0xa1e1f7ce1077e6b5ULL,
-    // regs
-    {
-      0xbcb8d002eed7fbdeULL,
-      0x4dd26a43b96ae97fULL,
-      0x8eec22db8b31741cULL,
-      0xfd634bd7c5ad66a0ULL,
-      0x1681da0daeb3debeULL,
-      0x474a32bdf72d0b71ULL,
-      0xcaf464f8b1044834ULL,
-      0xcaa6592ae5c7582aULL,
-      0x4ee46889d877c3dbULL,
-      0xf8930cf301645cf5ULL,
-      0x4da7e9ebba27f7c7ULL,
-      0x69a7b02761944da3ULL,
-      0x2cda2b2e78195c06ULL,
-      0x66b227ab9b460a42ULL,
-      0x7e77e49e52ee0849ULL,
-      0xd62cd9663e76f255ULL,
-      0xe9370f082451514bULL,
-      0x50a1c674dd1b6029ULL,
-      0x405db4575829eac4ULL,
-      0x67b948764649eee7ULL,
-      0x93731885419229d4ULL,
-      0xdb0338bad72a4ce7ULL,
-      0xa0a451f996fca4c8ULL,
-      0xb4508ea668400a45ULL,
-      0xbff28c5c7a142423ULL,
-      0x4f31b42b96f3a431ULL,
-      0x2ce6789d4ea1ff37ULL,
-      0xfa150b52e4f82a3cULL,
-      0xe9ec40449e6ed4f3ULL,
-      0x5ceca87836fe2251ULL,
-      0x66f50de463ee238cULL,
-      0x42823efcd59ab511ULL,
-    },
-    // extra
-    {
-      0xe9e14cd2,
-      0x865bb640,
-      0x9f3f0b3e,
-      0x94a71c52,
-      0x3c012f19,
-      0x6436637c,
-      0x46ccedcb,
-      0x7b341be7,
-    }
-  }
-};
-
-static const uint8_t arm_expected_contents[] = {
-  0x6a, 0x9e, 0x1b, 0x59,
-  0xde, 0x94, 0x15, 0xa2,
-  0x25, 0x8a, 0x0d, 0x82,
-  0xb2, 0x33, 0xe1, 0xc4,
-  0x02, 0x1c, 0x3a, 0x17,
-  0x75, 0xb1, 0x5f, 0x10,
-  0x3f, 0x79, 0x71, 0xe8,
-  0xb3, 0x70, 0xef, 0x5d,
-  0x23, 0xa6, 0xe3, 0xce,
-  0xb8, 0xa9, 0x3a, 0x7b,
-  0x37, 0x85, 0x51, 0x52,
-  0xc5, 0x12, 0x70, 0x62,
-  0xcc, 0x3d, 0x72, 0x22,
-  0x71, 0xc9, 0xfc, 0x16,
-  0xcb, 0x8b, 0x98, 0x20,
-  0x6b, 0x80, 0xab, 0xf1,
-  0x03, 0xfc, 0xd5, 0x99,
-  0x11, 0xf5, 0x0d, 0xb7,
-  0xb5, 0xe6, 0x77, 0x10,
-  0xce, 0xf7, 0xe1, 0xa1,
-  0xde, 0xfb, 0xd7, 0xee,
-  0x02, 0xd0, 0xb8, 0xbc,
-  0x7f, 0xe9, 0x6a, 0xb9,
-  0x43, 0x6a, 0xd2, 0x4d,
-  0x1c, 0x74, 0x31, 0x8b,
-  0xdb, 0x22, 0xec, 0x8e,
-  0xa0, 0x66, 0xad, 0xc5,
-  0xd7, 0x4b, 0x63, 0xfd,
-  0xbe, 0xde, 0xb3, 0xae,
-  0x0d, 0xda, 0x81, 0x16,
-  0x71, 0x0b, 0x2d, 0xf7,
-  0xbd, 0x32, 0x4a, 0x47,
-  0x34, 0x48, 0x04, 0xb1,
-  0xf8, 0x64, 0xf4, 0xca,
-  0x2a, 0x58, 0xc7, 0xe5,
-  0x2a, 0x59, 0xa6, 0xca,
-  0xdb, 0xc3, 0x77, 0xd8,
-  0x89, 0x68, 0xe4, 0x4e,
-  0xf5, 0x5c, 0x64, 0x01,
-  0xf3, 0x0c, 0x93, 0xf8,
-  0xc7, 0xf7, 0x27, 0xba,
-  0xeb, 0xe9, 0xa7, 0x4d,
-  0xa3, 0x4d, 0x94, 0x61,
-  0x27, 0xb0, 0xa7, 0x69,
-  0x06, 0x5c, 0x19, 0x78,
-  0x2e, 0x2b, 0xda, 0x2c,
-  0x42, 0x0a, 0x46, 0x9b,
-  0xab, 0x27, 0xb2, 0x66,
-  0x49, 0x08, 0xee, 0x52,
-  0x9e, 0xe4, 0x77, 0x7e,
-  0x55, 0xf2, 0x76, 0x3e,
-  0x66, 0xd9, 0x2c, 0xd6,
-  0x4b, 0x51, 0x51, 0x24,
-  0x08, 0x0f, 0x37, 0xe9,
-  0x29, 0x60, 0x1b, 0xdd,
-  0x74, 0xc6, 0xa1, 0x50,
-  0xc4, 0xea, 0x29, 0x58,
-  0x57, 0xb4, 0x5d, 0x40,
-  0xe7, 0xee, 0x49, 0x46,
-  0x76, 0x48, 0xb9, 0x67,
-  0xd4, 0x29, 0x92, 0x41,
-  0x85, 0x18, 0x73, 0x93,
-  0xe7, 0x4c, 0x2a, 0xd7,
-  0xba, 0x38, 0x03, 0xdb,
-  0xc8, 0xa4, 0xfc, 0x96,
-  0xf9, 0x51, 0xa4, 0xa0,
-  0x45, 0x0a, 0x40, 0x68,
-  0xa6, 0x8e, 0x50, 0xb4,
-  0x23, 0x24, 0x14, 0x7a,
-  0x5c, 0x8c, 0xf2, 0xbf,
-  0x31, 0xa4, 0xf3, 0x96,
-  0x2b, 0xb4, 0x31, 0x4f,
-  0x37, 0xff, 0xa1, 0x4e,
-  0x9d, 0x78, 0xe6, 0x2c,
-  0x3c, 0x2a, 0xf8, 0xe4,
-  0x52, 0x0b, 0x15, 0xfa,
-  0xf3, 0xd4, 0x6e, 0x9e,
-  0x44, 0x40, 0xec, 0xe9,
-  0x51, 0x22, 0xfe, 0x36,
-  0x78, 0xa8, 0xec, 0x5c,
-  0x8c, 0x23, 0xee, 0x63,
-  0xe4, 0x0d, 0xf5, 0x66,
-  0x11, 0xb5, 0x9a, 0xd5,
-  0xfc, 0x3e, 0x82, 0x42,
-  0xd2, 0x4c, 0xe1, 0xe9,
-  0x40, 0xb6, 0x5b, 0x86,
-  0x3e, 0x0b, 0x3f, 0x9f,
-  0x52, 0x1c, 0xa7, 0x94,
-  0x19, 0x2f, 0x01, 0x3c,
-  0x7c, 0x63, 0x36, 0x64,
-  0xcb, 0xed, 0xcc, 0x46,
-  0xe7, 0x1b, 0x34, 0x7b
-};
-
-#endif // PROCESSOR_SYNTH_MINIDUMP_UNITTEST_DATA_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/tokenize.h b/breakpad/linux-x86/include/breakpad/processor/tokenize.h
deleted file mode 100644
index 9ff571d..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/tokenize.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright (c) 2010, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Implements a Tokenize function for splitting up strings.
-
-#ifndef GOOGLE_BREAKPAD_PROCESSOR_TOKENIZE_H_
-#define GOOGLE_BREAKPAD_PROCESSOR_TOKENIZE_H_
-
-#include <string>
-#include <vector>
-
-#include "common/using_std_string.h"
-
-namespace google_breakpad {
-
-// Splits line into at most max_tokens tokens, separated by any of the
-// characters in separators and placing them in the tokens vector.
-// line is a 0-terminated string that optionally ends with a newline
-// character or combination, which will be removed. 
-// If more tokens than max_tokens are present, the final token is placed
-// into the vector without splitting it up at all.  This modifies line as
-// a side effect.  Returns true if exactly max_tokens tokens are returned,
-// and false if fewer are returned.  This is not considered a failure of
-// Tokenize, but may be treated as a failure if the caller expects an
-// exact, as opposed to maximum, number of tokens.
-
-bool Tokenize(char *line,
-              const char *separators,
-              int max_tokens,
-              std::vector<char*> *tokens);
-// For convenience, since you need a char* to pass to Tokenize.
-// You can call StringToVector on a string, and use &vec[0].
-void StringToVector(const string &str, std::vector<char> &vec);
-
-}  // namespace google_breakpad
-
-#endif  // GOOGLE_BREAKPAD_PROCESSOR_TOKENIZE_H_
diff --git a/breakpad/linux-x86/include/breakpad/processor/windows_frame_info.h b/breakpad/linux-x86/include/breakpad/processor/windows_frame_info.h
deleted file mode 100644
index c92c610..0000000
--- a/breakpad/linux-x86/include/breakpad/processor/windows_frame_info.h
+++ /dev/null
@@ -1,209 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// windows_frame_info.h: Holds debugging information about a stack frame.
-//
-// This structure is specific to Windows debugging information obtained
-// from pdb files using the DIA API.
-//
-// Author: Mark Mentovai
-
-
-#ifndef PROCESSOR_WINDOWS_FRAME_INFO_H__
-#define PROCESSOR_WINDOWS_FRAME_INFO_H__
-
-#include <string.h>
-#include <stdlib.h>
-
-#include <string>
-#include <vector>
-
-#include "common/using_std_string.h"
-#include "google_breakpad/common/breakpad_types.h"
-#include "processor/logging.h"
-#include "processor/tokenize.h"
-
-namespace google_breakpad {
-
-#ifdef _WIN32
-#define strtoull _strtoui64
-#endif
-
-struct WindowsFrameInfo {
- public:
-  enum Validity {
-    VALID_NONE           = 0,
-    VALID_PARAMETER_SIZE = 1,
-    VALID_ALL            = -1
-  };
-
-  // The types for stack_info_.  This is equivalent to MS DIA's
-  // StackFrameTypeEnum.  Each identifies a different type of frame
-  // information, although all are represented in the symbol file in the
-  // same format.  These are used as indices to the stack_info_ array.
-  enum StackInfoTypes {
-    STACK_INFO_FPO = 0,
-    STACK_INFO_TRAP,  // not used here
-    STACK_INFO_TSS,   // not used here
-    STACK_INFO_STANDARD,
-    STACK_INFO_FRAME_DATA,
-    STACK_INFO_LAST,  // must be the last sequentially-numbered item
-    STACK_INFO_UNKNOWN = -1
-  };
-
-  WindowsFrameInfo() : type_(STACK_INFO_UNKNOWN),
-                     valid(VALID_NONE),
-                     prolog_size(0),
-                     epilog_size(0),
-                     parameter_size(0),
-                     saved_register_size(0),
-                     local_size(0),
-                     max_stack_size(0),
-                     allocates_base_pointer(0),
-                     program_string() {}
-
-  WindowsFrameInfo(StackInfoTypes type,
-                 uint32_t set_prolog_size,
-                 uint32_t set_epilog_size,
-                 uint32_t set_parameter_size,
-                 uint32_t set_saved_register_size,
-                 uint32_t set_local_size,
-                 uint32_t set_max_stack_size,
-                 int set_allocates_base_pointer,
-                 const string set_program_string)
-      : type_(type),
-        valid(VALID_ALL),
-        prolog_size(set_prolog_size),
-        epilog_size(set_epilog_size),
-        parameter_size(set_parameter_size),
-        saved_register_size(set_saved_register_size),
-        local_size(set_local_size),
-        max_stack_size(set_max_stack_size),
-        allocates_base_pointer(set_allocates_base_pointer),
-        program_string(set_program_string) {}
-
-  // Parse a textual serialization of a WindowsFrameInfo object from
-  // a string. Returns NULL if parsing fails, or a new object
-  // otherwise. type, rva and code_size are present in the STACK line,
-  // but not the StackFrameInfo structure, so return them as outparams.
-  static WindowsFrameInfo *ParseFromString(const string string,
-                                           int &type,
-                                           uint64_t &rva,
-                                           uint64_t &code_size) {
-    // The format of a STACK WIN record is documented at:
-    //
-    // http://code.google.com/p/google-breakpad/wiki/SymbolFiles
-
-    std::vector<char>  buffer;
-    StringToVector(string, buffer);
-    std::vector<char*> tokens;
-    if (!Tokenize(&buffer[0], " \r\n", 11, &tokens))
-      return NULL;
-
-    type = strtol(tokens[0], NULL, 16);
-    if (type < 0 || type > STACK_INFO_LAST - 1)
-      return NULL;
-
-    rva                           = strtoull(tokens[1],  NULL, 16);
-    code_size                     = strtoull(tokens[2],  NULL, 16);
-    uint32_t prolog_size          =  strtoul(tokens[3],  NULL, 16);
-    uint32_t epilog_size          =  strtoul(tokens[4],  NULL, 16);
-    uint32_t parameter_size       =  strtoul(tokens[5],  NULL, 16);
-    uint32_t saved_register_size  =  strtoul(tokens[6],  NULL, 16);
-    uint32_t local_size           =  strtoul(tokens[7],  NULL, 16);
-    uint32_t max_stack_size       =  strtoul(tokens[8],  NULL, 16);
-    int has_program_string        =  strtoul(tokens[9], NULL, 16);
-
-    const char *program_string = "";
-    int allocates_base_pointer = 0;
-    if (has_program_string) {
-      program_string = tokens[10];
-    } else {
-      allocates_base_pointer = strtoul(tokens[10], NULL, 16);
-    }
-
-    return new WindowsFrameInfo(static_cast<StackInfoTypes>(type),
-                                prolog_size,
-                                epilog_size,
-                                parameter_size,
-                                saved_register_size,
-                                local_size,
-                                max_stack_size,
-                                allocates_base_pointer,
-                                program_string);
-  }
-
-  // CopyFrom makes "this" WindowsFrameInfo object identical to "that".
-  void CopyFrom(const WindowsFrameInfo &that) {
-    type_ = that.type_;
-    valid = that.valid;
-    prolog_size = that.prolog_size;
-    epilog_size = that.epilog_size;
-    parameter_size = that.parameter_size;
-    saved_register_size = that.saved_register_size;
-    local_size = that.local_size;
-    max_stack_size = that.max_stack_size;
-    allocates_base_pointer = that.allocates_base_pointer;
-    program_string = that.program_string;
-  }
-
-  // Clears the WindowsFrameInfo object so that users will see it as though
-  // it contains no information.
-  void Clear() {
-    type_ = STACK_INFO_UNKNOWN;
-    valid = VALID_NONE;
-    program_string.erase();
-  }
-
-  StackInfoTypes type_;
-
-  // Identifies which fields in the structure are valid.  This is of
-  // type Validity, but it is defined as an int because it's not
-  // possible to OR values into an enumerated type.  Users must check
-  // this field before using any other.
-  int valid;
-
-  // These values come from IDiaFrameData.
-  uint32_t prolog_size;
-  uint32_t epilog_size;
-  uint32_t parameter_size;
-  uint32_t saved_register_size;
-  uint32_t local_size;
-  uint32_t max_stack_size;
-
-  // Only one of allocates_base_pointer or program_string will be valid.
-  // If program_string is empty, use allocates_base_pointer.
-  bool allocates_base_pointer;
-  string program_string;
-};
-
-}  // namespace google_breakpad
-
-
-#endif  // PROCESSOR_WINDOWS_FRAME_INFO_H__
diff --git a/breakpad/linux-x86/include/breakpad/third_party/lss/linux_syscall_support.h b/breakpad/linux-x86/include/breakpad/third_party/lss/linux_syscall_support.h
deleted file mode 100644
index 8a42c1c..0000000
--- a/breakpad/linux-x86/include/breakpad/third_party/lss/linux_syscall_support.h
+++ /dev/null
@@ -1,4037 +0,0 @@
-/* Copyright (c) 2005-2011, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ---
- * Author: Markus Gutschke
- */
-
-/* This file includes Linux-specific support functions common to the
- * coredumper and the thread lister; primarily, this is a collection
- * of direct system calls, and a couple of symbols missing from
- * standard header files.
- * There are a few options that the including file can set to control
- * the behavior of this file:
- *
- * SYS_CPLUSPLUS:
- *   The entire header file will normally be wrapped in 'extern "C" { }",
- *   making it suitable for compilation as both C and C++ source. If you
- *   do not want to do this, you can set the SYS_CPLUSPLUS macro to inhibit
- *   the wrapping. N.B. doing so will suppress inclusion of all prerequisite
- *   system header files, too. It is the caller's responsibility to provide
- *   the necessary definitions.
- *
- * SYS_ERRNO:
- *   All system calls will update "errno" unless overriden by setting the
- *   SYS_ERRNO macro prior to including this file. SYS_ERRNO should be
- *   an l-value.
- *
- * SYS_INLINE:
- *   New symbols will be defined "static inline", unless overridden by
- *   the SYS_INLINE macro.
- *
- * SYS_LINUX_SYSCALL_SUPPORT_H
- *   This macro is used to avoid multiple inclusions of this header file.
- *   If you need to include this file more than once, make sure to
- *   unset SYS_LINUX_SYSCALL_SUPPORT_H before each inclusion.
- *
- * SYS_PREFIX:
- *   New system calls will have a prefix of "sys_" unless overridden by
- *   the SYS_PREFIX macro. Valid values for this macro are [0..9] which
- *   results in prefixes "sys[0..9]_". It is also possible to set this
- *   macro to -1, which avoids all prefixes.
- *
- * SYS_SYSCALL_ENTRYPOINT:
- *   Some applications (such as sandboxes that filter system calls), need
- *   to be able to run custom-code each time a system call is made. If this
- *   macro is defined, it expands to the name of a "common" symbol. If
- *   this symbol is assigned a non-NULL pointer value, it is used as the
- *   address of the system call entrypoint.
- *   A pointer to this symbol can be obtained by calling
- *   get_syscall_entrypoint()
- *
- * This file defines a few internal symbols that all start with "LSS_".
- * Do not access these symbols from outside this file. They are not part
- * of the supported API.
- */
-#ifndef SYS_LINUX_SYSCALL_SUPPORT_H
-#define SYS_LINUX_SYSCALL_SUPPORT_H
-
-/* We currently only support x86-32, x86-64, ARM, MIPS, and PPC on Linux.
- * Porting to other related platforms should not be difficult.
- */
-#if (defined(__i386__) || defined(__x86_64__) || defined(__ARM_ARCH_3__) ||   \
-     defined(__mips__) || defined(__PPC__) || defined(__ARM_EABI__) || \
-     defined(__aarch64__)) \
-  && (defined(__linux) || defined(__ANDROID__))
-
-#ifndef SYS_CPLUSPLUS
-#ifdef __cplusplus
-/* Some system header files in older versions of gcc neglect to properly
- * handle being included from C++. As it appears to be harmless to have
- * multiple nested 'extern "C"' blocks, just add another one here.
- */
-extern "C" {
-#endif
-
-#include <errno.h>
-#include <fcntl.h>
-#include <sched.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <stddef.h>
-#include <stdint.h>
-#include <string.h>
-#include <sys/ptrace.h>
-#include <sys/resource.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/syscall.h>
-#include <unistd.h>
-#include <linux/unistd.h>
-#include <endian.h>
-
-#ifdef __mips__
-/* Include definitions of the ABI currently in use.                          */
-#ifdef __ANDROID__
-/* Android doesn't have sgidefs.h, but does have asm/sgidefs.h,
- * which has the definitions we need.
- */
-#include <asm/sgidefs.h>
-#else
-#include <sgidefs.h>
-#endif
-#endif
-#endif
-
-/* The Android NDK's <sys/stat.h> #defines these macros as aliases
- * to their non-64 counterparts. To avoid naming conflict, remove them. */
-#ifdef __ANDROID__
-  /* These are restored by the corresponding #pragma pop_macro near
-   * the end of this file. */
-# pragma push_macro("stat64")
-# pragma push_macro("fstat64")
-# pragma push_macro("lstat64")
-# undef stat64
-# undef fstat64
-# undef lstat64
-#endif
-
-/* As glibc often provides subtly incompatible data structures (and implicit
- * wrapper functions that convert them), we provide our own kernel data
- * structures for use by the system calls.
- * These structures have been developed by using Linux 2.6.23 headers for
- * reference. Note though, we do not care about exact API compatibility
- * with the kernel, and in fact the kernel often does not have a single
- * API that works across architectures. Instead, we try to mimic the glibc
- * API where reasonable, and only guarantee ABI compatibility with the
- * kernel headers.
- * Most notably, here are a few changes that were made to the structures
- * defined by kernel headers:
- *
- * - we only define structures, but not symbolic names for kernel data
- *   types. For the latter, we directly use the native C datatype
- *   (i.e. "unsigned" instead of "mode_t").
- * - in a few cases, it is possible to define identical structures for
- *   both 32bit (e.g. i386) and 64bit (e.g. x86-64) platforms by
- *   standardizing on the 64bit version of the data types. In particular,
- *   this means that we use "unsigned" where the 32bit headers say
- *   "unsigned long".
- * - overall, we try to minimize the number of cases where we need to
- *   conditionally define different structures.
- * - the "struct kernel_sigaction" class of structures have been
- *   modified to more closely mimic glibc's API by introducing an
- *   anonymous union for the function pointer.
- * - a small number of field names had to have an underscore appended to
- *   them, because glibc defines a global macro by the same name.
- */
-
-/* include/linux/dirent.h                                                    */
-struct kernel_dirent64 {
-  unsigned long long d_ino;
-  long long          d_off;
-  unsigned short     d_reclen;
-  unsigned char      d_type;
-  char               d_name[256];
-};
-
-/* include/linux/dirent.h                                                    */
-#if defined(__aarch64__)
-// aarch64 only defines dirent64, just uses that for dirent too.
-#define kernel_dirent kernel_dirent64
-#else
-struct kernel_dirent {
-  long               d_ino;
-  long               d_off;
-  unsigned short     d_reclen;
-  char               d_name[256];
-};
-#endif
-
-/* include/linux/uio.h                                                       */
-struct kernel_iovec {
-  void               *iov_base;
-  unsigned long      iov_len;
-};
-
-/* include/linux/socket.h                                                    */
-struct kernel_msghdr {
-  void               *msg_name;
-  int                msg_namelen;
-  struct kernel_iovec*msg_iov;
-  unsigned long      msg_iovlen;
-  void               *msg_control;
-  unsigned long      msg_controllen;
-  unsigned           msg_flags;
-};
-
-/* include/asm-generic/poll.h                                                */
-struct kernel_pollfd {
-  int                fd;
-  short              events;
-  short              revents;
-};
-
-/* include/linux/resource.h                                                  */
-struct kernel_rlimit {
-  unsigned long      rlim_cur;
-  unsigned long      rlim_max;
-};
-
-/* include/linux/time.h                                                      */
-struct kernel_timespec {
-  long               tv_sec;
-  long               tv_nsec;
-};
-
-/* include/linux/time.h                                                      */
-struct kernel_timeval {
-  long               tv_sec;
-  long               tv_usec;
-};
-
-/* include/linux/resource.h                                                  */
-struct kernel_rusage {
-  struct kernel_timeval ru_utime;
-  struct kernel_timeval ru_stime;
-  long               ru_maxrss;
-  long               ru_ixrss;
-  long               ru_idrss;
-  long               ru_isrss;
-  long               ru_minflt;
-  long               ru_majflt;
-  long               ru_nswap;
-  long               ru_inblock;
-  long               ru_oublock;
-  long               ru_msgsnd;
-  long               ru_msgrcv;
-  long               ru_nsignals;
-  long               ru_nvcsw;
-  long               ru_nivcsw;
-};
-
-#if defined(__i386__) || defined(__ARM_EABI__) || defined(__ARM_ARCH_3__) \
-  || defined(__PPC__)
-
-/* include/asm-{arm,i386,mips,ppc}/signal.h                                  */
-struct kernel_old_sigaction {
-  union {
-    void             (*sa_handler_)(int);
-    void             (*sa_sigaction_)(int, siginfo_t *, void *);
-  };
-  unsigned long      sa_mask;
-  unsigned long      sa_flags;
-  void               (*sa_restorer)(void);
-} __attribute__((packed,aligned(4)));
-#elif (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32)
-  #define kernel_old_sigaction kernel_sigaction
-#elif defined(__aarch64__)
-  // No kernel_old_sigaction defined for arm64.
-#endif
-
-/* Some kernel functions (e.g. sigaction() in 2.6.23) require that the
- * exactly match the size of the signal set, even though the API was
- * intended to be extensible. We define our own KERNEL_NSIG to deal with
- * this.
- * Please note that glibc provides signals [1.._NSIG-1], whereas the
- * kernel (and this header) provides the range [1..KERNEL_NSIG]. The
- * actual number of signals is obviously the same, but the constants
- * differ by one.
- */
-#ifdef __mips__
-#define KERNEL_NSIG 128
-#else
-#define KERNEL_NSIG  64
-#endif
-
-/* include/asm-{arm,aarch64,i386,mips,x86_64}/signal.h                       */
-struct kernel_sigset_t {
-  unsigned long sig[(KERNEL_NSIG + 8*sizeof(unsigned long) - 1)/
-                    (8*sizeof(unsigned long))];
-};
-
-/* include/asm-{arm,i386,mips,x86_64,ppc}/signal.h                           */
-struct kernel_sigaction {
-#ifdef __mips__
-  unsigned long      sa_flags;
-  union {
-    void             (*sa_handler_)(int);
-    void             (*sa_sigaction_)(int, siginfo_t *, void *);
-  };
-  struct kernel_sigset_t sa_mask;
-#else
-  union {
-    void             (*sa_handler_)(int);
-    void             (*sa_sigaction_)(int, siginfo_t *, void *);
-  };
-  unsigned long      sa_flags;
-  void               (*sa_restorer)(void);
-  struct kernel_sigset_t sa_mask;
-#endif
-};
-
-/* include/linux/socket.h                                                    */
-struct kernel_sockaddr {
-  unsigned short     sa_family;
-  char               sa_data[14];
-};
-
-/* include/asm-{arm,aarch64,i386,mips,ppc}/stat.h                            */
-#ifdef __mips__
-#if _MIPS_SIM == _MIPS_SIM_ABI64
-struct kernel_stat {
-#else
-struct kernel_stat64 {
-#endif
-  unsigned           st_dev;
-  unsigned           __pad0[3];
-  unsigned long long st_ino;
-  unsigned           st_mode;
-  unsigned           st_nlink;
-  unsigned           st_uid;
-  unsigned           st_gid;
-  unsigned           st_rdev;
-  unsigned           __pad1[3];
-  long long          st_size;
-  unsigned           st_atime_;
-  unsigned           st_atime_nsec_;
-  unsigned           st_mtime_;
-  unsigned           st_mtime_nsec_;
-  unsigned           st_ctime_;
-  unsigned           st_ctime_nsec_;
-  unsigned           st_blksize;
-  unsigned           __pad2;
-  unsigned long long st_blocks;
-};
-#elif defined __PPC__
-struct kernel_stat64 {
-  unsigned long long st_dev;
-  unsigned long long st_ino;
-  unsigned           st_mode;
-  unsigned           st_nlink;
-  unsigned           st_uid;
-  unsigned           st_gid;
-  unsigned long long st_rdev;
-  unsigned short int __pad2;
-  long long          st_size;
-  long               st_blksize;
-  long long          st_blocks;
-  long               st_atime_;
-  unsigned long      st_atime_nsec_;
-  long               st_mtime_;
-  unsigned long      st_mtime_nsec_;
-  long               st_ctime_;
-  unsigned long      st_ctime_nsec_;
-  unsigned long      __unused4;
-  unsigned long      __unused5;
-};
-#else
-struct kernel_stat64 {
-  unsigned long long st_dev;
-  unsigned char      __pad0[4];
-  unsigned           __st_ino;
-  unsigned           st_mode;
-  unsigned           st_nlink;
-  unsigned           st_uid;
-  unsigned           st_gid;
-  unsigned long long st_rdev;
-  unsigned char      __pad3[4];
-  long long          st_size;
-  unsigned           st_blksize;
-  unsigned long long st_blocks;
-  unsigned           st_atime_;
-  unsigned           st_atime_nsec_;
-  unsigned           st_mtime_;
-  unsigned           st_mtime_nsec_;
-  unsigned           st_ctime_;
-  unsigned           st_ctime_nsec_;
-  unsigned long long st_ino;
-};
-#endif
-
-/* include/asm-{arm,aarch64,i386,mips,x86_64,ppc}/stat.h                     */
-#if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__)
-struct kernel_stat {
-  /* The kernel headers suggest that st_dev and st_rdev should be 32bit
-   * quantities encoding 12bit major and 20bit minor numbers in an interleaved
-   * format. In reality, we do not see useful data in the top bits. So,
-   * we'll leave the padding in here, until we find a better solution.
-   */
-  unsigned short     st_dev;
-  short              pad1;
-  unsigned           st_ino;
-  unsigned short     st_mode;
-  unsigned short     st_nlink;
-  unsigned short     st_uid;
-  unsigned short     st_gid;
-  unsigned short     st_rdev;
-  short              pad2;
-  unsigned           st_size;
-  unsigned           st_blksize;
-  unsigned           st_blocks;
-  unsigned           st_atime_;
-  unsigned           st_atime_nsec_;
-  unsigned           st_mtime_;
-  unsigned           st_mtime_nsec_;
-  unsigned           st_ctime_;
-  unsigned           st_ctime_nsec_;
-  unsigned           __unused4;
-  unsigned           __unused5;
-};
-#elif defined(__x86_64__)
-struct kernel_stat {
-  uint64_t           st_dev;
-  uint64_t           st_ino;
-  uint64_t           st_nlink;
-  unsigned           st_mode;
-  unsigned           st_uid;
-  unsigned           st_gid;
-  unsigned           __pad0;
-  uint64_t           st_rdev;
-  int64_t            st_size;
-  int64_t            st_blksize;
-  int64_t            st_blocks;
-  uint64_t           st_atime_;
-  uint64_t           st_atime_nsec_;
-  uint64_t           st_mtime_;
-  uint64_t           st_mtime_nsec_;
-  uint64_t           st_ctime_;
-  uint64_t           st_ctime_nsec_;
-  int64_t            __unused4[3];
-};
-#elif defined(__PPC__)
-struct kernel_stat {
-  unsigned           st_dev;
-  unsigned long      st_ino;      // ino_t
-  unsigned long      st_mode;     // mode_t
-  unsigned short     st_nlink;    // nlink_t
-  unsigned           st_uid;      // uid_t
-  unsigned           st_gid;      // gid_t
-  unsigned           st_rdev;
-  long               st_size;     // off_t
-  unsigned long      st_blksize;
-  unsigned long      st_blocks;
-  unsigned long      st_atime_;
-  unsigned long      st_atime_nsec_;
-  unsigned long      st_mtime_;
-  unsigned long      st_mtime_nsec_;
-  unsigned long      st_ctime_;
-  unsigned long      st_ctime_nsec_;
-  unsigned long      __unused4;
-  unsigned long      __unused5;
-};
-#elif (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI64)
-struct kernel_stat {
-  unsigned           st_dev;
-  int                st_pad1[3];
-  unsigned           st_ino;
-  unsigned           st_mode;
-  unsigned           st_nlink;
-  unsigned           st_uid;
-  unsigned           st_gid;
-  unsigned           st_rdev;
-  int                st_pad2[2];
-  long               st_size;
-  int                st_pad3;
-  long               st_atime_;
-  long               st_atime_nsec_;
-  long               st_mtime_;
-  long               st_mtime_nsec_;
-  long               st_ctime_;
-  long               st_ctime_nsec_;
-  int                st_blksize;
-  int                st_blocks;
-  int                st_pad4[14];
-};
-#elif defined(__aarch64__)
-struct kernel_stat {
-  unsigned long      st_dev;
-  unsigned long      st_ino;
-  unsigned int       st_mode;
-  unsigned int       st_nlink;
-  unsigned int       st_uid;
-  unsigned int       st_gid;
-  unsigned long      st_rdev;
-  unsigned long      __pad1;
-  long               st_size;
-  int                st_blksize;
-  int                __pad2;
-  long               st_blocks;
-  long               st_atime_;
-  unsigned long      st_atime_nsec_;
-  long               st_mtime_;
-  unsigned long      st_mtime_nsec_;
-  long               st_ctime_;
-  unsigned long      st_ctime_nsec_;
-  unsigned int       __unused4;
-  unsigned int       __unused5;
-};
-#endif
-
-/* include/asm-{arm,aarch64,i386,mips,x86_64,ppc}/statfs.h                   */
-#ifdef __mips__
-#if _MIPS_SIM != _MIPS_SIM_ABI64
-struct kernel_statfs64 {
-  unsigned long      f_type;
-  unsigned long      f_bsize;
-  unsigned long      f_frsize;
-  unsigned long      __pad;
-  unsigned long long f_blocks;
-  unsigned long long f_bfree;
-  unsigned long long f_files;
-  unsigned long long f_ffree;
-  unsigned long long f_bavail;
-  struct { int val[2]; } f_fsid;
-  unsigned long      f_namelen;
-  unsigned long      f_spare[6];
-};
-#endif
-#elif !defined(__x86_64__)
-struct kernel_statfs64 {
-  unsigned long      f_type;
-  unsigned long      f_bsize;
-  unsigned long long f_blocks;
-  unsigned long long f_bfree;
-  unsigned long long f_bavail;
-  unsigned long long f_files;
-  unsigned long long f_ffree;
-  struct { int val[2]; } f_fsid;
-  unsigned long      f_namelen;
-  unsigned long      f_frsize;
-  unsigned long      f_spare[5];
-};
-#endif
-
-/* include/asm-{arm,i386,mips,x86_64,ppc,generic}/statfs.h                   */
-#ifdef __mips__
-struct kernel_statfs {
-  long               f_type;
-  long               f_bsize;
-  long               f_frsize;
-  long               f_blocks;
-  long               f_bfree;
-  long               f_files;
-  long               f_ffree;
-  long               f_bavail;
-  struct { int val[2]; } f_fsid;
-  long               f_namelen;
-  long               f_spare[6];
-};
-#elif defined(__x86_64__)
-struct kernel_statfs {
-  /* x86_64 actually defines all these fields as signed, whereas all other  */
-  /* platforms define them as unsigned. Leaving them at unsigned should not */
-  /* cause any problems. Make sure these are 64-bit even on x32.            */
-  uint64_t           f_type;
-  uint64_t           f_bsize;
-  uint64_t           f_blocks;
-  uint64_t           f_bfree;
-  uint64_t           f_bavail;
-  uint64_t           f_files;
-  uint64_t           f_ffree;
-  struct { int val[2]; } f_fsid;
-  uint64_t           f_namelen;
-  uint64_t           f_frsize;
-  uint64_t           f_spare[5];
-};
-#else
-struct kernel_statfs {
-  unsigned long      f_type;
-  unsigned long      f_bsize;
-  unsigned long      f_blocks;
-  unsigned long      f_bfree;
-  unsigned long      f_bavail;
-  unsigned long      f_files;
-  unsigned long      f_ffree;
-  struct { int val[2]; } f_fsid;
-  unsigned long      f_namelen;
-  unsigned long      f_frsize;
-  unsigned long      f_spare[5];
-};
-#endif
-
-
-/* Definitions missing from the standard header files                        */
-#ifndef O_DIRECTORY
-#if defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || defined(__aarch64__)
-#define O_DIRECTORY             0040000
-#else
-#define O_DIRECTORY             0200000
-#endif
-#endif
-#ifndef NT_PRXFPREG
-#define NT_PRXFPREG             0x46e62b7f
-#endif
-#ifndef PTRACE_GETFPXREGS
-#define PTRACE_GETFPXREGS       ((enum __ptrace_request)18)
-#endif
-#ifndef PR_GET_DUMPABLE
-#define PR_GET_DUMPABLE         3
-#endif
-#ifndef PR_SET_DUMPABLE
-#define PR_SET_DUMPABLE         4
-#endif
-#ifndef PR_GET_SECCOMP
-#define PR_GET_SECCOMP          21
-#endif
-#ifndef PR_SET_SECCOMP
-#define PR_SET_SECCOMP          22
-#endif
-#ifndef AT_FDCWD
-#define AT_FDCWD                (-100)
-#endif
-#ifndef AT_SYMLINK_NOFOLLOW
-#define AT_SYMLINK_NOFOLLOW     0x100
-#endif
-#ifndef AT_REMOVEDIR
-#define AT_REMOVEDIR            0x200
-#endif
-#ifndef MREMAP_FIXED
-#define MREMAP_FIXED            2
-#endif
-#ifndef SA_RESTORER
-#define SA_RESTORER             0x04000000
-#endif
-#ifndef CPUCLOCK_PROF
-#define CPUCLOCK_PROF           0
-#endif
-#ifndef CPUCLOCK_VIRT
-#define CPUCLOCK_VIRT           1
-#endif
-#ifndef CPUCLOCK_SCHED
-#define CPUCLOCK_SCHED          2
-#endif
-#ifndef CPUCLOCK_PERTHREAD_MASK
-#define CPUCLOCK_PERTHREAD_MASK 4
-#endif
-#ifndef MAKE_PROCESS_CPUCLOCK
-#define MAKE_PROCESS_CPUCLOCK(pid, clock)                                     \
-        ((~(int)(pid) << 3) | (int)(clock))
-#endif
-#ifndef MAKE_THREAD_CPUCLOCK
-#define MAKE_THREAD_CPUCLOCK(tid, clock)                                      \
-        ((~(int)(tid) << 3) | (int)((clock) | CPUCLOCK_PERTHREAD_MASK))
-#endif
-
-#ifndef FUTEX_WAIT
-#define FUTEX_WAIT                0
-#endif
-#ifndef FUTEX_WAKE
-#define FUTEX_WAKE                1
-#endif
-#ifndef FUTEX_FD
-#define FUTEX_FD                  2
-#endif
-#ifndef FUTEX_REQUEUE
-#define FUTEX_REQUEUE             3
-#endif
-#ifndef FUTEX_CMP_REQUEUE
-#define FUTEX_CMP_REQUEUE         4
-#endif
-#ifndef FUTEX_WAKE_OP
-#define FUTEX_WAKE_OP             5
-#endif
-#ifndef FUTEX_LOCK_PI
-#define FUTEX_LOCK_PI             6
-#endif
-#ifndef FUTEX_UNLOCK_PI
-#define FUTEX_UNLOCK_PI           7
-#endif
-#ifndef FUTEX_TRYLOCK_PI
-#define FUTEX_TRYLOCK_PI          8
-#endif
-#ifndef FUTEX_PRIVATE_FLAG
-#define FUTEX_PRIVATE_FLAG        128
-#endif
-#ifndef FUTEX_CMD_MASK
-#define FUTEX_CMD_MASK            ~FUTEX_PRIVATE_FLAG
-#endif
-#ifndef FUTEX_WAIT_PRIVATE
-#define FUTEX_WAIT_PRIVATE        (FUTEX_WAIT | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_WAKE_PRIVATE
-#define FUTEX_WAKE_PRIVATE        (FUTEX_WAKE | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_REQUEUE_PRIVATE
-#define FUTEX_REQUEUE_PRIVATE     (FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_CMP_REQUEUE_PRIVATE
-#define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_WAKE_OP_PRIVATE
-#define FUTEX_WAKE_OP_PRIVATE     (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_LOCK_PI_PRIVATE
-#define FUTEX_LOCK_PI_PRIVATE     (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_UNLOCK_PI_PRIVATE
-#define FUTEX_UNLOCK_PI_PRIVATE   (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
-#endif
-#ifndef FUTEX_TRYLOCK_PI_PRIVATE
-#define FUTEX_TRYLOCK_PI_PRIVATE  (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
-#endif
-
-
-#if defined(__x86_64__)
-#ifndef ARCH_SET_GS
-#define ARCH_SET_GS             0x1001
-#endif
-#ifndef ARCH_GET_GS
-#define ARCH_GET_GS             0x1004
-#endif
-#endif
-
-#if defined(__i386__)
-#ifndef __NR_quotactl
-#define __NR_quotactl           131
-#endif
-#ifndef __NR_setresuid
-#define __NR_setresuid          164
-#define __NR_getresuid          165
-#define __NR_setresgid          170
-#define __NR_getresgid          171
-#endif
-#ifndef __NR_rt_sigaction
-#define __NR_rt_sigreturn       173
-#define __NR_rt_sigaction       174
-#define __NR_rt_sigprocmask     175
-#define __NR_rt_sigpending      176
-#define __NR_rt_sigsuspend      179
-#endif
-#ifndef __NR_pread64
-#define __NR_pread64            180
-#endif
-#ifndef __NR_pwrite64
-#define __NR_pwrite64           181
-#endif
-#ifndef __NR_ugetrlimit
-#define __NR_ugetrlimit         191
-#endif
-#ifndef __NR_stat64
-#define __NR_stat64             195
-#endif
-#ifndef __NR_fstat64
-#define __NR_fstat64            197
-#endif
-#ifndef __NR_setresuid32
-#define __NR_setresuid32        208
-#define __NR_getresuid32        209
-#define __NR_setresgid32        210
-#define __NR_getresgid32        211
-#endif
-#ifndef __NR_setfsuid32
-#define __NR_setfsuid32         215
-#define __NR_setfsgid32         216
-#endif
-#ifndef __NR_getdents64
-#define __NR_getdents64         220
-#endif
-#ifndef __NR_gettid
-#define __NR_gettid             224
-#endif
-#ifndef __NR_readahead
-#define __NR_readahead          225
-#endif
-#ifndef __NR_setxattr
-#define __NR_setxattr           226
-#endif
-#ifndef __NR_lsetxattr
-#define __NR_lsetxattr          227
-#endif
-#ifndef __NR_getxattr
-#define __NR_getxattr           229
-#endif
-#ifndef __NR_lgetxattr
-#define __NR_lgetxattr          230
-#endif
-#ifndef __NR_listxattr
-#define __NR_listxattr          232
-#endif
-#ifndef __NR_llistxattr
-#define __NR_llistxattr         233
-#endif
-#ifndef __NR_tkill
-#define __NR_tkill              238
-#endif
-#ifndef __NR_futex
-#define __NR_futex              240
-#endif
-#ifndef __NR_sched_setaffinity
-#define __NR_sched_setaffinity  241
-#define __NR_sched_getaffinity  242
-#endif
-#ifndef __NR_set_tid_address
-#define __NR_set_tid_address    258
-#endif
-#ifndef __NR_clock_gettime
-#define __NR_clock_gettime      265
-#endif
-#ifndef __NR_clock_getres
-#define __NR_clock_getres       266
-#endif
-#ifndef __NR_statfs64
-#define __NR_statfs64           268
-#endif
-#ifndef __NR_fstatfs64
-#define __NR_fstatfs64          269
-#endif
-#ifndef __NR_fadvise64_64
-#define __NR_fadvise64_64       272
-#endif
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set         289
-#endif
-#ifndef __NR_ioprio_get
-#define __NR_ioprio_get         290
-#endif
-#ifndef __NR_openat
-#define __NR_openat             295
-#endif
-#ifndef __NR_fstatat64
-#define __NR_fstatat64          300
-#endif
-#ifndef __NR_unlinkat
-#define __NR_unlinkat           301
-#endif
-#ifndef __NR_move_pages
-#define __NR_move_pages         317
-#endif
-#ifndef __NR_getcpu
-#define __NR_getcpu             318
-#endif
-#ifndef __NR_fallocate
-#define __NR_fallocate          324
-#endif
-/* End of i386 definitions                                                   */
-#elif defined(__ARM_ARCH_3__) || defined(__ARM_EABI__)
-#ifndef __NR_setresuid
-#define __NR_setresuid          (__NR_SYSCALL_BASE + 164)
-#define __NR_getresuid          (__NR_SYSCALL_BASE + 165)
-#define __NR_setresgid          (__NR_SYSCALL_BASE + 170)
-#define __NR_getresgid          (__NR_SYSCALL_BASE + 171)
-#endif
-#ifndef __NR_rt_sigaction
-#define __NR_rt_sigreturn       (__NR_SYSCALL_BASE + 173)
-#define __NR_rt_sigaction       (__NR_SYSCALL_BASE + 174)
-#define __NR_rt_sigprocmask     (__NR_SYSCALL_BASE + 175)
-#define __NR_rt_sigpending      (__NR_SYSCALL_BASE + 176)
-#define __NR_rt_sigsuspend      (__NR_SYSCALL_BASE + 179)
-#endif
-#ifndef __NR_pread64
-#define __NR_pread64            (__NR_SYSCALL_BASE + 180)
-#endif
-#ifndef __NR_pwrite64
-#define __NR_pwrite64           (__NR_SYSCALL_BASE + 181)
-#endif
-#ifndef __NR_ugetrlimit
-#define __NR_ugetrlimit         (__NR_SYSCALL_BASE + 191)
-#endif
-#ifndef __NR_stat64
-#define __NR_stat64             (__NR_SYSCALL_BASE + 195)
-#endif
-#ifndef __NR_fstat64
-#define __NR_fstat64            (__NR_SYSCALL_BASE + 197)
-#endif
-#ifndef __NR_setresuid32
-#define __NR_setresuid32        (__NR_SYSCALL_BASE + 208)
-#define __NR_getresuid32        (__NR_SYSCALL_BASE + 209)
-#define __NR_setresgid32        (__NR_SYSCALL_BASE + 210)
-#define __NR_getresgid32        (__NR_SYSCALL_BASE + 211)
-#endif
-#ifndef __NR_setfsuid32
-#define __NR_setfsuid32         (__NR_SYSCALL_BASE + 215)
-#define __NR_setfsgid32         (__NR_SYSCALL_BASE + 216)
-#endif
-#ifndef __NR_getdents64
-#define __NR_getdents64         (__NR_SYSCALL_BASE + 217)
-#endif
-#ifndef __NR_gettid
-#define __NR_gettid             (__NR_SYSCALL_BASE + 224)
-#endif
-#ifndef __NR_readahead
-#define __NR_readahead          (__NR_SYSCALL_BASE + 225)
-#endif
-#ifndef __NR_setxattr
-#define __NR_setxattr           (__NR_SYSCALL_BASE + 226)
-#endif
-#ifndef __NR_lsetxattr
-#define __NR_lsetxattr          (__NR_SYSCALL_BASE + 227)
-#endif
-#ifndef __NR_getxattr
-#define __NR_getxattr           (__NR_SYSCALL_BASE + 229)
-#endif
-#ifndef __NR_lgetxattr
-#define __NR_lgetxattr          (__NR_SYSCALL_BASE + 230)
-#endif
-#ifndef __NR_listxattr
-#define __NR_listxattr          (__NR_SYSCALL_BASE + 232)
-#endif
-#ifndef __NR_llistxattr
-#define __NR_llistxattr         (__NR_SYSCALL_BASE + 233)
-#endif
-#ifndef __NR_tkill
-#define __NR_tkill              (__NR_SYSCALL_BASE + 238)
-#endif
-#ifndef __NR_futex
-#define __NR_futex              (__NR_SYSCALL_BASE + 240)
-#endif
-#ifndef __NR_sched_setaffinity
-#define __NR_sched_setaffinity  (__NR_SYSCALL_BASE + 241)
-#define __NR_sched_getaffinity  (__NR_SYSCALL_BASE + 242)
-#endif
-#ifndef __NR_set_tid_address
-#define __NR_set_tid_address    (__NR_SYSCALL_BASE + 256)
-#endif
-#ifndef __NR_clock_gettime
-#define __NR_clock_gettime      (__NR_SYSCALL_BASE + 263)
-#endif
-#ifndef __NR_clock_getres
-#define __NR_clock_getres       (__NR_SYSCALL_BASE + 264)
-#endif
-#ifndef __NR_statfs64
-#define __NR_statfs64           (__NR_SYSCALL_BASE + 266)
-#endif
-#ifndef __NR_fstatfs64
-#define __NR_fstatfs64          (__NR_SYSCALL_BASE + 267)
-#endif
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set         (__NR_SYSCALL_BASE + 314)
-#endif
-#ifndef __NR_ioprio_get
-#define __NR_ioprio_get         (__NR_SYSCALL_BASE + 315)
-#endif
-#ifndef __NR_move_pages
-#define __NR_move_pages         (__NR_SYSCALL_BASE + 344)
-#endif
-#ifndef __NR_getcpu
-#define __NR_getcpu             (__NR_SYSCALL_BASE + 345)
-#endif
-/* End of ARM 3/EABI definitions                                                */
-#elif defined(__aarch64__)
-#ifndef __NR_setxattr
-#define __NR_setxattr             5
-#endif
-#ifndef __NR_lsetxattr
-#define __NR_lsetxattr            6
-#endif
-#ifndef __NR_getxattr
-#define __NR_getxattr             8
-#endif
-#ifndef __NR_lgetxattr
-#define __NR_lgetxattr            9
-#endif
-#ifndef __NR_listxattr
-#define __NR_listxattr           11
-#endif
-#ifndef __NR_llistxattr
-#define __NR_llistxattr          12
-#endif
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set          30
-#endif
-#ifndef __NR_ioprio_get
-#define __NR_ioprio_get          31
-#endif
-#ifndef __NR_unlinkat
-#define __NR_unlinkat            35
-#endif
-#ifndef __NR_fallocate
-#define __NR_fallocate           47
-#endif
-#ifndef __NR_openat
-#define __NR_openat              56
-#endif
-#ifndef __NR_quotactl
-#define __NR_quotactl            60
-#endif
-#ifndef __NR_getdents64
-#define __NR_getdents64          61
-#endif
-#ifndef __NR_getdents
-#define __NR_getdents            __NR_getdents64
-#endif
-#ifndef __NR_pread64
-#define __NR_pread64             67
-#endif
-#ifndef __NR_pwrite64
-#define __NR_pwrite64            68
-#endif
-#ifndef __NR_ppoll
-#define __NR_ppoll               73
-#endif
-#ifndef __NR_readlinkat
-#define __NR_readlinkat          78
-#endif
-#ifndef __NR_newfstatat
-#define __NR_newfstatat          79
-#endif
-#ifndef __NR_set_tid_address
-#define __NR_set_tid_address     96
-#endif
-#ifndef __NR_futex
-#define __NR_futex               98
-#endif
-#ifndef __NR_clock_gettime
-#define __NR_clock_gettime      113
-#endif
-#ifndef __NR_clock_getres
-#define __NR_clock_getres       114
-#endif
-#ifndef __NR_sched_setaffinity
-#define __NR_sched_setaffinity  122
-#define __NR_sched_getaffinity  123
-#endif
-#ifndef __NR_tkill
-#define __NR_tkill              130
-#endif
-#ifndef __NR_setresuid
-#define __NR_setresuid          147
-#define __NR_getresuid          148
-#define __NR_setresgid          149
-#define __NR_getresgid          150
-#endif
-#ifndef __NR_gettid
-#define __NR_gettid             178
-#endif
-#ifndef __NR_readahead
-#define __NR_readahead          213
-#endif
-#ifndef __NR_fadvise64
-#define __NR_fadvise64          223
-#endif
-#ifndef __NR_move_pages
-#define __NR_move_pages         239
-#endif
-/* End of aarch64 definitions                                                */
-#elif defined(__x86_64__)
-#ifndef __NR_pread64
-#define __NR_pread64             17
-#endif
-#ifndef __NR_pwrite64
-#define __NR_pwrite64            18
-#endif
-#ifndef __NR_setresuid
-#define __NR_setresuid          117
-#define __NR_getresuid          118
-#define __NR_setresgid          119
-#define __NR_getresgid          120
-#endif
-#ifndef __NR_quotactl
-#define __NR_quotactl           179
-#endif
-#ifndef __NR_gettid
-#define __NR_gettid             186
-#endif
-#ifndef __NR_readahead
-#define __NR_readahead          187
-#endif
-#ifndef __NR_setxattr
-#define __NR_setxattr           188
-#endif
-#ifndef __NR_lsetxattr
-#define __NR_lsetxattr          189
-#endif
-#ifndef __NR_getxattr
-#define __NR_getxattr           191
-#endif
-#ifndef __NR_lgetxattr
-#define __NR_lgetxattr          192
-#endif
-#ifndef __NR_listxattr
-#define __NR_listxattr          194
-#endif
-#ifndef __NR_llistxattr
-#define __NR_llistxattr         195
-#endif
-#ifndef __NR_tkill
-#define __NR_tkill              200
-#endif
-#ifndef __NR_futex
-#define __NR_futex              202
-#endif
-#ifndef __NR_sched_setaffinity
-#define __NR_sched_setaffinity  203
-#define __NR_sched_getaffinity  204
-#endif
-#ifndef __NR_getdents64
-#define __NR_getdents64         217
-#endif
-#ifndef __NR_set_tid_address
-#define __NR_set_tid_address    218
-#endif
-#ifndef __NR_fadvise64
-#define __NR_fadvise64          221
-#endif
-#ifndef __NR_clock_gettime
-#define __NR_clock_gettime      228
-#endif
-#ifndef __NR_clock_getres
-#define __NR_clock_getres       229
-#endif
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set         251
-#endif
-#ifndef __NR_ioprio_get
-#define __NR_ioprio_get         252
-#endif
-#ifndef __NR_openat
-#define __NR_openat             257
-#endif
-#ifndef __NR_newfstatat
-#define __NR_newfstatat         262
-#endif
-#ifndef __NR_unlinkat
-#define __NR_unlinkat           263
-#endif
-#ifndef __NR_move_pages
-#define __NR_move_pages         279
-#endif
-#ifndef __NR_fallocate
-#define __NR_fallocate          285
-#endif
-/* End of x86-64 definitions                                                 */
-#elif defined(__mips__)
-#if _MIPS_SIM == _MIPS_SIM_ABI32
-#ifndef __NR_setresuid
-#define __NR_setresuid          (__NR_Linux + 185)
-#define __NR_getresuid          (__NR_Linux + 186)
-#define __NR_setresgid          (__NR_Linux + 190)
-#define __NR_getresgid          (__NR_Linux + 191)
-#endif
-#ifndef __NR_rt_sigaction
-#define __NR_rt_sigreturn       (__NR_Linux + 193)
-#define __NR_rt_sigaction       (__NR_Linux + 194)
-#define __NR_rt_sigprocmask     (__NR_Linux + 195)
-#define __NR_rt_sigpending      (__NR_Linux + 196)
-#define __NR_rt_sigsuspend      (__NR_Linux + 199)
-#endif
-#ifndef __NR_pread64
-#define __NR_pread64            (__NR_Linux + 200)
-#endif
-#ifndef __NR_pwrite64
-#define __NR_pwrite64           (__NR_Linux + 201)
-#endif
-#ifndef __NR_stat64
-#define __NR_stat64             (__NR_Linux + 213)
-#endif
-#ifndef __NR_fstat64
-#define __NR_fstat64            (__NR_Linux + 215)
-#endif
-#ifndef __NR_getdents64
-#define __NR_getdents64         (__NR_Linux + 219)
-#endif
-#ifndef __NR_gettid
-#define __NR_gettid             (__NR_Linux + 222)
-#endif
-#ifndef __NR_readahead
-#define __NR_readahead          (__NR_Linux + 223)
-#endif
-#ifndef __NR_setxattr
-#define __NR_setxattr           (__NR_Linux + 224)
-#endif
-#ifndef __NR_lsetxattr
-#define __NR_lsetxattr          (__NR_Linux + 225)
-#endif
-#ifndef __NR_getxattr
-#define __NR_getxattr           (__NR_Linux + 227)
-#endif
-#ifndef __NR_lgetxattr
-#define __NR_lgetxattr          (__NR_Linux + 228)
-#endif
-#ifndef __NR_listxattr
-#define __NR_listxattr          (__NR_Linux + 230)
-#endif
-#ifndef __NR_llistxattr
-#define __NR_llistxattr         (__NR_Linux + 231)
-#endif
-#ifndef __NR_tkill
-#define __NR_tkill              (__NR_Linux + 236)
-#endif
-#ifndef __NR_futex
-#define __NR_futex              (__NR_Linux + 238)
-#endif
-#ifndef __NR_sched_setaffinity
-#define __NR_sched_setaffinity  (__NR_Linux + 239)
-#define __NR_sched_getaffinity  (__NR_Linux + 240)
-#endif
-#ifndef __NR_set_tid_address
-#define __NR_set_tid_address    (__NR_Linux + 252)
-#endif
-#ifndef __NR_statfs64
-#define __NR_statfs64           (__NR_Linux + 255)
-#endif
-#ifndef __NR_fstatfs64
-#define __NR_fstatfs64          (__NR_Linux + 256)
-#endif
-#ifndef __NR_clock_gettime
-#define __NR_clock_gettime      (__NR_Linux + 263)
-#endif
-#ifndef __NR_clock_getres
-#define __NR_clock_getres       (__NR_Linux + 264)
-#endif
-#ifndef __NR_openat
-#define __NR_openat             (__NR_Linux + 288)
-#endif
-#ifndef __NR_fstatat
-#define __NR_fstatat            (__NR_Linux + 293)
-#endif
-#ifndef __NR_unlinkat
-#define __NR_unlinkat           (__NR_Linux + 294)
-#endif
-#ifndef __NR_move_pages
-#define __NR_move_pages         (__NR_Linux + 308)
-#endif
-#ifndef __NR_getcpu
-#define __NR_getcpu             (__NR_Linux + 312)
-#endif
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set         (__NR_Linux + 314)
-#endif
-#ifndef __NR_ioprio_get
-#define __NR_ioprio_get         (__NR_Linux + 315)
-#endif
-/* End of MIPS (old 32bit API) definitions */
-#elif  _MIPS_SIM == _MIPS_SIM_ABI64
-#ifndef __NR_pread64
-#define __NR_pread64            (__NR_Linux +  16)
-#endif
-#ifndef __NR_pwrite64
-#define __NR_pwrite64           (__NR_Linux +  17)
-#endif
-#ifndef __NR_setresuid
-#define __NR_setresuid          (__NR_Linux + 115)
-#define __NR_getresuid          (__NR_Linux + 116)
-#define __NR_setresgid          (__NR_Linux + 117)
-#define __NR_getresgid          (__NR_Linux + 118)
-#endif
-#ifndef __NR_gettid
-#define __NR_gettid             (__NR_Linux + 178)
-#endif
-#ifndef __NR_readahead
-#define __NR_readahead          (__NR_Linux + 179)
-#endif
-#ifndef __NR_setxattr
-#define __NR_setxattr           (__NR_Linux + 180)
-#endif
-#ifndef __NR_lsetxattr
-#define __NR_lsetxattr          (__NR_Linux + 181)
-#endif
-#ifndef __NR_getxattr
-#define __NR_getxattr           (__NR_Linux + 183)
-#endif
-#ifndef __NR_lgetxattr
-#define __NR_lgetxattr          (__NR_Linux + 184)
-#endif
-#ifndef __NR_listxattr
-#define __NR_listxattr          (__NR_Linux + 186)
-#endif
-#ifndef __NR_llistxattr
-#define __NR_llistxattr         (__NR_Linux + 187)
-#endif
-#ifndef __NR_tkill
-#define __NR_tkill              (__NR_Linux + 192)
-#endif
-#ifndef __NR_futex
-#define __NR_futex              (__NR_Linux + 194)
-#endif
-#ifndef __NR_sched_setaffinity
-#define __NR_sched_setaffinity  (__NR_Linux + 195)
-#define __NR_sched_getaffinity  (__NR_Linux + 196)
-#endif
-#ifndef __NR_set_tid_address
-#define __NR_set_tid_address    (__NR_Linux + 212)
-#endif
-#ifndef __NR_clock_gettime
-#define __NR_clock_gettime      (__NR_Linux + 222)
-#endif
-#ifndef __NR_clock_getres
-#define __NR_clock_getres       (__NR_Linux + 223)
-#endif
-#ifndef __NR_openat
-#define __NR_openat             (__NR_Linux + 247)
-#endif
-#ifndef __NR_fstatat
-#define __NR_fstatat            (__NR_Linux + 252)
-#endif
-#ifndef __NR_unlinkat
-#define __NR_unlinkat           (__NR_Linux + 253)
-#endif
-#ifndef __NR_move_pages
-#define __NR_move_pages         (__NR_Linux + 267)
-#endif
-#ifndef __NR_getcpu
-#define __NR_getcpu             (__NR_Linux + 271)
-#endif
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set         (__NR_Linux + 273)
-#endif
-#ifndef __NR_ioprio_get
-#define __NR_ioprio_get         (__NR_Linux + 274)
-#endif
-/* End of MIPS (64bit API) definitions */
-#else
-#ifndef __NR_setresuid
-#define __NR_setresuid          (__NR_Linux + 115)
-#define __NR_getresuid          (__NR_Linux + 116)
-#define __NR_setresgid          (__NR_Linux + 117)
-#define __NR_getresgid          (__NR_Linux + 118)
-#endif
-#ifndef __NR_gettid
-#define __NR_gettid             (__NR_Linux + 178)
-#endif
-#ifndef __NR_readahead
-#define __NR_readahead          (__NR_Linux + 179)
-#endif
-#ifndef __NR_setxattr
-#define __NR_setxattr           (__NR_Linux + 180)
-#endif
-#ifndef __NR_lsetxattr
-#define __NR_lsetxattr          (__NR_Linux + 181)
-#endif
-#ifndef __NR_getxattr
-#define __NR_getxattr           (__NR_Linux + 183)
-#endif
-#ifndef __NR_lgetxattr
-#define __NR_lgetxattr          (__NR_Linux + 184)
-#endif
-#ifndef __NR_listxattr
-#define __NR_listxattr          (__NR_Linux + 186)
-#endif
-#ifndef __NR_llistxattr
-#define __NR_llistxattr         (__NR_Linux + 187)
-#endif
-#ifndef __NR_tkill
-#define __NR_tkill              (__NR_Linux + 192)
-#endif
-#ifndef __NR_futex
-#define __NR_futex              (__NR_Linux + 194)
-#endif
-#ifndef __NR_sched_setaffinity
-#define __NR_sched_setaffinity  (__NR_Linux + 195)
-#define __NR_sched_getaffinity  (__NR_Linux + 196)
-#endif
-#ifndef __NR_set_tid_address
-#define __NR_set_tid_address    (__NR_Linux + 213)
-#endif
-#ifndef __NR_statfs64
-#define __NR_statfs64           (__NR_Linux + 217)
-#endif
-#ifndef __NR_fstatfs64
-#define __NR_fstatfs64          (__NR_Linux + 218)
-#endif
-#ifndef __NR_clock_gettime
-#define __NR_clock_gettime      (__NR_Linux + 226)
-#endif
-#ifndef __NR_clock_getres
-#define __NR_clock_getres       (__NR_Linux + 227)
-#endif
-#ifndef __NR_openat
-#define __NR_openat             (__NR_Linux + 251)
-#endif
-#ifndef __NR_fstatat
-#define __NR_fstatat            (__NR_Linux + 256)
-#endif
-#ifndef __NR_unlinkat
-#define __NR_unlinkat           (__NR_Linux + 257)
-#endif
-#ifndef __NR_move_pages
-#define __NR_move_pages         (__NR_Linux + 271)
-#endif
-#ifndef __NR_getcpu
-#define __NR_getcpu             (__NR_Linux + 275)
-#endif
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set         (__NR_Linux + 277)
-#endif
-#ifndef __NR_ioprio_get
-#define __NR_ioprio_get         (__NR_Linux + 278)
-#endif
-/* End of MIPS (new 32bit API) definitions                                   */
-#endif
-/* End of MIPS definitions                                                   */
-#elif defined(__PPC__)
-#ifndef __NR_setfsuid
-#define __NR_setfsuid           138
-#define __NR_setfsgid           139
-#endif
-#ifndef __NR_setresuid
-#define __NR_setresuid          164
-#define __NR_getresuid          165
-#define __NR_setresgid          169
-#define __NR_getresgid          170
-#endif
-#ifndef __NR_rt_sigaction
-#define __NR_rt_sigreturn       172
-#define __NR_rt_sigaction       173
-#define __NR_rt_sigprocmask     174
-#define __NR_rt_sigpending      175
-#define __NR_rt_sigsuspend      178
-#endif
-#ifndef __NR_pread64
-#define __NR_pread64            179
-#endif
-#ifndef __NR_pwrite64
-#define __NR_pwrite64           180
-#endif
-#ifndef __NR_ugetrlimit
-#define __NR_ugetrlimit         190
-#endif
-#ifndef __NR_readahead
-#define __NR_readahead          191
-#endif
-#ifndef __NR_stat64
-#define __NR_stat64             195
-#endif
-#ifndef __NR_fstat64
-#define __NR_fstat64            197
-#endif
-#ifndef __NR_getdents64
-#define __NR_getdents64         202
-#endif
-#ifndef __NR_gettid
-#define __NR_gettid             207
-#endif
-#ifndef __NR_tkill
-#define __NR_tkill              208
-#endif
-#ifndef __NR_setxattr
-#define __NR_setxattr           209
-#endif
-#ifndef __NR_lsetxattr
-#define __NR_lsetxattr          210
-#endif
-#ifndef __NR_getxattr
-#define __NR_getxattr           212
-#endif
-#ifndef __NR_lgetxattr
-#define __NR_lgetxattr          213
-#endif
-#ifndef __NR_listxattr
-#define __NR_listxattr          215
-#endif
-#ifndef __NR_llistxattr
-#define __NR_llistxattr         216
-#endif
-#ifndef __NR_futex
-#define __NR_futex              221
-#endif
-#ifndef __NR_sched_setaffinity
-#define __NR_sched_setaffinity  222
-#define __NR_sched_getaffinity  223
-#endif
-#ifndef __NR_set_tid_address
-#define __NR_set_tid_address    232
-#endif
-#ifndef __NR_clock_gettime
-#define __NR_clock_gettime      246
-#endif
-#ifndef __NR_clock_getres
-#define __NR_clock_getres       247
-#endif
-#ifndef __NR_statfs64
-#define __NR_statfs64           252
-#endif
-#ifndef __NR_fstatfs64
-#define __NR_fstatfs64          253
-#endif
-#ifndef __NR_fadvise64_64
-#define __NR_fadvise64_64       254
-#endif
-#ifndef __NR_ioprio_set
-#define __NR_ioprio_set         273
-#endif
-#ifndef __NR_ioprio_get
-#define __NR_ioprio_get         274
-#endif
-#ifndef __NR_openat
-#define __NR_openat             286
-#endif
-#ifndef __NR_fstatat64
-#define __NR_fstatat64          291
-#endif
-#ifndef __NR_unlinkat
-#define __NR_unlinkat           292
-#endif
-#ifndef __NR_move_pages
-#define __NR_move_pages         301
-#endif
-#ifndef __NR_getcpu
-#define __NR_getcpu             302
-#endif
-/* End of powerpc defininitions                                              */
-#endif
-
-
-/* After forking, we must make sure to only call system calls.               */
-#if defined(__BOUNDED_POINTERS__)
-  #error "Need to port invocations of syscalls for bounded ptrs"
-#else
-  /* The core dumper and the thread lister get executed after threads
-   * have been suspended. As a consequence, we cannot call any functions
-   * that acquire locks. Unfortunately, libc wraps most system calls
-   * (e.g. in order to implement pthread_atfork, and to make calls
-   * cancellable), which means we cannot call these functions. Instead,
-   * we have to call syscall() directly.
-   */
-  #undef LSS_ERRNO
-  #ifdef SYS_ERRNO
-    /* Allow the including file to override the location of errno. This can
-     * be useful when using clone() with the CLONE_VM option.
-     */
-    #define LSS_ERRNO SYS_ERRNO
-  #else
-    #define LSS_ERRNO errno
-  #endif
-
-  #undef LSS_INLINE
-  #ifdef SYS_INLINE
-    #define LSS_INLINE SYS_INLINE
-  #else
-    #define LSS_INLINE static inline
-  #endif
-
-  /* Allow the including file to override the prefix used for all new
-   * system calls. By default, it will be set to "sys_".
-   */
-  #undef LSS_NAME
-  #ifndef SYS_PREFIX
-    #define LSS_NAME(name) sys_##name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX < 0
-    #define LSS_NAME(name) name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX == 0
-    #define LSS_NAME(name) sys0_##name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX == 1
-    #define LSS_NAME(name) sys1_##name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX == 2
-    #define LSS_NAME(name) sys2_##name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX == 3
-    #define LSS_NAME(name) sys3_##name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX == 4
-    #define LSS_NAME(name) sys4_##name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX == 5
-    #define LSS_NAME(name) sys5_##name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX == 6
-    #define LSS_NAME(name) sys6_##name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX == 7
-    #define LSS_NAME(name) sys7_##name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX == 8
-    #define LSS_NAME(name) sys8_##name
-  #elif defined(SYS_PREFIX) && SYS_PREFIX == 9
-    #define LSS_NAME(name) sys9_##name
-  #endif
-
-  #undef  LSS_RETURN
-  #if (defined(__i386__) || defined(__x86_64__) || defined(__ARM_ARCH_3__) \
-       || defined(__ARM_EABI__) || defined(__aarch64__))
-  /* Failing system calls return a negative result in the range of
-   * -1..-4095. These are "errno" values with the sign inverted.
-   */
-  #define LSS_RETURN(type, res)                                               \
-    do {                                                                      \
-      if ((unsigned long)(res) >= (unsigned long)(-4095)) {                   \
-        LSS_ERRNO = -(res);                                                   \
-        res = -1;                                                             \
-      }                                                                       \
-      return (type) (res);                                                    \
-    } while (0)
-  #elif defined(__mips__)
-  /* On MIPS, failing system calls return -1, and set errno in a
-   * separate CPU register.
-   */
-  #define LSS_RETURN(type, res, err)                                          \
-    do {                                                                      \
-      if (err) {                                                              \
-        unsigned long __errnovalue = (res);                                   \
-        LSS_ERRNO = __errnovalue;                                             \
-        res = -1;                                                             \
-      }                                                                       \
-      return (type) (res);                                                    \
-    } while (0)
-  #elif defined(__PPC__)
-  /* On PPC, failing system calls return -1, and set errno in a
-   * separate CPU register. See linux/unistd.h.
-   */
-  #define LSS_RETURN(type, res, err)                                          \
-   do {                                                                       \
-     if (err & 0x10000000 ) {                                                 \
-       LSS_ERRNO = (res);                                                     \
-       res = -1;                                                              \
-     }                                                                        \
-     return (type) (res);                                                     \
-   } while (0)
-  #endif
-  #if defined(__i386__)
-    /* In PIC mode (e.g. when building shared libraries), gcc for i386
-     * reserves ebx. Unfortunately, most distribution ship with implementations
-     * of _syscallX() which clobber ebx.
-     * Also, most definitions of _syscallX() neglect to mark "memory" as being
-     * clobbered. This causes problems with compilers, that do a better job
-     * at optimizing across __asm__ calls.
-     * So, we just have to redefine all of the _syscallX() macros.
-     */
-    #undef LSS_ENTRYPOINT
-    #ifdef SYS_SYSCALL_ENTRYPOINT
-    static inline void (**LSS_NAME(get_syscall_entrypoint)(void))(void) {
-      void (**entrypoint)(void);
-      asm volatile(".bss\n"
-                   ".align 8\n"
-                   ".globl " SYS_SYSCALL_ENTRYPOINT "\n"
-                   ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n"
-                   ".previous\n"
-                   /* This logically does 'lea "SYS_SYSCALL_ENTRYPOINT", %0' */
-                   "call 0f\n"
-                 "0:pop  %0\n"
-                   "add  $_GLOBAL_OFFSET_TABLE_+[.-0b], %0\n"
-                   "mov  " SYS_SYSCALL_ENTRYPOINT "@GOT(%0), %0\n"
-                   : "=r"(entrypoint));
-      return entrypoint;
-    }
-
-    #define LSS_ENTRYPOINT ".bss\n"                                           \
-                           ".align 8\n"                                       \
-                           ".globl " SYS_SYSCALL_ENTRYPOINT "\n"              \
-                           ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n"         \
-                           ".previous\n"                                      \
-                           /* Check the SYS_SYSCALL_ENTRYPOINT vector      */ \
-                           "push %%eax\n"                                     \
-                           "call 10000f\n"                                    \
-                     "10000:pop  %%eax\n"                                     \
-                           "add  $_GLOBAL_OFFSET_TABLE_+[.-10000b], %%eax\n"  \
-                           "mov  " SYS_SYSCALL_ENTRYPOINT                     \
-                                 "@GOT(%%eax), %%eax\n"                       \
-                           "mov  0(%%eax), %%eax\n"                           \
-                           "test %%eax, %%eax\n"                              \
-                           "jz   10002f\n"                                    \
-                           "push %%eax\n"                                     \
-                           "call 10001f\n"                                    \
-                     "10001:pop  %%eax\n"                                     \
-                           "add  $(10003f-10001b), %%eax\n"                   \
-                           "xchg 4(%%esp), %%eax\n"                           \
-                           "ret\n"                                            \
-                     "10002:pop  %%eax\n"                                     \
-                           "int $0x80\n"                                      \
-                     "10003:\n"
-    #else
-    #define LSS_ENTRYPOINT "int $0x80\n"
-    #endif
-    #undef  LSS_BODY
-    #define LSS_BODY(type,args...)                                            \
-      long __res;                                                             \
-      __asm__ __volatile__("push %%ebx\n"                                     \
-                           "movl %2,%%ebx\n"                                  \
-                           LSS_ENTRYPOINT                                     \
-                           "pop %%ebx"                                        \
-                           args                                               \
-                           : "esp", "memory");                                \
-      LSS_RETURN(type,__res)
-    #undef  _syscall0
-    #define _syscall0(type,name)                                              \
-      type LSS_NAME(name)(void) {                                             \
-        long __res;                                                           \
-        __asm__ volatile(LSS_ENTRYPOINT                                       \
-                         : "=a" (__res)                                       \
-                         : "0" (__NR_##name)                                  \
-                         : "esp", "memory");                                  \
-        LSS_RETURN(type,__res);                                               \
-      }
-    #undef  _syscall1
-    #define _syscall1(type,name,type1,arg1)                                   \
-      type LSS_NAME(name)(type1 arg1) {                                       \
-        LSS_BODY(type,                                                        \
-             : "=a" (__res)                                                   \
-             : "0" (__NR_##name), "ri" ((long)(arg1)));                       \
-      }
-    #undef  _syscall2
-    #define _syscall2(type,name,type1,arg1,type2,arg2)                        \
-      type LSS_NAME(name)(type1 arg1,type2 arg2) {                            \
-        LSS_BODY(type,                                                        \
-             : "=a" (__res)                                                   \
-             : "0" (__NR_##name),"ri" ((long)(arg1)), "c" ((long)(arg2)));    \
-      }
-    #undef  _syscall3
-    #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)             \
-      type LSS_NAME(name)(type1 arg1,type2 arg2,type3 arg3) {                 \
-        LSS_BODY(type,                                                        \
-             : "=a" (__res)                                                   \
-             : "0" (__NR_##name), "ri" ((long)(arg1)), "c" ((long)(arg2)),    \
-               "d" ((long)(arg3)));                                           \
-      }
-    #undef  _syscall4
-    #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4)  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) {   \
-        LSS_BODY(type,                                                        \
-             : "=a" (__res)                                                   \
-             : "0" (__NR_##name), "ri" ((long)(arg1)), "c" ((long)(arg2)),    \
-               "d" ((long)(arg3)),"S" ((long)(arg4)));                        \
-      }
-    #undef  _syscall5
-    #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5)                                             \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5) {                                       \
-        long __res;                                                           \
-        __asm__ __volatile__("push %%ebx\n"                                   \
-                             "movl %2,%%ebx\n"                                \
-                             "movl %1,%%eax\n"                                \
-                             LSS_ENTRYPOINT                                   \
-                             "pop  %%ebx"                                     \
-                             : "=a" (__res)                                   \
-                             : "i" (__NR_##name), "ri" ((long)(arg1)),        \
-                               "c" ((long)(arg2)), "d" ((long)(arg3)),        \
-                               "S" ((long)(arg4)), "D" ((long)(arg5))         \
-                             : "esp", "memory");                              \
-        LSS_RETURN(type,__res);                                               \
-      }
-    #undef  _syscall6
-    #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5,type6,arg6)                                  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5, type6 arg6) {                           \
-        long __res;                                                           \
-        struct { long __a1; long __a6; } __s = { (long)arg1, (long) arg6 };   \
-        __asm__ __volatile__("push %%ebp\n"                                   \
-                             "push %%ebx\n"                                   \
-                             "movl 4(%2),%%ebp\n"                             \
-                             "movl 0(%2), %%ebx\n"                            \
-                             "movl %1,%%eax\n"                                \
-                             LSS_ENTRYPOINT                                   \
-                             "pop  %%ebx\n"                                   \
-                             "pop  %%ebp"                                     \
-                             : "=a" (__res)                                   \
-                             : "i" (__NR_##name),  "0" ((long)(&__s)),        \
-                               "c" ((long)(arg2)), "d" ((long)(arg3)),        \
-                               "S" ((long)(arg4)), "D" ((long)(arg5))         \
-                             : "esp", "memory");                              \
-        LSS_RETURN(type,__res);                                               \
-      }
-    LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
-                                   int flags, void *arg, int *parent_tidptr,
-                                   void *newtls, int *child_tidptr) {
-      long __res;
-      __asm__ __volatile__(/* if (fn == NULL)
-                            *   return -EINVAL;
-                            */
-                           "movl   %3,%%ecx\n"
-                           "jecxz  1f\n"
-
-                           /* if (child_stack == NULL)
-                            *   return -EINVAL;
-                            */
-                           "movl   %4,%%ecx\n"
-                           "jecxz  1f\n"
-
-                           /* Set up alignment of the child stack:
-                            * child_stack = (child_stack & ~0xF) - 20;
-                            */
-                           "andl   $-16,%%ecx\n"
-                           "subl   $20,%%ecx\n"
-
-                           /* Push "arg" and "fn" onto the stack that will be
-                            * used by the child.
-                            */
-                           "movl   %6,%%eax\n"
-                           "movl   %%eax,4(%%ecx)\n"
-                           "movl   %3,%%eax\n"
-                           "movl   %%eax,(%%ecx)\n"
-
-                           /* %eax = syscall(%eax = __NR_clone,
-                            *                %ebx = flags,
-                            *                %ecx = child_stack,
-                            *                %edx = parent_tidptr,
-                            *                %esi = newtls,
-                            *                %edi = child_tidptr)
-                            * Also, make sure that %ebx gets preserved as it is
-                            * used in PIC mode.
-                            */
-                           "movl   %8,%%esi\n"
-                           "movl   %7,%%edx\n"
-                           "movl   %5,%%eax\n"
-                           "movl   %9,%%edi\n"
-                           "pushl  %%ebx\n"
-                           "movl   %%eax,%%ebx\n"
-                           "movl   %2,%%eax\n"
-                           LSS_ENTRYPOINT
-
-                           /* In the parent: restore %ebx
-                            * In the child:  move "fn" into %ebx
-                            */
-                           "popl   %%ebx\n"
-
-                           /* if (%eax != 0)
-                            *   return %eax;
-                            */
-                           "test   %%eax,%%eax\n"
-                           "jnz    1f\n"
-
-                           /* In the child, now. Terminate frame pointer chain.
-                            */
-                           "movl   $0,%%ebp\n"
-
-                           /* Call "fn". "arg" is already on the stack.
-                            */
-                           "call   *%%ebx\n"
-
-                           /* Call _exit(%ebx). Unfortunately older versions
-                            * of gcc restrict the number of arguments that can
-                            * be passed to asm(). So, we need to hard-code the
-                            * system call number.
-                            */
-                           "movl   %%eax,%%ebx\n"
-                           "movl   $1,%%eax\n"
-                           LSS_ENTRYPOINT
-
-                           /* Return to parent.
-                            */
-                         "1:\n"
-                           : "=a" (__res)
-                           : "0"(-EINVAL), "i"(__NR_clone),
-                             "m"(fn), "m"(child_stack), "m"(flags), "m"(arg),
-                             "m"(parent_tidptr), "m"(newtls), "m"(child_tidptr)
-                           : "esp", "memory", "ecx", "edx", "esi", "edi");
-      LSS_RETURN(int, __res);
-    }
-
-    #define __NR__fadvise64_64 __NR_fadvise64_64
-    LSS_INLINE _syscall6(int, _fadvise64_64, int, fd,
-                         unsigned, offset_lo, unsigned, offset_hi,
-                         unsigned, len_lo, unsigned, len_hi,
-                         int, advice)
-
-    LSS_INLINE int LSS_NAME(fadvise64)(int fd, loff_t offset,
-                                       loff_t len, int advice) {
-      return LSS_NAME(_fadvise64_64)(fd,
-                                     (unsigned)offset, (unsigned)(offset >>32),
-                                     (unsigned)len, (unsigned)(len >> 32),
-                                     advice);
-    }
-
-    #define __NR__fallocate __NR_fallocate
-    LSS_INLINE _syscall6(int, _fallocate, int, fd,
-                         int, mode,
-                         unsigned, offset_lo, unsigned, offset_hi,
-                         unsigned, len_lo, unsigned, len_hi)
-
-    LSS_INLINE int LSS_NAME(fallocate)(int fd, int mode,
-                                       loff_t offset, loff_t len) {
-      union { loff_t off; unsigned w[2]; } o = { offset }, l = { len };
-      return LSS_NAME(_fallocate)(fd, mode, o.w[0], o.w[1], l.w[0], l.w[1]);
-    }
-
-    LSS_INLINE _syscall1(int, set_thread_area, void *, u)
-    LSS_INLINE _syscall1(int, get_thread_area, void *, u)
-
-    LSS_INLINE void (*LSS_NAME(restore_rt)(void))(void) {
-      /* On i386, the kernel does not know how to return from a signal
-       * handler. Instead, it relies on user space to provide a
-       * restorer function that calls the {rt_,}sigreturn() system call.
-       * Unfortunately, we cannot just reference the glibc version of this
-       * function, as glibc goes out of its way to make it inaccessible.
-       */
-      void (*res)(void);
-      __asm__ __volatile__("call   2f\n"
-                         "0:.align 16\n"
-                         "1:movl   %1,%%eax\n"
-                           LSS_ENTRYPOINT
-                         "2:popl   %0\n"
-                           "addl   $(1b-0b),%0\n"
-                           : "=a" (res)
-                           : "i"  (__NR_rt_sigreturn));
-      return res;
-    }
-    LSS_INLINE void (*LSS_NAME(restore)(void))(void) {
-      /* On i386, the kernel does not know how to return from a signal
-       * handler. Instead, it relies on user space to provide a
-       * restorer function that calls the {rt_,}sigreturn() system call.
-       * Unfortunately, we cannot just reference the glibc version of this
-       * function, as glibc goes out of its way to make it inaccessible.
-       */
-      void (*res)(void);
-      __asm__ __volatile__("call   2f\n"
-                         "0:.align 16\n"
-                         "1:pop    %%eax\n"
-                           "movl   %1,%%eax\n"
-                           LSS_ENTRYPOINT
-                         "2:popl   %0\n"
-                           "addl   $(1b-0b),%0\n"
-                           : "=a" (res)
-                           : "i"  (__NR_sigreturn));
-      return res;
-    }
-  #elif defined(__x86_64__)
-    /* There are no known problems with any of the _syscallX() macros
-     * currently shipping for x86_64, but we still need to be able to define
-     * our own version so that we can override the location of the errno
-     * location (e.g. when using the clone() system call with the CLONE_VM
-     * option).
-     */
-    #undef LSS_ENTRYPOINT
-    #ifdef SYS_SYSCALL_ENTRYPOINT
-    static inline void (**LSS_NAME(get_syscall_entrypoint)(void))(void) {
-      void (**entrypoint)(void);
-      asm volatile(".bss\n"
-                   ".align 8\n"
-                   ".globl " SYS_SYSCALL_ENTRYPOINT "\n"
-                   ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n"
-                   ".previous\n"
-                   "mov " SYS_SYSCALL_ENTRYPOINT "@GOTPCREL(%%rip), %0\n"
-                   : "=r"(entrypoint));
-      return entrypoint;
-    }
-
-    #define LSS_ENTRYPOINT                                                    \
-              ".bss\n"                                                        \
-              ".align 8\n"                                                    \
-              ".globl " SYS_SYSCALL_ENTRYPOINT "\n"                           \
-              ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n"                      \
-              ".previous\n"                                                   \
-              "mov " SYS_SYSCALL_ENTRYPOINT "@GOTPCREL(%%rip), %%rcx\n"       \
-              "mov  0(%%rcx), %%rcx\n"                                        \
-              "test %%rcx, %%rcx\n"                                           \
-              "jz   10001f\n"                                                 \
-              "call *%%rcx\n"                                                 \
-              "jmp  10002f\n"                                                 \
-        "10001:syscall\n"                                                     \
-        "10002:\n"
-
-    #else
-    #define LSS_ENTRYPOINT "syscall\n"
-    #endif
-
-    /* The x32 ABI has 32 bit longs, but the syscall interface is 64 bit.
-     * We need to explicitly cast to an unsigned 64 bit type to avoid implicit
-     * sign extension.  We can't cast pointers directly because those are
-     * 32 bits, and gcc will dump ugly warnings about casting from a pointer
-     * to an integer of a different size.
-     */
-    #undef  LSS_SYSCALL_ARG
-    #define LSS_SYSCALL_ARG(a) ((uint64_t)(uintptr_t)(a))
-    #undef  _LSS_RETURN
-    #define _LSS_RETURN(type, res, cast)                                      \
-      do {                                                                    \
-        if ((uint64_t)(res) >= (uint64_t)(-4095)) {                           \
-          LSS_ERRNO = -(res);                                                 \
-          res = -1;                                                           \
-        }                                                                     \
-        return (type)(cast)(res);                                             \
-      } while (0)
-    #undef  LSS_RETURN
-    #define LSS_RETURN(type, res) _LSS_RETURN(type, res, uintptr_t)
-
-    #undef  _LSS_BODY
-    #define _LSS_BODY(nr, type, name, cast, ...)                              \
-          long long __res;                                                    \
-          __asm__ __volatile__(LSS_BODY_ASM##nr LSS_ENTRYPOINT                \
-            : "=a" (__res)                                                    \
-            : "0" (__NR_##name) LSS_BODY_ARG##nr(__VA_ARGS__)                 \
-            : LSS_BODY_CLOBBER##nr "r11", "rcx", "memory");                   \
-          _LSS_RETURN(type, __res, cast)
-    #undef  LSS_BODY
-    #define LSS_BODY(nr, type, name, args...) \
-      _LSS_BODY(nr, type, name, uintptr_t, ## args)
-
-    #undef  LSS_BODY_ASM0
-    #undef  LSS_BODY_ASM1
-    #undef  LSS_BODY_ASM2
-    #undef  LSS_BODY_ASM3
-    #undef  LSS_BODY_ASM4
-    #undef  LSS_BODY_ASM5
-    #undef  LSS_BODY_ASM6
-    #define LSS_BODY_ASM0
-    #define LSS_BODY_ASM1 LSS_BODY_ASM0
-    #define LSS_BODY_ASM2 LSS_BODY_ASM1
-    #define LSS_BODY_ASM3 LSS_BODY_ASM2
-    #define LSS_BODY_ASM4 LSS_BODY_ASM3 "movq %5,%%r10;"
-    #define LSS_BODY_ASM5 LSS_BODY_ASM4 "movq %6,%%r8;"
-    #define LSS_BODY_ASM6 LSS_BODY_ASM5 "movq %7,%%r9;"
-
-    #undef  LSS_BODY_CLOBBER0
-    #undef  LSS_BODY_CLOBBER1
-    #undef  LSS_BODY_CLOBBER2
-    #undef  LSS_BODY_CLOBBER3
-    #undef  LSS_BODY_CLOBBER4
-    #undef  LSS_BODY_CLOBBER5
-    #undef  LSS_BODY_CLOBBER6
-    #define LSS_BODY_CLOBBER0
-    #define LSS_BODY_CLOBBER1 LSS_BODY_CLOBBER0
-    #define LSS_BODY_CLOBBER2 LSS_BODY_CLOBBER1
-    #define LSS_BODY_CLOBBER3 LSS_BODY_CLOBBER2
-    #define LSS_BODY_CLOBBER4 LSS_BODY_CLOBBER3 "r10",
-    #define LSS_BODY_CLOBBER5 LSS_BODY_CLOBBER4 "r8",
-    #define LSS_BODY_CLOBBER6 LSS_BODY_CLOBBER5 "r9",
-
-    #undef  LSS_BODY_ARG0
-    #undef  LSS_BODY_ARG1
-    #undef  LSS_BODY_ARG2
-    #undef  LSS_BODY_ARG3
-    #undef  LSS_BODY_ARG4
-    #undef  LSS_BODY_ARG5
-    #undef  LSS_BODY_ARG6
-    #define LSS_BODY_ARG0()
-    #define LSS_BODY_ARG1(arg1) \
-      LSS_BODY_ARG0(), "D" (arg1)
-    #define LSS_BODY_ARG2(arg1, arg2) \
-      LSS_BODY_ARG1(arg1), "S" (arg2)
-    #define LSS_BODY_ARG3(arg1, arg2, arg3) \
-      LSS_BODY_ARG2(arg1, arg2), "d" (arg3)
-    #define LSS_BODY_ARG4(arg1, arg2, arg3, arg4) \
-      LSS_BODY_ARG3(arg1, arg2, arg3), "r" (arg4)
-    #define LSS_BODY_ARG5(arg1, arg2, arg3, arg4, arg5) \
-      LSS_BODY_ARG4(arg1, arg2, arg3, arg4), "r" (arg5)
-    #define LSS_BODY_ARG6(arg1, arg2, arg3, arg4, arg5, arg6) \
-      LSS_BODY_ARG5(arg1, arg2, arg3, arg4, arg5), "r" (arg6)
-
-    #undef _syscall0
-    #define _syscall0(type,name)                                              \
-      type LSS_NAME(name)(void) {                                             \
-        LSS_BODY(0, type, name);                                              \
-      }
-    #undef _syscall1
-    #define _syscall1(type,name,type1,arg1)                                   \
-      type LSS_NAME(name)(type1 arg1) {                                       \
-        LSS_BODY(1, type, name, LSS_SYSCALL_ARG(arg1));                       \
-      }
-    #undef _syscall2
-    #define _syscall2(type,name,type1,arg1,type2,arg2)                        \
-      type LSS_NAME(name)(type1 arg1, type2 arg2) {                           \
-        LSS_BODY(2, type, name, LSS_SYSCALL_ARG(arg1), LSS_SYSCALL_ARG(arg2));\
-      }
-    #undef _syscall3
-    #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)             \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) {               \
-        LSS_BODY(3, type, name, LSS_SYSCALL_ARG(arg1), LSS_SYSCALL_ARG(arg2), \
-                                LSS_SYSCALL_ARG(arg3));                       \
-      }
-    #undef _syscall4
-    #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4)  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) {   \
-        LSS_BODY(4, type, name, LSS_SYSCALL_ARG(arg1), LSS_SYSCALL_ARG(arg2), \
-                                LSS_SYSCALL_ARG(arg3), LSS_SYSCALL_ARG(arg4));\
-      }
-    #undef _syscall5
-    #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5)                                             \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5) {                                       \
-        LSS_BODY(5, type, name, LSS_SYSCALL_ARG(arg1), LSS_SYSCALL_ARG(arg2), \
-                                LSS_SYSCALL_ARG(arg3), LSS_SYSCALL_ARG(arg4), \
-                                LSS_SYSCALL_ARG(arg5));                       \
-      }
-    #undef _syscall6
-    #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5,type6,arg6)                                  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5, type6 arg6) {                           \
-        LSS_BODY(6, type, name, LSS_SYSCALL_ARG(arg1), LSS_SYSCALL_ARG(arg2), \
-                                LSS_SYSCALL_ARG(arg3), LSS_SYSCALL_ARG(arg4), \
-                                LSS_SYSCALL_ARG(arg5), LSS_SYSCALL_ARG(arg6));\
-      }
-    LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
-                                   int flags, void *arg, int *parent_tidptr,
-                                   void *newtls, int *child_tidptr) {
-      long long __res;
-      {
-        __asm__ __volatile__(/* if (fn == NULL)
-                              *   return -EINVAL;
-                              */
-                             "testq  %4,%4\n"
-                             "jz     1f\n"
-
-                             /* if (child_stack == NULL)
-                              *   return -EINVAL;
-                              */
-                             "testq  %5,%5\n"
-                             "jz     1f\n"
-
-                             /* childstack -= 2*sizeof(void *);
-                              */
-                             "subq   $16,%5\n"
-
-                             /* Push "arg" and "fn" onto the stack that will be
-                              * used by the child.
-                              */
-                             "movq   %7,8(%5)\n"
-                             "movq   %4,0(%5)\n"
-
-                             /* %rax = syscall(%rax = __NR_clone,
-                              *                %rdi = flags,
-                              *                %rsi = child_stack,
-                              *                %rdx = parent_tidptr,
-                              *                %r8  = new_tls,
-                              *                %r10 = child_tidptr)
-                              */
-                             "movq   %2,%%rax\n"
-                             "movq   %9,%%r8\n"
-                             "movq   %10,%%r10\n"
-                             LSS_ENTRYPOINT
-
-                             /* if (%rax != 0)
-                              *   return;
-                              */
-                             "testq  %%rax,%%rax\n"
-                             "jnz    1f\n"
-
-                             /* In the child. Terminate frame pointer chain.
-                              */
-                             "xorq   %%rbp,%%rbp\n"
-
-                             /* Call "fn(arg)".
-                              */
-                             "popq   %%rax\n"
-                             "popq   %%rdi\n"
-                             "call   *%%rax\n"
-
-                             /* Call _exit(%ebx).
-                              */
-                             "movq   %%rax,%%rdi\n"
-                             "movq   %3,%%rax\n"
-                             LSS_ENTRYPOINT
-
-                             /* Return to parent.
-                              */
-                           "1:\n"
-                             : "=a" (__res)
-                             : "0"(-EINVAL), "i"(__NR_clone), "i"(__NR_exit),
-                               "r"(LSS_SYSCALL_ARG(fn)),
-                               "S"(LSS_SYSCALL_ARG(child_stack)),
-                               "D"(LSS_SYSCALL_ARG(flags)),
-                               "r"(LSS_SYSCALL_ARG(arg)),
-                               "d"(LSS_SYSCALL_ARG(parent_tidptr)),
-                               "r"(LSS_SYSCALL_ARG(newtls)),
-                               "r"(LSS_SYSCALL_ARG(child_tidptr))
-                             : "rsp", "memory", "r8", "r10", "r11", "rcx");
-      }
-      LSS_RETURN(int, __res);
-    }
-    LSS_INLINE _syscall2(int, arch_prctl, int, c, void *, a)
-
-    /* Need to make sure loff_t isn't truncated to 32-bits under x32.  */
-    LSS_INLINE int LSS_NAME(fadvise64)(int fd, loff_t offset, loff_t len,
-                                       int advice) {
-      LSS_BODY(4, int, fadvise64, LSS_SYSCALL_ARG(fd), (uint64_t)(offset),
-                                  (uint64_t)(len), LSS_SYSCALL_ARG(advice));
-    }
-
-    LSS_INLINE void (*LSS_NAME(restore_rt)(void))(void) {
-      /* On x86-64, the kernel does not know how to return from
-       * a signal handler. Instead, it relies on user space to provide a
-       * restorer function that calls the rt_sigreturn() system call.
-       * Unfortunately, we cannot just reference the glibc version of this
-       * function, as glibc goes out of its way to make it inaccessible.
-       */
-      long long res;
-      __asm__ __volatile__("jmp    2f\n"
-                           ".align 16\n"
-                         "1:movq   %1,%%rax\n"
-                           LSS_ENTRYPOINT
-                         "2:leaq   1b(%%rip),%0\n"
-                           : "=r" (res)
-                           : "i"  (__NR_rt_sigreturn));
-      return (void (*)(void))(uintptr_t)res;
-    }
-  #elif defined(__ARM_ARCH_3__)
-    /* Most definitions of _syscallX() neglect to mark "memory" as being
-     * clobbered. This causes problems with compilers, that do a better job
-     * at optimizing across __asm__ calls.
-     * So, we just have to redefine all of the _syscallX() macros.
-     */
-    #undef LSS_REG
-    #define LSS_REG(r,a) register long __r##r __asm__("r"#r) = (long)a
-    #undef  LSS_BODY
-    #define LSS_BODY(type,name,args...)                                       \
-          register long __res_r0 __asm__("r0");                               \
-          long __res;                                                         \
-          __asm__ __volatile__ (__syscall(name)                               \
-                                : "=r"(__res_r0) : args : "lr", "memory");    \
-          __res = __res_r0;                                                   \
-          LSS_RETURN(type, __res)
-    #undef _syscall0
-    #define _syscall0(type, name)                                             \
-      type LSS_NAME(name)(void) {                                             \
-        LSS_BODY(type, name);                                                 \
-      }
-    #undef _syscall1
-    #define _syscall1(type, name, type1, arg1)                                \
-      type LSS_NAME(name)(type1 arg1) {                                       \
-        LSS_REG(0, arg1); LSS_BODY(type, name, "r"(__r0));                    \
-      }
-    #undef _syscall2
-    #define _syscall2(type, name, type1, arg1, type2, arg2)                   \
-      type LSS_NAME(name)(type1 arg1, type2 arg2) {                           \
-        LSS_REG(0, arg1); LSS_REG(1, arg2);                                   \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1));                           \
-      }
-    #undef _syscall3
-    #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3)      \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) {               \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2));                \
-      }
-    #undef _syscall4
-    #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4)  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) {   \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_REG(3, arg4);                                                     \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3));     \
-      }
-    #undef _syscall5
-    #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5)                                             \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5) {                                       \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_REG(3, arg4); LSS_REG(4, arg5);                                   \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3),      \
-                             "r"(__r4));                                      \
-      }
-    #undef _syscall6
-    #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5,type6,arg6)                                  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5, type6 arg6) {                           \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_REG(3, arg4); LSS_REG(4, arg5); LSS_REG(5, arg6);                 \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3),      \
-                             "r"(__r4), "r"(__r5));                           \
-      }
-    LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
-                                   int flags, void *arg, int *parent_tidptr,
-                                   void *newtls, int *child_tidptr) {
-      long __res;
-      {
-        register int   __flags __asm__("r0") = flags;
-        register void *__stack __asm__("r1") = child_stack;
-        register void *__ptid  __asm__("r2") = parent_tidptr;
-        register void *__tls   __asm__("r3") = newtls;
-        register int  *__ctid  __asm__("r4") = child_tidptr;
-        __asm__ __volatile__(/* if (fn == NULL || child_stack == NULL)
-                              *   return -EINVAL;
-                              */
-                             "cmp   %2,#0\n"
-                             "cmpne %3,#0\n"
-                             "moveq %0,%1\n"
-                             "beq   1f\n"
-
-                             /* Push "arg" and "fn" onto the stack that will be
-                              * used by the child.
-                              */
-                             "str   %5,[%3,#-4]!\n"
-                             "str   %2,[%3,#-4]!\n"
-
-                             /* %r0 = syscall(%r0 = flags,
-                              *               %r1 = child_stack,
-                              *               %r2 = parent_tidptr,
-                              *               %r3 = newtls,
-                              *               %r4 = child_tidptr)
-                              */
-                             __syscall(clone)"\n"
-
-                             /* if (%r0 != 0)
-                              *   return %r0;
-                              */
-                             "movs  %0,r0\n"
-                             "bne   1f\n"
-
-                             /* In the child, now. Call "fn(arg)".
-                              */
-                             "ldr   r0,[sp, #4]\n"
-                             "mov   lr,pc\n"
-                             "ldr   pc,[sp]\n"
-
-                             /* Call _exit(%r0).
-                              */
-                             __syscall(exit)"\n"
-                           "1:\n"
-                             : "=r" (__res)
-                             : "i"(-EINVAL),
-                               "r"(fn), "r"(__stack), "r"(__flags), "r"(arg),
-                               "r"(__ptid), "r"(__tls), "r"(__ctid)
-                             : "cc", "lr", "memory");
-      }
-      LSS_RETURN(int, __res);
-    }
-  #elif defined(__ARM_EABI__)
-    /* Most definitions of _syscallX() neglect to mark "memory" as being
-     * clobbered. This causes problems with compilers, that do a better job
-     * at optimizing across __asm__ calls.
-     * So, we just have to redefine all fo the _syscallX() macros.
-     */
-    #undef LSS_REG
-    #define LSS_REG(r,a) register long __r##r __asm__("r"#r) = (long)a
-    #undef  LSS_BODY
-    #define LSS_BODY(type,name,args...)                                       \
-          register long __res_r0 __asm__("r0");                               \
-          long __res;                                                         \
-          __asm__ __volatile__ ("push {r7}\n"                                 \
-                                "mov r7, %1\n"                                \
-                                "swi 0x0\n"                                   \
-                                "pop {r7}\n"                                  \
-                                : "=r"(__res_r0)                              \
-                                : "i"(__NR_##name) , ## args                  \
-                                : "lr", "memory");                            \
-          __res = __res_r0;                                                   \
-          LSS_RETURN(type, __res)
-    #undef _syscall0
-    #define _syscall0(type, name)                                             \
-      type LSS_NAME(name)(void) {                                             \
-        LSS_BODY(type, name);                                                 \
-      }
-    #undef _syscall1
-    #define _syscall1(type, name, type1, arg1)                                \
-      type LSS_NAME(name)(type1 arg1) {                                       \
-        LSS_REG(0, arg1); LSS_BODY(type, name, "r"(__r0));                    \
-      }
-    #undef _syscall2
-    #define _syscall2(type, name, type1, arg1, type2, arg2)                   \
-      type LSS_NAME(name)(type1 arg1, type2 arg2) {                           \
-        LSS_REG(0, arg1); LSS_REG(1, arg2);                                   \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1));                           \
-      }
-    #undef _syscall3
-    #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3)      \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) {               \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2));                \
-      }
-    #undef _syscall4
-    #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4)  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) {   \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_REG(3, arg4);                                                     \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3));     \
-      }
-    #undef _syscall5
-    #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5)                                             \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5) {                                       \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_REG(3, arg4); LSS_REG(4, arg5);                                   \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3),      \
-                             "r"(__r4));                                      \
-      }
-    #undef _syscall6
-    #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5,type6,arg6)                                  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5, type6 arg6) {                           \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_REG(3, arg4); LSS_REG(4, arg5); LSS_REG(5, arg6);                 \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3),      \
-                             "r"(__r4), "r"(__r5));                           \
-      }
-    LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
-                                   int flags, void *arg, int *parent_tidptr,
-                                   void *newtls, int *child_tidptr) {
-      long __res;
-      {
-        register int   __flags __asm__("r0") = flags;
-        register void *__stack __asm__("r1") = child_stack;
-        register void *__ptid  __asm__("r2") = parent_tidptr;
-        register void *__tls   __asm__("r3") = newtls;
-        register int  *__ctid  __asm__("r4") = child_tidptr;
-        __asm__ __volatile__(/* if (fn == NULL || child_stack == NULL)
-                              *   return -EINVAL;
-                              */
-#ifdef __thumb2__
-                             "push  {r7}\n"
-#endif
-                             "cmp   %2,#0\n"
-                             "it    ne\n"
-                             "cmpne %3,#0\n"
-                             "it    eq\n"
-                             "moveq %0,%1\n"
-                             "beq   1f\n"
-
-                             /* Push "arg" and "fn" onto the stack that will be
-                              * used by the child.
-                              */
-                             "str   %5,[%3,#-4]!\n"
-                             "str   %2,[%3,#-4]!\n"
-
-                             /* %r0 = syscall(%r0 = flags,
-                              *               %r1 = child_stack,
-                              *               %r2 = parent_tidptr,
-                              *               %r3 = newtls,
-                              *               %r4 = child_tidptr)
-                              */
-                             "mov r7, %9\n"
-                             "swi 0x0\n"
-
-                             /* if (%r0 != 0)
-                              *   return %r0;
-                              */
-                             "movs  %0,r0\n"
-                             "bne   1f\n"
-
-                             /* In the child, now. Call "fn(arg)".
-                              */
-                             "ldr   r0,[sp, #4]\n"
-
-                             /* When compiling for Thumb-2 the "MOV LR,PC" here
-                              * won't work because it loads PC+4 into LR,
-                              * whereas the LDR is a 4-byte instruction.
-                              * This results in the child thread always
-                              * crashing with an "Illegal Instruction" when it
-                              * returned into the middle of the LDR instruction
-                              * The instruction sequence used instead was
-                              * recommended by
-                              * "https://wiki.edubuntu.org/ARM/Thumb2PortingHowto#Quick_Reference".
-                              */
-                           #ifdef __thumb2__
-                             "ldr   r7,[sp]\n"
-                             "blx   r7\n"
-                           #else
-                             "mov   lr,pc\n"
-                             "ldr   pc,[sp]\n"
-                           #endif
-
-                             /* Call _exit(%r0).
-                              */
-                             "mov r7, %10\n"
-                             "swi 0x0\n"
-                           "1:\n"
-#ifdef __thumb2__
-                             "pop {r7}"
-#endif
-                             : "=r" (__res)
-                             : "i"(-EINVAL),
-                               "r"(fn), "r"(__stack), "r"(__flags), "r"(arg),
-                               "r"(__ptid), "r"(__tls), "r"(__ctid),
-                               "i"(__NR_clone), "i"(__NR_exit)
-#ifdef __thumb2__
-                             : "cc", "lr", "memory");
-#else
-                             : "cc", "r7", "lr", "memory");
-#endif
-      }
-      LSS_RETURN(int, __res);
-    }
-  #elif defined(__aarch64__)
-    /* Most definitions of _syscallX() neglect to mark "memory" as being
-     * clobbered. This causes problems with compilers, that do a better job
-     * at optimizing across __asm__ calls.
-     * So, we just have to redefine all of the _syscallX() macros.
-     */
-    #undef LSS_REG
-    #define LSS_REG(r,a) register int64_t __r##r __asm__("x"#r) = (int64_t)a
-    #undef  LSS_BODY
-    #define LSS_BODY(type,name,args...)                                       \
-          register int64_t __res_x0 __asm__("x0");                            \
-          int64_t __res;                                                      \
-          __asm__ __volatile__ ("mov x8, %1\n"                                \
-                                "svc 0x0\n"                                   \
-                                : "=r"(__res_x0)                              \
-                                : "i"(__NR_##name) , ## args                  \
-                                : "x8", "memory");                            \
-          __res = __res_x0;                                                   \
-          LSS_RETURN(type, __res)
-    #undef _syscall0
-    #define _syscall0(type, name)                                             \
-      type LSS_NAME(name)(void) {                                             \
-        LSS_BODY(type, name);                                                 \
-      }
-    #undef _syscall1
-    #define _syscall1(type, name, type1, arg1)                                \
-      type LSS_NAME(name)(type1 arg1) {                                       \
-        LSS_REG(0, arg1); LSS_BODY(type, name, "r"(__r0));                    \
-      }
-    #undef _syscall2
-    #define _syscall2(type, name, type1, arg1, type2, arg2)                   \
-      type LSS_NAME(name)(type1 arg1, type2 arg2) {                           \
-        LSS_REG(0, arg1); LSS_REG(1, arg2);                                   \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1));                           \
-      }
-    #undef _syscall3
-    #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3)      \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) {               \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2));                \
-      }
-    #undef _syscall4
-    #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4)  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) {   \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_REG(3, arg4);                                                     \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3));     \
-      }
-    #undef _syscall5
-    #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5)                                             \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5) {                                       \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_REG(3, arg4); LSS_REG(4, arg5);                                   \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3),      \
-                             "r"(__r4));                                      \
-      }
-    #undef _syscall6
-    #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5,type6,arg6)                                  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5, type6 arg6) {                           \
-        LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3);                 \
-        LSS_REG(3, arg4); LSS_REG(4, arg5); LSS_REG(5, arg6);                 \
-        LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3),      \
-                             "r"(__r4), "r"(__r5));                           \
-      }
-
-    LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
-                                   int flags, void *arg, int *parent_tidptr,
-                                   void *newtls, int *child_tidptr) {
-      int64_t __res;
-      {
-        register uint64_t __flags __asm__("x0") = flags;
-        register void *__stack __asm__("x1") = child_stack;
-        register void *__ptid  __asm__("x2") = parent_tidptr;
-        register void *__tls   __asm__("x3") = newtls;
-        register int  *__ctid  __asm__("x4") = child_tidptr;
-        __asm__ __volatile__(/* Push "arg" and "fn" onto the stack that will be
-                              * used by the child.
-                              */
-                             "stp     %1, %4, [%2, #-16]!\n"
-
-                             /* %x0 = syscall(%x0 = flags,
-                              *               %x1 = child_stack,
-                              *               %x2 = parent_tidptr,
-                              *               %x3 = newtls,
-                              *               %x4 = child_tidptr)
-                              */
-                             "mov     x8, %8\n"
-                             "svc     0x0\n"
-
-                             /* if (%r0 != 0)
-                              *   return %r0;
-                              */
-                             "mov     %0, x0\n"
-                             "cbnz    x0, 1f\n"
-
-                             /* In the child, now. Call "fn(arg)".
-                              */
-                             "ldp     x1, x0, [sp], #16\n"
-                             "blr     x1\n"
-
-                             /* Call _exit(%r0).
-                              */
-                             "mov     x8, %9\n"
-                             "svc     0x0\n"
-                           "1:\n"
-                             : "=r" (__res)
-                             : "r"(fn), "r"(__stack), "r"(__flags), "r"(arg),
-                               "r"(__ptid), "r"(__tls), "r"(__ctid),
-                               "i"(__NR_clone), "i"(__NR_exit)
-                             : "cc", "x8", "memory");
-      }
-      LSS_RETURN(int, __res);
-    }
-  #elif defined(__mips__)
-    #undef LSS_REG
-    #define LSS_REG(r,a) register unsigned long __r##r __asm__("$"#r) =       \
-                                 (unsigned long)(a)
-    #undef  LSS_BODY
-    #undef LSS_SYSCALL_CLOBBERS
-    #if _MIPS_SIM == _MIPS_SIM_ABI32
-    #define LSS_SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10",               \
-                                 "$11", "$12", "$13", "$14", "$15",           \
-                                 "$24", "$25", "hi", "lo", "memory"
-    #else
-    #define LSS_SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12",             \
-                                 "$13", "$14", "$15", "$24", "$25",           \
-                                 "hi", "lo", "memory"
-    #endif
-    #define LSS_BODY(type,name,r7,...)                                        \
-          register unsigned long __v0 __asm__("$2") = __NR_##name;            \
-          __asm__ __volatile__ ("syscall\n"                                   \
-                                : "=r"(__v0), r7 (__r7)                       \
-                                : "0"(__v0), ##__VA_ARGS__                    \
-                                : LSS_SYSCALL_CLOBBERS);                      \
-          LSS_RETURN(type, __v0, __r7)
-    #undef _syscall0
-    #define _syscall0(type, name)                                             \
-      type LSS_NAME(name)(void) {                                             \
-        register unsigned long __r7 __asm__("$7");                            \
-        LSS_BODY(type, name, "=r");                                           \
-      }
-    #undef _syscall1
-    #define _syscall1(type, name, type1, arg1)                                \
-      type LSS_NAME(name)(type1 arg1) {                                       \
-        register unsigned long __r7 __asm__("$7");                            \
-        LSS_REG(4, arg1); LSS_BODY(type, name, "=r", "r"(__r4));              \
-      }
-    #undef _syscall2
-    #define _syscall2(type, name, type1, arg1, type2, arg2)                   \
-      type LSS_NAME(name)(type1 arg1, type2 arg2) {                           \
-        register unsigned long __r7 __asm__("$7");                            \
-        LSS_REG(4, arg1); LSS_REG(5, arg2);                                   \
-        LSS_BODY(type, name, "=r", "r"(__r4), "r"(__r5));                     \
-      }
-    #undef _syscall3
-    #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3)      \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) {               \
-        register unsigned long __r7 __asm__("$7");                            \
-        LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3);                 \
-        LSS_BODY(type, name, "=r", "r"(__r4), "r"(__r5), "r"(__r6));          \
-      }
-    #undef _syscall4
-    #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4)  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) {   \
-        LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3);                 \
-        LSS_REG(7, arg4);                                                     \
-        LSS_BODY(type, name, "+r", "r"(__r4), "r"(__r5), "r"(__r6));          \
-      }
-    #undef _syscall5
-    #if _MIPS_SIM == _MIPS_SIM_ABI32
-    /* The old 32bit MIPS system call API passes the fifth and sixth argument
-     * on the stack, whereas the new APIs use registers "r8" and "r9".
-     */
-    #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5)                                             \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5) {                                       \
-        LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3);                 \
-        LSS_REG(7, arg4);                                                     \
-        register unsigned long __v0 __asm__("$2") = __NR_##name;              \
-        __asm__ __volatile__ (".set noreorder\n"                              \
-                              "subu  $29, 32\n"                               \
-                              "sw    %5, 16($29)\n"                           \
-                              "syscall\n"                                     \
-                              "addiu $29, 32\n"                               \
-                              ".set reorder\n"                                \
-                              : "+r"(__v0), "+r" (__r7)                       \
-                              : "r"(__r4), "r"(__r5),                         \
-                                "r"(__r6), "r" ((unsigned long)arg5)          \
-                              : "$8", "$9", "$10", "$11", "$12",              \
-                                "$13", "$14", "$15", "$24", "$25",            \
-                                "memory");                                    \
-        LSS_RETURN(type, __v0, __r7);                                         \
-      }
-    #else
-    #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5)                                             \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5) {                                       \
-        LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3);                 \
-        LSS_REG(7, arg4); LSS_REG(8, arg5);                                   \
-        LSS_BODY(type, name, "+r", "r"(__r4), "r"(__r5), "r"(__r6),           \
-                 "r"(__r8));                                                  \
-      }
-    #endif
-    #undef _syscall6
-    #if _MIPS_SIM == _MIPS_SIM_ABI32
-    /* The old 32bit MIPS system call API passes the fifth and sixth argument
-     * on the stack, whereas the new APIs use registers "r8" and "r9".
-     */
-    #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5,type6,arg6)                                  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5, type6 arg6) {                           \
-        LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3);                 \
-        LSS_REG(7, arg4);                                                     \
-        register unsigned long __v0 __asm__("$2") = __NR_##name;              \
-        __asm__ __volatile__ (".set noreorder\n"                              \
-                              "subu  $29, 32\n"                               \
-                              "sw    %5, 16($29)\n"                           \
-                              "sw    %6, 20($29)\n"                           \
-                              "syscall\n"                                     \
-                              "addiu $29, 32\n"                               \
-                              ".set reorder\n"                                \
-                              : "+r"(__v0), "+r" (__r7)                       \
-                              : "r"(__r4), "r"(__r5),                         \
-                                "r"(__r6), "r" ((unsigned long)arg5),         \
-                                "r" ((unsigned long)arg6)                     \
-                              : "$8", "$9", "$10", "$11", "$12",              \
-                                "$13", "$14", "$15", "$24", "$25",            \
-                                "memory");                                    \
-        LSS_RETURN(type, __v0, __r7);                                         \
-      }
-    #else
-    #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,  \
-                      type5,arg5,type6,arg6)                                  \
-      type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,     \
-                          type5 arg5,type6 arg6) {                            \
-        LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3);                 \
-        LSS_REG(7, arg4); LSS_REG(8, arg5); LSS_REG(9, arg6);                 \
-        LSS_BODY(type, name, "+r", "r"(__r4), "r"(__r5), "r"(__r6),           \
-                 "r"(__r8), "r"(__r9));                                       \
-      }
-    #endif
-    LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
-                                   int flags, void *arg, int *parent_tidptr,
-                                   void *newtls, int *child_tidptr) {
-      register unsigned long __v0 __asm__("$2") = -EINVAL;
-      register unsigned long __r7 __asm__("$7") = (unsigned long)newtls;
-      {
-        register int   __flags __asm__("$4") = flags;
-        register void *__stack __asm__("$5") = child_stack;
-        register void *__ptid  __asm__("$6") = parent_tidptr;
-        register int  *__ctid  __asm__("$8") = child_tidptr;
-        __asm__ __volatile__(
-          #if _MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 32
-                             "subu  $29,24\n"
-          #elif _MIPS_SIM == _MIPS_SIM_NABI32
-                             "sub   $29,16\n"
-          #else
-                             "dsubu $29,16\n"
-          #endif
-
-                             /* if (fn == NULL || child_stack == NULL)
-                              *   return -EINVAL;
-                              */
-                             "beqz  %4,1f\n"
-                             "beqz  %5,1f\n"
-
-                             /* Push "arg" and "fn" onto the stack that will be
-                              * used by the child.
-                              */
-          #if _MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 32
-                             "subu  %5,32\n"
-                             "sw    %4,0(%5)\n"
-                             "sw    %7,4(%5)\n"
-          #elif _MIPS_SIM == _MIPS_SIM_NABI32
-                             "sub   %5,32\n"
-                             "sw    %4,0(%5)\n"
-                             "sw    %7,8(%5)\n"
-          #else
-                             "dsubu %5,32\n"
-                             "sd    %4,0(%5)\n"
-                             "sd    %7,8(%5)\n"
-          #endif
-
-                             /* $7 = syscall($4 = flags,
-                              *              $5 = child_stack,
-                              *              $6 = parent_tidptr,
-                              *              $7 = newtls,
-                              *              $8 = child_tidptr)
-                              */
-                             "li    $2,%2\n"
-                             "syscall\n"
-
-                             /* if ($7 != 0)
-                              *   return $2;
-                              */
-                             "bnez  $7,1f\n"
-                             "bnez  $2,1f\n"
-
-                             /* In the child, now. Call "fn(arg)".
-                              */
-          #if _MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 32
-                            "lw    $25,0($29)\n"
-                            "lw    $4,4($29)\n"
-          #elif _MIPS_SIM == _MIPS_SIM_NABI32
-                            "lw    $25,0($29)\n"
-                            "lw    $4,8($29)\n"
-          #else
-                            "ld    $25,0($29)\n"
-                            "ld    $4,8($29)\n"
-          #endif
-                            "jalr  $25\n"
-
-                             /* Call _exit($2)
-                              */
-                            "move  $4,$2\n"
-                            "li    $2,%3\n"
-                            "syscall\n"
-
-                           "1:\n"
-          #if _MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 32
-                             "addu  $29, 24\n"
-          #elif _MIPS_SIM == _MIPS_SIM_NABI32
-                             "add   $29, 16\n"
-          #else
-                             "daddu $29,16\n"
-          #endif
-                             : "+r" (__v0), "+r" (__r7)
-                             : "i"(__NR_clone), "i"(__NR_exit), "r"(fn),
-                               "r"(__stack), "r"(__flags), "r"(arg),
-                               "r"(__ptid), "r"(__ctid)
-                             : "$9", "$10", "$11", "$12", "$13", "$14", "$15",
-                               "$24", "$25", "memory");
-      }
-      LSS_RETURN(int, __v0, __r7);
-    }
-  #elif defined (__PPC__)
-    #undef  LSS_LOADARGS_0
-    #define LSS_LOADARGS_0(name, dummy...)                                    \
-        __sc_0 = __NR_##name
-    #undef  LSS_LOADARGS_1
-    #define LSS_LOADARGS_1(name, arg1)                                        \
-            LSS_LOADARGS_0(name);                                             \
-            __sc_3 = (unsigned long) (arg1)
-    #undef  LSS_LOADARGS_2
-    #define LSS_LOADARGS_2(name, arg1, arg2)                                  \
-            LSS_LOADARGS_1(name, arg1);                                       \
-            __sc_4 = (unsigned long) (arg2)
-    #undef  LSS_LOADARGS_3
-    #define LSS_LOADARGS_3(name, arg1, arg2, arg3)                            \
-            LSS_LOADARGS_2(name, arg1, arg2);                                 \
-            __sc_5 = (unsigned long) (arg3)
-    #undef  LSS_LOADARGS_4
-    #define LSS_LOADARGS_4(name, arg1, arg2, arg3, arg4)                      \
-            LSS_LOADARGS_3(name, arg1, arg2, arg3);                           \
-            __sc_6 = (unsigned long) (arg4)
-    #undef  LSS_LOADARGS_5
-    #define LSS_LOADARGS_5(name, arg1, arg2, arg3, arg4, arg5)                \
-            LSS_LOADARGS_4(name, arg1, arg2, arg3, arg4);                     \
-            __sc_7 = (unsigned long) (arg5)
-    #undef  LSS_LOADARGS_6
-    #define LSS_LOADARGS_6(name, arg1, arg2, arg3, arg4, arg5, arg6)          \
-            LSS_LOADARGS_5(name, arg1, arg2, arg3, arg4, arg5);               \
-            __sc_8 = (unsigned long) (arg6)
-    #undef  LSS_ASMINPUT_0
-    #define LSS_ASMINPUT_0 "0" (__sc_0)
-    #undef  LSS_ASMINPUT_1
-    #define LSS_ASMINPUT_1 LSS_ASMINPUT_0, "1" (__sc_3)
-    #undef  LSS_ASMINPUT_2
-    #define LSS_ASMINPUT_2 LSS_ASMINPUT_1, "2" (__sc_4)
-    #undef  LSS_ASMINPUT_3
-    #define LSS_ASMINPUT_3 LSS_ASMINPUT_2, "3" (__sc_5)
-    #undef  LSS_ASMINPUT_4
-    #define LSS_ASMINPUT_4 LSS_ASMINPUT_3, "4" (__sc_6)
-    #undef  LSS_ASMINPUT_5
-    #define LSS_ASMINPUT_5 LSS_ASMINPUT_4, "5" (__sc_7)
-    #undef  LSS_ASMINPUT_6
-    #define LSS_ASMINPUT_6 LSS_ASMINPUT_5, "6" (__sc_8)
-    #undef  LSS_BODY
-    #define LSS_BODY(nr, type, name, args...)                                 \
-        long __sc_ret, __sc_err;                                              \
-        {                                                                     \
-                        register unsigned long __sc_0 __asm__ ("r0");         \
-                        register unsigned long __sc_3 __asm__ ("r3");         \
-                        register unsigned long __sc_4 __asm__ ("r4");         \
-                        register unsigned long __sc_5 __asm__ ("r5");         \
-                        register unsigned long __sc_6 __asm__ ("r6");         \
-                        register unsigned long __sc_7 __asm__ ("r7");         \
-                        register unsigned long __sc_8 __asm__ ("r8");         \
-                                                                              \
-            LSS_LOADARGS_##nr(name, args);                                    \
-            __asm__ __volatile__                                              \
-                ("sc\n\t"                                                     \
-                 "mfcr %0"                                                    \
-                 : "=&r" (__sc_0),                                            \
-                   "=&r" (__sc_3), "=&r" (__sc_4),                            \
-                   "=&r" (__sc_5), "=&r" (__sc_6),                            \
-                   "=&r" (__sc_7), "=&r" (__sc_8)                             \
-                 : LSS_ASMINPUT_##nr                                          \
-                 : "cr0", "ctr", "memory",                                    \
-                   "r9", "r10", "r11", "r12");                                \
-            __sc_ret = __sc_3;                                                \
-            __sc_err = __sc_0;                                                \
-        }                                                                     \
-        LSS_RETURN(type, __sc_ret, __sc_err)
-    #undef _syscall0
-    #define _syscall0(type, name)                                             \
-       type LSS_NAME(name)(void) {                                            \
-          LSS_BODY(0, type, name);                                            \
-       }
-    #undef _syscall1
-    #define _syscall1(type, name, type1, arg1)                                \
-       type LSS_NAME(name)(type1 arg1) {                                      \
-          LSS_BODY(1, type, name, arg1);                                      \
-       }
-    #undef _syscall2
-    #define _syscall2(type, name, type1, arg1, type2, arg2)                   \
-       type LSS_NAME(name)(type1 arg1, type2 arg2) {                          \
-          LSS_BODY(2, type, name, arg1, arg2);                                \
-       }
-    #undef _syscall3
-    #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3)      \
-       type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) {              \
-          LSS_BODY(3, type, name, arg1, arg2, arg3);                          \
-       }
-    #undef _syscall4
-    #define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3,      \
-                                  type4, arg4)                                \
-       type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) {  \
-          LSS_BODY(4, type, name, arg1, arg2, arg3, arg4);                    \
-       }
-    #undef _syscall5
-    #define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3,      \
-                                  type4, arg4, type5, arg5)                   \
-       type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,    \
-                                               type5 arg5) {                  \
-          LSS_BODY(5, type, name, arg1, arg2, arg3, arg4, arg5);              \
-       }
-    #undef _syscall6
-    #define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3,      \
-                                  type4, arg4, type5, arg5, type6, arg6)      \
-       type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4,    \
-                                               type5 arg5, type6 arg6) {      \
-          LSS_BODY(6, type, name, arg1, arg2, arg3, arg4, arg5, arg6);        \
-       }
-    /* clone function adapted from glibc 2.3.6 clone.S                       */
-    /* TODO(csilvers): consider wrapping some args up in a struct, like we
-     * do for i386's _syscall6, so we can compile successfully on gcc 2.95
-     */
-    LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack,
-                                   int flags, void *arg, int *parent_tidptr,
-                                   void *newtls, int *child_tidptr) {
-      long __ret, __err;
-      {
-        register int (*__fn)(void *)    __asm__ ("r8")  = fn;
-        register void *__cstack                 __asm__ ("r4")  = child_stack;
-        register int __flags                    __asm__ ("r3")  = flags;
-        register void * __arg                   __asm__ ("r9")  = arg;
-        register int * __ptidptr                __asm__ ("r5")  = parent_tidptr;
-        register void * __newtls                __asm__ ("r6")  = newtls;
-        register int * __ctidptr                __asm__ ("r7")  = child_tidptr;
-        __asm__ __volatile__(
-            /* check for fn == NULL
-             * and child_stack == NULL
-             */
-            "cmpwi cr0, %6, 0\n\t"
-            "cmpwi cr1, %7, 0\n\t"
-            "cror cr0*4+eq, cr1*4+eq, cr0*4+eq\n\t"
-            "beq- cr0, 1f\n\t"
-
-            /* set up stack frame for child                                  */
-            "clrrwi %7, %7, 4\n\t"
-            "li 0, 0\n\t"
-            "stwu 0, -16(%7)\n\t"
-
-            /* fn, arg, child_stack are saved across the syscall: r28-30     */
-            "mr 28, %6\n\t"
-            "mr 29, %7\n\t"
-            "mr 27, %9\n\t"
-
-            /* syscall                                                       */
-            "li 0, %4\n\t"
-            /* flags already in r3
-             * child_stack already in r4
-             * ptidptr already in r5
-             * newtls already in r6
-             * ctidptr already in r7
-             */
-            "sc\n\t"
-
-            /* Test if syscall was successful                                */
-            "cmpwi cr1, 3, 0\n\t"
-            "crandc cr1*4+eq, cr1*4+eq, cr0*4+so\n\t"
-            "bne- cr1, 1f\n\t"
-
-            /* Do the function call                                          */
-            "mtctr 28\n\t"
-            "mr 3, 27\n\t"
-            "bctrl\n\t"
-
-            /* Call _exit(r3)                                                */
-            "li 0, %5\n\t"
-            "sc\n\t"
-
-            /* Return to parent                                              */
-            "1:\n"
-            "mfcr %1\n\t"
-            "mr %0, 3\n\t"
-              : "=r" (__ret), "=r" (__err)
-              : "0" (-1), "1" (EINVAL),
-                "i" (__NR_clone), "i" (__NR_exit),
-                "r" (__fn), "r" (__cstack), "r" (__flags),
-                "r" (__arg), "r" (__ptidptr), "r" (__newtls),
-                "r" (__ctidptr)
-              : "cr0", "cr1", "memory", "ctr",
-                "r0", "r29", "r27", "r28");
-      }
-      LSS_RETURN(int, __ret, __err);
-    }
-  #endif
-  #define __NR__exit   __NR_exit
-  #define __NR__gettid __NR_gettid
-  #define __NR__mremap __NR_mremap
-  LSS_INLINE _syscall1(void *,  brk,             void *,      e)
-  LSS_INLINE _syscall1(int,     chdir,           const char *,p)
-  LSS_INLINE _syscall1(int,     close,           int,         f)
-  LSS_INLINE _syscall2(int,     clock_getres,    int,         c,
-                       struct kernel_timespec*, t)
-  LSS_INLINE _syscall2(int,     clock_gettime,   int,         c,
-                       struct kernel_timespec*, t)
-  LSS_INLINE _syscall1(int,     dup,             int,         f)
-  #if !defined(__aarch64__)
-    // The dup2 syscall has been deprecated on aarch64. We polyfill it below.
-    LSS_INLINE _syscall2(int,     dup2,            int,         s,
-                         int,            d)
-  #endif
-  LSS_INLINE _syscall3(int,     execve,          const char*, f,
-                       const char*const*,a,const char*const*, e)
-  LSS_INLINE _syscall1(int,     _exit,           int,         e)
-  LSS_INLINE _syscall1(int,     exit_group,      int,         e)
-  LSS_INLINE _syscall3(int,     fcntl,           int,         f,
-                       int,            c, long,   a)
-  #if !defined(__aarch64__)
-    // The fork syscall has been deprecated on aarch64. We polyfill it below.
-    LSS_INLINE _syscall0(pid_t,   fork)
-  #endif
-  LSS_INLINE _syscall2(int,     fstat,           int,         f,
-                      struct kernel_stat*,   b)
-  LSS_INLINE _syscall2(int,     fstatfs,         int,         f,
-                      struct kernel_statfs*, b)
-  #if defined(__x86_64__)
-    /* Need to make sure off_t isn't truncated to 32-bits under x32.  */
-    LSS_INLINE int LSS_NAME(ftruncate)(int f, off_t l) {
-      LSS_BODY(2, int, ftruncate, LSS_SYSCALL_ARG(f), (uint64_t)(l));
-    }
-  #else
-    LSS_INLINE _syscall2(int, ftruncate,           int,         f,
-                         off_t,          l)
-  #endif
-  LSS_INLINE _syscall4(int,     futex,           int*,        a,
-                       int,            o, int,    v,
-                      struct kernel_timespec*, t)
-  LSS_INLINE _syscall3(int,     getdents,        int,         f,
-                       struct kernel_dirent*, d, int,    c)
-  LSS_INLINE _syscall3(int,     getdents64,      int,         f,
-                      struct kernel_dirent64*, d, int,    c)
-  LSS_INLINE _syscall0(gid_t,   getegid)
-  LSS_INLINE _syscall0(uid_t,   geteuid)
-  #if !defined(__aarch64__)
-    // The getgprp syscall has been deprecated on aarch64.
-    LSS_INLINE _syscall0(pid_t,   getpgrp)
-  #endif
-  LSS_INLINE _syscall0(pid_t,   getpid)
-  LSS_INLINE _syscall0(pid_t,   getppid)
-  LSS_INLINE _syscall2(int,     getpriority,     int,         a,
-                       int,            b)
-  LSS_INLINE _syscall3(int,     getresgid,       gid_t *,     r,
-                       gid_t *,         e,       gid_t *,     s)
-  LSS_INLINE _syscall3(int,     getresuid,       uid_t *,     r,
-                       uid_t *,         e,       uid_t *,     s)
-#if !defined(__ARM_EABI__)
-  LSS_INLINE _syscall2(int,     getrlimit,       int,         r,
-                      struct kernel_rlimit*, l)
-#endif
-  LSS_INLINE _syscall1(pid_t,   getsid,          pid_t,       p)
-  LSS_INLINE _syscall0(pid_t,   _gettid)
-  LSS_INLINE _syscall2(pid_t,   gettimeofday,    struct kernel_timeval*, t,
-                       void*, tz)
-  LSS_INLINE _syscall5(int,     setxattr,        const char *,p,
-                       const char *,   n,        const void *,v,
-                       size_t,         s,        int,         f)
-  LSS_INLINE _syscall5(int,     lsetxattr,       const char *,p,
-                       const char *,   n,        const void *,v,
-                       size_t,         s,        int,         f)
-  LSS_INLINE _syscall4(ssize_t, getxattr,        const char *,p,
-                       const char *,   n,        void *,      v, size_t, s)
-  LSS_INLINE _syscall4(ssize_t, lgetxattr,       const char *,p,
-                       const char *,   n,        void *,      v, size_t, s)
-  LSS_INLINE _syscall3(ssize_t, listxattr,       const char *,p,
-                       char *,   l,              size_t,      s)
-  LSS_INLINE _syscall3(ssize_t, llistxattr,      const char *,p,
-                       char *,   l,              size_t,      s)
-  LSS_INLINE _syscall3(int,     ioctl,           int,         d,
-                       int,     r,               void *,      a)
-  LSS_INLINE _syscall2(int,     ioprio_get,      int,         which,
-                       int,     who)
-  LSS_INLINE _syscall3(int,     ioprio_set,      int,         which,
-                       int,     who,             int,         ioprio)
-  LSS_INLINE _syscall2(int,     kill,            pid_t,       p,
-                       int,            s)
-  #if defined(__x86_64__)
-    /* Need to make sure off_t isn't truncated to 32-bits under x32.  */
-    LSS_INLINE off_t LSS_NAME(lseek)(int f, off_t o, int w) {
-      _LSS_BODY(3, off_t, lseek, off_t, LSS_SYSCALL_ARG(f), (uint64_t)(o),
-                                        LSS_SYSCALL_ARG(w));
-    }
-  #else
-    LSS_INLINE _syscall3(off_t,   lseek,           int,         f,
-                         off_t,          o, int,    w)
-  #endif
-  LSS_INLINE _syscall2(int,     munmap,          void*,       s,
-                       size_t,         l)
-  LSS_INLINE _syscall6(long,    move_pages,      pid_t,       p,
-                       unsigned long,  n, void **,g, int *,   d,
-                       int *,          s, int,    f)
-  LSS_INLINE _syscall3(int,     mprotect,        const void *,a,
-                       size_t,         l,        int,         p)
-  LSS_INLINE _syscall5(void*,   _mremap,         void*,       o,
-                       size_t,         os,       size_t,      ns,
-                       unsigned long,  f, void *, a)
-  #if !defined(__aarch64__)
-    // The open and poll syscalls have been deprecated on aarch64. We polyfill
-    // them below.
-    LSS_INLINE _syscall3(int,     open,            const char*, p,
-                         int,            f, int,    m)
-    LSS_INLINE _syscall3(int,     poll,           struct kernel_pollfd*, u,
-                         unsigned int,   n, int,    t)
-  #endif
-  LSS_INLINE _syscall5(int,     prctl,           int,         option,
-                       unsigned long,  arg2,
-                       unsigned long,  arg3,
-                       unsigned long,  arg4,
-                       unsigned long,  arg5)
-  LSS_INLINE _syscall4(long,    ptrace,          int,         r,
-                       pid_t,          p, void *, a, void *, d)
-  #if defined(__NR_quotactl)
-    // Defined on x86_64 / i386 only
-    LSS_INLINE _syscall4(int,  quotactl,  int,  cmd,  const char *, special,
-                         int, id, caddr_t, addr)
-  #endif
-  LSS_INLINE _syscall3(ssize_t, read,            int,         f,
-                       void *,         b, size_t, c)
-  #if !defined(__aarch64__)
-    // The readlink syscall has been deprecated on aarch64. We polyfill below.
-    LSS_INLINE _syscall3(int,     readlink,        const char*, p,
-                         char*,          b, size_t, s)
-  #endif
-  LSS_INLINE _syscall4(int,     rt_sigaction,    int,         s,
-                       const struct kernel_sigaction*, a,
-                       struct kernel_sigaction*, o, size_t,   c)
-  LSS_INLINE _syscall2(int, rt_sigpending, struct kernel_sigset_t *, s,
-                       size_t,         c)
-  LSS_INLINE _syscall4(int, rt_sigprocmask,      int,         h,
-                       const struct kernel_sigset_t*,  s,
-                       struct kernel_sigset_t*,        o, size_t, c)
-  LSS_INLINE _syscall2(int, rt_sigsuspend,
-                       const struct kernel_sigset_t*, s,  size_t, c)
-  LSS_INLINE _syscall3(int,     sched_getaffinity,pid_t,      p,
-                       unsigned int,   l, unsigned long *, m)
-  LSS_INLINE _syscall3(int,     sched_setaffinity,pid_t,      p,
-                       unsigned int,   l, unsigned long *, m)
-  LSS_INLINE _syscall0(int,     sched_yield)
-  LSS_INLINE _syscall1(long,    set_tid_address, int *,       t)
-  LSS_INLINE _syscall1(int,     setfsgid,        gid_t,       g)
-  LSS_INLINE _syscall1(int,     setfsuid,        uid_t,       u)
-  LSS_INLINE _syscall1(int,     setuid,          uid_t,       u)
-  LSS_INLINE _syscall1(int,     setgid,          gid_t,       g)
-  LSS_INLINE _syscall2(int,     setpgid,         pid_t,       p,
-                       pid_t,          g)
-  LSS_INLINE _syscall3(int,     setpriority,     int,         a,
-                       int,            b, int,    p)
-  LSS_INLINE _syscall3(int,     setresgid,       gid_t,       r,
-                       gid_t,          e, gid_t,  s)
-  LSS_INLINE _syscall3(int,     setresuid,       uid_t,       r,
-                       uid_t,          e, uid_t,  s)
-  LSS_INLINE _syscall2(int,     setrlimit,       int,         r,
-                       const struct kernel_rlimit*, l)
-  LSS_INLINE _syscall0(pid_t,    setsid)
-  LSS_INLINE _syscall2(int,     sigaltstack,     const stack_t*, s,
-                       const stack_t*, o)
-  #if defined(__NR_sigreturn)
-    LSS_INLINE _syscall1(int,     sigreturn,       unsigned long, u)
-  #endif
-  #if !defined(__aarch64__)
-    // The stat syscall has been deprecated on aarch64. We polyfill it below.
-    LSS_INLINE _syscall2(int,     stat,            const char*, f,
-                        struct kernel_stat*,   b)
-  #endif
-  LSS_INLINE _syscall2(int,     statfs,          const char*, f,
-                      struct kernel_statfs*, b)
-  LSS_INLINE _syscall3(int,     tgkill,          pid_t,       p,
-                       pid_t,          t, int,            s)
-  LSS_INLINE _syscall2(int,     tkill,           pid_t,       p,
-                       int,            s)
-  #if !defined(__aarch64__)
-    // The unlink syscall has been deprecated on aarch64. We polyfill it below.
-    LSS_INLINE _syscall1(int,     unlink,           const char*, f)
-  #endif
-  LSS_INLINE _syscall3(ssize_t, write,            int,        f,
-                       const void *,   b, size_t, c)
-  LSS_INLINE _syscall3(ssize_t, writev,           int,        f,
-                       const struct kernel_iovec*, v, size_t, c)
-  #if defined(__NR_getcpu)
-    LSS_INLINE _syscall3(long, getcpu, unsigned *, cpu,
-                         unsigned *, node, void *, unused)
-  #endif
-  #if defined(__x86_64__) ||                                                  \
-     (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI32)
-    LSS_INLINE _syscall3(int, recvmsg,            int,   s,
-                        struct kernel_msghdr*,     m, int, f)
-    LSS_INLINE _syscall3(int, sendmsg,            int,   s,
-                         const struct kernel_msghdr*, m, int, f)
-    LSS_INLINE _syscall6(int, sendto,             int,   s,
-                         const void*,             m, size_t, l,
-                         int,                     f,
-                         const struct kernel_sockaddr*, a, int, t)
-    LSS_INLINE _syscall2(int, shutdown,           int,   s,
-                         int,                     h)
-    LSS_INLINE _syscall3(int, socket,             int,   d,
-                         int,                     t, int,       p)
-    LSS_INLINE _syscall4(int, socketpair,         int,   d,
-                         int,                     t, int,       p, int*, s)
-  #endif
-  #if defined(__x86_64__)
-    /* Need to make sure loff_t isn't truncated to 32-bits under x32.  */
-    LSS_INLINE int LSS_NAME(fallocate)(int f, int mode, loff_t offset,
-                                       loff_t len) {
-      LSS_BODY(4, int, fallocate, LSS_SYSCALL_ARG(f), LSS_SYSCALL_ARG(mode),
-                                  (uint64_t)(offset), (uint64_t)(len));
-    }
-
-    LSS_INLINE int LSS_NAME(getresgid32)(gid_t *rgid,
-                                         gid_t *egid,
-                                         gid_t *sgid) {
-      return LSS_NAME(getresgid)(rgid, egid, sgid);
-    }
-
-    LSS_INLINE int LSS_NAME(getresuid32)(uid_t *ruid,
-                                         uid_t *euid,
-                                         uid_t *suid) {
-      return LSS_NAME(getresuid)(ruid, euid, suid);
-    }
-
-    /* Need to make sure __off64_t isn't truncated to 32-bits under x32.  */
-    LSS_INLINE void* LSS_NAME(mmap)(void *s, size_t l, int p, int f, int d,
-                                    int64_t o) {
-      LSS_BODY(6, void*, mmap, LSS_SYSCALL_ARG(s), LSS_SYSCALL_ARG(l),
-                               LSS_SYSCALL_ARG(p), LSS_SYSCALL_ARG(f),
-                               LSS_SYSCALL_ARG(d), (uint64_t)(o));
-    }
-
-    LSS_INLINE _syscall4(int, newfstatat,         int,   d,
-                         const char *,            p,
-                        struct kernel_stat*,       b, int, f)
-
-    LSS_INLINE int LSS_NAME(setfsgid32)(gid_t gid) {
-      return LSS_NAME(setfsgid)(gid);
-    }
-
-    LSS_INLINE int LSS_NAME(setfsuid32)(uid_t uid) {
-      return LSS_NAME(setfsuid)(uid);
-    }
-
-    LSS_INLINE int LSS_NAME(setresgid32)(gid_t rgid, gid_t egid, gid_t sgid) {
-      return LSS_NAME(setresgid)(rgid, egid, sgid);
-    }
-
-    LSS_INLINE int LSS_NAME(setresuid32)(uid_t ruid, uid_t euid, uid_t suid) {
-      return LSS_NAME(setresuid)(ruid, euid, suid);
-    }
-
-    LSS_INLINE int LSS_NAME(sigaction)(int signum,
-                                       const struct kernel_sigaction *act,
-                                       struct kernel_sigaction *oldact) {
-      /* On x86_64, the kernel requires us to always set our own
-       * SA_RESTORER in order to be able to return from a signal handler.
-       * This function must have a "magic" signature that the "gdb"
-       * (and maybe the kernel?) can recognize.
-       */
-      if (act != NULL && !(act->sa_flags & SA_RESTORER)) {
-        struct kernel_sigaction a = *act;
-        a.sa_flags   |= SA_RESTORER;
-        a.sa_restorer = LSS_NAME(restore_rt)();
-        return LSS_NAME(rt_sigaction)(signum, &a, oldact,
-                                      (KERNEL_NSIG+7)/8);
-      } else {
-        return LSS_NAME(rt_sigaction)(signum, act, oldact,
-                                      (KERNEL_NSIG+7)/8);
-      }
-    }
-
-    LSS_INLINE int LSS_NAME(sigpending)(struct kernel_sigset_t *set) {
-      return LSS_NAME(rt_sigpending)(set, (KERNEL_NSIG+7)/8);
-    }
-
-    LSS_INLINE int LSS_NAME(sigprocmask)(int how,
-                                         const struct kernel_sigset_t *set,
-                                         struct kernel_sigset_t *oldset) {
-      return LSS_NAME(rt_sigprocmask)(how, set, oldset, (KERNEL_NSIG+7)/8);
-    }
-
-    LSS_INLINE int LSS_NAME(sigsuspend)(const struct kernel_sigset_t *set) {
-      return LSS_NAME(rt_sigsuspend)(set, (KERNEL_NSIG+7)/8);
-    }
-  #endif
-  #if defined(__x86_64__) || defined(__ARM_ARCH_3__) ||                       \
-      defined(__ARM_EABI__) || defined(__aarch64__) ||                        \
-     (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI32)
-    LSS_INLINE _syscall4(pid_t, wait4,            pid_t, p,
-                         int*,                    s, int,       o,
-                        struct kernel_rusage*,     r)
-
-    LSS_INLINE pid_t LSS_NAME(waitpid)(pid_t pid, int *status, int options){
-      return LSS_NAME(wait4)(pid, status, options, 0);
-    }
-  #endif
-  #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__)
-    LSS_INLINE _syscall4(int, openat, int, d, const char *, p, int, f, int, m)
-    LSS_INLINE _syscall3(int, unlinkat, int, d, const char *, p, int, f)
-  #endif
-  #if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__)
-    #define __NR__getresgid32 __NR_getresgid32
-    #define __NR__getresuid32 __NR_getresuid32
-    #define __NR__setfsgid32  __NR_setfsgid32
-    #define __NR__setfsuid32  __NR_setfsuid32
-    #define __NR__setresgid32 __NR_setresgid32
-    #define __NR__setresuid32 __NR_setresuid32
-#if defined(__ARM_EABI__)
-    LSS_INLINE _syscall2(int,   ugetrlimit,        int,          r,
-                        struct kernel_rlimit*, l)
-#endif
-    LSS_INLINE _syscall3(int,     _getresgid32,    gid_t *,      r,
-                         gid_t *,            e,    gid_t *,      s)
-    LSS_INLINE _syscall3(int,     _getresuid32,    uid_t *,      r,
-                         uid_t *,            e,    uid_t *,      s)
-    LSS_INLINE _syscall1(int,     _setfsgid32,     gid_t,        f)
-    LSS_INLINE _syscall1(int,     _setfsuid32,     uid_t,        f)
-    LSS_INLINE _syscall3(int,     _setresgid32,    gid_t,        r,
-                         gid_t,              e,    gid_t,        s)
-    LSS_INLINE _syscall3(int,     _setresuid32,    uid_t,        r,
-                         uid_t,              e,    uid_t,        s)
-
-    LSS_INLINE int LSS_NAME(getresgid32)(gid_t *rgid,
-                                         gid_t *egid,
-                                         gid_t *sgid) {
-      int rc;
-      if ((rc = LSS_NAME(_getresgid32)(rgid, egid, sgid)) < 0 &&
-          LSS_ERRNO == ENOSYS) {
-        if ((rgid == NULL) || (egid == NULL) || (sgid == NULL)) {
-          return EFAULT;
-        }
-        // Clear the high bits first, since getresgid only sets 16 bits
-        *rgid = *egid = *sgid = 0;
-        rc = LSS_NAME(getresgid)(rgid, egid, sgid);
-      }
-      return rc;
-    }
-
-    LSS_INLINE int LSS_NAME(getresuid32)(uid_t *ruid,
-                                         uid_t *euid,
-                                         uid_t *suid) {
-      int rc;
-      if ((rc = LSS_NAME(_getresuid32)(ruid, euid, suid)) < 0 &&
-          LSS_ERRNO == ENOSYS) {
-        if ((ruid == NULL) || (euid == NULL) || (suid == NULL)) {
-          return EFAULT;
-        }
-        // Clear the high bits first, since getresuid only sets 16 bits
-        *ruid = *euid = *suid = 0;
-        rc = LSS_NAME(getresuid)(ruid, euid, suid);
-      }
-      return rc;
-    }
-
-    LSS_INLINE int LSS_NAME(setfsgid32)(gid_t gid) {
-      int rc;
-      if ((rc = LSS_NAME(_setfsgid32)(gid)) < 0 &&
-          LSS_ERRNO == ENOSYS) {
-        if ((unsigned int)gid & ~0xFFFFu) {
-          rc = EINVAL;
-        } else {
-          rc = LSS_NAME(setfsgid)(gid);
-        }
-      }
-      return rc;
-    }
-
-    LSS_INLINE int LSS_NAME(setfsuid32)(uid_t uid) {
-      int rc;
-      if ((rc = LSS_NAME(_setfsuid32)(uid)) < 0 &&
-          LSS_ERRNO == ENOSYS) {
-        if ((unsigned int)uid & ~0xFFFFu) {
-          rc = EINVAL;
-        } else {
-          rc = LSS_NAME(setfsuid)(uid);
-        }
-      }
-      return rc;
-    }
-
-    LSS_INLINE int LSS_NAME(setresgid32)(gid_t rgid, gid_t egid, gid_t sgid) {
-      int rc;
-      if ((rc = LSS_NAME(_setresgid32)(rgid, egid, sgid)) < 0 &&
-          LSS_ERRNO == ENOSYS) {
-        if ((unsigned int)rgid & ~0xFFFFu ||
-            (unsigned int)egid & ~0xFFFFu ||
-            (unsigned int)sgid & ~0xFFFFu) {
-          rc = EINVAL;
-        } else {
-          rc = LSS_NAME(setresgid)(rgid, egid, sgid);
-        }
-      }
-      return rc;
-    }
-
-    LSS_INLINE int LSS_NAME(setresuid32)(uid_t ruid, uid_t euid, uid_t suid) {
-      int rc;
-      if ((rc = LSS_NAME(_setresuid32)(ruid, euid, suid)) < 0 &&
-          LSS_ERRNO == ENOSYS) {
-        if ((unsigned int)ruid & ~0xFFFFu ||
-            (unsigned int)euid & ~0xFFFFu ||
-            (unsigned int)suid & ~0xFFFFu) {
-          rc = EINVAL;
-        } else {
-          rc = LSS_NAME(setresuid)(ruid, euid, suid);
-        }
-      }
-      return rc;
-    }
-  #endif
-  LSS_INLINE int LSS_NAME(sigemptyset)(struct kernel_sigset_t *set) {
-    memset(&set->sig, 0, sizeof(set->sig));
-    return 0;
-  }
-
-  LSS_INLINE int LSS_NAME(sigfillset)(struct kernel_sigset_t *set) {
-    memset(&set->sig, -1, sizeof(set->sig));
-    return 0;
-  }
-
-  LSS_INLINE int LSS_NAME(sigaddset)(struct kernel_sigset_t *set,
-                                     int signum) {
-    if (signum < 1 || signum > (int)(8*sizeof(set->sig))) {
-      LSS_ERRNO = EINVAL;
-      return -1;
-    } else {
-      set->sig[(signum - 1)/(8*sizeof(set->sig[0]))]
-          |= 1UL << ((signum - 1) % (8*sizeof(set->sig[0])));
-      return 0;
-    }
-  }
-
-  LSS_INLINE int LSS_NAME(sigdelset)(struct kernel_sigset_t *set,
-                                        int signum) {
-    if (signum < 1 || signum > (int)(8*sizeof(set->sig))) {
-      LSS_ERRNO = EINVAL;
-      return -1;
-    } else {
-      set->sig[(signum - 1)/(8*sizeof(set->sig[0]))]
-          &= ~(1UL << ((signum - 1) % (8*sizeof(set->sig[0]))));
-      return 0;
-    }
-  }
-
-  LSS_INLINE int LSS_NAME(sigismember)(struct kernel_sigset_t *set,
-                                          int signum) {
-    if (signum < 1 || signum > (int)(8*sizeof(set->sig))) {
-      LSS_ERRNO = EINVAL;
-      return -1;
-    } else {
-      return !!(set->sig[(signum - 1)/(8*sizeof(set->sig[0]))] &
-                (1UL << ((signum - 1) % (8*sizeof(set->sig[0])))));
-    }
-  }
-  #if defined(__i386__) || defined(__ARM_ARCH_3__) ||                         \
-      defined(__ARM_EABI__) ||                                             \
-     (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) || defined(__PPC__)
-    #define __NR__sigaction   __NR_sigaction
-    #define __NR__sigpending  __NR_sigpending
-    #define __NR__sigprocmask __NR_sigprocmask
-    #define __NR__sigsuspend  __NR_sigsuspend
-    #define __NR__socketcall  __NR_socketcall
-    LSS_INLINE _syscall2(int, fstat64,             int, f,
-                         struct kernel_stat64 *, b)
-    LSS_INLINE _syscall5(int, _llseek,     uint, fd,
-                         unsigned long, hi, unsigned long, lo,
-                         loff_t *, res, uint, wh)
-#if !defined(__ARM_EABI__)
-    LSS_INLINE _syscall1(void*, mmap,              void*, a)
-#endif
-    LSS_INLINE _syscall6(void*, mmap2,             void*, s,
-                         size_t,                   l, int,               p,
-                         int,                      f, int,               d,
-                         off_t,                o)
-    LSS_INLINE _syscall3(int,   _sigaction,        int,   s,
-                         const struct kernel_old_sigaction*,  a,
-                         struct kernel_old_sigaction*,        o)
-    LSS_INLINE _syscall1(int,   _sigpending, unsigned long*, s)
-    LSS_INLINE _syscall3(int,   _sigprocmask,      int,   h,
-                         const unsigned long*,     s,
-                         unsigned long*,           o)
-    #ifdef __PPC__
-    LSS_INLINE _syscall1(int, _sigsuspend,         unsigned long, s)
-    #else
-    LSS_INLINE _syscall3(int, _sigsuspend,         const void*, a,
-                         int,                      b,
-                         unsigned long,            s)
-    #endif
-    LSS_INLINE _syscall2(int, stat64,              const char *, p,
-                         struct kernel_stat64 *, b)
-
-    LSS_INLINE int LSS_NAME(sigaction)(int signum,
-                                       const struct kernel_sigaction *act,
-                                       struct kernel_sigaction *oldact) {
-      int old_errno = LSS_ERRNO;
-      int rc;
-      struct kernel_sigaction a;
-      if (act != NULL) {
-        a             = *act;
-        #ifdef __i386__
-        /* On i386, the kernel requires us to always set our own
-         * SA_RESTORER when using realtime signals. Otherwise, it does not
-         * know how to return from a signal handler. This function must have
-         * a "magic" signature that the "gdb" (and maybe the kernel?) can
-         * recognize.
-         * Apparently, a SA_RESTORER is implicitly set by the kernel, when
-         * using non-realtime signals.
-         *
-         * TODO: Test whether ARM needs a restorer
-         */
-        if (!(a.sa_flags & SA_RESTORER)) {
-          a.sa_flags   |= SA_RESTORER;
-          a.sa_restorer = (a.sa_flags & SA_SIGINFO)
-                          ? LSS_NAME(restore_rt)() : LSS_NAME(restore)();
-        }
-        #endif
-      }
-      rc = LSS_NAME(rt_sigaction)(signum, act ? &a : act, oldact,
-                                  (KERNEL_NSIG+7)/8);
-      if (rc < 0 && LSS_ERRNO == ENOSYS) {
-        struct kernel_old_sigaction oa, ooa, *ptr_a = &oa, *ptr_oa = &ooa;
-        if (!act) {
-          ptr_a            = NULL;
-        } else {
-          oa.sa_handler_   = act->sa_handler_;
-          memcpy(&oa.sa_mask, &act->sa_mask, sizeof(oa.sa_mask));
-          #ifndef __mips__
-          oa.sa_restorer   = act->sa_restorer;
-          #endif
-          oa.sa_flags      = act->sa_flags;
-        }
-        if (!oldact) {
-          ptr_oa           = NULL;
-        }
-        LSS_ERRNO = old_errno;
-        rc = LSS_NAME(_sigaction)(signum, ptr_a, ptr_oa);
-        if (rc == 0 && oldact) {
-          if (act) {
-            memcpy(oldact, act, sizeof(*act));
-          } else {
-            memset(oldact, 0, sizeof(*oldact));
-          }
-          oldact->sa_handler_    = ptr_oa->sa_handler_;
-          oldact->sa_flags       = ptr_oa->sa_flags;
-          memcpy(&oldact->sa_mask, &ptr_oa->sa_mask, sizeof(ptr_oa->sa_mask));
-          #ifndef __mips__
-          oldact->sa_restorer    = ptr_oa->sa_restorer;
-          #endif
-        }
-      }
-      return rc;
-    }
-
-    LSS_INLINE int LSS_NAME(sigpending)(struct kernel_sigset_t *set) {
-      int old_errno = LSS_ERRNO;
-      int rc = LSS_NAME(rt_sigpending)(set, (KERNEL_NSIG+7)/8);
-      if (rc < 0 && LSS_ERRNO == ENOSYS) {
-        LSS_ERRNO = old_errno;
-        LSS_NAME(sigemptyset)(set);
-        rc = LSS_NAME(_sigpending)(&set->sig[0]);
-      }
-      return rc;
-    }
-
-    LSS_INLINE int LSS_NAME(sigprocmask)(int how,
-                                         const struct kernel_sigset_t *set,
-                                         struct kernel_sigset_t *oldset) {
-      int olderrno = LSS_ERRNO;
-      int rc = LSS_NAME(rt_sigprocmask)(how, set, oldset, (KERNEL_NSIG+7)/8);
-      if (rc < 0 && LSS_ERRNO == ENOSYS) {
-        LSS_ERRNO = olderrno;
-        if (oldset) {
-          LSS_NAME(sigemptyset)(oldset);
-        }
-        rc = LSS_NAME(_sigprocmask)(how,
-                                    set ? &set->sig[0] : NULL,
-                                    oldset ? &oldset->sig[0] : NULL);
-      }
-      return rc;
-    }
-
-    LSS_INLINE int LSS_NAME(sigsuspend)(const struct kernel_sigset_t *set) {
-      int olderrno = LSS_ERRNO;
-      int rc = LSS_NAME(rt_sigsuspend)(set, (KERNEL_NSIG+7)/8);
-      if (rc < 0 && LSS_ERRNO == ENOSYS) {
-        LSS_ERRNO = olderrno;
-        rc = LSS_NAME(_sigsuspend)(
-        #ifndef __PPC__
-                                   set, 0,
-        #endif
-                                   set->sig[0]);
-      }
-      return rc;
-    }
-  #endif
-  #if defined(__PPC__)
-    #undef LSS_SC_LOADARGS_0
-    #define LSS_SC_LOADARGS_0(dummy...)
-    #undef LSS_SC_LOADARGS_1
-    #define LSS_SC_LOADARGS_1(arg1)                                           \
-        __sc_4  = (unsigned long) (arg1)
-    #undef LSS_SC_LOADARGS_2
-    #define LSS_SC_LOADARGS_2(arg1, arg2)                                     \
-        LSS_SC_LOADARGS_1(arg1);                                              \
-        __sc_5  = (unsigned long) (arg2)
-    #undef LSS_SC_LOADARGS_3
-    #define LSS_SC_LOADARGS_3(arg1, arg2, arg3)                               \
-        LSS_SC_LOADARGS_2(arg1, arg2);                                        \
-        __sc_6  = (unsigned long) (arg3)
-    #undef LSS_SC_LOADARGS_4
-    #define LSS_SC_LOADARGS_4(arg1, arg2, arg3, arg4)                         \
-        LSS_SC_LOADARGS_3(arg1, arg2, arg3);                                  \
-        __sc_7  = (unsigned long) (arg4)
-    #undef LSS_SC_LOADARGS_5
-    #define LSS_SC_LOADARGS_5(arg1, arg2, arg3, arg4, arg5)                   \
-        LSS_SC_LOADARGS_4(arg1, arg2, arg3, arg4);                            \
-        __sc_8  = (unsigned long) (arg5)
-    #undef LSS_SC_BODY
-    #define LSS_SC_BODY(nr, type, opt, args...)                               \
-        long __sc_ret, __sc_err;                                              \
-        {                                                                     \
-          register unsigned long __sc_0 __asm__ ("r0") = __NR_socketcall;     \
-          register unsigned long __sc_3 __asm__ ("r3") = opt;                 \
-          register unsigned long __sc_4 __asm__ ("r4");                       \
-          register unsigned long __sc_5 __asm__ ("r5");                       \
-          register unsigned long __sc_6 __asm__ ("r6");                       \
-          register unsigned long __sc_7 __asm__ ("r7");                       \
-          register unsigned long __sc_8 __asm__ ("r8");                       \
-          LSS_SC_LOADARGS_##nr(args);                                         \
-          __asm__ __volatile__                                                \
-              ("stwu 1, -48(1)\n\t"                                           \
-               "stw 4, 20(1)\n\t"                                             \
-               "stw 5, 24(1)\n\t"                                             \
-               "stw 6, 28(1)\n\t"                                             \
-               "stw 7, 32(1)\n\t"                                             \
-               "stw 8, 36(1)\n\t"                                             \
-               "addi 4, 1, 20\n\t"                                            \
-               "sc\n\t"                                                       \
-               "mfcr %0"                                                      \
-                 : "=&r" (__sc_0),                                            \
-                   "=&r" (__sc_3), "=&r" (__sc_4),                            \
-                   "=&r" (__sc_5), "=&r" (__sc_6),                            \
-                   "=&r" (__sc_7), "=&r" (__sc_8)                             \
-                 : LSS_ASMINPUT_##nr                                          \
-                 : "cr0", "ctr", "memory");                                   \
-          __sc_ret = __sc_3;                                                  \
-          __sc_err = __sc_0;                                                  \
-        }                                                                     \
-        LSS_RETURN(type, __sc_ret, __sc_err)
-
-    LSS_INLINE ssize_t LSS_NAME(recvmsg)(int s,struct kernel_msghdr *msg,
-                                         int flags){
-      LSS_SC_BODY(3, ssize_t, 17, s, msg, flags);
-    }
-
-    LSS_INLINE ssize_t LSS_NAME(sendmsg)(int s,
-                                         const struct kernel_msghdr *msg,
-                                         int flags) {
-      LSS_SC_BODY(3, ssize_t, 16, s, msg, flags);
-    }
-
-    // TODO(csilvers): why is this ifdef'ed out?
-#if 0
-    LSS_INLINE ssize_t LSS_NAME(sendto)(int s, const void *buf, size_t len,
-                                        int flags,
-                                        const struct kernel_sockaddr *to,
-                                        unsigned int tolen) {
-      LSS_BODY(6, ssize_t, 11, s, buf, len, flags, to, tolen);
-    }
-#endif
-
-    LSS_INLINE int LSS_NAME(shutdown)(int s, int how) {
-      LSS_SC_BODY(2, int, 13, s, how);
-    }
-
-    LSS_INLINE int LSS_NAME(socket)(int domain, int type, int protocol) {
-      LSS_SC_BODY(3, int, 1, domain, type, protocol);
-    }
-
-    LSS_INLINE int LSS_NAME(socketpair)(int d, int type, int protocol,
-                                        int sv[2]) {
-      LSS_SC_BODY(4, int, 8, d, type, protocol, sv);
-    }
-  #endif
-  #if defined(__ARM_EABI__) || defined (__aarch64__)
-    LSS_INLINE _syscall3(ssize_t, recvmsg, int, s, struct kernel_msghdr*, msg,
-                         int, flags)
-    LSS_INLINE _syscall3(ssize_t, sendmsg, int, s, const struct kernel_msghdr*,
-                         msg, int, flags)
-    LSS_INLINE _syscall6(ssize_t, sendto, int, s, const void*, buf, size_t,len,
-                         int, flags, const struct kernel_sockaddr*, to,
-                         unsigned int, tolen)
-    LSS_INLINE _syscall2(int, shutdown, int, s, int, how)
-    LSS_INLINE _syscall3(int, socket, int, domain, int, type, int, protocol)
-    LSS_INLINE _syscall4(int, socketpair, int, d, int, type, int, protocol,
-                         int*, sv)
-  #endif
-  #if defined(__i386__) || defined(__ARM_ARCH_3__) ||                         \
-      (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32)
-    #define __NR__socketcall  __NR_socketcall
-    LSS_INLINE _syscall2(int,      _socketcall,    int,   c,
-                         va_list,                  a)
-    LSS_INLINE int LSS_NAME(socketcall)(int op, ...) {
-      int rc;
-      va_list ap;
-      va_start(ap, op);
-      rc = LSS_NAME(_socketcall)(op, ap);
-      va_end(ap);
-      return rc;
-    }
-
-    LSS_INLINE ssize_t LSS_NAME(recvmsg)(int s,struct kernel_msghdr *msg,
-                                         int flags){
-      return (ssize_t)LSS_NAME(socketcall)(17, s, msg, flags);
-    }
-
-    LSS_INLINE ssize_t LSS_NAME(sendmsg)(int s,
-                                         const struct kernel_msghdr *msg,
-                                         int flags) {
-      return (ssize_t)LSS_NAME(socketcall)(16, s, msg, flags);
-    }
-
-    LSS_INLINE ssize_t LSS_NAME(sendto)(int s, const void *buf, size_t len,
-                                        int flags,
-                                        const struct kernel_sockaddr *to,
-                                        unsigned int tolen) {
-      return (ssize_t)LSS_NAME(socketcall)(11, s, buf, len, flags, to, tolen);
-    }
-
-    LSS_INLINE int LSS_NAME(shutdown)(int s, int how) {
-      return LSS_NAME(socketcall)(13, s, how);
-    }
-
-    LSS_INLINE int LSS_NAME(socket)(int domain, int type, int protocol) {
-      return LSS_NAME(socketcall)(1, domain, type, protocol);
-    }
-
-    LSS_INLINE int LSS_NAME(socketpair)(int d, int type, int protocol,
-                                        int sv[2]) {
-      return LSS_NAME(socketcall)(8, d, type, protocol, sv);
-    }
-  #endif
-  #if defined(__i386__) || defined(__PPC__)
-    LSS_INLINE _syscall4(int,   fstatat64,        int,   d,
-                         const char *,      p,
-                         struct kernel_stat64 *,   b,    int,   f)
-  #endif
-  #if defined(__i386__) || defined(__PPC__) ||                                \
-     (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32)
-    LSS_INLINE _syscall3(pid_t, waitpid,          pid_t, p,
-                         int*,              s,    int,   o)
-  #endif
-  #if defined(__mips__)
-    /* sys_pipe() on MIPS has non-standard calling conventions, as it returns
-     * both file handles through CPU registers.
-     */
-    LSS_INLINE int LSS_NAME(pipe)(int *p) {
-      register unsigned long __v0 __asm__("$2") = __NR_pipe;
-      register unsigned long __v1 __asm__("$3");
-      register unsigned long __r7 __asm__("$7");
-      __asm__ __volatile__ ("syscall\n"
-                            : "=r"(__v0), "=r"(__v1), "=r" (__r7)
-                            : "0"(__v0)
-                            : "$8", "$9", "$10", "$11", "$12",
-                              "$13", "$14", "$15", "$24", "$25", "memory");
-      if (__r7) {
-        unsigned long __errnovalue = __v0;
-        LSS_ERRNO = __errnovalue;
-        return -1;
-      } else {
-        p[0] = __v0;
-        p[1] = __v1;
-        return 0;
-      }
-    }
-  #elif !defined(__aarch64__)
-    // The unlink syscall has been deprecated on aarch64. We polyfill it below.
-    LSS_INLINE _syscall1(int,     pipe,           int *, p)
-  #endif
-  /* TODO(csilvers): see if ppc can/should support this as well              */
-  #if defined(__i386__) || defined(__ARM_ARCH_3__) ||                         \
-      defined(__ARM_EABI__) ||                                             \
-     (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI64)
-    #define __NR__statfs64  __NR_statfs64
-    #define __NR__fstatfs64 __NR_fstatfs64
-    LSS_INLINE _syscall3(int, _statfs64,     const char*, p,
-                         size_t, s,struct kernel_statfs64*, b)
-    LSS_INLINE _syscall3(int, _fstatfs64,          int,   f,
-                         size_t, s,struct kernel_statfs64*, b)
-    LSS_INLINE int LSS_NAME(statfs64)(const char *p,
-                                     struct kernel_statfs64 *b) {
-      return LSS_NAME(_statfs64)(p, sizeof(*b), b);
-    }
-    LSS_INLINE int LSS_NAME(fstatfs64)(int f,struct kernel_statfs64 *b) {
-      return LSS_NAME(_fstatfs64)(f, sizeof(*b), b);
-    }
-  #endif
-
-  LSS_INLINE int LSS_NAME(execv)(const char *path, const char *const argv[]) {
-    extern char **environ;
-    return LSS_NAME(execve)(path, argv, (const char *const *)environ);
-  }
-
-  LSS_INLINE pid_t LSS_NAME(gettid)(void) {
-    pid_t tid = LSS_NAME(_gettid)();
-    if (tid != -1) {
-      return tid;
-    }
-    return LSS_NAME(getpid)();
-  }
-
-  LSS_INLINE void *LSS_NAME(mremap)(void *old_address, size_t old_size,
-                                    size_t new_size, int flags, ...) {
-    va_list ap;
-    void *new_address, *rc;
-    va_start(ap, flags);
-    new_address = va_arg(ap, void *);
-    rc = LSS_NAME(_mremap)(old_address, old_size, new_size,
-                           flags, new_address);
-    va_end(ap);
-    return rc;
-  }
-
-  LSS_INLINE int LSS_NAME(ptrace_detach)(pid_t pid) {
-    /* PTRACE_DETACH can sometimes forget to wake up the tracee and it
-     * then sends job control signals to the real parent, rather than to
-     * the tracer. We reduce the risk of this happening by starting a
-     * whole new time slice, and then quickly sending a SIGCONT signal
-     * right after detaching from the tracee.
-     *
-     * We use tkill to ensure that we only issue a wakeup for the thread being
-     * detached.  Large multi threaded apps can take a long time in the kernel
-     * processing SIGCONT.
-     */
-    int rc, err;
-    LSS_NAME(sched_yield)();
-    rc = LSS_NAME(ptrace)(PTRACE_DETACH, pid, (void *)0, (void *)0);
-    err = LSS_ERRNO;
-    LSS_NAME(tkill)(pid, SIGCONT);
-    /* Old systems don't have tkill */
-    if (LSS_ERRNO == ENOSYS)
-      LSS_NAME(kill)(pid, SIGCONT);
-    LSS_ERRNO = err;
-    return rc;
-  }
-
-  LSS_INLINE int LSS_NAME(raise)(int sig) {
-    return LSS_NAME(kill)(LSS_NAME(getpid)(), sig);
-  }
-
-  LSS_INLINE int LSS_NAME(setpgrp)(void) {
-    return LSS_NAME(setpgid)(0, 0);
-  }
-
-  LSS_INLINE int LSS_NAME(sysconf)(int name) {
-    extern int __getpagesize(void);
-    switch (name) {
-      case _SC_OPEN_MAX: {
-        struct kernel_rlimit limit;
-#if defined(__ARM_EABI__)
-        return LSS_NAME(ugetrlimit)(RLIMIT_NOFILE, &limit) < 0
-            ? 8192 : limit.rlim_cur;
-#else
-        return LSS_NAME(getrlimit)(RLIMIT_NOFILE, &limit) < 0
-            ? 8192 : limit.rlim_cur;
-#endif
-      }
-      case _SC_PAGESIZE:
-        return __getpagesize();
-      default:
-        LSS_ERRNO = ENOSYS;
-        return -1;
-    }
-  }
-  #if defined(__x86_64__)
-    /* Need to make sure loff_t isn't truncated to 32-bits under x32.  */
-    LSS_INLINE ssize_t LSS_NAME(pread64)(int f, void *b, size_t c, loff_t o) {
-      LSS_BODY(4, ssize_t, pread64, LSS_SYSCALL_ARG(f), LSS_SYSCALL_ARG(b),
-                                    LSS_SYSCALL_ARG(c), (uint64_t)(o));
-    }
-
-    LSS_INLINE ssize_t LSS_NAME(pwrite64)(int f, const void *b, size_t c,
-                                          loff_t o) {
-      LSS_BODY(4, ssize_t, pwrite64, LSS_SYSCALL_ARG(f), LSS_SYSCALL_ARG(b),
-                                     LSS_SYSCALL_ARG(c), (uint64_t)(o));
-    }
-
-    LSS_INLINE int LSS_NAME(readahead)(int f, loff_t o, unsigned c) {
-      LSS_BODY(3, int, readahead, LSS_SYSCALL_ARG(f), (uint64_t)(o),
-                                  LSS_SYSCALL_ARG(c));
-    }
-  #elif defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI64
-    LSS_INLINE _syscall4(ssize_t, pread64,        int,         f,
-                         void *,         b, size_t,   c,
-                         loff_t,         o)
-    LSS_INLINE _syscall4(ssize_t, pwrite64,       int,         f,
-                         const void *,   b, size_t,   c,
-                         loff_t,         o)
-    LSS_INLINE _syscall3(int,     readahead,      int,         f,
-                         loff_t,         o, unsigned, c)
-    LSS_INLINE _syscall6(void *, mmap, void *, addr, size_t, length, int, prot,
-                         int, flags, int, fd, int64_t, offset)
-  #else
-    #define __NR__pread64   __NR_pread64
-    #define __NR__pwrite64  __NR_pwrite64
-    #define __NR__readahead __NR_readahead
-    #if defined(__ARM_EABI__) || defined(__mips__)
-      /* On ARM and MIPS, a 64-bit parameter has to be in an even-odd register
-       * pair. Hence these calls ignore their fourth argument (r3) so that their
-       * fifth and sixth make such a pair (r4,r5).
-       */
-      #define LSS_LLARG_PAD 0,
-      LSS_INLINE _syscall6(ssize_t, _pread64,        int,         f,
-                           void *,         b, size_t, c,
-                           unsigned, skip, unsigned, o1, unsigned, o2)
-      LSS_INLINE _syscall6(ssize_t, _pwrite64,       int,         f,
-                           const void *,   b, size_t, c,
-                           unsigned, skip, unsigned, o1, unsigned, o2)
-      LSS_INLINE _syscall5(int, _readahead,          int,         f,
-                           unsigned,     skip,
-                           unsigned,       o1, unsigned, o2, size_t, c)
-    #else
-      #define LSS_LLARG_PAD
-      LSS_INLINE _syscall5(ssize_t, _pread64,        int,         f,
-                           void *,         b, size_t, c, unsigned, o1,
-                           unsigned, o2)
-      LSS_INLINE _syscall5(ssize_t, _pwrite64,       int,         f,
-                           const void *,   b, size_t, c, unsigned, o1,
-                           long, o2)
-      LSS_INLINE _syscall4(int, _readahead,          int,         f,
-                           unsigned,       o1, unsigned, o2, size_t, c)
-    #endif
-    /* We force 64bit-wide parameters onto the stack, then access each
-     * 32-bit component individually. This guarantees that we build the
-     * correct parameters independent of the native byte-order of the
-     * underlying architecture.
-     */
-    LSS_INLINE ssize_t LSS_NAME(pread64)(int fd, void *buf, size_t count,
-                                         loff_t off) {
-      union { loff_t off; unsigned arg[2]; } o = { off };
-      return LSS_NAME(_pread64)(fd, buf, count,
-                                LSS_LLARG_PAD o.arg[0], o.arg[1]);
-    }
-    LSS_INLINE ssize_t LSS_NAME(pwrite64)(int fd, const void *buf,
-                                          size_t count, loff_t off) {
-      union { loff_t off; unsigned arg[2]; } o = { off };
-      return LSS_NAME(_pwrite64)(fd, buf, count,
-                                 LSS_LLARG_PAD o.arg[0], o.arg[1]);
-    }
-    LSS_INLINE int LSS_NAME(readahead)(int fd, loff_t off, int len) {
-      union { loff_t off; unsigned arg[2]; } o = { off };
-      return LSS_NAME(_readahead)(fd, LSS_LLARG_PAD o.arg[0], o.arg[1], len);
-    }
-  #endif
-#endif
-
-#if defined(__aarch64__)
-  LSS_INLINE _syscall3(int, dup3,  int, s, int, d, int, f)
-  LSS_INLINE _syscall6(void *, mmap, void *, addr, size_t, length, int, prot,
-                       int, flags, int, fd, int64_t, offset)
-  LSS_INLINE _syscall4(int, newfstatat, int, dirfd, const char *, pathname,
-                       struct kernel_stat *, buf, int, flags)
-  LSS_INLINE _syscall2(int, pipe2, int *, pipefd, int, flags)
-  LSS_INLINE _syscall5(int, ppoll, struct kernel_pollfd *, u,
-                       unsigned int, n, const struct kernel_timespec *, t,
-                       const struct kernel_sigset_t *, sigmask, size_t, s)
-  LSS_INLINE _syscall4(int, readlinkat, int, d, const char *, p, char *, b,
-                       size_t, s)
-#endif
-
-/*
- * Polyfills for deprecated syscalls.
- */
-
-#if defined(__aarch64__)
-  LSS_INLINE int LSS_NAME(dup2)(int s, int d) {
-    return LSS_NAME(dup3)(s, d, 0);
-  }
-
-  LSS_INLINE int LSS_NAME(open)(const char *pathname, int flags, int mode) {
-    return LSS_NAME(openat)(AT_FDCWD, pathname, flags, mode);
-  }
-
-  LSS_INLINE int LSS_NAME(unlink)(const char *pathname) {
-    return LSS_NAME(unlinkat)(AT_FDCWD, pathname, 0);
-  }
-
-  LSS_INLINE int LSS_NAME(readlink)(const char *pathname, char *buffer,
-                                    size_t size) {
-    return LSS_NAME(readlinkat)(AT_FDCWD, pathname, buffer, size);
-  }
-
-  LSS_INLINE pid_t LSS_NAME(pipe)(int *pipefd) {
-    return LSS_NAME(pipe2)(pipefd, 0);
-  }
-
-  LSS_INLINE int LSS_NAME(poll)(struct kernel_pollfd *fds, unsigned int nfds,
-                                int timeout) {
-   struct kernel_timespec timeout_ts;
-   struct kernel_timespec *timeout_ts_p = NULL;
-
-    if (timeout >= 0) {
-      timeout_ts.tv_sec = timeout / 1000;
-      timeout_ts.tv_nsec = (timeout % 1000) * 1000000;
-      timeout_ts_p = &timeout_ts;
-    }
-    return LSS_NAME(ppoll)(fds, nfds, timeout_ts_p, NULL, 0);
-  }
-
-  LSS_INLINE int LSS_NAME(stat)(const char *pathname,
-                                struct kernel_stat *buf) {
-    return LSS_NAME(newfstatat)(AT_FDCWD, pathname, buf, 0);
-  }
-
-  LSS_INLINE pid_t LSS_NAME(fork)(void) {
-    // No fork syscall on aarch64 - implement by means of the clone syscall.
-    // Note that this does not reset glibc's cached view of the PID/TID, so
-    // some glibc interfaces might go wrong in the forked subprocess.
-    int flags = SIGCHLD;
-    void *child_stack = NULL;
-    void *parent_tidptr = NULL;
-    void *newtls = NULL;
-    void *child_tidptr = NULL;
-
-    LSS_REG(0, flags);
-    LSS_REG(1, child_stack);
-    LSS_REG(2, parent_tidptr);
-    LSS_REG(3, newtls);
-    LSS_REG(4, child_tidptr);
-    LSS_BODY(pid_t, clone, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3),
-             "r"(__r4));
-  }
-#endif
-
-#ifdef __ANDROID__
-  /* These restore the original values of these macros saved by the
-   * corresponding #pragma push_macro near the top of this file. */
-# pragma pop_macro("stat64")
-# pragma pop_macro("fstat64")
-# pragma pop_macro("lstat64")
-#endif
-
-#if defined(__cplusplus) && !defined(SYS_CPLUSPLUS)
-}
-#endif
-
-#endif
-#endif
diff --git a/breakpad/linux-x86/lib/libbreakpad.a b/breakpad/linux-x86/lib/libbreakpad.a
deleted file mode 100644
index 1d22d77..0000000
--- a/breakpad/linux-x86/lib/libbreakpad.a
+++ /dev/null
Binary files differ
diff --git a/breakpad/linux-x86/lib/libbreakpad_client.a b/breakpad/linux-x86/lib/libbreakpad_client.a
deleted file mode 100644
index 5b6632e..0000000
--- a/breakpad/linux-x86/lib/libbreakpad_client.a
+++ /dev/null
Binary files differ
diff --git a/breakpad/linux-x86/lib/libdisasm.a b/breakpad/linux-x86/lib/libdisasm.a
deleted file mode 100644
index 525a406..0000000
--- a/breakpad/linux-x86/lib/libdisasm.a
+++ /dev/null
Binary files differ
diff --git a/breakpad/linux-x86_64/bin/dump_syms b/breakpad/linux-x86_64/bin/dump_syms
index 010e522..6af9bf5 100755
--- a/breakpad/linux-x86_64/bin/dump_syms
+++ b/breakpad/linux-x86_64/bin/dump_syms
Binary files differ
diff --git a/breakpad/linux-x86_64/bin/dump_syms_dwarf b/breakpad/linux-x86_64/bin/dump_syms_dwarf
index 7e6da02..bb31573 100755
--- a/breakpad/linux-x86_64/bin/dump_syms_dwarf
+++ b/breakpad/linux-x86_64/bin/dump_syms_dwarf
Binary files differ
diff --git a/breakpad/linux-x86_64/bin/dump_syms_macho b/breakpad/linux-x86_64/bin/dump_syms_macho
index 5fb31fb..a577074 100755
--- a/breakpad/linux-x86_64/bin/dump_syms_macho
+++ b/breakpad/linux-x86_64/bin/dump_syms_macho
Binary files differ
diff --git a/breakpad/linux-x86_64/bin/minidump_stackwalk b/breakpad/linux-x86_64/bin/minidump_stackwalk
index a6e469e..dfac148 100755
--- a/breakpad/linux-x86_64/bin/minidump_stackwalk
+++ b/breakpad/linux-x86_64/bin/minidump_stackwalk
Binary files differ
diff --git a/breakpad/linux-x86_64/bin/minidump_upload b/breakpad/linux-x86_64/bin/minidump_upload
index 7099c58..9b969d0 100755
--- a/breakpad/linux-x86_64/bin/minidump_upload
+++ b/breakpad/linux-x86_64/bin/minidump_upload
Binary files differ
diff --git a/breakpad/linux-x86_64/bin/sym_upload b/breakpad/linux-x86_64/bin/sym_upload
index 293eb66..e311bea 100755
--- a/breakpad/linux-x86_64/bin/sym_upload
+++ b/breakpad/linux-x86_64/bin/sym_upload
Binary files differ
diff --git a/breakpad/linux-x86_64/lib/libbreakpad.a b/breakpad/linux-x86_64/lib/libbreakpad.a
index 12708e3..9ce9a77 100644
--- a/breakpad/linux-x86_64/lib/libbreakpad.a
+++ b/breakpad/linux-x86_64/lib/libbreakpad.a
Binary files differ
diff --git a/breakpad/linux-x86_64/lib/libbreakpad_client.a b/breakpad/linux-x86_64/lib/libbreakpad_client.a
index 3e5913f..e19c6e9 100644
--- a/breakpad/linux-x86_64/lib/libbreakpad_client.a
+++ b/breakpad/linux-x86_64/lib/libbreakpad_client.a
Binary files differ
diff --git a/breakpad/linux-x86_64/lib/libdisasm.a b/breakpad/linux-x86_64/lib/libdisasm.a
index 98a97db..3bdf793 100644
--- a/breakpad/linux-x86_64/lib/libdisasm.a
+++ b/breakpad/linux-x86_64/lib/libdisasm.a
Binary files differ
diff --git a/breakpad/windows-x86/bin/minidump_stackwalk.exe b/breakpad/windows-x86/bin/minidump_stackwalk.exe
index eb013df..d5b0a82 100755
--- a/breakpad/windows-x86/bin/minidump_stackwalk.exe
+++ b/breakpad/windows-x86/bin/minidump_stackwalk.exe
Binary files differ
diff --git a/breakpad/windows-x86/lib/libbreakpad.a b/breakpad/windows-x86/lib/libbreakpad.a
index 8ccd55e..70c06e3 100644
--- a/breakpad/windows-x86/lib/libbreakpad.a
+++ b/breakpad/windows-x86/lib/libbreakpad.a
Binary files differ
diff --git a/breakpad/windows-x86/lib/libbreakpad_client.a b/breakpad/windows-x86/lib/libbreakpad_client.a
index 2239afd..d667c9e 100644
--- a/breakpad/windows-x86/lib/libbreakpad_client.a
+++ b/breakpad/windows-x86/lib/libbreakpad_client.a
Binary files differ
diff --git a/breakpad/windows-x86/lib/libdisasm.a b/breakpad/windows-x86/lib/libdisasm.a
index 834da1c..6217971 100644
--- a/breakpad/windows-x86/lib/libdisasm.a
+++ b/breakpad/windows-x86/lib/libdisasm.a
Binary files differ
diff --git a/breakpad/windows-x86_64/bin/minidump_stackwalk.exe b/breakpad/windows-x86_64/bin/minidump_stackwalk.exe
index ae69f9d..0e62946 100755
--- a/breakpad/windows-x86_64/bin/minidump_stackwalk.exe
+++ b/breakpad/windows-x86_64/bin/minidump_stackwalk.exe
Binary files differ
diff --git a/breakpad/windows-x86_64/lib/libbreakpad.a b/breakpad/windows-x86_64/lib/libbreakpad.a
index cec0c1f..43aef98 100644
--- a/breakpad/windows-x86_64/lib/libbreakpad.a
+++ b/breakpad/windows-x86_64/lib/libbreakpad.a
Binary files differ
diff --git a/breakpad/windows-x86_64/lib/libbreakpad_client.a b/breakpad/windows-x86_64/lib/libbreakpad_client.a
index 589c055..20de3cd 100644
--- a/breakpad/windows-x86_64/lib/libbreakpad_client.a
+++ b/breakpad/windows-x86_64/lib/libbreakpad_client.a
Binary files differ
diff --git a/breakpad/windows-x86_64/lib/libdisasm.a b/breakpad/windows-x86_64/lib/libdisasm.a
index e55ec8d..7735e41 100644
--- a/breakpad/windows-x86_64/lib/libdisasm.a
+++ b/breakpad/windows-x86_64/lib/libdisasm.a
Binary files differ