]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/XenBusDxe/XenBus.c
MpInitLib: Move the Above1Mb vector allocation to MpInitLibInitialize
[mirror_edk2.git] / OvmfPkg / XenBusDxe / XenBus.c
index a203beaaa7e74112d8a663f6bc0ada7d980b1c35..7b67670ccb13b2c40f3319d9c91785aadb75e748 100644 (file)
 \r
 #include <IndustryStandard/Xen/io/xenbus.h>\r
 \r
-STATIC XENBUS_PRIVATE_DATA gXenBusPrivateData;\r
+STATIC XENBUS_PRIVATE_DATA  gXenBusPrivateData;\r
 \r
-STATIC XENBUS_DEVICE_PATH gXenBusDevicePathTemplate = {\r
+STATIC XENBUS_DEVICE_PATH  gXenBusDevicePathTemplate = {\r
   {                                                 // Vendor\r
     {                                               // Vendor.Header\r
       HARDWARE_DEVICE_PATH,                         // Vendor.Header.Type\r
       HW_VENDOR_DP,                                 // Vendor.Header.SubType\r
       {\r
-        (UINT8) (sizeof (XENBUS_DEVICE_PATH)),      // Vendor.Header.Length[0]\r
-        (UINT8) (sizeof (XENBUS_DEVICE_PATH) >> 8), // Vendor.Header.Length[1]\r
+        (UINT8)(sizeof (XENBUS_DEVICE_PATH)),       // Vendor.Header.Length[0]\r
+        (UINT8)(sizeof (XENBUS_DEVICE_PATH) >> 8),  // Vendor.Header.Length[1]\r
       }\r
     },\r
     XENBUS_PROTOCOL_GUID,                           // Vendor.Guid\r
@@ -44,7 +44,6 @@ STATIC XENBUS_DEVICE_PATH gXenBusDevicePathTemplate = {
   0                                                 // DeviceId\r
 };\r
 \r
-\r
 /**\r
   Search our internal record of configured devices (not the XenStore) to\r
   determine if the XenBus device indicated by Node is known to the system.\r
@@ -57,13 +56,13 @@ STATIC XENBUS_DEVICE_PATH gXenBusDevicePathTemplate = {
 STATIC\r
 XENBUS_PRIVATE_DATA *\r
 XenBusDeviceInitialized (\r
-  IN XENBUS_DEVICE *Dev,\r
-  IN CONST CHAR8 *Node\r
+  IN XENBUS_DEVICE  *Dev,\r
+  IN CONST CHAR8    *Node\r
   )\r
 {\r
-  LIST_ENTRY *Entry;\r
-  XENBUS_PRIVATE_DATA *Child;\r
-  XENBUS_PRIVATE_DATA *Result;\r
+  LIST_ENTRY           *Entry;\r
+  XENBUS_PRIVATE_DATA  *Child;\r
+  XENBUS_PRIVATE_DATA  *Result;\r
 \r
   if (IsListEmpty (&Dev->ChildList)) {\r
     return NULL;\r
@@ -72,7 +71,8 @@ XenBusDeviceInitialized (
   Result = NULL;\r
   for (Entry = GetFirstNode (&Dev->ChildList);\r
        !IsNodeAtEnd (&Dev->ChildList, Entry);\r
-       Entry = GetNextNode (&Dev->ChildList, Entry)) {\r
+       Entry = GetNextNode (&Dev->ChildList, Entry))\r
+  {\r
     Child = XENBUS_PRIVATE_DATA_FROM_LINK (Entry);\r
     if (!AsciiStrCmp (Child->XenBusIo.Node, Node)) {\r
       Result = Child;\r
@@ -86,12 +86,12 @@ XenBusDeviceInitialized (
 STATIC\r
 XenbusState\r
 XenBusReadDriverState (\r
-  IN CONST CHAR8 *Path\r
+  IN CONST CHAR8  *Path\r
   )\r
 {\r
-  XenbusState State;\r
-  CHAR8 *Ptr = NULL;\r
-  XENSTORE_STATUS Status;\r
+  XenbusState      State;\r
+  CHAR8            *Ptr = NULL;\r
+  XENSTORE_STATUS  Status;\r
 \r
   Status = XenStoreRead (XST_NIL, Path, "state", NULL, (VOID **)&Ptr);\r
   if (Status != XENSTORE_STATUS_SUCCESS) {\r
@@ -113,24 +113,30 @@ XenBusReadDriverState (
 STATIC\r
 EFI_STATUS\r
 XenBusAddDevice (\r
-  XENBUS_DEVICE *Dev,\r
-  CONST CHAR8 *Type,\r
-  CONST CHAR8 *Id)\r
+  XENBUS_DEVICE  *Dev,\r
+  CONST CHAR8    *Type,\r
+  CONST CHAR8    *Id\r
+  )\r
 {\r
-  CHAR8 DevicePath[XENSTORE_ABS_PATH_MAX];\r
-  XENSTORE_STATUS StatusXenStore;\r
-  XENBUS_PRIVATE_DATA *Private;\r
-  EFI_STATUS Status;\r
-  XENBUS_DEVICE_PATH *TempXenBusPath;\r
-  VOID *ChildXenIo;\r
-\r
-  AsciiSPrint (DevicePath, sizeof (DevicePath),\r
-               "device/%a/%a", Type, Id);\r
+  CHAR8                DevicePath[XENSTORE_ABS_PATH_MAX];\r
+  XENSTORE_STATUS      StatusXenStore;\r
+  XENBUS_PRIVATE_DATA  *Private;\r
+  EFI_STATUS           Status;\r
+  XENBUS_DEVICE_PATH   *TempXenBusPath;\r
+  VOID                 *ChildXenIo;\r
+\r
+  AsciiSPrint (\r
+    DevicePath,\r
+    sizeof (DevicePath),\r
+    "device/%a/%a",\r
+    Type,\r
+    Id\r
+    );\r
 \r
   if (XenStorePathExists (XST_NIL, DevicePath, "")) {\r
-    XENBUS_PRIVATE_DATA *Child;\r
-    enum xenbus_state State;\r
-    CHAR8 *BackendPath;\r
+    XENBUS_PRIVATE_DATA  *Child;\r
+    enum xenbus_state    State;\r
+    CHAR8                *BackendPath;\r
 \r
     Child = XenBusDeviceInitialized (Dev, DevicePath);\r
     if (Child != NULL) {\r
@@ -148,61 +154,84 @@ XenBusAddDevice (
        * happen if a device is going away after\r
        * switching to Closed.\r
        */\r
-      DEBUG ((EFI_D_INFO, "XenBus: Device %a ignored. "\r
-              "State %d\n", DevicePath, State));\r
+      DEBUG ((\r
+        DEBUG_INFO,\r
+        "XenBus: Device %a ignored. "\r
+        "State %d\n",\r
+        DevicePath,\r
+        State\r
+        ));\r
       Status = EFI_SUCCESS;\r
       goto out;\r
     }\r
 \r
-    StatusXenStore = XenStoreRead (XST_NIL, DevicePath, "backend",\r
-                                   NULL, (VOID **) &BackendPath);\r
+    StatusXenStore = XenStoreRead (\r
+                       XST_NIL,\r
+                       DevicePath,\r
+                       "backend",\r
+                       NULL,\r
+                       (VOID **)&BackendPath\r
+                       );\r
     if (StatusXenStore != XENSTORE_STATUS_SUCCESS) {\r
-      DEBUG ((EFI_D_ERROR, "xenbus: %a no backend path.\n", DevicePath));\r
+      DEBUG ((DEBUG_ERROR, "xenbus: %a no backend path.\n", DevicePath));\r
       Status = EFI_NOT_FOUND;\r
       goto out;\r
     }\r
 \r
-    Private = AllocateCopyPool (sizeof (*Private), &gXenBusPrivateData);\r
-    Private->XenBusIo.Type = AsciiStrDup (Type);\r
-    Private->XenBusIo.Node = AsciiStrDup (DevicePath);\r
-    Private->XenBusIo.Backend = BackendPath;\r
+    Private                    = AllocateCopyPool (sizeof (*Private), &gXenBusPrivateData);\r
+    Private->XenBusIo.Type     = AsciiStrDup (Type);\r
+    Private->XenBusIo.Node     = AsciiStrDup (DevicePath);\r
+    Private->XenBusIo.Backend  = BackendPath;\r
     Private->XenBusIo.DeviceId = (UINT16)AsciiStrDecimalToUintn (Id);\r
-    Private->Dev = Dev;\r
+    Private->Dev               = Dev;\r
 \r
-    TempXenBusPath = AllocateCopyPool (sizeof (XENBUS_DEVICE_PATH),\r
-                                       &gXenBusDevicePathTemplate);\r
+    TempXenBusPath = AllocateCopyPool (\r
+                       sizeof (XENBUS_DEVICE_PATH),\r
+                       &gXenBusDevicePathTemplate\r
+                       );\r
     if (!AsciiStrCmp (Private->XenBusIo.Type, "vbd")) {\r
       TempXenBusPath->Type = XENBUS_DEVICE_PATH_TYPE_VBD;\r
     }\r
+\r
     TempXenBusPath->DeviceId = Private->XenBusIo.DeviceId;\r
-    Private->DevicePath = (XENBUS_DEVICE_PATH *)AppendDevicePathNode (\r
-                            Dev->DevicePath,\r
-                            &TempXenBusPath->Vendor.Header);\r
+    Private->DevicePath      = (XENBUS_DEVICE_PATH *)AppendDevicePathNode (\r
+                                                       Dev->DevicePath,\r
+                                                       &TempXenBusPath->Vendor.Header\r
+                                                       );\r
     FreePool (TempXenBusPath);\r
 \r
     InsertTailList (&Dev->ChildList, &Private->Link);\r
 \r
     Status = gBS->InstallMultipleProtocolInterfaces (\r
-               &Private->Handle,\r
-               &gEfiDevicePathProtocolGuid, Private->DevicePath,\r
-               &gXenBusProtocolGuid, &Private->XenBusIo,\r
-               NULL);\r
+                    &Private->Handle,\r
+                    &gEfiDevicePathProtocolGuid,\r
+                    Private->DevicePath,\r
+                    &gXenBusProtocolGuid,\r
+                    &Private->XenBusIo,\r
+                    NULL\r
+                    );\r
     if (EFI_ERROR (Status)) {\r
       goto ErrorInstallProtocol;\r
     }\r
 \r
-    Status = gBS->OpenProtocol (Dev->ControllerHandle,\r
-               &gXenIoProtocolGuid,\r
-               &ChildXenIo, Dev->This->DriverBindingHandle,\r
-               Private->Handle,\r
-               EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER);\r
+    Status = gBS->OpenProtocol (\r
+                    Dev->ControllerHandle,\r
+                    &gXenIoProtocolGuid,\r
+                    &ChildXenIo,\r
+                    Dev->This->DriverBindingHandle,\r
+                    Private->Handle,\r
+                    EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
+                    );\r
     if (EFI_ERROR (Status)) {\r
-      DEBUG ((EFI_D_ERROR, "open by child controller fail (%r)\n",\r
-              Status));\r
+      DEBUG ((\r
+        DEBUG_ERROR,\r
+        "open by child controller fail (%r)\n",\r
+        Status\r
+        ));\r
       goto ErrorOpenProtocolByChild;\r
     }\r
   } else {\r
-    DEBUG ((EFI_D_ERROR, "XenBus: does not exist: %a\n", DevicePath));\r
+    DEBUG ((DEBUG_ERROR, "XenBus: does not exist: %a\n", DevicePath));\r
     Status = EFI_NOT_FOUND;\r
   }\r
 \r
@@ -210,16 +239,19 @@ XenBusAddDevice (
 \r
 ErrorOpenProtocolByChild:\r
   gBS->UninstallMultipleProtocolInterfaces (\r
-    Private->Handle,\r
-    &gEfiDevicePathProtocolGuid, Private->DevicePath,\r
-    &gXenBusProtocolGuid, &Private->XenBusIo,\r
-    NULL);\r
+         Private->Handle,\r
+         &gEfiDevicePathProtocolGuid,\r
+         Private->DevicePath,\r
+         &gXenBusProtocolGuid,\r
+         &Private->XenBusIo,\r
+         NULL\r
+         );\r
 ErrorInstallProtocol:\r
   RemoveEntryList (&Private->Link);\r
   FreePool (Private->DevicePath);\r
-  FreePool ((VOID *) Private->XenBusIo.Backend);\r
-  FreePool ((VOID *) Private->XenBusIo.Node);\r
-  FreePool ((VOID *) Private->XenBusIo.Type);\r
+  FreePool ((VOID *)Private->XenBusIo.Backend);\r
+  FreePool ((VOID *)Private->XenBusIo.Node);\r
+  FreePool ((VOID *)Private->XenBusIo.Type);\r
   FreePool (Private);\r
 out:\r
   return Status;\r
@@ -239,29 +271,33 @@ out:
 STATIC\r
 VOID\r
 XenBusEnumerateDeviceType (\r
-  XENBUS_DEVICE *Dev,\r
-  CONST CHAR8 *Type\r
+  XENBUS_DEVICE  *Dev,\r
+  CONST CHAR8    *Type\r
   )\r
 {\r
-  CONST CHAR8 **Directory;\r
-  UINTN Index;\r
-  UINT32 Count;\r
-  XENSTORE_STATUS Status;\r
-\r
-  Status = XenStoreListDirectory (XST_NIL,\r
-                                  "device", Type,\r
-                                  &Count, &Directory);\r
+  CONST CHAR8      **Directory;\r
+  UINTN            Index;\r
+  UINT32           Count;\r
+  XENSTORE_STATUS  Status;\r
+\r
+  Status = XenStoreListDirectory (\r
+             XST_NIL,\r
+             "device",\r
+             Type,\r
+             &Count,\r
+             &Directory\r
+             );\r
   if (Status != XENSTORE_STATUS_SUCCESS) {\r
     return;\r
   }\r
+\r
   for (Index = 0; Index < Count; Index++) {\r
     XenBusAddDevice (Dev, Type, Directory[Index]);\r
   }\r
 \r
-  FreePool ((VOID*)Directory);\r
+  FreePool ((VOID *)Directory);\r
 }\r
 \r
-\r
 /**\r
   Enumerate the devices on a XenBus bus and install a XenBus Protocol instance.\r
 \r
@@ -275,17 +311,21 @@ XenBusEnumerateDeviceType (
  */\r
 XENSTORE_STATUS\r
 XenBusEnumerateBus (\r
-  XENBUS_DEVICE *Dev\r
+  XENBUS_DEVICE  *Dev\r
   )\r
 {\r
-  CONST CHAR8 **Types;\r
-  UINTN Index;\r
-  UINT32 Count;\r
-  XENSTORE_STATUS Status;\r
-\r
-  Status = XenStoreListDirectory (XST_NIL,\r
-                                  "device", "",\r
-                                  &Count, &Types);\r
+  CONST CHAR8      **Types;\r
+  UINTN            Index;\r
+  UINT32           Count;\r
+  XENSTORE_STATUS  Status;\r
+\r
+  Status = XenStoreListDirectory (\r
+             XST_NIL,\r
+             "device",\r
+             "",\r
+             &Count,\r
+             &Types\r
+             );\r
   if (Status != XENSTORE_STATUS_SUCCESS) {\r
     return Status;\r
   }\r
@@ -294,7 +334,7 @@ XenBusEnumerateBus (
     XenBusEnumerateDeviceType (Dev, Types[Index]);\r
   }\r
 \r
-  FreePool ((VOID*)Types);\r
+  FreePool ((VOID *)Types);\r
 \r
   return XENSTORE_STATUS_SUCCESS;\r
 }\r
@@ -303,21 +343,22 @@ STATIC
 XENSTORE_STATUS\r
 EFIAPI\r
 XenBusSetState (\r
-  IN XENBUS_PROTOCOL      *This,\r
-  IN CONST XENSTORE_TRANSACTION *Transaction,\r
-  IN enum xenbus_state    NewState\r
+  IN XENBUS_PROTOCOL             *This,\r
+  IN CONST XENSTORE_TRANSACTION  *Transaction,\r
+  IN enum xenbus_state           NewState\r
   )\r
 {\r
-  enum xenbus_state CurrentState;\r
-  XENSTORE_STATUS Status;\r
-  CHAR8 *Temp;\r
+  enum xenbus_state  CurrentState;\r
+  XENSTORE_STATUS    Status;\r
+  CHAR8              *Temp;\r
 \r
-  DEBUG ((EFI_D_INFO, "XenBus: Set state to %d\n", NewState));\r
+  DEBUG ((DEBUG_INFO, "XenBus: Set state to %d\n", NewState));\r
 \r
   Status = XenStoreRead (Transaction, This->Node, "state", NULL, (VOID **)&Temp);\r
   if (Status != XENSTORE_STATUS_SUCCESS) {\r
     goto Out;\r
   }\r
+\r
   CurrentState = AsciiStrDecimalToUintn (Temp);\r
   FreePool (Temp);\r
   if (CurrentState == NewState) {\r
@@ -327,17 +368,19 @@ XenBusSetState (
   do {\r
     Status = XenStoreSPrint (Transaction, This->Node, "state", "%d", NewState);\r
   } while (Status == XENSTORE_STATUS_EAGAIN);\r
+\r
   if (Status != XENSTORE_STATUS_SUCCESS) {\r
-    DEBUG ((EFI_D_ERROR, "XenBus: failed to write new state\n"));\r
+    DEBUG ((DEBUG_ERROR, "XenBus: failed to write new state\n"));\r
     goto Out;\r
   }\r
-  DEBUG ((EFI_D_INFO, "XenBus: Set state to %d, done\n", NewState));\r
+\r
+  DEBUG ((DEBUG_INFO, "XenBus: Set state to %d, done\n", NewState));\r
 \r
 Out:\r
   return Status;\r
 }\r
 \r
-STATIC XENBUS_PRIVATE_DATA gXenBusPrivateData = {\r
+STATIC XENBUS_PRIVATE_DATA  gXenBusPrivateData = {\r
   XENBUS_PRIVATE_DATA_SIGNATURE,    // Signature\r
   { NULL, NULL },                   // Link\r
   NULL,                             // Handle\r