base_gen.cc (12748:ae5ce8e42de7) base_gen.cc (12749:223c83ed9979)
1/*
2 * Copyright (c) 2012-2013, 2016-2017 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

54{
55}
56
57PacketPtr
58BaseGen::getPacket(Addr addr, unsigned size, const MemCmd& cmd,
59 Request::FlagsType flags)
60{
61 // Create new request
1/*
2 * Copyright (c) 2012-2013, 2016-2017 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

54{
55}
56
57PacketPtr
58BaseGen::getPacket(Addr addr, unsigned size, const MemCmd& cmd,
59 Request::FlagsType flags)
60{
61 // Create new request
62 RequestPtr req = new Request(addr, size, flags, masterID);
62 RequestPtr req = std::make_shared<Request>(addr, size, flags, masterID);
63 // Dummy PC to have PC-based prefetchers latch on; get entropy into higher
64 // bits
65 req->setPC(((Addr)masterID) << 2);
66
67 // Embed it in a packet
68 PacketPtr pkt = new Packet(req, cmd);
69
70 uint8_t* pkt_data = new uint8_t[req->getSize()];
71 pkt->dataDynamic(pkt_data);
72
73 if (cmd.isWrite()) {
74 std::fill_n(pkt_data, req->getSize(), (uint8_t)masterID);
75 }
76
77 return pkt;
78}
63 // Dummy PC to have PC-based prefetchers latch on; get entropy into higher
64 // bits
65 req->setPC(((Addr)masterID) << 2);
66
67 // Embed it in a packet
68 PacketPtr pkt = new Packet(req, cmd);
69
70 uint8_t* pkt_data = new uint8_t[req->getSize()];
71 pkt->dataDynamic(pkt_data);
72
73 if (cmd.isWrite()) {
74 std::fill_n(pkt_data, req->getSize(), (uint8_t)masterID);
75 }
76
77 return pkt;
78}