gem5  v22.1.0.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 gem5
35 {
36 
37 namespace
38 {
39 
40 void
41 objectfile_pybind(py::module_ &m_internal)
42 {
43  py::module_ m = m_internal.def_submodule("object_file");
44 
45  py::class_<loader::ObjectFile>(m, "ObjectFile")
46  .def("get_arch", [](const loader::ObjectFile &obj) {
47  return loader::archToString(obj.getArch());
48  }, py::return_value_policy::reference)
49  .def("get_op_sys", [](const loader::ObjectFile &obj) {
50  return loader::opSysToString(obj.getOpSys());
51  }, py::return_value_policy::reference)
52  .def("entry_point", &loader::ObjectFile::entryPoint)
53  .def("get_interpreter", &loader::ObjectFile::getInterpreter);
54 
55  m.def("create", [](const std::string &fname) {
56  return loader::createObjectFile(fname); });
57 }
58 EmbeddedPyBind embed_("object_file", &objectfile_pybind);
59 
60 } // anonymous namespace
61 } // namespace gem5
virtual ObjectFile * getInterpreter() const
Definition: object_file.hh:111
const char * archToString(Arch arch)
Definition: object_file.cc:58
ObjectFile * createObjectFile(const std::string &fname, bool raw)
Definition: object_file.cc:135
const char * opSysToString(OpSys op_sys)
Definition: object_file.cc:93
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....

Generated on Wed Dec 21 2022 10:22:29 for gem5 by doxygen 1.9.1