x86: Simplify and consolidate the code that assembles an MSI on x86.
[gem5.git] / src / arch / x86 / intmessage.hh
index 4a165a4a127e643830276104746f9bfaf3613e73..d2a5dfa1c7c5506a718ea43be6cc9a78f213d03a 100644 (file)
@@ -76,38 +76,17 @@ namespace X86ISA
 
     static const Addr TriggerIntOffset = 0;
 
-    static inline PacketPtr
-    prepIntRequest(const uint8_t id, Addr offset, Addr size)
-    {
-        RequestPtr req = new Request(x86InterruptAddress(id, offset),
-                                     size, Request::UNCACHEABLE,
-                                     Request::intMasterId);
-        PacketPtr pkt = new Packet(req, MemCmd::MessageReq, Packet::Broadcast);
-        pkt->allocate();
-        return pkt;
-    }
-
     template<class T>
     PacketPtr
-    buildIntRequest(const uint8_t id, T payload, Addr offset, Addr size)
+    buildIntPacket(Addr addr, T payload)
     {
-        PacketPtr pkt = prepIntRequest(id, offset, size);
-        pkt->set<T>(payload);
+        RequestPtr req = std::make_shared<Request>(
+            addr, sizeof(T), Request::UNCACHEABLE, Request::intMasterId);
+        PacketPtr pkt = new Packet(req, MemCmd::WriteReq);
+        pkt->allocate();
+        pkt->setRaw<T>(payload);
         return pkt;
     }
-
-    static inline PacketPtr
-    buildIntRequest(const uint8_t id, TriggerIntMessage payload)
-    {
-        return buildIntRequest(id, payload, TriggerIntOffset,
-                sizeof(TriggerIntMessage));
-    }
-
-    static inline PacketPtr
-    buildIntResponse()
-    {
-        panic("buildIntResponse not implemented.\n");
-    }
 }
 
 #endif