17#ifndef __PROTOCOL_XENBUS_H__
18#define __PROTOCOL_XENBUS_H__
20#define XENBUS_PROTOCOL_GUID \
21 {0x3d3ca290, 0xb9a5, 0x11e3, {0xb7, 0x5d, 0xb8, 0xac, 0x6f, 0x7d, 0x65, 0xe6}}
28typedef enum xenbus_state XenBusState;
34#define XST_NIL ((XENSTORE_TRANSACTION *) NULL)
37 XENSTORE_STATUS_SUCCESS = 0,
39 XENSTORE_STATUS_EINVAL,
40 XENSTORE_STATUS_EACCES,
41 XENSTORE_STATUS_EEXIST,
42 XENSTORE_STATUS_EISDIR,
43 XENSTORE_STATUS_ENOENT,
44 XENSTORE_STATUS_ENOMEM,
45 XENSTORE_STATUS_ENOSPC,
47 XENSTORE_STATUS_ENOTEMPTY,
48 XENSTORE_STATUS_ENOSYS,
49 XENSTORE_STATUS_EROFS,
50 XENSTORE_STATUS_EBUSY,
51 XENSTORE_STATUS_EAGAIN,
52 XENSTORE_STATUS_EISCONN,
56#include <IndustryStandard/Xen/grant_table.h>
57#include <IndustryStandard/Xen/event_channel.h>
227 OUT grant_ref_t *refp
259 OUT evtchn_port_t *Port
274 IN evtchn_port_t Port
289 IN evtchn_port_t Port
401 CONST CHAR8 *Backend;
XENSTORE_STATUS(EFIAPI * XENBUS_XS_TRANSACTION_END)(IN XENBUS_PROTOCOL *This, IN CONST XENSTORE_TRANSACTION *Transaction, IN BOOLEAN Abort)
XENSTORE_STATUS(EFIAPI * XENBUS_XS_READ)(IN XENBUS_PROTOCOL *This, IN CONST XENSTORE_TRANSACTION *Transaction, IN CONST CHAR8 *Node, OUT VOID **Result)
XENSTORE_STATUS(EFIAPI * XENBUS_REGISTER_WATCH)(IN XENBUS_PROTOCOL *This, IN CONST CHAR8 *Node, OUT VOID **Token)
UINT32(EFIAPI * XENBUS_EVENT_CHANNEL_ALLOCATE)(IN XENBUS_PROTOCOL *This, IN domid_t DomainId, OUT evtchn_port_t *Port)
EFI_STATUS(EFIAPI * XENBUS_GRANT_ACCESS)(IN XENBUS_PROTOCOL *This, IN domid_t DomainId, IN UINTN Frame, IN BOOLEAN ReadOnly, OUT grant_ref_t *refp)
EFI_STATUS(EFIAPI * XENBUS_GRANT_END_ACCESS)(IN XENBUS_PROTOCOL *This, IN grant_ref_t Ref)
UINT32(EFIAPI * XENBUS_EVENT_CHANNEL_CLOSE)(IN XENBUS_PROTOCOL *This, IN evtchn_port_t Port)
XENSTORE_STATUS(EFIAPI * XENBUS_XS_BACKEND_READ)(IN XENBUS_PROTOCOL *This, IN CONST XENSTORE_TRANSACTION *Transaction, IN CONST CHAR8 *Node, OUT VOID **Result)
VOID(EFIAPI * XENBUS_UNREGISTER_WATCH)(IN XENBUS_PROTOCOL *This, IN VOID *Token)
XENSTORE_STATUS(EFIAPI * XENBUS_WAIT_FOR_WATCH)(IN XENBUS_PROTOCOL *This, IN VOID *Token)
XENSTORE_STATUS(EFIAPI * XENBUS_XS_TRANSACTION_START)(IN XENBUS_PROTOCOL *This, OUT XENSTORE_TRANSACTION *Transaction)
UINT32(EFIAPI * XENBUS_EVENT_CHANNEL_NOTIFY)(IN XENBUS_PROTOCOL *This, IN evtchn_port_t Port)
XENSTORE_STATUS(EFIAPI * XENBUS_XS_REMOVE)(IN XENBUS_PROTOCOL *This, IN CONST XENSTORE_TRANSACTION *Transaction, IN CONST CHAR8 *Node)
XENSTORE_STATUS(EFIAPI * XENBUS_SET_STATE)(IN XENBUS_PROTOCOL *This, IN CONST XENSTORE_TRANSACTION *Transaction, IN XenBusState State)
XENSTORE_STATUS(EFIAPI * XENBUS_REGISTER_WATCH_BACKEND)(IN XENBUS_PROTOCOL *This, IN CONST CHAR8 *Node, OUT VOID **Token)
XENSTORE_STATUS(EFIAPI * XENBUS_XS_PRINTF)(IN XENBUS_PROTOCOL *This, IN CONST XENSTORE_TRANSACTION *Transaction, IN CONST CHAR8 *Directory, IN CONST CHAR8 *Node, IN CONST CHAR8 *Format,...)
EFI_STATUS EFIAPI Transaction(IN CONST EFI_SPI_IO_PROTOCOL *This, IN EFI_SPI_TRANSACTION_TYPE TransactionType, IN BOOLEAN DebugTransaction, IN UINT32 ClockHz OPTIONAL, IN UINT32 BusWidth, IN UINT32 FrameSize, IN UINT32 WriteBytes, IN UINT8 *WriteBuffer, IN UINT32 ReadBytes, OUT UINT8 *ReadBuffer)