46a47
> #include "config/have_protobuf.hh"
47a49,54
> #include "cpu/testers/traffic_gen/dram_gen.hh"
> #include "cpu/testers/traffic_gen/dram_rot_gen.hh"
> #include "cpu/testers/traffic_gen/exit_gen.hh"
> #include "cpu/testers/traffic_gen/idle_gen.hh"
> #include "cpu/testers/traffic_gen/linear_gen.hh"
> #include "cpu/testers/traffic_gen/random_gen.hh"
54a62,66
> #if HAVE_PROTOBUF
> #include "cpu/testers/traffic_gen/trace_gen.hh"
> #endif
>
>
299a312,410
> std::shared_ptr<BaseGen>
> BaseTrafficGen::createIdle(Tick duration)
> {
> return std::shared_ptr<BaseGen>(new IdleGen(*this, duration));
> }
>
> std::shared_ptr<BaseGen>
> BaseTrafficGen::createExit(Tick duration)
> {
> return std::shared_ptr<BaseGen>(new ExitGen(*this, duration));
> }
>
> std::shared_ptr<BaseGen>
> BaseTrafficGen::createLinear(Tick duration,
> Addr start_addr, Addr end_addr, Addr blocksize,
> Tick min_period, Tick max_period,
> uint8_t read_percent, Addr data_limit)
> {
> return std::shared_ptr<BaseGen>(new LinearGen(*this,
> duration, start_addr,
> end_addr, blocksize,
> min_period, max_period,
> read_percent, data_limit));
> }
>
> std::shared_ptr<BaseGen>
> BaseTrafficGen::createRandom(Tick duration,
> Addr start_addr, Addr end_addr, Addr blocksize,
> Tick min_period, Tick max_period,
> uint8_t read_percent, Addr data_limit)
> {
> return std::shared_ptr<BaseGen>(new RandomGen(*this,
> duration, start_addr,
> end_addr, blocksize,
> min_period, max_period,
> read_percent, data_limit));
> }
>
> std::shared_ptr<BaseGen>
> BaseTrafficGen::createDram(Tick duration,
> Addr start_addr, Addr end_addr, Addr blocksize,
> Tick min_period, Tick max_period,
> uint8_t read_percent, Addr data_limit,
> unsigned int num_seq_pkts, unsigned int page_size,
> unsigned int nbr_of_banks_DRAM,
> unsigned int nbr_of_banks_util,
> unsigned int addr_mapping,
> unsigned int nbr_of_ranks)
> {
> return std::shared_ptr<BaseGen>(new DramGen(*this,
> duration, start_addr,
> end_addr, blocksize,
> min_period, max_period,
> read_percent, data_limit,
> num_seq_pkts, page_size,
> nbr_of_banks_DRAM,
> nbr_of_banks_util,
> addr_mapping,
> nbr_of_ranks));
> }
>
> std::shared_ptr<BaseGen>
> BaseTrafficGen::createDramRot(Tick duration,
> Addr start_addr, Addr end_addr, Addr blocksize,
> Tick min_period, Tick max_period,
> uint8_t read_percent, Addr data_limit,
> unsigned int num_seq_pkts,
> unsigned int page_size,
> unsigned int nbr_of_banks_DRAM,
> unsigned int nbr_of_banks_util,
> unsigned int addr_mapping,
> unsigned int nbr_of_ranks,
> unsigned int max_seq_count_per_rank)
> {
> return std::shared_ptr<BaseGen>(new DramRotGen(*this,
> duration, start_addr,
> end_addr, blocksize,
> min_period, max_period,
> read_percent, data_limit,
> num_seq_pkts, page_size,
> nbr_of_banks_DRAM,
> nbr_of_banks_util,
> addr_mapping,
> nbr_of_ranks,
> max_seq_count_per_rank));
> }
>
> std::shared_ptr<BaseGen>
> BaseTrafficGen::createTrace(Tick duration,
> const std::string& trace_file, Addr addr_offset)
> {
> #if HAVE_PROTOBUF
> return std::shared_ptr<BaseGen>(
> new TraceGen(*this, duration, trace_file, addr_offset));
> #else
> panic("Can't instantiate trace generation without Protobuf support!\n");
> #endif
> }
>