Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 162203
b: refs/heads/master
c: aded716
h: refs/heads/master
i:
  162201: d789f43
  162199: 113373f
v: v3
  • Loading branch information
Greg Kroah-Hartman committed Sep 15, 2009
1 parent 9a04829 commit 3824c2c
Show file tree
Hide file tree
Showing 8 changed files with 115 additions and 161 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: af248e1f1283792e95fd9842fe343f9260300c9d
refs/heads/master: aded7165f262e0f018b23a6cd5cba6e33fd6efd1
121 changes: 40 additions & 81 deletions trunk/drivers/staging/hv/Channel.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,24 +29,14 @@
#include "VmbusPrivate.h"

/* Internal routines */
static int
VmbusChannelCreateGpadlHeader(
static int VmbusChannelCreateGpadlHeader(
void * Kbuffer, /* must be phys and virt contiguous */
u32 Size, /* page-size multiple */
VMBUS_CHANNEL_MSGINFO **msgInfo,
struct vmbus_channel_msginfo **msgInfo,
u32 *MessageCount
);

static void
DumpVmbusChannel(
VMBUS_CHANNEL *Channel
);


static void
VmbusChannelSetEvent(
VMBUS_CHANNEL *Channel
);
static void DumpVmbusChannel(struct vmbus_channel *channel);
static void VmbusChannelSetEvent(struct vmbus_channel *channel);


#if 0
Expand Down Expand Up @@ -93,10 +83,7 @@ DumpMonitorPage(
Trigger an event notification on the specified channel.
--*/
static void
VmbusChannelSetEvent(
VMBUS_CHANNEL *Channel
)
static void VmbusChannelSetEvent(struct vmbus_channel *Channel)
{
HV_MONITOR_PAGE *monitorPage;

Expand Down Expand Up @@ -125,10 +112,7 @@ VmbusChannelSetEvent(
}

#if 0
static void
VmbusChannelClearEvent(
VMBUS_CHANNEL *Channel
)
static void VmbusChannelClearEvent(struct vmbus_channel *channel)
{
HV_MONITOR_PAGE *monitorPage;

Expand Down Expand Up @@ -160,11 +144,8 @@ VmbusChannelClearEvent(
Retrieve various channel debug info
--*/
void
VmbusChannelGetDebugInfo(
VMBUS_CHANNEL *Channel,
VMBUS_CHANNEL_DEBUG_INFO *DebugInfo
)
void VmbusChannelGetDebugInfo(struct vmbus_channel *Channel,
struct vmbus_channel_debug_info *DebugInfo)
{
HV_MONITOR_PAGE *monitorPage;
u8 monitorGroup = (u8)Channel->OfferMsg.MonitorId / 32;
Expand Down Expand Up @@ -204,9 +185,7 @@ VmbusChannelGetDebugInfo(
Open the specified channel.
--*/
int
VmbusChannelOpen(
VMBUS_CHANNEL *NewChannel,
int VmbusChannelOpen(struct vmbus_channel *NewChannel,
u32 SendRingBufferSize,
u32 RecvRingBufferSize,
void * UserData,
Expand All @@ -217,7 +196,7 @@ VmbusChannelOpen(
{
int ret=0;
VMBUS_CHANNEL_OPEN_CHANNEL* openMsg;
VMBUS_CHANNEL_MSGINFO* openInfo;
struct vmbus_channel_msginfo *openInfo;
void *in, *out;
unsigned long flags;

Expand Down Expand Up @@ -266,7 +245,7 @@ VmbusChannelOpen(
SendRingBufferSize);

/* Create and init the channel open message */
openInfo = kmalloc(sizeof(VMBUS_CHANNEL_MSGINFO) + sizeof(VMBUS_CHANNEL_OPEN_CHANNEL), GFP_KERNEL);
openInfo = kmalloc(sizeof(*openInfo) + sizeof(VMBUS_CHANNEL_OPEN_CHANNEL), GFP_KERNEL);
ASSERT(openInfo != NULL);

openInfo->WaitEvent = osd_WaitEventCreate();
Expand Down Expand Up @@ -399,16 +378,16 @@ static int
VmbusChannelCreateGpadlHeader(
void * Kbuffer, /* from kmalloc() */
u32 Size, /* page-size multiple */
VMBUS_CHANNEL_MSGINFO **MsgInfo,
struct vmbus_channel_msginfo **MsgInfo,
u32 *MessageCount)
{
int i;
int pageCount;
unsigned long long pfn;
VMBUS_CHANNEL_GPADL_HEADER* gpaHeader;
VMBUS_CHANNEL_GPADL_BODY* gpadlBody;
VMBUS_CHANNEL_MSGINFO* msgHeader;
VMBUS_CHANNEL_MSGINFO* msgBody;
struct vmbus_channel_msginfo *msgHeader;
struct vmbus_channel_msginfo *msgBody;
u32 msgSize;

int pfnSum, pfnCount, pfnLeft, pfnCurr, pfnSize;
Expand All @@ -426,7 +405,7 @@ VmbusChannelCreateGpadlHeader(
if (pageCount > pfnCount) /* we need a gpadl body */
{
/* fill in the header */
msgSize = sizeof(VMBUS_CHANNEL_MSGINFO) + sizeof(VMBUS_CHANNEL_GPADL_HEADER) + sizeof(GPA_RANGE) + pfnCount*sizeof(u64);
msgSize = sizeof(struct vmbus_channel_msginfo) + sizeof(VMBUS_CHANNEL_GPADL_HEADER) + sizeof(GPA_RANGE) + pfnCount*sizeof(u64);
msgHeader = kzalloc(msgSize, GFP_KERNEL);

INITIALIZE_LIST_HEAD(&msgHeader->SubMsgList);
Expand Down Expand Up @@ -463,7 +442,7 @@ VmbusChannelCreateGpadlHeader(
pfnCurr = pfnLeft;
}

msgSize = sizeof(VMBUS_CHANNEL_MSGINFO) + sizeof(VMBUS_CHANNEL_GPADL_BODY) + pfnCurr*sizeof(u64);
msgSize = sizeof(struct vmbus_channel_msginfo) + sizeof(VMBUS_CHANNEL_GPADL_BODY) + pfnCurr*sizeof(u64);
msgBody = kzalloc(msgSize, GFP_KERNEL);
ASSERT(msgBody);
msgBody->MessageSize = msgSize;
Expand All @@ -486,7 +465,7 @@ VmbusChannelCreateGpadlHeader(
else
{
/* everything fits in a header */
msgSize = sizeof(VMBUS_CHANNEL_MSGINFO) + sizeof(VMBUS_CHANNEL_GPADL_HEADER) + sizeof(GPA_RANGE) + pageCount*sizeof(u64);
msgSize = sizeof(struct vmbus_channel_msginfo) + sizeof(VMBUS_CHANNEL_GPADL_HEADER) + sizeof(GPA_RANGE) + pageCount*sizeof(u64);
msgHeader = kzalloc(msgSize, GFP_KERNEL);
msgHeader->MessageSize=msgSize;

Expand Down Expand Up @@ -517,9 +496,7 @@ VmbusChannelCreateGpadlHeader(
Estabish a GPADL for the specified buffer
--*/
int
VmbusChannelEstablishGpadl(
VMBUS_CHANNEL *Channel,
int VmbusChannelEstablishGpadl(struct vmbus_channel *Channel,
void * Kbuffer, /* from kmalloc() */
u32 Size, /* page-size multiple */
u32 *GpadlHandle
Expand All @@ -530,8 +507,8 @@ VmbusChannelEstablishGpadl(
VMBUS_CHANNEL_GPADL_BODY* gpadlBody;
/* VMBUS_CHANNEL_GPADL_CREATED* gpadlCreated; */

VMBUS_CHANNEL_MSGINFO *msgInfo;
VMBUS_CHANNEL_MSGINFO *subMsgInfo;
struct vmbus_channel_msginfo *msgInfo;
struct vmbus_channel_msginfo *subMsgInfo;

u32 msgCount;
LIST_ENTRY* anchor;
Expand Down Expand Up @@ -562,9 +539,9 @@ VmbusChannelEstablishGpadl(

DPRINT_DBG(VMBUS, "buffer %p, size %d msg cnt %d", Kbuffer, Size, msgCount);

DPRINT_DBG(VMBUS, "Sending GPADL Header - len %zd", msgInfo->MessageSize - sizeof(VMBUS_CHANNEL_MSGINFO));
DPRINT_DBG(VMBUS, "Sending GPADL Header - len %zd", msgInfo->MessageSize - sizeof(*msgInfo));

ret = VmbusPostMessage(gpadlMsg, msgInfo->MessageSize - sizeof(VMBUS_CHANNEL_MSGINFO));
ret = VmbusPostMessage(gpadlMsg, msgInfo->MessageSize - sizeof(*msgInfo));
if (ret != 0)
{
DPRINT_ERR(VMBUS, "Unable to open channel - %d", ret);
Expand All @@ -575,16 +552,16 @@ VmbusChannelEstablishGpadl(
{
ITERATE_LIST_ENTRIES(anchor, curr, &msgInfo->SubMsgList)
{
subMsgInfo = (VMBUS_CHANNEL_MSGINFO*) curr;
subMsgInfo = (struct vmbus_channel_msginfo*)curr;
gpadlBody = (VMBUS_CHANNEL_GPADL_BODY*)subMsgInfo->Msg;

gpadlBody->Header.MessageType = ChannelMessageGpadlBody;
gpadlBody->Gpadl = nextGpadlHandle;

DPRINT_DBG(VMBUS, "Sending GPADL Body - len %zd", subMsgInfo->MessageSize - sizeof(VMBUS_CHANNEL_MSGINFO));
DPRINT_DBG(VMBUS, "Sending GPADL Body - len %zd", subMsgInfo->MessageSize - sizeof(*subMsgInfo));

DumpGpadlBody(gpadlBody, subMsgInfo->MessageSize - sizeof(VMBUS_CHANNEL_MSGINFO));
ret = VmbusPostMessage(gpadlBody, subMsgInfo->MessageSize - sizeof(VMBUS_CHANNEL_MSGINFO));
DumpGpadlBody(gpadlBody, subMsgInfo->MessageSize - sizeof(*subMsgInfo));
ret = VmbusPostMessage(gpadlBody, subMsgInfo->MessageSize - sizeof(*subMsgInfo));
ASSERT(ret == 0);
}
}
Expand Down Expand Up @@ -622,22 +599,18 @@ VmbusChannelEstablishGpadl(
Teardown the specified GPADL handle
--*/
int
VmbusChannelTeardownGpadl(
VMBUS_CHANNEL *Channel,
u32 GpadlHandle
)
int VmbusChannelTeardownGpadl(struct vmbus_channel *Channel, u32 GpadlHandle)
{
int ret=0;
VMBUS_CHANNEL_GPADL_TEARDOWN *msg;
VMBUS_CHANNEL_MSGINFO* info;
struct vmbus_channel_msginfo *info;
unsigned long flags;

DPRINT_ENTER(VMBUS);

ASSERT(GpadlHandle != 0);

info = kmalloc(sizeof(VMBUS_CHANNEL_MSGINFO) + sizeof(VMBUS_CHANNEL_GPADL_TEARDOWN), GFP_KERNEL);
info = kmalloc(sizeof(*info) + sizeof(VMBUS_CHANNEL_GPADL_TEARDOWN), GFP_KERNEL);
ASSERT(info != NULL);

info->WaitEvent = osd_WaitEventCreate();
Expand Down Expand Up @@ -683,14 +656,11 @@ VmbusChannelTeardownGpadl(
Close the specified channel
--*/
void
VmbusChannelClose(
VMBUS_CHANNEL *Channel
)
void VmbusChannelClose(struct vmbus_channel *Channel)
{
int ret=0;
VMBUS_CHANNEL_CLOSE_CHANNEL* msg;
VMBUS_CHANNEL_MSGINFO* info;
struct vmbus_channel_msginfo *info;
unsigned long flags;

DPRINT_ENTER(VMBUS);
Expand All @@ -700,7 +670,7 @@ VmbusChannelClose(
del_timer(&Channel->poll_timer);

/* Send a closing message */
info = kmalloc(sizeof(VMBUS_CHANNEL_MSGINFO) + sizeof(VMBUS_CHANNEL_CLOSE_CHANNEL), GFP_KERNEL);
info = kmalloc(sizeof(*info) + sizeof(VMBUS_CHANNEL_CLOSE_CHANNEL), GFP_KERNEL);
ASSERT(info != NULL);

/* info->waitEvent = osd_WaitEventCreate(); */
Expand Down Expand Up @@ -760,9 +730,7 @@ VmbusChannelClose(
Send the specified buffer on the given channel
--*/
int
VmbusChannelSendPacket(
VMBUS_CHANNEL *Channel,
int VmbusChannelSendPacket(struct vmbus_channel *Channel,
const void * Buffer,
u32 BufferLen,
u64 RequestId,
Expand Down Expand Up @@ -822,9 +790,7 @@ VmbusChannelSendPacket(
Send a range of single-page buffer packets using a GPADL Direct packet type.
--*/
int
VmbusChannelSendPacketPageBuffer(
VMBUS_CHANNEL *Channel,
int VmbusChannelSendPacketPageBuffer(struct vmbus_channel *Channel,
PAGE_BUFFER PageBuffers[],
u32 PageCount,
void * Buffer,
Expand Down Expand Up @@ -901,9 +867,7 @@ VmbusChannelSendPacketPageBuffer(
Send a multi-page buffer packet using a GPADL Direct packet type.
--*/
int
VmbusChannelSendPacketMultiPageBuffer(
VMBUS_CHANNEL *Channel,
int VmbusChannelSendPacketMultiPageBuffer(struct vmbus_channel *Channel,
MULTIPAGE_BUFFER *MultiPageBuffer,
void * Buffer,
u32 BufferLen,
Expand Down Expand Up @@ -980,7 +944,7 @@ VmbusChannelSendPacketMultiPageBuffer(
--*/
/* TODO: Do we ever receive a gpa direct packet other than the ones we send ? */
int VmbusChannelRecvPacket(VMBUS_CHANNEL *Channel,
int VmbusChannelRecvPacket(struct vmbus_channel *Channel,
void *Buffer,
u32 BufferLen,
u32 *BufferActualLen,
Expand Down Expand Up @@ -1055,9 +1019,7 @@ int VmbusChannelRecvPacket(VMBUS_CHANNEL *Channel,
Retrieve the raw packet on the specified channel
--*/
int
VmbusChannelRecvPacketRaw(
VMBUS_CHANNEL *Channel,
int VmbusChannelRecvPacketRaw(struct vmbus_channel *Channel,
void * Buffer,
u32 BufferLen,
u32* BufferActualLen,
Expand Down Expand Up @@ -1132,7 +1094,7 @@ VmbusChannelRecvPacketRaw(
Channel event callback
--*/
void VmbusChannelOnChannelEvent(VMBUS_CHANNEL *Channel)
void VmbusChannelOnChannelEvent(struct vmbus_channel *Channel)
{
DumpVmbusChannel(Channel);
ASSERT(Channel->OnChannelCallback);
Expand All @@ -1157,7 +1119,7 @@ void VmbusChannelOnChannelEvent(VMBUS_CHANNEL *Channel)
--*/
void VmbusChannelOnTimer(unsigned long data)
{
VMBUS_CHANNEL *channel = (VMBUS_CHANNEL*)data;
struct vmbus_channel *channel = (struct vmbus_channel *)data;

if (channel->OnChannelCallback)
{
Expand All @@ -1179,10 +1141,7 @@ void VmbusChannelOnTimer(unsigned long data)
Dump vmbus channel info to the console
--*/
static void
DumpVmbusChannel(
VMBUS_CHANNEL *Channel
)
static void DumpVmbusChannel(struct vmbus_channel *Channel)
{
DPRINT_DBG(VMBUS, "Channel (%d)", Channel->OfferMsg.ChildRelId);
DumpRingInfo(&Channel->Outbound, "Outbound ");
Expand Down
Loading

0 comments on commit 3824c2c

Please sign in to comment.