#if defined(__i386__) || defined(__x86_64__)
#include <i386/pmap.h>
#endif
+#if defined(__arm__) || defined(__arm64__)
+#include <arm/pmap.h>
+#endif
#include <IOKit/IOTypes.h>
#define EXTERN
*/
extern void iokit_add_reference( io_object_t obj );
+extern void iokit_add_connect_reference( io_object_t obj );
extern ipc_port_t iokit_port_for_object( io_object_t obj,
ipc_kobject_type_t type );
iokit_lookup_object_port(
ipc_port_t port)
{
- register io_object_t obj;
+ io_object_t obj;
if (!IP_VALID(port))
return (NULL);
iokit_lookup_connect_port(
ipc_port_t port)
{
- register io_object_t obj;
+ io_object_t obj;
if (!IP_VALID(port))
return (NULL);
iokit_lock_port(port);
if (ip_active(port) && (ip_kotype(port) == IKOT_IOKIT_CONNECT)) {
obj = (io_object_t) port->ip_kobject;
- iokit_add_reference( obj );
+ iokit_add_connect_reference( obj );
}
else
obj = NULL;
iokit_lock_port(port);
if (ip_active(port) && (ip_kotype(port) == IKOT_IOKIT_CONNECT)) {
obj = (io_object_t) port->ip_kobject;
- iokit_add_reference(obj);
+ iokit_add_connect_reference(obj);
}
iokit_unlock_port(port);
iokit_make_object_port(
io_object_t obj )
{
- register ipc_port_t port;
- register ipc_port_t sendPort;
+ ipc_port_t port;
+ ipc_port_t sendPort;
if( obj == NULL)
return IP_NULL;
iokit_make_connect_port(
io_object_t obj )
{
- register ipc_port_t port;
- register ipc_port_t sendPort;
+ ipc_port_t port;
+ ipc_port_t sendPort;
if( obj == NULL)
return IP_NULL;
case kIOMapCopybackCache:
flags = VM_WIMG_COPYBACK;
break;
+
case kIOMapCopybackInnerCache:
flags = VM_WIMG_INNERWBACK;
break;
+
+ case kIOMapPostedWrite:
+ flags = VM_WIMG_POSTED;
+ break;
}
pmap_set_cache_attributes(pagenum, flags);
// Set up a block mapped area
- pmap_map_block(pmap, va, pagenum, (uint32_t) atop_64(round_page_64(length)), prot, 0, 0);
-
- return( KERN_SUCCESS );
+ return pmap_map_block(pmap, va, pagenum, (uint32_t) atop_64(round_page_64(length)), prot, 0, 0);
}
kern_return_t IOUnmapPages(vm_map_t map, mach_vm_address_t va, mach_vm_size_t length)
case kIOMapCopybackCache:
flags = VM_WIMG_COPYBACK;
break;
+
+ case kIOMapCopybackInnerCache:
+ flags = VM_WIMG_INNERWBACK;
+ break;
+
+ case kIOMapPostedWrite:
+ flags = VM_WIMG_POSTED;
+ break;
}
pmap_flush_context_init(&pmap_flush_context_storage);
highest = lastPage;
}
return (highest);
+#elif __arm__ || __arm64__
+ return 0;
#else
#error unknown arch
#endif