Lines Matching +full:pin +full:- +full:location

4  * SPDX-License-Identifier: Apache-2.0
21 * @defgroup mem-demand-paging Demand Paging APIs
74 * excluding the first and last (hence, NUM_SLOTS - 1).
85 * Evict a page-aligned virtual memory region to the backing store
90 * marked as available for mappings or page-ins.
99 * called by ISRs as the backing store may be in-use.
101 * @param addr Base page-aligned virtual address
102 * @param size Page-aligned data region size
104 * @retval -ENOMEM Insufficient space in backing store to satisfy request.
117 * called by ISRs as the backing store may be in-use.
119 * @param addr Base page-aligned virtual address
120 * @param size Page-aligned data region size
125 * Pin an aligned virtual data region, paging in as necessary
132 * called by ISRs as the backing store may be in-use.
134 * @param addr Base page-aligned virtual address
135 * @param size Page-aligned data region size
140 * Un-pin an aligned virtual data region
146 * @param addr Base page-aligned virtual address
147 * @param size Page-aligned data region size
187 * Get the backing store page-in timing histogram
198 * Get the backing store page-out timing histogram
215 * @defgroup mem-demand-paging-eviction Eviction Algorithm APIs
255 * The architecture-specific memory fault handler will invoke this to tell the
317 * @defgroup mem-demand-paging-backing-store Backing Store APIs
323 * Reserve or fetch a storage location for a data page loaded into a page frame
325 * The returned location token must be unique to the mapped virtual address.
326 * This location will be used in the backing store to page out data page
327 * contents for later retrieval. The location value must be page-aligned.
331 * the previous backing store location for the data page containing a cached
332 * clean copy. This clean copy may be updated on page-out, or used to
335 * If the backing store is full, some other backing store location which caches
341 * entire address space may simply generate location tokens purely as a
345 * fault. A free backing store location must always be reserved in order for
347 * function should return -ENOMEM even if one location is available.
351 * @param pf Virtual address to obtain a storage location
352 * @param [out] location storage location token
355 * @return -ENOMEM Backing store is full
358 uintptr_t *location,
362 * Free a backing store location
364 * Any stored data may be discarded, and the location token associated with
365 * this address may be re-used for some other data page.
369 * @param location Location token to free
371 void k_mem_paging_backing_store_location_free(uintptr_t location);
374 * Obtain persistent location token for on-demand content
377 * any backing store space. Instead, it returns a location token corresponding
381 * also be used e.g. to implement file-based mmap().
383 * @param addr Virtual address to obtain a location token for
384 * @param [out] location storage location token
387 int k_mem_paging_backing_store_location_query(void *addr, uintptr_t *location);
390 * Copy a data page from K_MEM_SCRATCH_PAGE to the specified location
392 * Immediately before this is called, K_MEM_SCRATCH_PAGE will be mapped read-write
398 * @param location Location token for the data page, for later retrieval
400 void k_mem_paging_backing_store_page_out(uintptr_t location);
403 * Copy a data page from the provided location to K_MEM_SCRATCH_PAGE.
405 * Immediately before this is called, K_MEM_SCRATCH_PAGE will be mapped read-write
411 * @param location Location token for the data page
413 void k_mem_paging_backing_store_page_in(uintptr_t location);
416 * Update internal accounting after a page-in
419 * have been* re-locked, making it safe to access the k_mem_page_frame data.
420 * The location value will be the same passed to
423 * The primary use-case for this is to update custom fields for the backing
425 * if it is paged out again. This may be a no-op in some implementations.
427 * If the backing store caches paged-in data pages, this is the appropriate
433 * @param location Location of where the loaded data page was retrieved
436 uintptr_t location);
445 * - Initialize any internal data structures and accounting for the backing
447 * - If the backing store already contains all or some loaded kernel data pages