#ifndef _CHANNEL_H_
#define _CHANNEL_H_
-#include "include/osd.h"
#include "ChannelMgmt.h"
-/* The format must be the same as VMDATA_GPA_DIRECT */
+/* The format must be the same as struct vmdata_gpa_direct */
struct VMBUS_CHANNEL_PACKET_PAGE_BUFFER {
u16 Type;
u16 DataOffset8;
u64 TransactionId;
u32 Reserved;
u32 RangeCount;
- PAGE_BUFFER Range[MAX_PAGE_BUFFER_COUNT];
+ struct hv_page_buffer Range[MAX_PAGE_BUFFER_COUNT];
} __attribute__((packed));
-/* The format must be the same as VMDATA_GPA_DIRECT */
+/* The format must be the same as struct vmdata_gpa_direct */
struct VMBUS_CHANNEL_PACKET_MULITPAGE_BUFFER {
u16 Type;
u16 DataOffset8;
u64 TransactionId;
u32 Reserved;
u32 RangeCount; /* Always 1 in this case */
- MULTIPAGE_BUFFER Range;
+ struct hv_multipage_buffer Range;
} __attribute__((packed));
-extern int VmbusChannelOpen(VMBUS_CHANNEL *Channel,
+extern int VmbusChannelOpen(struct vmbus_channel *channel,
u32 SendRingBufferSize,
u32 RecvRingBufferSize,
void *UserData,
u32 UserDataLen,
- PFN_CHANNEL_CALLBACK pfnOnChannelCallback,
+ void(*OnChannelCallback)(void *context),
void *Context);
-extern void VmbusChannelClose(VMBUS_CHANNEL *Channel);
+extern void VmbusChannelClose(struct vmbus_channel *channel);
-extern int VmbusChannelSendPacket(VMBUS_CHANNEL *Channel,
+extern int VmbusChannelSendPacket(struct vmbus_channel *channel,
const void *Buffer,
u32 BufferLen,
u64 RequestId,
- VMBUS_PACKET_TYPE Type,
+ enum vmbus_packet_type Type,
u32 Flags);
-extern int VmbusChannelSendPacketPageBuffer(VMBUS_CHANNEL *Channel,
- PAGE_BUFFER PageBuffers[],
+extern int VmbusChannelSendPacketPageBuffer(struct vmbus_channel *channel,
+ struct hv_page_buffer PageBuffers[],
u32 PageCount,
void *Buffer,
u32 BufferLen,
u64 RequestId);
-extern int VmbusChannelSendPacketMultiPageBuffer(VMBUS_CHANNEL *Channel,
- MULTIPAGE_BUFFER *MultiPageBuffer,
+extern int VmbusChannelSendPacketMultiPageBuffer(struct vmbus_channel *channel,
+ struct hv_multipage_buffer *mpb,
void *Buffer,
u32 BufferLen,
u64 RequestId);
-extern int VmbusChannelEstablishGpadl(VMBUS_CHANNEL *Channel,
+extern int VmbusChannelEstablishGpadl(struct vmbus_channel *channel,
void *Kbuffer,
u32 Size,
u32 *GpadlHandle);
-extern int VmbusChannelTeardownGpadl(VMBUS_CHANNEL *Channel,
+extern int VmbusChannelTeardownGpadl(struct vmbus_channel *channel,
u32 GpadlHandle);
-extern int VmbusChannelRecvPacket(VMBUS_CHANNEL *Channel,
+extern int VmbusChannelRecvPacket(struct vmbus_channel *channel,
void *Buffer,
u32 BufferLen,
u32 *BufferActualLen,
u64 *RequestId);
-extern int VmbusChannelRecvPacketRaw(VMBUS_CHANNEL *Channel,
+extern int VmbusChannelRecvPacketRaw(struct vmbus_channel *channel,
void *Buffer,
u32 BufferLen,
u32 *BufferActualLen,
u64 *RequestId);
-extern void VmbusChannelOnChannelEvent(VMBUS_CHANNEL *Channel);
+extern void VmbusChannelOnChannelEvent(struct vmbus_channel *channel);
-extern void VmbusChannelGetDebugInfo(VMBUS_CHANNEL *Channel,
- VMBUS_CHANNEL_DEBUG_INFO *DebugInfo);
+extern void VmbusChannelGetDebugInfo(struct vmbus_channel *channel,
+ struct vmbus_channel_debug_info *debug);
extern void VmbusChannelOnTimer(unsigned long data);