mirror of
https://git.freebsd.org/ports.git
synced 2025-06-07 13:50:38 -04:00
than kqemu worked before. [1] - Fix build on 10/i386. PR: 184984 [1] Submitted by: syrinx [1]
44 lines
1.2 KiB
C
44 lines
1.2 KiB
C
--- kqemu-freebsd.c~ 2014-02-07 20:00:33.656255395 +0200
|
|
+++ kqemu-freebsd.c 2014-02-08 08:43:19.209100708 +0200
|
|
@@ -105,17 +105,29 @@
|
|
*/
|
|
struct kqemu_page *CDECL kqemu_alloc_zeroed_page(unsigned long *ppage_index)
|
|
{
|
|
+#if __FreeBSD_version < 1000030
|
|
pmap_t pmap;
|
|
+#endif
|
|
vm_offset_t va;
|
|
vm_paddr_t pa;
|
|
|
|
+#if __FreeBSD_version >= 1000030
|
|
+ va = kmem_malloc(kernel_arena, PAGE_SIZE, M_ZERO | M_WAITOK);
|
|
+#else
|
|
va = kmem_alloc(kernel_map, PAGE_SIZE);
|
|
+#endif
|
|
+
|
|
if (va == 0) {
|
|
kqemu_log("kqemu_alloc_zeroed_page: NULL\n");
|
|
return NULL;
|
|
}
|
|
+
|
|
+#if __FreeBSD_version >= 1000030
|
|
+ pa = vtophys(va);
|
|
+#else
|
|
pmap = vm_map_pmap(kernel_map);
|
|
pa = pmap_extract(pmap, va);
|
|
+#endif
|
|
/* kqemu_log("kqemu_alloc_zeroed_page: %08x\n", pa); */
|
|
*ppage_index = pa >> PAGE_SHIFT;
|
|
return (struct kqemu_page *)va;
|
|
@@ -125,7 +137,11 @@
|
|
{
|
|
if (kqemu_debug > 0)
|
|
kqemu_log("kqemu_free_page(%p)\n", page);
|
|
+#if __FreeBSD_version >= 1000030
|
|
+ kmem_free(kernel_arena, (vm_offset_t) page, PAGE_SIZE);
|
|
+#else
|
|
kmem_free(kernel_map, (vm_offset_t) page, PAGE_SIZE);
|
|
+#endif
|
|
}
|
|
|
|
/* return kernel address of the physical page page_index */
|