+\r
+ //\r
+ // Update the Runtime Architectural protocol with the template that the core was\r
+ // using so there would not need to be a dependency on the Runtime AP\r
+ //\r
+\r
+ //\r
+ // Copy all the registered Image to new gRuntime protocol\r
+ //\r
+ for (Link = gRuntimeTemplate.ImageHead.ForwardLink; Link != &gRuntimeTemplate.ImageHead; Link = TempLinkNode.ForwardLink) {\r
+ CopyMem (&TempLinkNode, Link, sizeof(LIST_ENTRY));\r
+ InsertTailList (&gRuntime->ImageHead, Link);\r
+ }\r
+ //\r
+ // Copy all the registered Event to new gRuntime protocol\r
+ //\r
+ for (Link = gRuntimeTemplate.EventHead.ForwardLink; Link != &gRuntimeTemplate.EventHead; Link = TempLinkNode.ForwardLink) {\r
+ CopyMem (&TempLinkNode, Link, sizeof(LIST_ENTRY));\r
+ InsertTailList (&gRuntime->EventHead, Link);\r
+ }\r
+\r
+ //\r
+ // Clean up gRuntimeTemplate\r
+ //\r
+ gRuntimeTemplate.ImageHead.ForwardLink = &gRuntimeTemplate.ImageHead;\r
+ gRuntimeTemplate.ImageHead.BackLink = &gRuntimeTemplate.ImageHead;\r
+ gRuntimeTemplate.EventHead.ForwardLink = &gRuntimeTemplate.EventHead;\r
+ gRuntimeTemplate.EventHead.BackLink = &gRuntimeTemplate.EventHead;\r