request.hh (9044:904ddeecc653) request.hh (9332:ae2a5329ce96)
1/*
1/*
2 * Copyright (c) 2012 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 *
2 * Copyright (c) 2002-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;
9 * redistributions in binary form must reproduce the above copyright

--- 32 unchanged lines hidden (view full) ---

42#include <cassert>
43#include <climits>
44
45#include "base/flags.hh"
46#include "base/misc.hh"
47#include "base/types.hh"
48#include "sim/core.hh"
49
14 * Copyright (c) 2002-2005 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

--- 32 unchanged lines hidden (view full) ---

54#include <cassert>
55#include <climits>
56
57#include "base/flags.hh"
58#include "base/misc.hh"
59#include "base/types.hh"
60#include "sim/core.hh"
61
62/**
63 * Special TaskIds that are used for per-context-switch stats dumps
64 * and Cache Occupancy. Having too many tasks seems to be a problem
65 * with vector stats. 1024 seems to be a reasonable number that
66 * doesn't cause a problem with stats and is large enough to realistic
67 * benchmarks (Linux/Android boot, BBench, etc.)
68 */
69
70namespace ContextSwitchTaskId {
71 enum TaskId {
72 MaxNormalTaskId = 1021, /* Maximum number of normal tasks */
73 Prefetcher = 1022, /* For cache lines brought in by prefetcher */
74 DMA = 1023, /* Mostly Table Walker */
75 Unknown = 1024,
76 NumTaskId
77 };
78}
79
50class Request;
51
52typedef Request* RequestPtr;
53typedef uint16_t MasterID;
54
55class Request
56{
57 public:

--- 54 unchanged lines hidden (view full) ---

112 /** This request id is used for message signaled interrupts */
113 static const MasterID intMasterId = 2;
114 /** Invalid request id for assertion checking only. It is invalid behavior
115 * to ever send this id as part of a request.
116 * @todo C++1x replace with numeric_limits when constexpr is added */
117 static const MasterID invldMasterId = USHRT_MAX;
118 /** @} */
119
80class Request;
81
82typedef Request* RequestPtr;
83typedef uint16_t MasterID;
84
85class Request
86{
87 public:

--- 54 unchanged lines hidden (view full) ---

142 /** This request id is used for message signaled interrupts */
143 static const MasterID intMasterId = 2;
144 /** Invalid request id for assertion checking only. It is invalid behavior
145 * to ever send this id as part of a request.
146 * @todo C++1x replace with numeric_limits when constexpr is added */
147 static const MasterID invldMasterId = USHRT_MAX;
148 /** @} */
149
150 /** Invalid or unknown Pid. Possible when operating system is not present
151 * or has not assigned a pid yet */
152 static const uint32_t invldPid = UINT_MAX;
153
120 private:
121 typedef uint8_t PrivateFlagsType;
122 typedef ::Flags<PrivateFlagsType> PrivateFlags;
123
124 /** Whether or not the size is valid. */
125 static const PrivateFlagsType VALID_SIZE = 0x00000001;
126 /** Whether or not paddr is valid (has been written yet). */
127 static const PrivateFlagsType VALID_PADDR = 0x00000002;

--- 370 unchanged lines hidden ---
154 private:
155 typedef uint8_t PrivateFlagsType;
156 typedef ::Flags<PrivateFlagsType> PrivateFlags;
157
158 /** Whether or not the size is valid. */
159 static const PrivateFlagsType VALID_SIZE = 0x00000001;
160 /** Whether or not paddr is valid (has been written yet). */
161 static const PrivateFlagsType VALID_PADDR = 0x00000002;

--- 370 unchanged lines hidden ---