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