AbstractController.hh (10311:ad9c042dce54) | AbstractController.hh (10522:13312d6e1caf) |
---|---|
1/* 2 * Copyright (c) 2009 Mark D. Hill and David A. Wood 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; --- 53 unchanged lines hidden (view full) --- 62 void initNetworkPtr(Network* net_ptr) { m_net_ptr = net_ptr; } 63 64 // return instance name 65 void blockOnQueue(Address, MessageBuffer*); 66 void unblock(Address); 67 68 virtual MessageBuffer* getMandatoryQueue() const = 0; 69 virtual AccessPermission getAccessPermission(const Address& addr) = 0; | 1/* 2 * Copyright (c) 2009 Mark D. Hill and David A. Wood 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; --- 53 unchanged lines hidden (view full) --- 62 void initNetworkPtr(Network* net_ptr) { m_net_ptr = net_ptr; } 63 64 // return instance name 65 void blockOnQueue(Address, MessageBuffer*); 66 void unblock(Address); 67 68 virtual MessageBuffer* getMandatoryQueue() const = 0; 69 virtual AccessPermission getAccessPermission(const Address& addr) = 0; |
70 virtual DataBlock& getDataBlock(const Address& addr) = 0; | |
71 72 virtual void print(std::ostream & out) const = 0; 73 virtual void wakeup() = 0; 74 virtual void resetStats() = 0; 75 virtual void regStats(); 76 77 virtual void recordCacheTrace(int cntrl, CacheRecorder* tr) = 0; 78 virtual Sequencer* getSequencer() const = 0; 79 80 //! These functions are used by ruby system to read/write the message 81 //! queues that exist with in the controller. 82 //! The boolean return value indicates if the read was performed 83 //! successfully. 84 virtual bool functionalReadBuffers(PacketPtr&) = 0; | 70 71 virtual void print(std::ostream & out) const = 0; 72 virtual void wakeup() = 0; 73 virtual void resetStats() = 0; 74 virtual void regStats(); 75 76 virtual void recordCacheTrace(int cntrl, CacheRecorder* tr) = 0; 77 virtual Sequencer* getSequencer() const = 0; 78 79 //! These functions are used by ruby system to read/write the message 80 //! queues that exist with in the controller. 81 //! The boolean return value indicates if the read was performed 82 //! successfully. 83 virtual bool functionalReadBuffers(PacketPtr&) = 0; |
84 virtual void functionalRead(const Address &addr, PacketPtr) = 0; |
|
85 //! The return value indicates the number of messages written with the 86 //! data from the packet. 87 virtual uint32_t functionalWriteBuffers(PacketPtr&) = 0; | 85 //! The return value indicates the number of messages written with the 86 //! data from the packet. 87 virtual uint32_t functionalWriteBuffers(PacketPtr&) = 0; |
88 virtual int functionalWrite(const Address &addr, PacketPtr) = 0; |
|
88 89 //! Function for enqueuing a prefetch request 90 virtual void enqueuePrefetch(const Address&, const RubyRequestType&) 91 { fatal("Prefetches not implemented!");} 92 93 //! Function for collating statistics from all the controllers of this 94 //! particular type. This function should only be called from the 95 //! version 0 of this controller type. --- 68 unchanged lines hidden --- | 89 90 //! Function for enqueuing a prefetch request 91 virtual void enqueuePrefetch(const Address&, const RubyRequestType&) 92 { fatal("Prefetches not implemented!");} 93 94 //! Function for collating statistics from all the controllers of this 95 //! particular type. This function should only be called from the 96 //! version 0 of this controller type. --- 68 unchanged lines hidden --- |