request.hh (12334:e0ab29a34764) request.hh (12346:9b1144d046ca)
1/*
1/*
2 * Copyright (c) 2012-2013 ARM Limited
2 * Copyright (c) 2012-2013,2017 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

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

82class Request;
83
84typedef Request* RequestPtr;
85typedef uint16_t MasterID;
86
87class Request
88{
89 public:
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

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

82class Request;
83
84typedef Request* RequestPtr;
85typedef uint16_t MasterID;
86
87class Request
88{
89 public:
90 typedef uint32_t FlagsType;
90 typedef uint64_t FlagsType;
91 typedef uint8_t ArchFlagsType;
92 typedef ::Flags<FlagsType> Flags;
93
94 enum : FlagsType {
95 /**
96 * Architecture specific flags.
97 *
98 * These bits int the flag field are reserved for

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

177 */
178 GENERIC_IPR = 0x08000000,
179
180 /** The request targets the secure memory space. */
181 SECURE = 0x10000000,
182 /** The request is a page table walk */
183 PT_WALK = 0x20000000,
184
91 typedef uint8_t ArchFlagsType;
92 typedef ::Flags<FlagsType> Flags;
93
94 enum : FlagsType {
95 /**
96 * Architecture specific flags.
97 *
98 * These bits int the flag field are reserved for

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

177 */
178 GENERIC_IPR = 0x08000000,
179
180 /** The request targets the secure memory space. */
181 SECURE = 0x10000000,
182 /** The request is a page table walk */
183 PT_WALK = 0x20000000,
184
185 /** The request targets the point of unification */
186 DST_POU = 0x0000001000000000,
187
188 /** The request targets the point of coherence */
189 DST_POC = 0x0000002000000000,
190
191 /** Bits to define the destination of a request */
192 DST_BITS = 0x0000003000000000,
193
185 /**
186 * These flags are *not* cleared when a Request object is
187 * reused (assigned a new address).
188 */
189 STICKY_FLAGS = INST_FETCH
190 };
191
192 /** Master Ids that are statically allocated

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

785 bool
786 isAtomic() const
787 {
788 return _flags.isSet(ATOMIC_RETURN_OP) ||
789 _flags.isSet(ATOMIC_NO_RETURN_OP);
790 }
791
792 /**
194 /**
195 * These flags are *not* cleared when a Request object is
196 * reused (assigned a new address).
197 */
198 STICKY_FLAGS = INST_FETCH
199 };
200
201 /** Master Ids that are statically allocated

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

794 bool
795 isAtomic() const
796 {
797 return _flags.isSet(ATOMIC_RETURN_OP) ||
798 _flags.isSet(ATOMIC_NO_RETURN_OP);
799 }
800
801 /**
802 * Accessor functions for the destination of a memory request. The
803 * destination flag can specify a point of reference for the
804 * operation (e.g. a cache block clean to the the point of
805 * unification). At the moment the destination is only used by the
806 * cache maintenance operations.
807 */
808 bool isToPOU() const { return _flags.isSet(DST_POU); }
809 bool isToPOC() const { return _flags.isSet(DST_POC); }
810 Flags getDest() const { return _flags & DST_BITS; }
811
812 /**
793 * Accessor functions for the memory space configuration flags and used by
794 * GPU ISAs such as the Heterogeneous System Architecture (HSA). Note that
795 * these are for testing only; setting extraFlags should be done via
796 * setMemSpaceConfigFlags().
797 */
798 bool isScoped() const { return _memSpaceConfigFlags.isSet(SCOPE_VALID); }
799
800 bool

--- 74 unchanged lines hidden ---
813 * Accessor functions for the memory space configuration flags and used by
814 * GPU ISAs such as the Heterogeneous System Architecture (HSA). Note that
815 * these are for testing only; setting extraFlags should be done via
816 * setMemSpaceConfigFlags().
817 */
818 bool isScoped() const { return _memSpaceConfigFlags.isSet(SCOPE_VALID); }
819
820 bool

--- 74 unchanged lines hidden ---