[PATCH 232/641] Staging: hv remove TIMER typedef

Greg Kroah-Hartman gregkh at suse.de
Tue Sep 15 19:07:43 UTC 2009


From: Bill Pemberton <wfp5p at virginia.edu>

Remove the TIMER typedef and also replace HANDLE types that use
the timer calls.

Signed-off-by: Bill Pemberton <wfp5p at virginia.edu>
Cc: Hank Janssen <hjanssen at microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
---
 drivers/staging/hv/ChannelMgmt.h |    2 +-
 drivers/staging/hv/include/osd.h |   19 +++++++++++++------
 drivers/staging/hv/osd.c         |   23 ++++++-----------------
 3 files changed, 20 insertions(+), 24 deletions(-)

diff --git a/drivers/staging/hv/ChannelMgmt.h b/drivers/staging/hv/ChannelMgmt.h
index 7cf0173..71173d0 100644
--- a/drivers/staging/hv/ChannelMgmt.h
+++ b/drivers/staging/hv/ChannelMgmt.h
@@ -47,7 +47,7 @@ typedef struct _VMBUS_CHANNEL {
 
 	struct hv_device *DeviceObject;
 
-	HANDLE						PollTimer; /* SA-111 workaround */
+	struct osd_timer *PollTimer; /* SA-111 workaround */
 
 	VMBUS_CHANNEL_STATE			State;
 
diff --git a/drivers/staging/hv/include/osd.h b/drivers/staging/hv/include/osd.h
index 470d802..2cd2cf0 100644
--- a/drivers/staging/hv/include/osd.h
+++ b/drivers/staging/hv/include/osd.h
@@ -48,6 +48,10 @@ typedef struct _DLIST_ENTRY {
 /* typedef unsigned char		GUID[16]; */
 typedef void*				HANDLE;
 
+typedef void (*PFN_WORKITEM_CALLBACK)(void* context);
+typedef void (*PFN_TIMER_CALLBACK)(void* context);
+
+
 typedef struct {
 	unsigned char	Data[16];
 } GUID;
@@ -57,9 +61,12 @@ struct osd_waitevent {
 	wait_queue_head_t event;
 };
 
+struct osd_timer {
+	struct timer_list timer;
+	PFN_TIMER_CALLBACK callback;
+	void* context;
+};
 
-typedef void (*PFN_WORKITEM_CALLBACK)(void* context);
-typedef void (*PFN_TIMER_CALLBACK)(void* context);
 
 
 #ifdef __x86_64__
@@ -123,10 +130,10 @@ extern void PageFree(void* page, unsigned int count);
 extern void* MemMapIO(unsigned long phys, unsigned long size);
 extern void MemUnmapIO(void* virt);
 
-extern HANDLE TimerCreate(PFN_TIMER_CALLBACK pfnTimerCB, void* context);
-extern void TimerClose(HANDLE hTimer);
-extern int TimerStop(HANDLE hTimer);
-extern void TimerStart(HANDLE hTimer, u32 expirationInUs);
+extern struct osd_timer *TimerCreate(PFN_TIMER_CALLBACK pfnTimerCB, void* context);
+extern void TimerClose(struct osd_timer *t);
+extern int TimerStop(struct osd_timer *t);
+extern void TimerStart(struct osd_timer *t, u32 expirationInUs);
 
 extern struct osd_waitevent *WaitEventCreate(void);
 extern void WaitEventClose(struct osd_waitevent *waitEvent);
diff --git a/drivers/staging/hv/osd.c b/drivers/staging/hv/osd.c
index 50a2ca7..35c9ac2 100644
--- a/drivers/staging/hv/osd.c
+++ b/drivers/staging/hv/osd.c
@@ -49,11 +49,6 @@
 
 /* Data types */
 
-typedef struct _TIMER {
-	struct timer_list timer;
-	PFN_TIMER_CALLBACK callback;
-	void* context;
-}TIMER;
 
 typedef struct _WORKITEM {
 	struct work_struct work;
@@ -168,14 +163,14 @@ void MemUnmapIO(void *virt)
 
 void TimerCallback(unsigned long data)
 {
-	TIMER* t = (TIMER*)data;
+	struct osd_timer *t = (struct osd_timer *) data;
 
 	t->callback(t->context);
 }
 
-HANDLE TimerCreate(PFN_TIMER_CALLBACK pfnTimerCB, void* context)
+struct osd_timer *TimerCreate(PFN_TIMER_CALLBACK pfnTimerCB, void* context)
 {
-	TIMER* t = kmalloc(sizeof(TIMER), GFP_KERNEL);
+	struct osd_timer *t = kmalloc(sizeof(struct osd_timer), GFP_KERNEL);
 	if (!t)
 	{
 		return NULL;
@@ -191,25 +186,19 @@ HANDLE TimerCreate(PFN_TIMER_CALLBACK pfnTimerCB, void* context)
 	return t;
 }
 
-void TimerStart(HANDLE hTimer, u32 expirationInUs)
+void TimerStart(struct osd_timer *t, u32 expirationInUs)
 {
-	TIMER* t  = (TIMER* )hTimer;
-
 	t->timer.expires = jiffies + usecs_to_jiffies(expirationInUs);
 	add_timer(&t->timer);
 }
 
-int TimerStop(HANDLE hTimer)
+int TimerStop(struct osd_timer *t)
 {
-	TIMER* t  = (TIMER* )hTimer;
-
 	return del_timer(&t->timer);
 }
 
-void TimerClose(HANDLE hTimer)
+void TimerClose(struct osd_timer *t)
 {
-	TIMER* t  = (TIMER* )hTimer;
-
 	del_timer(&t->timer);
 	kfree(t);
 }
-- 
1.6.4.2




More information about the devel mailing list