gem5 v24.0.0.0
Loading...
Searching...
No Matches
example.hh
Go to the documentation of this file.
1/*
2 * Copyright 2021 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
28#ifndef __ARCH_ARM_FASTMODEL_RESET_CONTROLLER_EXAMPLE_HH__
29#define __ARCH_ARM_FASTMODEL_RESET_CONTROLLER_EXAMPLE_HH__
30
31#include <string>
32
34#include "dev/io_device.hh"
35#include "dev/reg_bank.hh"
36#include "mem/packet_access.hh"
37#include "params/FastModelResetControllerExample.hh"
38#include "sim/signal.hh"
39
40namespace gem5
41{
42
43namespace fastmodel
44{
45
47{
48 private:
49 struct CorePins
50 {
53
54 explicit CorePins(const std::string &);
55 };
56
58 {
59 private:
62
67
68 public:
69 Registers(const std::string &, Iris::BaseCPU *, CorePins *);
70 };
71
74
75 public:
76 using Params = FastModelResetControllerExampleParams;
77 explicit ResetControllerExample(const Params &);
78
79 Tick read(PacketPtr pkt) override;
80 Tick write(PacketPtr pkt) override;
81 Port &getPort(const std::string &, PortID = InvalidPortID) override;
82};
83
84} // namespace fastmodel
85} // namespace gem5
86
87#endif // __ARCH_ARM_FASTMODEL_RESET_CONTROLLER_EXAMPLE_HH__
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Definition packet.hh:295
Ports are used to interface objects to each other.
Definition port.hh:62
Registers(const std::string &, Iris::BaseCPU *, CorePins *)
Definition example.cc:44
Port & getPort(const std::string &, PortID=InvalidPortID) override
Get a port with a given name and index.
Definition example.cc:117
Tick write(PacketPtr pkt) override
Pure virtual function that the device must implement.
Definition example.cc:103
FastModelResetControllerExampleParams Params
Definition example.hh:76
Tick read(PacketPtr pkt) override
Pure virtual function that the device must implement.
Definition example.cc:93
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Definition binary32.hh:36
const PortID InvalidPortID
Definition types.hh:246
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
Definition types.hh:245
uint64_t Tick
Tick count type.
Definition types.hh:58

Generated on Tue Jun 18 2024 16:23:56 for gem5 by doxygen 1.11.0