gem5  v21.0.1.0
object_file.cc
Go to the documentation of this file.
1 /*
2  * Copyright 2020 Google, Inc.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met: redistributions of source code must retain the above copyright
7  * notice, this list of conditions and the following disclaimer;
8  * redistributions in binary form must reproduce the above copyright
9  * notice, this list of conditions and the following disclaimer in the
10  * documentation and/or other materials provided with the distribution;
11  * neither the name of the copyright holders nor the names of its
12  * contributors may be used to endorse or promote products derived from
13  * this software without specific prior written permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
30 #include "sim/init.hh"
31 
32 namespace py = pybind11;
33 
34 namespace
35 {
36 
37 void
38 objectfile_pybind(py::module_ &m_internal)
39 {
40  py::module_ m = m_internal.def_submodule("object_file");
41 
42  py::class_<Loader::ObjectFile>(m, "ObjectFile")
43  .def("get_arch", [](const Loader::ObjectFile &obj) {
44  return Loader::archToString(obj.getArch());
45  }, py::return_value_policy::reference)
46  .def("get_op_sys", [](const Loader::ObjectFile &obj) {
47  return Loader::opSysToString(obj.getOpSys());
48  }, py::return_value_policy::reference)
49  .def("entry_point", &Loader::ObjectFile::entryPoint)
50  .def("get_interpreter", &Loader::ObjectFile::getInterpreter);
51 
52  m.def("create", [](const std::string &fname) {
53  return Loader::createObjectFile(fname); });
54 }
55 EmbeddedPyBind embed_("object_file", &objectfile_pybind);
56 
57 } // anonymous namespace
Loader::createObjectFile
ObjectFile * createObjectFile(const std::string &fname, bool raw)
Definition: object_file.cc:115
embed_
static EmbeddedPyBind embed_("stattest", stattest_init_pybind)
Loader::ObjectFile
Definition: object_file.hh:74
pybind.hh
Loader::ObjectFile::entryPoint
Addr entryPoint() const
Definition: object_file.hh:112
Loader::opSysToString
const char * opSysToString(OpSys op_sys)
Definition: object_file.cc:75
Loader::ObjectFile::getInterpreter
virtual ObjectFile * getInterpreter() const
Definition: object_file.hh:87
Loader::ObjectFile::getArch
Arch getArch() const
Definition: object_file.hh:103
Loader::ObjectFile::getOpSys
OpSys getOpSys() const
Definition: object_file.hh:104
EmbeddedPyBind
Definition: init.hh:81
Loader::archToString
const char * archToString(Arch arch)
Definition: object_file.cc:42
init.hh
object_file.hh
ArmISA::m
Bitfield< 0 > m
Definition: miscregs_types.hh:389

Generated on Tue Jun 22 2021 15:28:25 for gem5 by doxygen 1.8.17