--- Gnu-Mach/vm/memory_object.c 2020/09/02 04:36:57 1.1 +++ Gnu-Mach/vm/memory_object.c 2020/09/02 04:45:25 1.1.1.3 @@ -41,14 +41,15 @@ #include #include +#include #include #include #include #include #include -#include "memory_object_user.h" -#include "memory_object_default.h" +#include +#include /* * Implementation dependencies: @@ -57,21 +58,16 @@ #include #include #include /* For copy_to_phys, pmap_clear_modify */ +#include /* For panic() */ #include /* For current_thread() */ #include #include /* For kernel_map, vm_move */ #include /* For vm_map_pageable */ #include -#include -#include -#if NORMA_VM -#include -#endif NORMA_VM -#include #if MACH_PAGEMAP -#include -#endif MACH_PAGEMAP +#include +#endif /* MACH_PAGEMAP */ typedef int memory_object_lock_result_t; /* moved from below */ @@ -86,25 +82,6 @@ decl_simple_lock_data(,memory_manager_de * argument conversion. Explicit deallocation is necessary. */ -#if !NORMA_VM -/* - * If successful, destroys the map copy object. - */ -kern_return_t memory_object_data_provided(object, offset, data, data_cnt, - lock_value) - vm_object_t object; - vm_offset_t offset; - pointer_t data; - unsigned int data_cnt; - vm_prot_t lock_value; -{ - return memory_object_data_supply(object, offset, (vm_map_copy_t) data, - data_cnt, lock_value, FALSE, IP_NULL, - 0); -} -#endif !NORMA_VM - - kern_return_t memory_object_data_supply(object, offset, data_copy, data_cnt, lock_value, precious, reply_to, reply_to_type) register @@ -330,6 +307,24 @@ retry_lookup: return(result); } + +/* + * If successful, destroys the map copy object. + */ +kern_return_t memory_object_data_provided(object, offset, data, data_cnt, + lock_value) + vm_object_t object; + vm_offset_t offset; + pointer_t data; + unsigned int data_cnt; + vm_prot_t lock_value; +{ + return memory_object_data_supply(object, offset, (vm_map_copy_t) data, + data_cnt, lock_value, FALSE, IP_NULL, + 0); +} + + kern_return_t memory_object_data_error(object, offset, size, error_value) vm_object_t object; vm_offset_t offset; @@ -382,7 +377,7 @@ kern_return_t memory_object_data_unavail { #if MACH_PAGEMAP vm_external_t existence_info = VM_EXTERNAL_NULL; -#endif MACH_PAGEMAP +#endif /* MACH_PAGEMAP */ if (object == VM_OBJECT_NULL) return(KERN_INVALID_ARGUMENT); @@ -391,11 +386,11 @@ kern_return_t memory_object_data_unavail return(KERN_INVALID_ARGUMENT); #if MACH_PAGEMAP - if ((offset == 0) && (size > VM_EXTERNAL_LARGE_SIZE) && + if ((offset == 0) && (size > VM_EXTERNAL_LARGE_SIZE) && (object->existence_info == VM_EXTERNAL_NULL)) { existence_info = vm_external_create(VM_EXTERNAL_SMALL_SIZE); } -#endif MACH_PAGEMAP +#endif /* MACH_PAGEMAP */ vm_object_lock(object); #if MACH_PAGEMAP @@ -407,7 +402,7 @@ kern_return_t memory_object_data_unavail vm_object_deallocate(object); return(KERN_SUCCESS); } -#endif MACH_PAGEMAP +#endif /* MACH_PAGEMAP */ offset -= object->paging_offset; while (size != 0) { @@ -500,7 +495,7 @@ memory_object_lock_result_t memory_objec * Page is not dirty [2 checks] AND ( * Page is not precious OR * No request to return precious pages )) - * + * * Now isn't that straightforward and obvious ?? ;-) * * XXX This doesn't handle sending a copy of a wired @@ -896,36 +891,6 @@ MACRO_END return (KERN_SUCCESS); } -#if !NORMA_VM -/* - * Old version of memory_object_lock_request. - */ -kern_return_t -xxx_memory_object_lock_request(object, offset, size, - should_clean, should_flush, prot, - reply_to, reply_to_type) - register vm_object_t object; - register vm_offset_t offset; - register vm_size_t size; - boolean_t should_clean; - boolean_t should_flush; - vm_prot_t prot; - ipc_port_t reply_to; - mach_msg_type_name_t reply_to_type; -{ - register int should_return; - - if (should_clean) - should_return = MEMORY_OBJECT_RETURN_DIRTY; - else - should_return = MEMORY_OBJECT_RETURN_NONE; - - return(memory_object_lock_request(object,offset,size, - should_return, should_flush, prot, - reply_to, reply_to_type)); -} -#endif !NORMA_VM - kern_return_t memory_object_set_attributes_common(object, object_ready, may_cache, copy_strategy, use_old_pageout) @@ -989,8 +954,6 @@ memory_object_set_attributes_common(obje return(KERN_SUCCESS); } -#if !NORMA_VM - /* * XXX rpd claims that reply_to could be obviated in favor of a client * XXX stub that made change_attributes an RPC. Need investigation. @@ -1052,7 +1015,6 @@ kern_return_t memory_object_ready(object may_cache, copy_strategy, FALSE); } -#endif !NORMA_VM kern_return_t memory_object_get_attributes(object, object_ready, may_cache, copy_strategy) @@ -1131,7 +1093,7 @@ kern_return_t vm_set_default_memory_mana * valid (not IP_NULL or IP_DEAD). */ -ipc_port_t memory_manager_default_reference() +ipc_port_t memory_manager_default_reference(void) { ipc_port_t current_manager; @@ -1184,7 +1146,7 @@ boolean_t memory_manager_default_port(po return result; } -void memory_manager_default_init() +void memory_manager_default_init(void) { memory_manager_default = IP_NULL; simple_lock_init(&memory_manager_default_lock);