#include <linux/jiffies.h>
#include <linux/delay.h>
#include <linux/time.h>
-
-#include <asm/io.h>
-#include <asm/bitops.h>
-#include <asm/kmap_types.h>
-#include <asm/atomic.h>
-
+#include <linux/io.h>
+#include <linux/bitops.h>
#include "osd.h"
-
-/* Data types */
-
-
struct osd_callback_struct {
struct work_struct work;
void (*callback)(void *);
#ifdef __x86_64__
return __vmalloc(size, GFP_KERNEL, PAGE_KERNEL_EXEC);
#else
- return __vmalloc(size, GFP_KERNEL, __pgprot(__PAGE_KERNEL & (~_PAGE_NX)));
+ return __vmalloc(size, GFP_KERNEL,
+ __pgprot(__PAGE_KERNEL & (~_PAGE_NX)));
#endif
}
void *osd_PageAlloc(unsigned int count)
{
void *p;
+
p = (void *)__get_free_pages(GFP_KERNEL, get_order(count * PAGE_SIZE));
- if (p) memset(p, 0, count * PAGE_SIZE);
+ if (p)
+ memset(p, 0, count * PAGE_SIZE);
return p;
/* struct page* page = alloc_page(GFP_KERNEL|__GFP_ZERO); */
}
EXPORT_SYMBOL_GPL(osd_PageAlloc);
-void osd_PageFree(void* page, unsigned int count)
+void osd_PageFree(void *page, unsigned int count)
{
free_pages((unsigned long)page, get_order(count * PAGE_SIZE));
/*struct page* p = virt_to_page(page);
struct osd_waitevent *osd_WaitEventCreate(void)
{
- struct osd_waitevent *wait = kmalloc(sizeof(struct osd_waitevent), GFP_KERNEL);
+ struct osd_waitevent *wait = kmalloc(sizeof(struct osd_waitevent),
+ GFP_KERNEL);
if (!wait)
- {
return NULL;
- }
wait->condition = 0;
init_waitqueue_head(&wait->event);
int osd_WaitEventWait(struct osd_waitevent *waitEvent)
{
- int ret=0;
+ int ret = 0;
ret = wait_event_interruptible(waitEvent->event,
waitEvent->condition);
int osd_WaitEventWaitEx(struct osd_waitevent *waitEvent, u32 TimeoutInMs)
{
- int ret=0;
+ int ret = 0;
ret = wait_event_interruptible_timeout(waitEvent->event,
waitEvent->condition,
static void osd_callback_work(struct work_struct *work)
{
struct osd_callback_struct *cb = container_of(work,
- struct osd_callback_struct,
- work);
+ struct osd_callback_struct,
+ work);
(cb->callback)(cb->data);
-
kfree(cb);
}
struct osd_callback_struct *cb;
cb = kmalloc(sizeof(*cb), GFP_KERNEL);
- if (!cb)
- {
- printk(KERN_ERR "unable to allocate memory in osd_schedule_callback");
+ if (!cb) {
+ printk(KERN_ERR "unable to allocate memory in osd_schedule_callback\n");
return -1;
}