]> Pileus Git - ~andy/linux/blobdiff - drivers/staging/hv/Channel.h
Staging: hv: update the TODO file
[~andy/linux] / drivers / staging / hv / Channel.h
index f511ca820ada52ab2437da2af2940bb2f70adc33..6b283edcae68b9513c0e872cfd7d9cb7fbddac70 100644 (file)
 #ifndef _CHANNEL_H_
 #define _CHANNEL_H_
 
-#include "include/osd.h"
 #include "ChannelMgmt.h"
 
-#pragma pack(push,1)
-
-
-// The format must be the same as VMDATA_GPA_DIRECT
-typedef struct _VMBUS_CHANNEL_PACKET_PAGE_BUFFER {
-    UINT16                             Type;
-    UINT16                             DataOffset8;
-    UINT16                             Length8;
-    UINT16                             Flags;
-    UINT64                             TransactionId;
-       UINT32                          Reserved;
-       UINT32                          RangeCount;
-    PAGE_BUFFER                        Range[MAX_PAGE_BUFFER_COUNT];
-} VMBUS_CHANNEL_PACKET_PAGE_BUFFER;
-
-
-// The format must be the same as VMDATA_GPA_DIRECT
-typedef struct _VMBUS_CHANNEL_PACKET_MULITPAGE_BUFFER {
-    UINT16                             Type;
-    UINT16                             DataOffset8;
-    UINT16                             Length8;
-    UINT16                             Flags;
-    UINT64                             TransactionId;
-       UINT32                          Reserved;
-       UINT32                          RangeCount;             // Always 1 in this case
-       MULTIPAGE_BUFFER        Range;
-} VMBUS_CHANNEL_PACKET_MULITPAGE_BUFFER;
-
-#pragma pack(pop)
-
-//
-// Routines
-//
-
-static int
-VmbusChannelOpen(
-       VMBUS_CHANNEL                   *Channel,
-       UINT32                                  SendRingBufferSize,
-       UINT32                                  RecvRingBufferSize,
-       void *                                  UserData,
-       UINT32                                  UserDataLen,
-       PFN_CHANNEL_CALLBACK    pfnOnChannelCallback,
-       void *                                  Context
-       );
-
-static void
-VmbusChannelClose(
-       VMBUS_CHANNEL           *Channel
-       );
-
-static int
-VmbusChannelSendPacket(
-       VMBUS_CHANNEL           *Channel,
-       const void *                    Buffer,
-       UINT32                          BufferLen,
-       UINT64                          RequestId,
-       VMBUS_PACKET_TYPE       Type,
-       UINT32                          Flags
-);
-
-static int
-VmbusChannelSendPacketPageBuffer(
-       VMBUS_CHANNEL           *Channel,
-       PAGE_BUFFER                     PageBuffers[],
-       UINT32                          PageCount,
-       void *                          Buffer,
-       UINT32                          BufferLen,
-       UINT64                          RequestId
-       );
-
-static int
-VmbusChannelSendPacketMultiPageBuffer(
-       VMBUS_CHANNEL           *Channel,
-       MULTIPAGE_BUFFER        *MultiPageBuffer,
-       void *                          Buffer,
-       UINT32                          BufferLen,
-       UINT64                          RequestId
-);
-
-static int
-VmbusChannelEstablishGpadl(
-       VMBUS_CHANNEL           *Channel,
-       void *                          Kbuffer,        // from kmalloc()
-       UINT32                          Size,           // page-size multiple
-       UINT32                          *GpadlHandle
-       );
-
-static int
-VmbusChannelTeardownGpadl(
-       VMBUS_CHANNEL   *Channel,
-       UINT32                  GpadlHandle
-       );
-
-static int
-VmbusChannelRecvPacket(
-       VMBUS_CHANNEL           *Channel,
-       void *                          Buffer,
-       UINT32                          BufferLen,
-       UINT32*                         BufferActualLen,
-       UINT64*                         RequestId
-       );
-
-static int
-VmbusChannelRecvPacketRaw(
-       VMBUS_CHANNEL           *Channel,
-       void *                          Buffer,
-       UINT32                          BufferLen,
-       UINT32*                         BufferActualLen,
-       UINT64*                         RequestId
-       );
-
-static void
-VmbusChannelOnChannelEvent(
-       VMBUS_CHANNEL           *Channel
-       );
-
-static void
-VmbusChannelGetDebugInfo(
-       VMBUS_CHANNEL                           *Channel,
-       VMBUS_CHANNEL_DEBUG_INFO        *DebugInfo
-       );
-
-static void
-VmbusChannelOnTimer(
-       void            *Context
-       );
-#endif //_CHANNEL_H_
+/* The format must be the same as struct vmdata_gpa_direct */
+struct VMBUS_CHANNEL_PACKET_PAGE_BUFFER {
+       u16 Type;
+       u16 DataOffset8;
+       u16 Length8;
+       u16 Flags;
+       u64 TransactionId;
+       u32 Reserved;
+       u32 RangeCount;
+       struct hv_page_buffer Range[MAX_PAGE_BUFFER_COUNT];
+} __attribute__((packed));
+
+/* The format must be the same as struct vmdata_gpa_direct */
+struct VMBUS_CHANNEL_PACKET_MULITPAGE_BUFFER {
+       u16 Type;
+       u16 DataOffset8;
+       u16 Length8;
+       u16 Flags;
+       u64 TransactionId;
+       u32 Reserved;
+       u32 RangeCount;         /* Always 1 in this case */
+       struct hv_multipage_buffer Range;
+} __attribute__((packed));
+
+
+extern int VmbusChannelOpen(struct vmbus_channel *channel,
+                           u32 SendRingBufferSize,
+                           u32 RecvRingBufferSize,
+                           void *UserData,
+                           u32 UserDataLen,
+                           void(*OnChannelCallback)(void *context),
+                           void *Context);
+
+extern void VmbusChannelClose(struct vmbus_channel *channel);
+
+extern int VmbusChannelSendPacket(struct vmbus_channel *channel,
+                                 const void *Buffer,
+                                 u32 BufferLen,
+                                 u64 RequestId,
+                                 enum vmbus_packet_type Type,
+                                 u32 Flags);
+
+extern int VmbusChannelSendPacketPageBuffer(struct vmbus_channel *channel,
+                                           struct hv_page_buffer PageBuffers[],
+                                           u32 PageCount,
+                                           void *Buffer,
+                                           u32 BufferLen,
+                                           u64 RequestId);
+
+extern int VmbusChannelSendPacketMultiPageBuffer(struct vmbus_channel *channel,
+                                       struct hv_multipage_buffer *mpb,
+                                       void *Buffer,
+                                       u32 BufferLen,
+                                       u64 RequestId);
+
+extern int VmbusChannelEstablishGpadl(struct vmbus_channel *channel,
+                                     void *Kbuffer,
+                                     u32 Size,
+                                     u32 *GpadlHandle);
+
+extern int VmbusChannelTeardownGpadl(struct vmbus_channel *channel,
+                                    u32 GpadlHandle);
+
+extern int VmbusChannelRecvPacket(struct vmbus_channel *channel,
+                                 void *Buffer,
+                                 u32 BufferLen,
+                                 u32 *BufferActualLen,
+                                 u64 *RequestId);
+
+extern int VmbusChannelRecvPacketRaw(struct vmbus_channel *channel,
+                                    void *Buffer,
+                                    u32 BufferLen,
+                                    u32 *BufferActualLen,
+                                    u64 *RequestId);
+
+extern void VmbusChannelOnChannelEvent(struct vmbus_channel *channel);
+
+extern void VmbusChannelGetDebugInfo(struct vmbus_channel *channel,
+                                    struct vmbus_channel_debug_info *debug);
+
+extern void VmbusChannelOnTimer(unsigned long data);
+
+#endif /* _CHANNEL_H_ */