Module Name: src Committed By: thorpej Date: Sat Apr 18 03:27:13 UTC 2020
Modified Files: src/sys/uvm: uvm_extern.h uvm_map.c Log Message: Add an API to get a reference on the identity of an individual byte of virtual memory, a "virtual object address". This is not a reference to a physical byte of memory, per se, but a reference to a byte residing in a page, owned by a unique UVM object (either a uobj or an anon). Two separate address+addresses space tuples that reference the same byte in an object (such as a location in a shared memory segment) will resolve to equivalent virtual object addresses. Even if the residency status of the page changes, the virtual object address remains unchanged. struct uvm_voaddr -- a structure that encapsulates this address reference. uvm_voaddr_acquire() -- a function to acquire this address reference, given a vm_map and a vaddr_t. uvm_voaddr_release() -- a function to release this address reference. uvm_voaddr_compare() -- a function to compare two such address references. uvm_voaddr_acquire() resolves the COW status of the object address before acquiring. In collaboration with riastradh@ and chs@. To generate a diff of this commit: cvs rdiff -u -r1.222 -r1.223 src/sys/uvm/uvm_extern.h cvs rdiff -u -r1.378 -r1.379 src/sys/uvm/uvm_map.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.