gem5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
kern
linux
events.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2016 ARM Limited
3
* All rights reserved
4
*
5
* The license below extends only to copyright in the software and shall
6
* not be construed as granting a license to any other intellectual
7
* property including but not limited to intellectual property relating
8
* to a hardware implementation of the functionality of the software
9
* licensed hereunder. You may use the software subject to the license
10
* terms below provided that you ensure that this notice is replicated
11
* unmodified and in its entirety in all distributions of the software,
12
* modified or unmodified, in source code or in binary form.
13
*
14
* Copyright (c) 2004-2006 The Regents of The University of Michigan
15
* All rights reserved.
16
*
17
* Redistribution and use in source and binary forms, with or without
18
* modification, are permitted provided that the following conditions are
19
* met: redistributions of source code must retain the above copyright
20
* notice, this list of conditions and the following disclaimer;
21
* redistributions in binary form must reproduce the above copyright
22
* notice, this list of conditions and the following disclaimer in the
23
* documentation and/or other materials provided with the distribution;
24
* neither the name of the copyright holders nor the names of its
25
* contributors may be used to endorse or promote products derived from
26
* this software without specific prior written permission.
27
*
28
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
29
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
30
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
31
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
32
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
33
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
34
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
35
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
36
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
37
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
38
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39
*
40
* Authors: Nathan Binkert
41
* Ali Saidi
42
*/
43
44
#ifndef __KERN_LINUX_EVENTS_HH__
45
#define __KERN_LINUX_EVENTS_HH__
46
47
#include "
kern/system_events.hh
"
48
49
namespace
Linux
{
50
51
class
DebugPrintkEvent
:
public
SkipFuncEvent
52
{
53
public
:
54
DebugPrintkEvent
(
PCEventQueue
*
q
,
const
std::string &desc,
Addr
addr
)
55
:
SkipFuncEvent
(q, desc, addr) {}
56
virtual
void
process
(
ThreadContext
*xc);
57
};
58
67
class
DmesgDumpEvent
:
public
PCEvent
68
{
69
protected
:
70
std::string
fname
;
71
72
public
:
73
DmesgDumpEvent
(
PCEventQueue
*
q
,
const
std::string &desc,
Addr
addr
,
74
const
std::string &_fname)
75
:
PCEvent
(q, desc, addr),
fname
(_fname) {}
76
virtual
void
process
(
ThreadContext
*xc);
77
};
78
87
class
KernelPanicEvent
:
public
PCEvent
88
{
89
protected
:
90
std::string
fname
;
91
92
public
:
93
KernelPanicEvent
(
PCEventQueue
*
q
,
const
std::string &desc,
Addr
addr
,
94
const
std::string &_fname)
95
:
PCEvent
(q, desc, addr),
fname
(_fname) {}
96
virtual
void
process
(
ThreadContext
*xc);
97
};
98
104
class
UDelayEvent
:
public
SkipFuncEvent
105
{
106
private
:
111
uint64_t
argDivToNs
;
112
116
uint64_t
argMultToNs
;
117
118
public
:
119
UDelayEvent
(
PCEventQueue
*
q
,
const
std::string &desc,
Addr
addr
,
120
uint64_t mult, uint64_t div)
121
:
SkipFuncEvent
(q, desc, addr),
argDivToNs
(div),
argMultToNs
(mult) {}
122
virtual
void
process
(
ThreadContext
*xc);
123
};
124
125
126
}
127
128
#endif
Linux::DmesgDumpEvent::process
virtual void process(ThreadContext *xc)
Definition:
events.cc:102
Linux::UDelayEvent::UDelayEvent
UDelayEvent(PCEventQueue *q, const std::string &desc, Addr addr, uint64_t mult, uint64_t div)
Definition:
events.hh:119
Linux::KernelPanicEvent::KernelPanicEvent
KernelPanicEvent(PCEventQueue *q, const std::string &desc, Addr addr, const std::string &_fname)
Definition:
events.hh:93
Linux::KernelPanicEvent::fname
std::string fname
Definition:
events.hh:90
addr
ip6_addr_t addr
Definition:
inet.hh:335
Linux::KernelPanicEvent
Dump the guest kernel's dmesg buffer to a file in gem5's output directory and panic.
Definition:
events.hh:87
Linux::DmesgDumpEvent::fname
std::string fname
Definition:
events.hh:70
Linux::DmesgDumpEvent
Dump the guest kernel's dmesg buffer to a file in gem5's output directory and print a warning...
Definition:
events.hh:67
Linux::UDelayEvent::process
virtual void process(ThreadContext *xc)
Definition:
events.cc:77
ThreadContext
ThreadContext is the external interface to all thread state for anything outside of the CPU...
Definition:
thread_context.hh:93
Linux::UDelayEvent::argMultToNs
uint64_t argMultToNs
value to multiple arg by to create ns.
Definition:
events.hh:116
system_events.hh
Linux::KernelPanicEvent::process
virtual void process(ThreadContext *xc)
Definition:
events.cc:115
PCEventQueue
Definition:
pc_event.hh:66
Linux
This class encapsulates the types, structures, constants, functions, and syscall-number mappings spec...
Definition:
linux.hh:48
ArmISA::q
Bitfield< 27 > q
Definition:
miscregs.hh:1367
Linux::DebugPrintkEvent::process
virtual void process(ThreadContext *xc)
Definition:
events.cc:64
Linux::UDelayEvent::argDivToNs
uint64_t argDivToNs
value to divide arg by to create ns.
Definition:
events.hh:111
Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition:
types.hh:142
Linux::DebugPrintkEvent
Definition:
events.hh:51
SkipFuncEvent
Definition:
system_events.hh:38
Linux::DebugPrintkEvent::DebugPrintkEvent
DebugPrintkEvent(PCEventQueue *q, const std::string &desc, Addr addr)
Definition:
events.hh:54
Linux::UDelayEvent
A class to skip udelay() and related calls in the kernel.
Definition:
events.hh:104
PCEvent
Definition:
pc_event.hh:44
Linux::DmesgDumpEvent::DmesgDumpEvent
DmesgDumpEvent(PCEventQueue *q, const std::string &desc, Addr addr, const std::string &_fname)
Definition:
events.hh:73
Generated on Fri Jun 9 2017 13:03:48 for gem5 by
doxygen
1.8.6