summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2005-11-10 02:22:55 +0000
committerwpaul <wpaul@FreeBSD.org>2005-11-10 02:22:55 +0000
commit358decbed5c7bc10eb5ed65da5b7581a0fe3a18c (patch)
treede65c69a9b3937f82fd2452ab35b4db4d53f987b /sys/compat
parentbb06a7834025d8fa0447c1e3e75c895e47730345 (diff)
downloadFreeBSD-src-358decbed5c7bc10eb5ed65da5b7581a0fe3a18c.zip
FreeBSD-src-358decbed5c7bc10eb5ed65da5b7581a0fe3a18c.tar.gz
Implement RtlZeroMemory() and RtlCopyMemory(). This seems to allow
the Broadcom Win64 wireless driver for the BCM4318 to work on amd64.
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/ndis/subr_ntoskrnl.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/sys/compat/ndis/subr_ntoskrnl.c b/sys/compat/ndis/subr_ntoskrnl.c
index f221f7f..06d42fb 100644
--- a/sys/compat/ndis/subr_ntoskrnl.c
+++ b/sys/compat/ndis/subr_ntoskrnl.c
@@ -205,6 +205,8 @@ static void *MmMapLockedPagesSpecifyCache(mdl *,
static void MmUnmapLockedPages(void *, mdl *);
static uint8_t MmIsAddressValid(void *);
static device_t ntoskrnl_finddev(device_t, uint64_t, struct resource **);
+static void RtlZeroMemory(void *, size_t);
+static void RtlCopyMemory(void *, const void *, size_t);
static size_t RtlCompareMemory(const void *, const void *, size_t);
static ndis_status RtlUnicodeStringToInteger(unicode_string *,
uint32_t, uint32_t *);
@@ -2899,6 +2901,25 @@ ExQueueWorkItem(w, qtype)
return;
}
+static void
+RtlZeroMemory(dst, len)
+ void *dst;
+ size_t len;
+{
+ bzero(dst, len);
+ return;
+}
+
+static void
+RtlCopyMemory(dst, src, len)
+ void *dst;
+ const void *src;
+ size_t len;
+{
+ bcopy(src, dst, len);
+ return;
+}
+
static size_t
RtlCompareMemory(s1, s2, len)
const void *s1;
@@ -4089,6 +4110,8 @@ dummy()
image_patch_table ntoskrnl_functbl[] = {
+ IMPORT_SFUNC(RtlZeroMemory, 2),
+ IMPORT_SFUNC(RtlCopyMemory, 3),
IMPORT_SFUNC(RtlCompareMemory, 3),
IMPORT_SFUNC(RtlEqualUnicodeString, 3),
IMPORT_SFUNC(RtlCopyUnicodeString, 2),
OpenPOWER on IntegriCloud