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 --- |