Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 162256
b: refs/heads/master
c: 490707d
h: refs/heads/master
v: v3
  • Loading branch information
Greg Kroah-Hartman committed Sep 15, 2009
1 parent 5563434 commit a51d92c
Show file tree
Hide file tree
Showing 2 changed files with 91 additions and 157 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 44c67577b3e98ee89aabf021bdae1cacee362660
refs/heads/master: 490707d2aaf4b142fb2fb53d8065dbae95b41377
246 changes: 90 additions & 156 deletions trunk/drivers/staging/hv/ChannelInterface.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,199 +20,133 @@
* Hank Janssen <hjanssen@microsoft.com>
*
*/

#include <linux/kernel.h>
#include <linux/mm.h>
#include "osd.h"
#include "VmbusPrivate.h"

static int
IVmbusChannelOpen(
struct hv_device *Device,
u32 SendBufferSize,
u32 RecvRingBufferSize,
void * UserData,
u32 UserDataLen,
VMBUS_CHANNEL_CALLBACK ChannelCallback,
void * Context
)
static int IVmbusChannelOpen(struct hv_device *device, u32 SendBufferSize,
u32 RecvRingBufferSize, void *UserData,
u32 UserDataLen,
VMBUS_CHANNEL_CALLBACK ChannelCallback,
void *Context)
{
return VmbusChannelOpen((struct vmbus_channel *)Device->context,
SendBufferSize,
RecvRingBufferSize,
UserData,
UserDataLen,
ChannelCallback,
Context);
return VmbusChannelOpen(device->context, SendBufferSize,
RecvRingBufferSize, UserData, UserDataLen,
ChannelCallback, Context);
}


static void
IVmbusChannelClose(
struct hv_device *Device
)
static void IVmbusChannelClose(struct hv_device *device)
{
VmbusChannelClose((struct vmbus_channel *)Device->context);
VmbusChannelClose(device->context);
}


static int
IVmbusChannelSendPacket(
struct hv_device *Device,
const void * Buffer,
u32 BufferLen,
u64 RequestId,
u32 Type,
u32 Flags
)
static int IVmbusChannelSendPacket(struct hv_device *device, const void *Buffer,
u32 BufferLen, u64 RequestId, u32 Type,
u32 Flags)
{
return VmbusChannelSendPacket((struct vmbus_channel *)Device->context,
Buffer,
BufferLen,
RequestId,
Type,
Flags);
return VmbusChannelSendPacket(device->context, Buffer, BufferLen,
RequestId, Type, Flags);
}

static int
IVmbusChannelSendPacketPageBuffer(
struct hv_device *Device,
struct hv_page_buffer PageBuffers[],
u32 PageCount,
void * Buffer,
u32 BufferLen,
u64 RequestId
)
static int IVmbusChannelSendPacketPageBuffer(struct hv_device *device,
struct hv_page_buffer PageBuffers[],
u32 PageCount, void *Buffer,
u32 BufferLen, u64 RequestId)
{
return VmbusChannelSendPacketPageBuffer((struct vmbus_channel *)Device->context,
PageBuffers,
PageCount,
Buffer,
BufferLen,
RequestId);
return VmbusChannelSendPacketPageBuffer(device->context, PageBuffers,
PageCount, Buffer, BufferLen,
RequestId);
}

static int
IVmbusChannelSendPacketMultiPageBuffer(
struct hv_device *Device,
struct hv_multipage_buffer *MultiPageBuffer,
void * Buffer,
u32 BufferLen,
u64 RequestId
)
static int IVmbusChannelSendPacketMultiPageBuffer(struct hv_device *device,
struct hv_multipage_buffer *MultiPageBuffer,
void *Buffer, u32 BufferLen, u64 RequestId)
{
return VmbusChannelSendPacketMultiPageBuffer((struct vmbus_channel *)Device->context,
MultiPageBuffer,
Buffer,
BufferLen,
RequestId);
return VmbusChannelSendPacketMultiPageBuffer(device->context,
MultiPageBuffer, Buffer,
BufferLen, RequestId);
}

static int
IVmbusChannelRecvPacket (
struct hv_device *Device,
void * Buffer,
u32 BufferLen,
u32* BufferActualLen,
u64* RequestId
)
static int IVmbusChannelRecvPacket(struct hv_device *device, void *Buffer,
u32 BufferLen, u32 *BufferActualLen,
u64 *RequestId)
{
return VmbusChannelRecvPacket((struct vmbus_channel *)Device->context,
Buffer,
BufferLen,
BufferActualLen,
RequestId);
return VmbusChannelRecvPacket(device->context, Buffer, BufferLen,
BufferActualLen, RequestId);
}

static int
IVmbusChannelRecvPacketRaw(
struct hv_device *Device,
void * Buffer,
u32 BufferLen,
u32* BufferActualLen,
u64* RequestId
)
static int IVmbusChannelRecvPacketRaw(struct hv_device *device, void *Buffer,
u32 BufferLen, u32 *BufferActualLen,
u64 *RequestId)
{
return VmbusChannelRecvPacketRaw((struct vmbus_channel *)Device->context,
Buffer,
BufferLen,
BufferActualLen,
RequestId);
return VmbusChannelRecvPacketRaw(device->context, Buffer, BufferLen,
BufferActualLen, RequestId);
}

static int
IVmbusChannelEstablishGpadl(
struct hv_device *Device,
void * Buffer,
u32 BufferLen,
u32* GpadlHandle
)
static int IVmbusChannelEstablishGpadl(struct hv_device *device, void *Buffer,
u32 BufferLen, u32 *GpadlHandle)
{
return VmbusChannelEstablishGpadl((struct vmbus_channel *)Device->context,
Buffer,
BufferLen,
GpadlHandle);
return VmbusChannelEstablishGpadl(device->context, Buffer, BufferLen,
GpadlHandle);
}

static int
IVmbusChannelTeardownGpadl(
struct hv_device *Device,
u32 GpadlHandle
)
static int IVmbusChannelTeardownGpadl(struct hv_device *device, u32 GpadlHandle)
{
return VmbusChannelTeardownGpadl((struct vmbus_channel *)Device->context,
GpadlHandle);
return VmbusChannelTeardownGpadl(device->context, GpadlHandle);

}

void GetChannelInterface(struct vmbus_channel_interface *ChannelInterface)
void GetChannelInterface(struct vmbus_channel_interface *iface)
{
ChannelInterface->Open = IVmbusChannelOpen;
ChannelInterface->Close = IVmbusChannelClose;
ChannelInterface->SendPacket = IVmbusChannelSendPacket;
ChannelInterface->SendPacketPageBuffer = IVmbusChannelSendPacketPageBuffer;
ChannelInterface->SendPacketMultiPageBuffer = IVmbusChannelSendPacketMultiPageBuffer;
ChannelInterface->RecvPacket = IVmbusChannelRecvPacket;
ChannelInterface->RecvPacketRaw = IVmbusChannelRecvPacketRaw;
ChannelInterface->EstablishGpadl = IVmbusChannelEstablishGpadl;
ChannelInterface->TeardownGpadl = IVmbusChannelTeardownGpadl;
ChannelInterface->GetInfo = GetChannelInfo;
iface->Open = IVmbusChannelOpen;
iface->Close = IVmbusChannelClose;
iface->SendPacket = IVmbusChannelSendPacket;
iface->SendPacketPageBuffer = IVmbusChannelSendPacketPageBuffer;
iface->SendPacketMultiPageBuffer =
IVmbusChannelSendPacketMultiPageBuffer;
iface->RecvPacket = IVmbusChannelRecvPacket;
iface->RecvPacketRaw = IVmbusChannelRecvPacketRaw;
iface->EstablishGpadl = IVmbusChannelEstablishGpadl;
iface->TeardownGpadl = IVmbusChannelTeardownGpadl;
iface->GetInfo = GetChannelInfo;
}


void GetChannelInfo(struct hv_device *Device, struct hv_device_info *DeviceInfo)
void GetChannelInfo(struct hv_device *device, struct hv_device_info *info)
{
struct vmbus_channel_debug_info debugInfo;

if (Device->context)
{
VmbusChannelGetDebugInfo((struct vmbus_channel *)Device->context, &debugInfo);

DeviceInfo->ChannelId = debugInfo.RelId;
DeviceInfo->ChannelState = debugInfo.State;
memcpy(&DeviceInfo->ChannelType, &debugInfo.InterfaceType, sizeof(struct hv_guid));
memcpy(&DeviceInfo->ChannelInstance, &debugInfo.InterfaceInstance, sizeof(struct hv_guid));

DeviceInfo->MonitorId = debugInfo.MonitorId;

DeviceInfo->ServerMonitorPending = debugInfo.ServerMonitorPending;
DeviceInfo->ServerMonitorLatency = debugInfo.ServerMonitorLatency;
DeviceInfo->ServerMonitorConnectionId = debugInfo.ServerMonitorConnectionId;

DeviceInfo->ClientMonitorPending = debugInfo.ClientMonitorPending;
DeviceInfo->ClientMonitorLatency = debugInfo.ClientMonitorLatency;
DeviceInfo->ClientMonitorConnectionId = debugInfo.ClientMonitorConnectionId;

DeviceInfo->Inbound.InterruptMask = debugInfo.Inbound.CurrentInterruptMask;
DeviceInfo->Inbound.ReadIndex = debugInfo.Inbound.CurrentReadIndex;
DeviceInfo->Inbound.WriteIndex = debugInfo.Inbound.CurrentWriteIndex;
DeviceInfo->Inbound.BytesAvailToRead = debugInfo.Inbound.BytesAvailToRead;
DeviceInfo->Inbound.BytesAvailToWrite = debugInfo.Inbound.BytesAvailToWrite;

DeviceInfo->Outbound.InterruptMask = debugInfo.Outbound.CurrentInterruptMask;
DeviceInfo->Outbound.ReadIndex = debugInfo.Outbound.CurrentReadIndex;
DeviceInfo->Outbound.WriteIndex = debugInfo.Outbound.CurrentWriteIndex;
DeviceInfo->Outbound.BytesAvailToRead = debugInfo.Outbound.BytesAvailToRead;
DeviceInfo->Outbound.BytesAvailToWrite = debugInfo.Outbound.BytesAvailToWrite;
}
if (!device->context)
return;

VmbusChannelGetDebugInfo(device->context, &debugInfo);

info->ChannelId = debugInfo.RelId;
info->ChannelState = debugInfo.State;
memcpy(&info->ChannelType, &debugInfo.InterfaceType,
sizeof(struct hv_guid));
memcpy(&info->ChannelInstance, &debugInfo.InterfaceInstance,
sizeof(struct hv_guid));

info->MonitorId = debugInfo.MonitorId;

info->ServerMonitorPending = debugInfo.ServerMonitorPending;
info->ServerMonitorLatency = debugInfo.ServerMonitorLatency;
info->ServerMonitorConnectionId = debugInfo.ServerMonitorConnectionId;

info->ClientMonitorPending = debugInfo.ClientMonitorPending;
info->ClientMonitorLatency = debugInfo.ClientMonitorLatency;
info->ClientMonitorConnectionId = debugInfo.ClientMonitorConnectionId;

info->Inbound.InterruptMask = debugInfo.Inbound.CurrentInterruptMask;
info->Inbound.ReadIndex = debugInfo.Inbound.CurrentReadIndex;
info->Inbound.WriteIndex = debugInfo.Inbound.CurrentWriteIndex;
info->Inbound.BytesAvailToRead = debugInfo.Inbound.BytesAvailToRead;
info->Inbound.BytesAvailToWrite = debugInfo.Inbound.BytesAvailToWrite;

info->Outbound.InterruptMask = debugInfo.Outbound.CurrentInterruptMask;
info->Outbound.ReadIndex = debugInfo.Outbound.CurrentReadIndex;
info->Outbound.WriteIndex = debugInfo.Outbound.CurrentWriteIndex;
info->Outbound.BytesAvailToRead = debugInfo.Outbound.BytesAvailToRead;
info->Outbound.BytesAvailToWrite = debugInfo.Outbound.BytesAvailToWrite;
}

0 comments on commit a51d92c

Please sign in to comment.