]> Pileus Git - ~andy/linux/blobdiff - drivers/staging/hv/Channel.h
Staging: hv: update the TODO file
[~andy/linux] / drivers / staging / hv / Channel.h
index 54b79f083fbf9b2a43ce130d879ce70dd67a0211..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 */
+/* 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;
-    PAGE_BUFFER                        Range[MAX_PAGE_BUFFER_COUNT];
-};
-
-
-/* The format must be the same as VMDATA_GPA_DIRECT */
-typedef 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 */
-       MULTIPAGE_BUFFER        Range;
-} VMBUS_CHANNEL_PACKET_MULITPAGE_BUFFER;
-
-#pragma pack(pop)
-
-
-/* Routines */
-
-
-static int
-VmbusChannelOpen(
-       VMBUS_CHANNEL                   *Channel,
-       u32                                     SendRingBufferSize,
-       u32                                     RecvRingBufferSize,
-       void *                                  UserData,
-       u32                                     UserDataLen,
-       PFN_CHANNEL_CALLBACK    pfnOnChannelCallback,
-       void *                                  Context
-       );
-
-static void
-VmbusChannelClose(
-       VMBUS_CHANNEL           *Channel
-       );
-
-static int
-VmbusChannelSendPacket(
-       VMBUS_CHANNEL           *Channel,
-       const void *                    Buffer,
-       u32                             BufferLen,
-       u64                             RequestId,
-       VMBUS_PACKET_TYPE       Type,
-       u32                             Flags
-);
-
-static int
-VmbusChannelSendPacketPageBuffer(
-       VMBUS_CHANNEL           *Channel,
-       PAGE_BUFFER                     PageBuffers[],
-       u32                             PageCount,
-       void *                          Buffer,
-       u32                             BufferLen,
-       u64                             RequestId
-       );
-
-static int
-VmbusChannelSendPacketMultiPageBuffer(
-       VMBUS_CHANNEL           *Channel,
-       MULTIPAGE_BUFFER        *MultiPageBuffer,
-       void *                          Buffer,
-       u32                             BufferLen,
-       u64                             RequestId
-);
-
-static int
-VmbusChannelEstablishGpadl(
-       VMBUS_CHANNEL           *Channel,
-       void *                          Kbuffer,        /* from kmalloc() */
-       u32                             Size,           /* page-size multiple */
-       u32                             *GpadlHandle
-       );
-
-static int
-VmbusChannelTeardownGpadl(
-       VMBUS_CHANNEL   *Channel,
-       u32                     GpadlHandle
-       );
-
-static int
-VmbusChannelRecvPacket(
-       VMBUS_CHANNEL           *Channel,
-       void *                          Buffer,
-       u32                             BufferLen,
-       u32*                            BufferActualLen,
-       u64*                            RequestId
-       );
-
-static int
-VmbusChannelRecvPacketRaw(
-       VMBUS_CHANNEL           *Channel,
-       void *                          Buffer,
-       u32                             BufferLen,
-       u32*                            BufferActualLen,
-       u64*                            RequestId
-       );
-
-static void
-VmbusChannelOnChannelEvent(
-       VMBUS_CHANNEL           *Channel
-       );
-
-static void
-VmbusChannelGetDebugInfo(
-       VMBUS_CHANNEL                           *Channel,
-       VMBUS_CHANNEL_DEBUG_INFO        *DebugInfo
-       );
-
-static void
-VmbusChannelOnTimer(
-       void            *Context
-       );
+       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_ */