Lines Matching full:page
103 * @defgroup kernel_mm_page_frame_apis Kernel Memory Page Frame Management APIs
107 * Macros and data structures for physical page frame accounting,
113 * @brief Number of page frames.
115 * At present, page frame management is only done for main system RAM,
134 /** This physical page is free and part of the free list */
137 /** This physical page is reserved by hardware; we will never use it */
140 /** This page contains critical kernel data and will never be swapped */
144 * This physical page is mapped to some virtual memory address
146 * Currently, we just support one mapping per page frame. If a page frame
152 * This page frame is currently involved in a page-in/out operation
157 * This page frame has a clean copy in the backing store
162 * Data structure for physical page frames
164 * An array of these is instantiated, one element per physical RAM page.
171 * this page is mapped to.
232 /* If true, page is not being used for anything, is not reserved, is not
236 static inline bool k_mem_page_frame_is_available(struct k_mem_page_frame *page) in k_mem_page_frame_is_available() argument
238 return page->va_and_flags == 0U; in k_mem_page_frame_is_available()
257 "physical address 0x%lx is not page-aligned", phys); in k_mem_assert_phys_aligned()
311 * @brief Pretty-print page frame information for all page frames.
313 * Debug function, pretty-print page frame information for all frames
318 /* Convenience macro for iterating over all page frames */
331 /* We reserve a virtual page as a scratch area for page-ins/outs at the end
337 * @brief Location of the scratch page used for demand paging.
352 * Number of page faults since system startup
354 * Counts only those page faults that were handled successfully by the demand
357 * @return Number of successful page faults
362 * Free a page frame physical address by evicting its contents
364 * The indicated page frame, if it contains a data page, will have that
365 * data page evicted to the backing store. The page frame will then be
366 * marked as available for mappings or page-ins.
374 * @param phys Page frame physical address
381 * Handle a page fault for a virtual data page
383 * This is invoked from the architecture page fault handler.
385 * If a valid page fault, the core kernel will obtain a page frame,
386 * populate it with the data page that was evicted to the backing store,
387 * update page tables, and return so that the faulting instruction may be
390 * The architecture must not call this function if the page was mapped and
392 * violation for a mapped page).
394 * If the faulting context had interrupts disabled when the page fault was
395 * triggered, the entire page fault handling path must have interrupts
398 * Otherwise, interrupts may be enabled and the page fault handler may be
399 * preemptible. Races to page-in will be appropriately handled by the kernel.
402 * @retval true Page fault successfully handled, or nothing needed to be done.
404 * @retval false This page fault was from an un-mapped page, should