Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Unified Diff: src/trusted/gdb_rsp/host_mock.h

Issue 5633007: This change contains changes that were made on a separate copy of this code,... (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/trusted/gdb_rsp/host_mock.h
===================================================================
--- src/trusted/gdb_rsp/host_mock.h (revision 0)
+++ src/trusted/gdb_rsp/host_mock.h (revision 0)
@@ -0,0 +1,107 @@
+/*
+ * Copyright 2010 The Native Client Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can
+ * be found in the LICENSE file.
+ */
+
+// This module provides an object for handling RSP responsibilities of
noelallen_use_chromium 2010/12/07 23:04:44 Is this comment a DUP? It doesn't make clear that
+// the host side of the connection. The host behaves like a cache, and
+// is responsible for syncronization of state between the Target and Host.
+// For example, the Host is responsible for updating the thread context
+// before restarting the Target, and for updating it's internal array of
+// threads whenever the Target stops.
+
+#ifndef SRC_TRUSTED_GDB_RSP_HOST_MOCK_H_
+#define SRC_TRUSTED_GDB_RSP_HOST_MOCK_H_ 1
noelallen_use_chromium 2010/12/07 23:04:44 NATIVE_CLIENT_xxx
+
+#include <list>
+#include <map>
+#include <string>
+#include <vector>
+
+#include "native_client/src/trusted/port/std_types.h"
+
+namespace gdb_rsp {
+
+class Abi;
+class Packet;
+class Session;
+
+class HostMock : public Host {
+ public:
+ HostMock();
+ ~HostMock();
+
+ /* Mocked functions */
noelallen_use_chromium 2010/12/07 23:04:44 Should probably be '//' we should be consistent on
+ bool Init();
+ bool WaitForBreak();
+ bool Break();
+ bool Detach();
+ bool Step();
+ bool Continue();
+ bool GetMemory(void *dst, uint64_t addr, uint32_t size);
+ bool SetMemory(const void *src, uint64_t addr, uint32_t size);
+ bool Request(const std::string &req, std::string *resp);
+
+ /* Unmocked functions, don't call */
+ bool Update() {
+ throw "Not Implemented.";
+ return false;
+ }
+
+ virtual bool HasProperty(const char *name) const {
+ throw "Not Implemented.";
+ return false;
+ }
+
+ virtual bool ReadProperty(const char *name, std::string *val) const {
+ throw "Not implemented.";
+ return false;
+ }
+
+ virtual bool ReadObject(const char *type,
+ const char *name,
+ std::string *val) {
+ throw "Not implemented.";
+ return false;
+ }
+
+ /*
+ * Both a helper, and real function. Use this to populate memory
+ * that GetMemory will return.
+ */
+ bool SetMemory(const void *src, uint64_t addr, uint32_t size);
+
+ /* Helpers for setting up the pseudo thread */
+ Thread* CreateThread(uint32_t id);
+ void RemoveThread(uint32_t id);
+
+ /* Helpers for target properites */
+ void SetRequest(const std::string &req, const std::string &resp);
+
+
+ /* Helpers for queing up pseduo signals */
+ void AddSignal(int32_t signal, uint32_t thread);
+ void AddSignalAbs(int32_t signal, uint32_t thread, uint64_t ip);
+ void AddSignalDelta(int32_t signal, uint32_t thread, int64_t delta);
+
+
+ protected:
+ struct SignalMock {
noelallen_use_chromium 2010/12/07 23:04:44 What this is fairly obvious we should probably add
+ int32_t sig;
+ uint32_t thread;
+ uint32_t rel;
+ uint64_t ip;
+ };
+ std::map<uint64_t, char *> memory_;
+ std::list<SignalMock *> signals_;
+ PropertyMap_t requests_;
+};
+
+
noelallen_use_chromium 2010/12/07 23:04:44 Too many empty lines. Shouldn't do more than two
+
+
+} // namespace gdb_rsp
+
+#endif // SRC_TRUSTED_GDB_RSP_HOST_MOCK_H_
+
Property changes on: src\trusted\gdb_rsp\host_mock.h
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698