request.hh (6104:ca0915f8d86d) | request.hh (6105:a27c0934de24) |
---|---|
1/* 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; --- 72 unchanged lines hidden (view full) --- 81 */ 82 static const FlagsType LOCKED = 0x00008000; 83 /** The request should be prefetched into the exclusive state. */ 84 static const FlagsType PF_EXCLUSIVE = 0x00010000; 85 /** The request should be marked as LRU. */ 86 static const FlagsType EVICT_NEXT = 0x00020000; 87 /** The request should ignore unaligned access faults */ 88 static const FlagsType NO_ALIGN_FAULT = 0x00040000; | 1/* 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; --- 72 unchanged lines hidden (view full) --- 81 */ 82 static const FlagsType LOCKED = 0x00008000; 83 /** The request should be prefetched into the exclusive state. */ 84 static const FlagsType PF_EXCLUSIVE = 0x00010000; 85 /** The request should be marked as LRU. */ 86 static const FlagsType EVICT_NEXT = 0x00020000; 87 /** The request should ignore unaligned access faults */ 88 static const FlagsType NO_ALIGN_FAULT = 0x00040000; |
89 /** The request was an instruction read. */ 90 static const FlagsType INST_READ = 0x00080000; | 89 /** The request was an instruction fetch. */ 90 static const FlagsType INST_FETCH = 0x00080000; |
91 /** This request is for a memory swap. */ 92 static const FlagsType MEM_SWAP = 0x00100000; 93 static const FlagsType MEM_SWAP_COND = 0x00200000; 94 /** The request should ignore unaligned access faults */ 95 static const FlagsType NO_HALF_WORD_ALIGN_FAULT = 0x00400000; 96 /** This request is to a memory mapped register. */ 97 static const FlagsType MMAPED_IPR = 0x00800000; 98 99 /** These flags are *not* cleared when a Request object is reused 100 (assigned a new address). */ | 91 /** This request is for a memory swap. */ 92 static const FlagsType MEM_SWAP = 0x00100000; 93 static const FlagsType MEM_SWAP_COND = 0x00200000; 94 /** The request should ignore unaligned access faults */ 95 static const FlagsType NO_HALF_WORD_ALIGN_FAULT = 0x00400000; 96 /** This request is to a memory mapped register. */ 97 static const FlagsType MMAPED_IPR = 0x00800000; 98 99 /** These flags are *not* cleared when a Request object is reused 100 (assigned a new address). */ |
101 static const FlagsType STICKY_FLAGS = INST_READ; | 101 static const FlagsType STICKY_FLAGS = INST_FETCH; |
102 103 private: 104 typedef uint8_t PrivateFlagsType; 105 typedef ::Flags<PrivateFlagsType> PrivateFlags; 106 107 /** Whether or not the size is valid. */ 108 static const PrivateFlagsType VALID_SIZE = 0x00000001; 109 /** Whether or not paddr is valid (has been written yet). */ --- 315 unchanged lines hidden (view full) --- 425 getPC() const 426 { 427 assert(privateFlags.isSet(VALID_PC)); 428 return pc; 429 } 430 431 /** Accessor Function to Check Cacheability. */ 432 bool isUncacheable() const { return flags.isSet(UNCACHEABLE); } | 102 103 private: 104 typedef uint8_t PrivateFlagsType; 105 typedef ::Flags<PrivateFlagsType> PrivateFlags; 106 107 /** Whether or not the size is valid. */ 108 static const PrivateFlagsType VALID_SIZE = 0x00000001; 109 /** Whether or not paddr is valid (has been written yet). */ --- 315 unchanged lines hidden (view full) --- 425 getPC() const 426 { 427 assert(privateFlags.isSet(VALID_PC)); 428 return pc; 429 } 430 431 /** Accessor Function to Check Cacheability. */ 432 bool isUncacheable() const { return flags.isSet(UNCACHEABLE); } |
433 bool isInstRead() const { return flags.isSet(INST_READ); } | 433 bool isInstFetch() const { return flags.isSet(INST_FETCH); } |
434 bool isLLSC() const { return flags.isSet(LLSC); } 435 bool isLocked() const { return flags.isSet(LOCKED); } 436 bool isSwap() const { return flags.isSet(MEM_SWAP|MEM_SWAP_COND); } 437 bool isCondSwap() const { return flags.isSet(MEM_SWAP_COND); } 438 439 bool 440 isMisaligned() const 441 { --- 17 unchanged lines hidden --- | 434 bool isLLSC() const { return flags.isSet(LLSC); } 435 bool isLocked() const { return flags.isSet(LOCKED); } 436 bool isSwap() const { return flags.isSet(MEM_SWAP|MEM_SWAP_COND); } 437 bool isCondSwap() const { return flags.isSet(MEM_SWAP_COND); } 438 439 bool 440 isMisaligned() const 441 { --- 17 unchanged lines hidden --- |