Deleted Added
sdiff udiff text old ( 6893:9cdf9b65d946 ) new ( 6899:f8057af86bf7 )
full compact
1
2/*
3 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

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

36#include "mem/ruby/system/CacheMemory.hh"
37#include "mem/protocol/CacheMsg.hh"
38#include "mem/ruby/recorder/Tracer.hh"
39#include "mem/ruby/common/SubBlock.hh"
40#include "mem/protocol/Protocol.hh"
41#include "mem/gems_common/Map.hh"
42#include "mem/ruby/buffers/MessageBuffer.hh"
43#include "mem/ruby/slicc_interface/AbstractController.hh"
44
45#include "params/RubySequencer.hh"
46
47//Sequencer::Sequencer(int core_id, MessageBuffer* mandatory_q)
48
49#define LLSC_FAIL -2
50long int already = 0;
51

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

69 m_deadlock_threshold = 0;
70 m_instCache_ptr = NULL;
71 m_dataCache_ptr = NULL;
72
73 m_instCache_ptr = p->icache;
74 m_dataCache_ptr = p->dcache;
75 m_max_outstanding_requests = p->max_outstanding_requests;
76 m_deadlock_threshold = p->deadlock_threshold;
77
78 assert(m_max_outstanding_requests > 0);
79 assert(m_deadlock_threshold > 0);
80 assert(m_instCache_ptr != NULL);
81 assert(m_dataCache_ptr != NULL);
82}
83
84Sequencer::~Sequencer() {
85

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

339 (type == RubyRequestType_IFETCH) ||
340 (type == RubyRequestType_RMW_Read)) {
341 memcpy(ruby_request.data, data.getData(request_address.getOffset(), ruby_request.len), ruby_request.len);
342 } else {
343 data.setData(ruby_request.data, request_address.getOffset(), ruby_request.len);
344 }
345 }
346
347 m_hit_callback(srequest->id);
348 delete srequest;
349}
350
351// Returns true if the sequencer already has a load or store outstanding
352int Sequencer::isReady(const RubyRequest& request) {
353 bool is_outstanding_store = m_writeRequestTable.exist(line_address(Address(request.paddr)));
354 bool is_outstanding_load = m_readRequestTable.exist(line_address(Address(request.paddr)));

--- 161 unchanged lines hidden ---