summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/compat/ndis/subr_ntoskrnl.c35
1 files changed, 32 insertions, 3 deletions
diff --git a/sys/compat/ndis/subr_ntoskrnl.c b/sys/compat/ndis/subr_ntoskrnl.c
index c01e8fa..0d2d738 100644
--- a/sys/compat/ndis/subr_ntoskrnl.c
+++ b/sys/compat/ndis/subr_ntoskrnl.c
@@ -75,7 +75,8 @@ __stdcall static ndis_status ntoskrnl_ansi_to_unicode(ndis_unicode_string *,
ndis_ansi_string *, uint8_t);
__stdcall static void *ntoskrnl_iobuildsynchfsdreq(uint32_t, void *,
void *, uint32_t, uint32_t *, void *, void *);
-__stdcall static uint32_t ntoskrnl_iofcalldriver(void *, void *);
+__stdcall static uint32_t ntoskrnl_iofcalldriver(/*void *, void * */ void);
+__stdcall static void ntoskrnl_iofcompletereq(/*void *, uint8_t*/ void);
__stdcall static uint32_t ntoskrnl_waitforobj(void *, uint32_t,
uint32_t, uint8_t, void *);
__stdcall static void ntoskrnl_initevent(void *, uint32_t, uint8_t);
@@ -131,6 +132,7 @@ __stdcall static ndis_status ntoskrnl_unicode_to_int(ndis_unicode_string *,
uint32_t, uint32_t *);
static int atoi (const char *);
static long atol (const char *);
+__stdcall static uint8_t ntoskrnl_wdmver(uint8_t, uint8_t);
__stdcall static void dummy(void);
static struct mtx *ntoskrnl_interlock;
@@ -253,13 +255,27 @@ ntoskrnl_iobuildsynchfsdreq(func, dobj, buf, len, off, event, status)
}
__stdcall static uint32_t
-ntoskrnl_iofcalldriver(dobj, irp)
+ntoskrnl_iofcalldriver(/*dobj, irp*/)
+{
void *dobj;
void *irp;
-{
+
+ __asm__ __volatile__ ("" : "=c" (dobj), "=d" (irp));
+
return(0);
}
+__stdcall static void
+ntoskrnl_iofcompletereq(/*irp, prioboost*/)
+{
+ void *irp;
+ uint8_t prioboost;
+
+ __asm__ __volatile__ ("" : "=c" (irp), "=d" (prioboost));
+
+ return;
+}
+
__stdcall static uint32_t
ntoskrnl_waitforobj(obj, reason, mode, alertable, timeout)
void *obj;
@@ -821,6 +837,16 @@ atol(str)
return strtol(str, (char **)NULL, 10);
}
+__stdcall static uint8_t
+ntoskrnl_wdmver(major, minor)
+ uint8_t major;
+ uint8_t minor;
+{
+ if (major == WDM_MAJOR && minor == WDM_MINOR_WINXP)
+ return(TRUE);
+ return(FALSE);
+}
+
__stdcall static void
dummy()
{
@@ -841,6 +867,7 @@ image_patch_table ntoskrnl_functbl[] = {
{ "RtlFreeUnicodeString", (FUNC)ntoskrnl_free_unicode_string },
{ "RtlUnicodeStringToInteger", (FUNC)ntoskrnl_unicode_to_int },
{ "sprintf", (FUNC)sprintf },
+ { "vsprintf", (FUNC)vsprintf },
{ "DbgPrint", (FUNC)printf },
{ "strncmp", (FUNC)strncmp },
{ "strcmp", (FUNC)strcmp },
@@ -850,6 +877,7 @@ image_patch_table ntoskrnl_functbl[] = {
{ "memcpy", (FUNC)memcpy },
{ "memset", (FUNC)memset },
{ "IofCallDriver", (FUNC)ntoskrnl_iofcalldriver },
+ { "IofCompleteRequest", (FUNC)ntoskrnl_iofcompletereq },
{ "IoBuildSynchronousFsdRequest", (FUNC)ntoskrnl_iobuildsynchfsdreq },
{ "KeWaitForSingleObject", (FUNC)ntoskrnl_waitforobj },
{ "KeInitializeEvent", (FUNC)ntoskrnl_initevent },
@@ -886,6 +914,7 @@ image_patch_table ntoskrnl_functbl[] = {
{ "IoFreeMdl", (FUNC)ntoskrnl_freemdl },
{ "MmMapLockedPages", (FUNC)ntoskrnl_mmaplockedpages },
{ "KeInitializeSpinLock", (FUNC)ntoskrnl_init_lock },
+ { "IoIsWdmVersionAvailable", (FUNC)ntoskrnl_wdmver },
/*
* This last entry is a catch-all for any function we haven't
OpenPOWER on IntegriCloud