]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg/Xen*: Pass struct XENSTORE_TRANSACTION argument as a pointer
authorAnthony PERARD <anthony.perard@citrix.com>
Fri, 31 Oct 2014 21:25:23 +0000 (21:25 +0000)
committerjljusten <jljusten@Edk2>
Fri, 31 Oct 2014 21:25:23 +0000 (21:25 +0000)
As EDK II does not allow calls with a struct.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16294 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/Include/Protocol/XenBus.h
OvmfPkg/XenBusDxe/XenBus.c
OvmfPkg/XenBusDxe/XenStore.c
OvmfPkg/XenBusDxe/XenStore.h
OvmfPkg/XenPvBlkDxe/BlockFront.c

index 4c1247bc9386d4bdfbc9a15bd21bb152dfd7a250..3509691e03dbb45bad8955c631d91b1afb17271b 100644 (file)
@@ -39,7 +39,7 @@ typedef struct
   UINT32 Id;\r
 } XENSTORE_TRANSACTION;\r
 \r
-#define XST_NIL ((XENSTORE_TRANSACTION) { 0 })\r
+#define XST_NIL ((XENSTORE_TRANSACTION *) NULL)\r
 \r
 typedef enum {\r
   XENSTORE_STATUS_SUCCESS = 0,\r
@@ -88,7 +88,7 @@ typedef
 XENSTORE_STATUS\r
 (EFIAPI *XENBUS_XS_READ)(\r
   IN  XENBUS_PROTOCOL       *This,\r
-  IN  XENSTORE_TRANSACTION  Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  CONST CHAR8           *Node,\r
   OUT VOID                  **Result\r
   );\r
@@ -112,7 +112,7 @@ typedef
 XENSTORE_STATUS\r
 (EFIAPI *XENBUS_XS_BACKEND_READ)(\r
   IN  XENBUS_PROTOCOL       *This,\r
-  IN  XENSTORE_TRANSACTION  Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  CONST CHAR8           *Node,\r
   OUT VOID                  **Result\r
   );\r
@@ -134,7 +134,7 @@ typedef
 XENSTORE_STATUS\r
 (EFIAPI *XENBUS_XS_PRINTF) (\r
   IN XENBUS_PROTOCOL        *This,\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8            *Directory,\r
   IN CONST CHAR8            *Node,\r
   IN CONST CHAR8            *Format,\r
@@ -156,7 +156,7 @@ typedef
 XENSTORE_STATUS\r
 (EFIAPI *XENBUS_XS_REMOVE) (\r
   IN XENBUS_PROTOCOL        *This,\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8            *Node\r
   );\r
 \r
@@ -195,7 +195,7 @@ typedef
 XENSTORE_STATUS\r
 (EFIAPI *XENBUS_XS_TRANSACTION_END) (\r
   IN XENBUS_PROTOCOL        *This,\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN BOOLEAN                Abort\r
   );\r
 \r
@@ -213,7 +213,7 @@ typedef
 XENSTORE_STATUS\r
 (EFIAPI *XENBUS_SET_STATE)(\r
   IN XENBUS_PROTOCOL        *This,\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN XenBusState            State\r
   );\r
 \r
index 896a6607b73fce0d21225dbb7c585337721034b9..a569cfa088fa44406f282e74680185aac50f1df0 100644 (file)
@@ -314,7 +314,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusSetState (\r
   IN XENBUS_PROTOCOL      *This,\r
-  IN XENSTORE_TRANSACTION Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN enum xenbus_state    NewState\r
   )\r
 {\r
index aed6b141bdcd88c5ab1389d5b684f9a0031e7761..f176b95a4ded24d095ed6929a9d26f8b12d648a8 100644 (file)
@@ -790,7 +790,7 @@ XenStoreReadReply (
 STATIC\r
 XENSTORE_STATUS\r
 XenStoreTalkv (\r
-  IN  XENSTORE_TRANSACTION    Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  enum xsd_sockmsg_type   RequestType,\r
   IN  CONST WRITE_REQUEST     *WriteRequest,\r
   IN  UINT32                  NumRequests,\r
@@ -803,7 +803,11 @@ XenStoreTalkv (
   UINT32 Index;\r
   XENSTORE_STATUS Status;\r
 \r
-  Message.tx_id = Transaction.Id;\r
+  if (Transaction == XST_NIL) {\r
+    Message.tx_id = 0;\r
+  } else {\r
+    Message.tx_id = Transaction->Id;\r
+  }\r
   Message.req_id = 0;\r
   Message.type = RequestType;\r
   Message.len = 0;\r
@@ -869,7 +873,7 @@ Error:
 STATIC\r
 XENSTORE_STATUS\r
 XenStoreSingle (\r
-  IN  XENSTORE_TRANSACTION    Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  enum xsd_sockmsg_type   RequestType,\r
   IN  CONST CHAR8             *Body,\r
   OUT UINT32                  *LenPtr OPTIONAL,\r
@@ -1157,7 +1161,7 @@ XenStoreDeinit (
 \r
 XENSTORE_STATUS\r
 XenStoreListDirectory (\r
-  IN  XENSTORE_TRANSACTION  Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  CONST CHAR8           *DirectoryPath,\r
   IN  CONST CHAR8           *Node,\r
   OUT UINT32                *DirectoryCountPtr,\r
@@ -1184,7 +1188,7 @@ XenStoreListDirectory (
 \r
 BOOLEAN\r
 XenStorePathExists (\r
-  IN XENSTORE_TRANSACTION  Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8           *Directory,\r
   IN CONST CHAR8           *Node\r
   )\r
@@ -1204,7 +1208,7 @@ XenStorePathExists (
 \r
 XENSTORE_STATUS\r
 XenStoreRead (\r
-  IN  XENSTORE_TRANSACTION    Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  CONST CHAR8             *DirectoryPath,\r
   IN  CONST CHAR8             *Node,\r
   OUT UINT32                  *LenPtr OPTIONAL,\r
@@ -1228,7 +1232,7 @@ XenStoreRead (
 \r
 XENSTORE_STATUS\r
 XenStoreWrite (\r
-  IN XENSTORE_TRANSACTION  Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8           *DirectoryPath,\r
   IN CONST CHAR8           *Node,\r
   IN CONST CHAR8           *Str\r
@@ -1253,7 +1257,7 @@ XenStoreWrite (
 \r
 XENSTORE_STATUS\r
 XenStoreRemove (\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8            *DirectoryPath,\r
   IN CONST CHAR8            *Node\r
   )\r
@@ -1288,7 +1292,7 @@ XenStoreTransactionStart (
 \r
 XENSTORE_STATUS\r
 XenStoreTransactionEnd (\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN BOOLEAN                Abort\r
   )\r
 {\r
@@ -1305,7 +1309,7 @@ XenStoreTransactionEnd (
 \r
 XENSTORE_STATUS\r
 XenStoreVSPrint (\r
-  IN XENSTORE_TRANSACTION  Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8           *DirectoryPath,\r
   IN CONST CHAR8           *Node,\r
   IN CONST CHAR8           *FormatString,\r
@@ -1328,7 +1332,7 @@ XenStoreVSPrint (
 XENSTORE_STATUS\r
 EFIAPI\r
 XenStoreSPrint (\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8            *DirectoryPath,\r
   IN CONST CHAR8            *Node,\r
   IN CONST CHAR8            *FormatString,\r
@@ -1444,7 +1448,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusXenStoreRead (\r
   IN  XENBUS_PROTOCOL       *This,\r
-  IN  XENSTORE_TRANSACTION  Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  CONST CHAR8           *Node,\r
   OUT VOID                  **Value\r
   )\r
@@ -1456,7 +1460,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusXenStoreBackendRead (\r
   IN  XENBUS_PROTOCOL       *This,\r
-  IN  XENSTORE_TRANSACTION  Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  CONST CHAR8           *Node,\r
   OUT VOID                  **Value\r
   )\r
@@ -1468,7 +1472,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusXenStoreRemove (\r
   IN XENBUS_PROTOCOL        *This,\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN const char             *Node\r
   )\r
 {\r
@@ -1489,7 +1493,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusXenStoreTransactionEnd (\r
   IN XENBUS_PROTOCOL        *This,\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN BOOLEAN                Abort\r
   )\r
 {\r
@@ -1500,7 +1504,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusXenStoreSPrint (\r
   IN XENBUS_PROTOCOL        *This,\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8            *DirectoryPath,\r
   IN CONST CHAR8            *Node,\r
   IN CONST CHAR8            *FormatString,\r
index 9020411f6a11767426afe05fe2b00783166143df..de5690119e835d38a115673a3e7bb7b40d473ef1 100644 (file)
@@ -54,7 +54,7 @@ typedef struct _XENSTORE_WATCH XENSTORE_WATCH;
 **/\r
 XENSTORE_STATUS\r
 XenStoreListDirectory (\r
-  IN  XENSTORE_TRANSACTION  Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  CONST CHAR8           *DirectoryPath,\r
   IN  CONST CHAR8           *Node,\r
   OUT UINT32                *DirectoryCountPtr,\r
@@ -74,7 +74,7 @@ XenStoreListDirectory (
 **/\r
 BOOLEAN\r
 XenStorePathExists (\r
-  IN XENSTORE_TRANSACTION  Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8 *Directory,\r
   IN CONST CHAR8 *Node\r
   );\r
@@ -98,7 +98,7 @@ XenStorePathExists (
 **/\r
 XENSTORE_STATUS\r
 XenStoreRead (\r
-  IN  XENSTORE_TRANSACTION    Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  CONST CHAR8             *DirectoryPath,\r
   IN  CONST CHAR8             *Node,\r
   OUT UINT32                  *LenPtr OPTIONAL,\r
@@ -118,7 +118,7 @@ XenStoreRead (
 **/\r
 XENSTORE_STATUS\r
 XenStoreWrite (\r
-  IN XENSTORE_TRANSACTION  Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8           *DirectoryPath,\r
   IN CONST CHAR8           *Node,\r
   IN CONST CHAR8           *Str\r
@@ -136,7 +136,7 @@ XenStoreWrite (
 **/\r
 XENSTORE_STATUS\r
 XenStoreRemove (\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8            *DirectoryPath,\r
   IN CONST CHAR8            *Node\r
   );\r
@@ -155,7 +155,7 @@ XenStoreRemove (
 **/\r
 XENSTORE_STATUS\r
 XenStoreTransactionStart (\r
-  OUT XENSTORE_TRANSACTION  *Transaction\r
+  OUT XENSTORE_TRANSACTION *Transaction\r
   );\r
 \r
 /**\r
@@ -170,7 +170,7 @@ XenStoreTransactionStart (
 **/\r
 XENSTORE_STATUS\r
 XenStoreTransactionEnd (\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN BOOLEAN                Abort\r
   );\r
 \r
@@ -189,7 +189,7 @@ XenStoreTransactionEnd (
 XENSTORE_STATUS\r
 EFIAPI\r
 XenStoreSPrint (\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8            *DirectoryPath,\r
   IN CONST CHAR8            *Node,\r
   IN CONST CHAR8            *FormatString,\r
@@ -210,7 +210,7 @@ XenStoreSPrint (
 **/\r
 XENSTORE_STATUS\r
 XenStoreVSPrint (\r
-  IN XENSTORE_TRANSACTION  Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8           *DirectoryPath,\r
   IN CONST CHAR8           *Node,\r
   IN CONST CHAR8           *FormatString,\r
@@ -305,7 +305,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusXenStoreRead (\r
   IN  XENBUS_PROTOCOL       *This,\r
-  IN  XENSTORE_TRANSACTION  Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  CONST CHAR8           *Node,\r
   OUT VOID                  **Value\r
   );\r
@@ -314,7 +314,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusXenStoreBackendRead (\r
   IN  XENBUS_PROTOCOL       *This,\r
-  IN  XENSTORE_TRANSACTION  Transaction,\r
+  IN  CONST XENSTORE_TRANSACTION *Transaction,\r
   IN  CONST CHAR8           *Node,\r
   OUT VOID                  **Value\r
   );\r
@@ -323,7 +323,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusXenStoreRemove (\r
   IN XENBUS_PROTOCOL        *This,\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8            *Node\r
   );\r
 \r
@@ -338,7 +338,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusXenStoreTransactionEnd (\r
   IN XENBUS_PROTOCOL        *This,\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN BOOLEAN                Abort\r
   );\r
 \r
@@ -346,7 +346,7 @@ XENSTORE_STATUS
 EFIAPI\r
 XenBusXenStoreSPrint (\r
   IN XENBUS_PROTOCOL        *This,\r
-  IN XENSTORE_TRANSACTION   Transaction,\r
+  IN CONST XENSTORE_TRANSACTION *Transaction,\r
   IN CONST CHAR8            *DirectoryPath,\r
   IN CONST CHAR8            *Node,\r
   IN CONST CHAR8            *FormatString,\r
index 3c039e7add2d1d6f163f69754c9b88b52b217c44..8d43d833b0b5ff23dfe5db94772a64703cc595f1 100644 (file)
@@ -166,7 +166,7 @@ XenPvBlockFrontInitialization (
   OUT XEN_BLOCK_FRONT_DEVICE  **DevPtr\r
   )\r
 {\r
-  XENSTORE_TRANSACTION xbt;\r
+  XENSTORE_TRANSACTION Transaction;\r
   CHAR8 *DeviceType;\r
   blkif_sring_t *SharedRing;\r
   XENSTORE_STATUS Status;\r
@@ -209,38 +209,38 @@ XenPvBlockFrontInitialization (
                          &Dev->RingRef);\r
 \r
 Again:\r
-  Status = XenBusIo->XsTransactionStart (XenBusIo, &xbt);\r
+  Status = XenBusIo->XsTransactionStart (XenBusIo, &Transaction);\r
   if (Status != XENSTORE_STATUS_SUCCESS) {\r
     DEBUG ((EFI_D_WARN, "XenPvBlk: Failed to start transaction, %d\n", Status));\r
     goto Error;\r
   }\r
 \r
-  Status = XenBusIo->XsPrintf (XenBusIo, xbt, NodeName, "ring-ref", "%d",\r
+  Status = XenBusIo->XsPrintf (XenBusIo, &Transaction, NodeName, "ring-ref", "%d",\r
                                Dev->RingRef);\r
   if (Status != XENSTORE_STATUS_SUCCESS) {\r
     DEBUG ((EFI_D_ERROR, "XenPvBlk: Failed to write ring-ref.\n"));\r
     goto AbortTransaction;\r
   }\r
-  Status = XenBusIo->XsPrintf (XenBusIo, xbt, NodeName,\r
+  Status = XenBusIo->XsPrintf (XenBusIo, &Transaction, NodeName,\r
                                "event-channel", "%d", Dev->EventChannel);\r
   if (Status != XENSTORE_STATUS_SUCCESS) {\r
     DEBUG ((EFI_D_ERROR, "XenPvBlk: Failed to write event-channel.\n"));\r
     goto AbortTransaction;\r
   }\r
-  Status = XenBusIo->XsPrintf (XenBusIo, xbt, NodeName,\r
+  Status = XenBusIo->XsPrintf (XenBusIo, &Transaction, NodeName,\r
                                "protocol", "%a", XEN_IO_PROTO_ABI_NATIVE);\r
   if (Status != XENSTORE_STATUS_SUCCESS) {\r
     DEBUG ((EFI_D_ERROR, "XenPvBlk: Failed to write protocol.\n"));\r
     goto AbortTransaction;\r
   }\r
 \r
-  Status = XenBusIo->SetState (XenBusIo, xbt, XenbusStateConnected);\r
+  Status = XenBusIo->SetState (XenBusIo, &Transaction, XenbusStateConnected);\r
   if (Status != XENSTORE_STATUS_SUCCESS) {\r
     DEBUG ((EFI_D_ERROR, "XenPvBlk: Failed to switch state.\n"));\r
     goto AbortTransaction;\r
   }\r
 \r
-  Status = XenBusIo->XsTransactionEnd (XenBusIo, xbt, FALSE);\r
+  Status = XenBusIo->XsTransactionEnd (XenBusIo, &Transaction, FALSE);\r
   if (Status == XENSTORE_STATUS_EAGAIN) {\r
     goto Again;\r
   }\r
@@ -319,7 +319,7 @@ Error2:
   XenBusIo->XsRemove (XenBusIo, XST_NIL, "protocol");\r
   goto Error;\r
 AbortTransaction:\r
-  XenBusIo->XsTransactionEnd (XenBusIo, xbt, TRUE);\r
+  XenBusIo->XsTransactionEnd (XenBusIo, &Transaction, TRUE);\r
 Error:\r
   XenPvBlockFree (Dev);\r
   return EFI_DEVICE_ERROR;\r