stage2_mmu.hh (12429:beefb9f5f551) | stage2_mmu.hh (12749:223c83ed9979) |
---|---|
1/* 2 * Copyright (c) 2012-2013, 2015 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 --- 56 unchanged lines hidden (view full) --- 65 MasterID masterId; 66 67 public: 68 /** This translation class is used to trigger the data fetch once a timing 69 translation returns the translated physical address */ 70 class Stage2Translation : public BaseTLB::Translation 71 { 72 private: | 1/* 2 * Copyright (c) 2012-2013, 2015 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 --- 56 unchanged lines hidden (view full) --- 65 MasterID masterId; 66 67 public: 68 /** This translation class is used to trigger the data fetch once a timing 69 translation returns the translated physical address */ 70 class Stage2Translation : public BaseTLB::Translation 71 { 72 private: |
73 uint8_t *data; 74 int numBytes; 75 Request req; 76 Event *event; 77 Stage2MMU &parent; 78 Addr oVAddr; | 73 uint8_t *data; 74 int numBytes; 75 RequestPtr req; 76 Event *event; 77 Stage2MMU &parent; 78 Addr oVAddr; |
79 80 public: 81 Fault fault; 82 83 Stage2Translation(Stage2MMU &_parent, uint8_t *_data, Event *_event, 84 Addr _oVAddr); 85 86 void 87 markDelayed() {} 88 89 void | 79 80 public: 81 Fault fault; 82 83 Stage2Translation(Stage2MMU &_parent, uint8_t *_data, Event *_event, 84 Addr _oVAddr); 85 86 void 87 markDelayed() {} 88 89 void |
90 finish(const Fault &fault, RequestPtr req, ThreadContext *tc, | 90 finish(const Fault &fault, const RequestPtr &req, ThreadContext *tc, |
91 BaseTLB::Mode mode); 92 93 void setVirt(Addr vaddr, int size, Request::Flags flags, int masterId) 94 { 95 numBytes = size; | 91 BaseTLB::Mode mode); 92 93 void setVirt(Addr vaddr, int size, Request::Flags flags, int masterId) 94 { 95 numBytes = size; |
96 req.setVirt(0, vaddr, size, flags, masterId, 0); | 96 req->setVirt(0, vaddr, size, flags, masterId, 0); |
97 } 98 99 void translateTiming(ThreadContext *tc) 100 { | 97 } 98 99 void translateTiming(ThreadContext *tc) 100 { |
101 parent.stage2Tlb()->translateTiming(&req, tc, this, BaseTLB::Read); | 101 parent.stage2Tlb()->translateTiming(req, tc, this, BaseTLB::Read); |
102 } 103 }; 104 105 typedef ArmStage2MMUParams Params; 106 Stage2MMU(const Params *p); 107 108 /** 109 * Get the port that ultimately belongs to the stage-two MMU, but --- 21 unchanged lines hidden --- | 102 } 103 }; 104 105 typedef ArmStage2MMUParams Params; 106 Stage2MMU(const Params *p); 107 108 /** 109 * Get the port that ultimately belongs to the stage-two MMU, but --- 21 unchanged lines hidden --- |