*/
#include <linux/kernel.h>
-#include <linux/mm.h>
+#include <linux/highmem.h>
+#include <asm/kmap_types.h>
+
#include "include/logging.h"
#include "include/NetVscApi.h"
return -1;
}
- rndisHeader = (RNDIS_MESSAGE*)PageMapVirtualAddress(Packet->PageBuffers[0].Pfn);
+ rndisHeader = (RNDIS_MESSAGE *)kmap_atomic(pfn_to_page(Packet->PageBuffers[0].Pfn), KM_IRQ0);
rndisHeader = (void*)((unsigned long)rndisHeader + Packet->PageBuffers[0].Offset);
#if 0
if ( Packet->TotalDataBufferLength != rndisHeader->MessageLength )
{
- PageUnmapVirtualAddress((void*)(unsigned long)rndisHeader - Packet->PageBuffers[0].Offset);
+ kunmap_atomic(rndisHeader - Packet->PageBuffers[0].Offset, KM_IRQ0);
DPRINT_ERR(NETVSC, "invalid rndis message? (expected %u bytes got %u)...dropping this message!",
rndisHeader->MessageLength, Packet->TotalDataBufferLength);
memcpy(&rndisMessage, rndisHeader, (rndisHeader->MessageLength > sizeof(RNDIS_MESSAGE))?sizeof(RNDIS_MESSAGE):rndisHeader->MessageLength);
- PageUnmapVirtualAddress((void*)(unsigned long)rndisHeader - Packet->PageBuffers[0].Offset);
+ kunmap_atomic(rndisHeader - Packet->PageBuffers[0].Offset, KM_IRQ0);
DumpRndisMessage(&rndisMessage);
unsigned long Virtual2Physical(void * VirtAddr);
-void* PageMapVirtualAddress(unsigned long Pfn);
-void PageUnmapVirtualAddress(void* VirtAddr);
-
-
int osd_schedule_callback(struct workqueue_struct *wq,
void (*func)(void *),
void *data);
__free_page(p);*/
}
-
-void* PageMapVirtualAddress(unsigned long Pfn)
-{
- return kmap_atomic(pfn_to_page(Pfn), KM_IRQ0);
-}
-
-void PageUnmapVirtualAddress(void* VirtAddr)
-{
- kunmap_atomic(VirtAddr, KM_IRQ0);
-}
-
void *MemMapIO(unsigned long phys, unsigned long size)
{
return (void*)GetVirtualAddress(phys); /* return ioremap_nocache(phys, size); */