summaryrefslogtreecommitdiff
path: root/src/sim/init.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim/init.hh')
-rw-r--r--src/sim/init.hh40
1 files changed, 39 insertions, 1 deletions
diff --git a/src/sim/init.hh b/src/sim/init.hh
index 2bbcd23da..ecc4bc347 100644
--- a/src/sim/init.hh
+++ b/src/sim/init.hh
@@ -1,4 +1,16 @@
/*
+ * Copyright (c) 2017 ARM Limited
+ * All rights reserved
+ *
+ * The license below extends only to copyright in the software and shall
+ * not be construed as granting a license to any other intellectual
+ * property including but not limited to intellectual property relating
+ * to a hardware implementation of the functionality of the software
+ * licensed hereunder. You may use the software subject to the license
+ * terms below provided that you ensure that this notice is replicated
+ * unmodified and in its entirety in all distributions of the software,
+ * modified or unmodified, in source code or in binary form.
+ *
* Copyright (c) 2008 The Hewlett-Packard Development Company
* All rights reserved.
*
@@ -31,9 +43,10 @@
#ifndef __SIM_INIT_HH__
#define __SIM_INIT_HH__
-#include <Python.h>
+#include "pybind11/pybind11.h"
#include <list>
+#include <map>
#include <string>
#include <inttypes.h>
@@ -79,6 +92,31 @@ struct EmbeddedSwig
static void initAll();
};
+class EmbeddedPyBind
+{
+ public:
+ EmbeddedPyBind(const char *_name,
+ void (*init_func)(pybind11::module &),
+ const char *_base);
+
+ EmbeddedPyBind(const char *_name,
+ void (*init_func)(pybind11::module &));
+
+ static void initAll();
+
+ private:
+ void (*initFunc)(pybind11::module &);
+
+ bool depsReady() const;
+ void init(pybind11::module &m);
+
+ bool registered;
+ const std::string name;
+ const std::string base;
+
+ static std::map<std::string, EmbeddedPyBind *> &getMap();
+};
+
int initM5Python();
int m5Main(int argc, char **argv);
PyMODINIT_FUNC initm5(void);