\r
#include <IndustryStandard/Xen/hvm/params.h>\r
\r
-#include "XenHypercall.h"\r
#include "EventChannel.h"\r
+#include <Library/XenHypercallLib.h>\r
\r
//\r
// Private Data Structures\r
\r
typedef struct {\r
CONST VOID *Data;\r
- UINTN Len;\r
+ UINT32 Len;\r
} WRITE_REQUEST;\r
\r
/* Register callback to watch subtree (node) in the XenStore. */\r
\r
/* Transfer to one big alloc for easy freeing by the caller. */\r
Dst = AllocatePool (*NumPtr * sizeof (CHAR8 *) + Len);\r
- CopyMem (&Dst[*NumPtr], Strings, Len);\r
+ CopyMem ((VOID*)&Dst[*NumPtr], Strings, Len);\r
FreePool (Strings);\r
\r
/* Extract pointers to newly allocated array. */\r
XENSTORE_STATUS\r
XenStoreWriteStore (\r
IN CONST VOID *DataPtr,\r
- IN UINTN Len\r
+ IN UINT32 Len\r
)\r
{\r
XENSTORE_RING_IDX Cons, Prod;\r
XENSTORE_STATUS\r
XenStoreReadStore (\r
OUT VOID *DataPtr,\r
- IN UINTN Len\r
+ IN UINT32 Len\r
)\r
{\r
XENSTORE_RING_IDX Cons, Prod;\r
} else {\r
DEBUG ((EFI_D_WARN, "XenStore: Watch handle %a not found\n",\r
Message->u.Watch.Vector[XS_WATCH_TOKEN]));\r
- FreePool(Message->u.Watch.Vector);\r
+ FreePool((VOID*)Message->u.Watch.Vector);\r
FreePool(Message);\r
}\r
EfiReleaseLock (&xs.RegisteredWatchesLock);\r
}\r
}\r
\r
- Status = XenStoreReadReply (&Message.type, LenPtr, &Return);\r
+ Status = XenStoreReadReply ((enum xsd_sockmsg_type *)&Message.type, LenPtr, &Return);\r
\r
Error:\r
if (Status != XENSTORE_STATUS_SUCCESS) {\r
}\r
\r
/* Reply is either error or an echo of our request message type. */\r
- ASSERT (Message.type == RequestType);\r
+ ASSERT ((enum xsd_sockmsg_type)Message.type == RequestType);\r
\r
if (ResultPtr) {\r
*ResultPtr = Return;\r
WRITE_REQUEST WriteRequest;\r
\r
WriteRequest.Data = (VOID *) Body;\r
- WriteRequest.Len = AsciiStrSize (Body);\r
+ WriteRequest.Len = (UINT32)AsciiStrSize (Body);\r
\r
return XenStoreTalkv (Transaction, RequestType, &WriteRequest, 1,\r
LenPtr, Result);\r
WRITE_REQUEST WriteRequest[2];\r
\r
WriteRequest[0].Data = (VOID *) Path;\r
- WriteRequest[0].Len = AsciiStrSize (Path);\r
+ WriteRequest[0].Len = (UINT32)AsciiStrSize (Path);\r
WriteRequest[1].Data = (VOID *) Token;\r
- WriteRequest[1].Len = AsciiStrSize (Token);\r
+ WriteRequest[1].Len = (UINT32)AsciiStrSize (Token);\r
\r
return XenStoreTalkv (XST_NIL, XS_WATCH, WriteRequest, 2, NULL, NULL);\r
}\r
WRITE_REQUEST WriteRequest[2];\r
\r
WriteRequest[0].Data = (VOID *) Path;\r
- WriteRequest[0].Len = AsciiStrSize (Path);\r
+ WriteRequest[0].Len = (UINT32)AsciiStrSize (Path);\r
WriteRequest[1].Data = (VOID *) Token;\r
- WriteRequest[1].Len = AsciiStrSize (Token);\r
+ WriteRequest[1].Len = (UINT32)AsciiStrSize (Token);\r
\r
return XenStoreTalkv (XST_NIL, XS_UNWATCH, WriteRequest, 2, NULL, NULL);\r
}\r
if (Message->u.Watch.Handle == Token) {\r
RemoveEntryList (Entry);\r
EfiReleaseLock (&xs.WatchEventsLock);\r
- FreePool(Message->u.Watch.Vector);\r
+ FreePool((VOID*)Message->u.Watch.Vector);\r
FreePool(Message);\r
return XENSTORE_STATUS_SUCCESS;\r
}\r
IN VOID *Context\r
)\r
{\r
- XENSTORE_PRIVATE *xs;\r
- xs = (XENSTORE_PRIVATE *)Context;\r
- if (TestAndClearBit (xs->EventChannel, xs->Dev->SharedInfo->evtchn_pending)) {\r
+ XENSTORE_PRIVATE *xsp;\r
+ xsp = (XENSTORE_PRIVATE *)Context;\r
+ if (TestAndClearBit (xsp->EventChannel, xsp->Dev->SharedInfo->evtchn_pending)) {\r
gBS->SignalEvent (Event);\r
}\r
}\r
STATIC\r
EFI_STATUS\r
XenStoreInitComms (\r
- XENSTORE_PRIVATE *xs\r
+ XENSTORE_PRIVATE *xsp\r
)\r
{\r
EFI_STATUS Status;\r
EFI_EVENT TimerEvent;\r
- struct xenstore_domain_interface *XenStore = xs->XenStore;\r
+ struct xenstore_domain_interface *XenStore = xsp->XenStore;\r
\r
Status = gBS->CreateEvent (EVT_TIMER, 0, NULL, NULL, &TimerEvent);\r
Status = gBS->SetTimer (TimerEvent, TimerRelative,\r
gBS->CloseEvent (TimerEvent);\r
\r
Status = gBS->CreateEvent (EVT_NOTIFY_WAIT, TPL_NOTIFY,\r
- NotifyEventChannelCheckForEvent, xs,\r
- &xs->EventChannelEvent);\r
+ NotifyEventChannelCheckForEvent, xsp,\r
+ &xsp->EventChannelEvent);\r
ASSERT_EFI_ERROR (Status);\r
\r
return Status;\r
\r
xs.Dev = Dev;\r
\r
- xs.EventChannel = XenHypercallHvmGetParam (Dev, HVM_PARAM_STORE_EVTCHN);\r
- XenStoreGpfn = XenHypercallHvmGetParam (Dev, HVM_PARAM_STORE_PFN);\r
+ xs.EventChannel = (evtchn_port_t)XenHypercallHvmGetParam (HVM_PARAM_STORE_EVTCHN);\r
+ XenStoreGpfn = (UINTN)XenHypercallHvmGetParam (HVM_PARAM_STORE_PFN);\r
xs.XenStore = (VOID *) (XenStoreGpfn << EFI_PAGE_SHIFT);\r
DEBUG ((EFI_D_INFO, "XenBusInit: XenBus rings @%p, event channel %x\n",\r
xs.XenStore, xs.EventChannel));\r
XENSTORE_MESSAGE *Message = XENSTORE_MESSAGE_FROM_LINK (Entry);\r
Entry = GetNextNode (&xs.WatchEvents, Entry);\r
RemoveEntryList (&Message->Link);\r
- FreePool (Message->u.Watch.Vector);\r
+ FreePool ((VOID*)Message->u.Watch.Vector);\r
FreePool (Message);\r
}\r
}\r
if (Status != XENSTORE_STATUS_SUCCESS) {\r
return FALSE;\r
}\r
- FreePool (TempStr);\r
+ FreePool ((VOID*)TempStr);\r
return TRUE;\r
}\r
\r
Path = XenStoreJoin (DirectoryPath, Node);\r
\r
WriteRequest[0].Data = (VOID *) Path;\r
- WriteRequest[0].Len = AsciiStrSize (Path);\r
+ WriteRequest[0].Len = (UINT32)AsciiStrSize (Path);\r
WriteRequest[1].Data = (VOID *) Str;\r
- WriteRequest[1].Len = AsciiStrLen (Str);\r
+ WriteRequest[1].Len = (UINT32)AsciiStrLen (Str);\r
\r
Status = XenStoreTalkv (Transaction, XS_WRITE, WriteRequest, 2, NULL, NULL);\r
FreePool (Path);\r
Status = XenStoreSingle (XST_NIL, XS_TRANSACTION_START, "", NULL,\r
(VOID **) &IdStr);\r
if (Status == XENSTORE_STATUS_SUCCESS) {\r
- Transaction->Id = AsciiStrDecimalToUintn (IdStr);\r
+ Transaction->Id = (UINT32)AsciiStrDecimalToUintn (IdStr);\r
FreePool (IdStr);\r
}\r
\r
CHAR8 *Buf;\r
XENSTORE_STATUS Status;\r
UINTN BufSize;\r
+ VA_LIST Marker2;\r
\r
- BufSize = SPrintLengthAsciiFormat (FormatString, Marker) + 1;\r
+ VA_COPY (Marker2, Marker);\r
+ BufSize = SPrintLengthAsciiFormat (FormatString, Marker2) + 1;\r
+ VA_END (Marker2);\r
Buf = AllocateZeroPool (BufSize);\r
AsciiVSPrint (Buf, BufSize, FormatString, Marker);\r
Status = XenStoreWrite (Transaction, DirectoryPath, Node, Buf);\r
Entry = GetNextNode (&xs.WatchEvents, Entry);\r
if (Message->u.Watch.Handle == Watch) {\r
RemoveEntryList (&Message->Link);\r
- FreePool (Message->u.Watch.Vector);\r
+ FreePool ((VOID*)Message->u.Watch.Vector);\r
FreePool (Message);\r
}\r
}\r