Staging: hv: Remove WORKQUEUE typedef
WORKQUEUE was a wrapper around struct workqueue_struct so just use that instead. 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:
Родитель
d1af1db7d6
Коммит
df8d9b1f6d
|
@ -64,7 +64,7 @@ typedef struct _VMBUS_CHANNEL {
|
||||||
RING_BUFFER_INFO Outbound; /* send to parent */
|
RING_BUFFER_INFO Outbound; /* send to parent */
|
||||||
RING_BUFFER_INFO Inbound; /* receive from parent */
|
RING_BUFFER_INFO Inbound; /* receive from parent */
|
||||||
spinlock_t inbound_lock;
|
spinlock_t inbound_lock;
|
||||||
HANDLE ControlWQ;
|
struct workqueue_struct *ControlWQ;
|
||||||
|
|
||||||
/* Channel callback are invoked in this workqueue context */
|
/* Channel callback are invoked in this workqueue context */
|
||||||
/* HANDLE dataWorkQueue; */
|
/* HANDLE dataWorkQueue; */
|
||||||
|
|
|
@ -93,7 +93,7 @@ struct VMBUS_CONNECTION {
|
||||||
LIST_ENTRY ChannelList;
|
LIST_ENTRY ChannelList;
|
||||||
spinlock_t channel_lock;
|
spinlock_t channel_lock;
|
||||||
|
|
||||||
HANDLE WorkQueue;
|
struct workqueue_struct *WorkQueue;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -143,9 +143,11 @@ void* PageMapVirtualAddress(unsigned long Pfn);
|
||||||
void PageUnmapVirtualAddress(void* VirtAddr);
|
void PageUnmapVirtualAddress(void* VirtAddr);
|
||||||
|
|
||||||
|
|
||||||
extern HANDLE WorkQueueCreate(char* name);
|
extern struct workqueue_struct *WorkQueueCreate(char* name);
|
||||||
extern void WorkQueueClose(HANDLE hWorkQueue);
|
extern void WorkQueueClose(struct workqueue_struct *hWorkQueue);
|
||||||
extern int WorkQueueQueueWorkItem(HANDLE hWorkQueue, PFN_WORKITEM_CALLBACK workItem, void* context);
|
extern int WorkQueueQueueWorkItem(struct workqueue_struct *hWorkQueue,
|
||||||
|
PFN_WORKITEM_CALLBACK workItem,
|
||||||
|
void *context);
|
||||||
|
|
||||||
extern void QueueWorkItem(PFN_WORKITEM_CALLBACK workItem, void* context);
|
extern void QueueWorkItem(PFN_WORKITEM_CALLBACK workItem, void* context);
|
||||||
|
|
||||||
|
|
|
@ -61,10 +61,6 @@ typedef struct _WAITEVENT {
|
||||||
wait_queue_head_t event;
|
wait_queue_head_t event;
|
||||||
} WAITEVENT;
|
} WAITEVENT;
|
||||||
|
|
||||||
typedef struct _WORKQUEUE {
|
|
||||||
struct workqueue_struct *queue;
|
|
||||||
} WORKQUEUE;
|
|
||||||
|
|
||||||
typedef struct _WORKITEM {
|
typedef struct _WORKITEM {
|
||||||
struct work_struct work;
|
struct work_struct work;
|
||||||
PFN_WORKITEM_CALLBACK callback;
|
PFN_WORKITEM_CALLBACK callback;
|
||||||
|
@ -303,31 +299,25 @@ void WorkItemCallback(struct work_struct *work)
|
||||||
kfree(w);
|
kfree(w);
|
||||||
}
|
}
|
||||||
|
|
||||||
HANDLE WorkQueueCreate(char* name)
|
struct workqueue_struct *WorkQueueCreate(char *name)
|
||||||
{
|
{
|
||||||
WORKQUEUE *wq = kmalloc(sizeof(WORKQUEUE), GFP_KERNEL);
|
struct workqueue_struct *wq;
|
||||||
if (!wq)
|
wq = create_workqueue(name);
|
||||||
{
|
if (unlikely(!wq))
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
|
||||||
wq->queue = create_workqueue(name);
|
|
||||||
|
|
||||||
return wq;
|
return wq;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorkQueueClose(HANDLE hWorkQueue)
|
void WorkQueueClose(struct workqueue_struct *hWorkQueue)
|
||||||
{
|
{
|
||||||
WORKQUEUE *wq = (WORKQUEUE *)hWorkQueue;
|
destroy_workqueue(hWorkQueue);
|
||||||
|
|
||||||
destroy_workqueue(wq->queue);
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int WorkQueueQueueWorkItem(HANDLE hWorkQueue, PFN_WORKITEM_CALLBACK workItem, void* context)
|
int WorkQueueQueueWorkItem(struct workqueue_struct *hWorkQueue,
|
||||||
|
PFN_WORKITEM_CALLBACK workItem,
|
||||||
|
void* context)
|
||||||
{
|
{
|
||||||
WORKQUEUE *wq = (WORKQUEUE *)hWorkQueue;
|
|
||||||
|
|
||||||
WORKITEM* w = kmalloc(sizeof(WORKITEM), GFP_ATOMIC);
|
WORKITEM* w = kmalloc(sizeof(WORKITEM), GFP_ATOMIC);
|
||||||
if (!w)
|
if (!w)
|
||||||
{
|
{
|
||||||
|
@ -337,7 +327,7 @@ int WorkQueueQueueWorkItem(HANDLE hWorkQueue, PFN_WORKITEM_CALLBACK workItem, vo
|
||||||
w->callback = workItem,
|
w->callback = workItem,
|
||||||
w->context = context;
|
w->context = context;
|
||||||
INIT_WORK(&w->work, WorkItemCallback);
|
INIT_WORK(&w->work, WorkItemCallback);
|
||||||
return queue_work(wq->queue, &w->work);
|
return queue_work(hWorkQueue, &w->work);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QueueWorkItem(PFN_WORKITEM_CALLBACK workItem, void* context)
|
void QueueWorkItem(PFN_WORKITEM_CALLBACK workItem, void* context)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче