Staging: hv: remove WAITEVENT typedef

Remove the WAITEVENT typedef and also replace HANDLE types that use
the WaitEvent calls with struct osd_waitevent.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Cc: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Bill Pemberton 2009-07-28 13:46:24 -04:00 committed by Greg Kroah-Hartman
parent b578852955
commit aedb444a57
7 changed files with 28 additions and 32 deletions

View file

@ -115,7 +115,7 @@ typedef struct _VMBUS_CHANNEL_MSGINFO {
LIST_ENTRY SubMsgList;
/* Synchronize the request/response if needed */
HANDLE WaitEvent;
struct osd_waitevent *WaitEvent;
VMBUS_CHANNEL_MESSAGE_RESPONSE Response;

View file

@ -78,7 +78,7 @@ struct NETVSC_DEVICE {
PNVSP_1_RECEIVE_BUFFER_SECTION ReceiveSections;
/* Used for NetVSP initialization protocol */
HANDLE ChannelInitEvent;
struct osd_waitevent *ChannelInitEvent;
NVSP_MESSAGE ChannelInitPacket;
NVSP_MESSAGE RevokePacket;

View file

@ -61,7 +61,7 @@ typedef struct _RNDIS_DEVICE {
typedef struct _RNDIS_REQUEST {
LIST_ENTRY ListEntry;
HANDLE WaitEvent;
struct osd_waitevent *WaitEvent;
/* FIXME: We assumed a fixed size response here. If we do ever need to handle a bigger response, */
/* we can either define a max response message or add a response buffer variable above this field */

View file

@ -47,7 +47,7 @@ typedef struct _STORVSC_REQUEST_EXTENSION {
struct hv_device *Device;
/* Synchronize the request/response if needed */
HANDLE WaitEvent;
struct osd_waitevent *WaitEvent;
VSTOR_PACKET VStorPacket;
} STORVSC_REQUEST_EXTENSION;

View file

@ -102,7 +102,7 @@ struct VMBUS_MSGINFO {
LIST_ENTRY MsgListEntry;
/* Synchronize the request/response if needed */
HANDLE WaitEvent;
struct osd_waitevent *WaitEvent;
/* The message itself */
unsigned char Msg[0];

View file

@ -52,6 +52,12 @@ typedef struct {
unsigned char Data[16];
} GUID;
struct osd_waitevent {
int condition;
wait_queue_head_t event;
};
typedef void (*PFN_WORKITEM_CALLBACK)(void* context);
typedef void (*PFN_TIMER_CALLBACK)(void* context);
@ -122,13 +128,13 @@ extern void TimerClose(HANDLE hTimer);
extern int TimerStop(HANDLE hTimer);
extern void TimerStart(HANDLE hTimer, u32 expirationInUs);
extern HANDLE WaitEventCreate(void);
extern void WaitEventClose(HANDLE hWait);
extern void WaitEventSet(HANDLE hWait);
extern int WaitEventWait(HANDLE hWait);
extern struct osd_waitevent *WaitEventCreate(void);
extern void WaitEventClose(struct osd_waitevent *waitEvent);
extern void WaitEventSet(struct osd_waitevent *waitEvent);
extern int WaitEventWait(struct osd_waitevent *waitEvent);
/* If >0, hWait got signaled. If ==0, timeout. If < 0, error */
extern int WaitEventWaitEx(HANDLE hWait, u32 TimeoutInMs);
/* If >0, waitEvent got signaled. If ==0, timeout. If < 0, error */
extern int WaitEventWaitEx(struct osd_waitevent *waitEvent, u32 TimeoutInMs);
#define GetVirtualAddress Physical2LogicalAddr

View file

@ -55,12 +55,6 @@ typedef struct _TIMER {
void* context;
}TIMER;
typedef struct _WAITEVENT {
int condition;
wait_queue_head_t event;
} WAITEVENT;
typedef struct _WORKITEM {
struct work_struct work;
PFN_WORKITEM_CALLBACK callback;
@ -220,9 +214,9 @@ void TimerClose(HANDLE hTimer)
kfree(t);
}
HANDLE WaitEventCreate(void)
struct osd_waitevent *WaitEventCreate(void)
{
WAITEVENT* wait = kmalloc(sizeof(WAITEVENT), GFP_KERNEL);
struct osd_waitevent *wait = kmalloc(sizeof(struct osd_waitevent), GFP_KERNEL);
if (!wait)
{
return NULL;
@ -233,38 +227,34 @@ HANDLE WaitEventCreate(void)
return wait;
}
void WaitEventClose(HANDLE hWait)
void WaitEventClose(struct osd_waitevent *waitEvent)
{
WAITEVENT* waitEvent = (WAITEVENT* )hWait;
kfree(waitEvent);
}
void WaitEventSet(HANDLE hWait)
void WaitEventSet(struct osd_waitevent *waitEvent)
{
WAITEVENT* waitEvent = (WAITEVENT* )hWait;
waitEvent->condition = 1;
wake_up_interruptible(&waitEvent->event);
}
int WaitEventWait(HANDLE hWait)
int WaitEventWait(struct osd_waitevent *waitEvent)
{
int ret=0;
WAITEVENT* waitEvent = (WAITEVENT* )hWait;
ret= wait_event_interruptible(waitEvent->event,
waitEvent->condition);
ret = wait_event_interruptible(waitEvent->event,
waitEvent->condition);
waitEvent->condition = 0;
return ret;
}
int WaitEventWaitEx(HANDLE hWait, u32 TimeoutInMs)
int WaitEventWaitEx(struct osd_waitevent *waitEvent, u32 TimeoutInMs)
{
int ret=0;
WAITEVENT* waitEvent = (WAITEVENT* )hWait;
ret= wait_event_interruptible_timeout(waitEvent->event,
waitEvent->condition,
msecs_to_jiffies(TimeoutInMs));
ret = wait_event_interruptible_timeout(waitEvent->event,
waitEvent->condition,
msecs_to_jiffies(TimeoutInMs));
waitEvent->condition = 0;
return ret;
}