2c2
< * Copyright (c) 2012-2013, 2016-2017 ARM Limited
---
> * Copyright (c) 2012-2013, 2016-2018 ARM Limited
46a47
> #include "base/logging.hh"
48a50
> #include "cpu/testers/traffic_gen/base.hh"
49a52
> #include "sim/system.hh"
51,52c54,57
< BaseGen::BaseGen(const std::string& _name, MasterID master_id, Tick _duration)
< : _name(_name), masterID(master_id), duration(_duration)
---
> BaseGen::BaseGen(BaseTrafficGen &gen, Tick _duration)
> : _name(gen.name()), masterID(gen.masterID),
> cacheLineSize(gen.system->cacheLineSize()),
> duration(_duration)
77a83,105
>
> StochasticGen::StochasticGen(BaseTrafficGen &gen,
> Tick _duration,
> Addr start_addr, Addr end_addr, Addr _blocksize,
> Tick min_period, Tick max_period,
> uint8_t read_percent, Addr data_limit)
> : BaseGen(gen, _duration),
> startAddr(start_addr), endAddr(end_addr),
> blocksize(_blocksize), minPeriod(min_period),
> maxPeriod(max_period), readPercent(read_percent),
> dataLimit(data_limit)
> {
> if (blocksize > cacheLineSize)
> fatal("TrafficGen %s block size (%d) is larger than "
> "cache line size (%d)\n", name(),
> blocksize, cacheLineSize);
>
> if (read_percent > 100)
> fatal("%s cannot have more than 100% reads", name());
>
> if (min_period > max_period)
> fatal("%s cannot have min_period > max_period", name());
> }