summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/hv/ChannelMgmt.h2
-rw-r--r--drivers/staging/hv/NetVsc.h2
-rw-r--r--drivers/staging/hv/RndisFilter.c2
-rw-r--r--drivers/staging/hv/StorVsc.c2
-rw-r--r--drivers/staging/hv/VmbusPrivate.h2
-rw-r--r--drivers/staging/hv/include/osd.h18
-rw-r--r--drivers/staging/hv/osd.c32
7 files changed, 28 insertions, 32 deletions
diff --git a/drivers/staging/hv/ChannelMgmt.h b/drivers/staging/hv/ChannelMgmt.h
index 6208cd847e1..7cf01738e42 100644
--- a/drivers/staging/hv/ChannelMgmt.h
+++ b/drivers/staging/hv/ChannelMgmt.h
@@ -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;
diff --git a/drivers/staging/hv/NetVsc.h b/drivers/staging/hv/NetVsc.h
index f7c16801eb3..7636654c252 100644
--- a/drivers/staging/hv/NetVsc.h
+++ b/drivers/staging/hv/NetVsc.h
@@ -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;
diff --git a/drivers/staging/hv/RndisFilter.c b/drivers/staging/hv/RndisFilter.c
index cac07273ca3..38b9a11542a 100644
--- a/drivers/staging/hv/RndisFilter.c
+++ b/drivers/staging/hv/RndisFilter.c
@@ -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 */
diff --git a/drivers/staging/hv/StorVsc.c b/drivers/staging/hv/StorVsc.c
index 26d3f141831..c55146c6c7a 100644
--- a/drivers/staging/hv/StorVsc.c
+++ b/drivers/staging/hv/StorVsc.c
@@ -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;
diff --git a/drivers/staging/hv/VmbusPrivate.h b/drivers/staging/hv/VmbusPrivate.h
index 75013bc9e25..bf47408258e 100644
--- a/drivers/staging/hv/VmbusPrivate.h
+++ b/drivers/staging/hv/VmbusPrivate.h
@@ -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];
diff --git a/drivers/staging/hv/include/osd.h b/drivers/staging/hv/include/osd.h
index 6a5675f4b26..470d8021b03 100644
--- a/drivers/staging/hv/include/osd.h
+++ b/drivers/staging/hv/include/osd.h
@@ -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
diff --git a/drivers/staging/hv/osd.c b/drivers/staging/hv/osd.c
index 4cee746d01c..50a2ca7dde2 100644
--- a/drivers/staging/hv/osd.c
+++ b/drivers/staging/hv/osd.c
@@ -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;
}