Lines Matching +full:address +full:- +full:aligned
4 * SPDX-License-Identifier: Apache-2.0
11 * Not all architecture-specific defines are here, APIs that are used
30 * @defgroup arch-timing Architecture timing APIs
35 * Architecture-specific implementation of busy-waiting
45 * @defgroup arch-threads Architecture thread APIs
46 * @ingroup arch-interface
50 /** Handle arch-specific logic for setting up new threads
52 * The stack and arch-specific thread state variables must be set up
61 * The provided stack pointer is guaranteed to be properly aligned with respect
64 * randomization and thread-local storage.
66 * Fields in thread->base will be initialized when this is called.
70 * @param stack_ptr Aligned initial stack pointer
85 * context into the address passed in the second argument.
89 * "switch_handle" field of a newly-created thread in arch_new_thread(),
105 * assume that the second argument to arch_switch() is the address of the
125 * address passed in the second argument.
140 * This is the older-style context switching method, which is incompatible
189 * @retval -EINVAL If the floating point disabling could not be performed.
190 * @retval -ENOTSUP If the operation is not supported
209 * @retval -EINVAL If the floating point enabling could not be performed.
210 * @retval -ENOTSUP If the operation is not supported
233 * @return -EBADF Bad thread object
234 * @return -EPERM No permissions on thread object
235 * #return -ENOTSUP Forbidden by hardware policy
236 * @return -EINVAL Thread is uninitialized or exited or not a user thread
237 * @return -EFAULT Bad memory address for unused_ptr
246 * @defgroup arch-pm Architecture-specific power management APIs
247 * @ingroup arch-interface
257 * @defgroup arch-irq Architecture-specific IRQ APIs
258 * @ingroup arch-interface
275 * @defgroup arch-mmu Architecture-specific memory-mapping APIs
276 * @ingroup arch-interface
281 * Map physical memory into the virtual address space
283 * This is a low-level interface to mapping pages into the address space.
285 * are assumed to be aligned to CONFIG_MMU_PAGE_SIZE.
287 * The core kernel handles all management of the virtual address space;
301 * Architectures are expected to pre-allocate page tables for the entire
302 * address space, as defined by CONFIG_KERNEL_VM_BASE and
311 * @param virt Page-aligned Destination virtual address to map
312 * @param phys Page-aligned Source physical address to map
313 * @param size Page-aligned size of the mapped memory region in bytes
319 * Remove mappings for a provided virtual address range
321 * This is a low-level interface for un-mapping pages from the address space.
328 * are assumed to be aligned to CONFIG_MMU_PAGE_SIZE.
330 * Behavior when providing an address range that is not already mapped is
335 * due to all contained entries being un-mapped may remain in place.
341 * @param addr Page-aligned base virtual address to un-map
342 * @param size Page-aligned region size
347 * Get the mapped physical memory address from virtual address.
360 * @param virt Page-aligned virtual address
361 * @param[out] phys Mapped physical address (can be NULL if only checking
362 * if virtual address is mapped)
365 * @retval -EFAULT if virtual address is not mapped
373 * example of this is reserved regions in the first megabyte on PC-like systems.
382 * Update all page tables for a paged-out data page
385 * - Sets the data page virtual address to trigger a fault if accessed that
386 * can be distinguished from access violations or un-mapped pages.
387 * - Saves the provided location value so that it can retrieved for that
389 * - The location value semantics are undefined here but the value will be
390 * always be page-aligned. It could be 0.
403 * Update all page tables for a paged-in data page
406 * - Maps the specified virtual data page address to the provided physical
407 * page frame address, such that future memory accesses will function as
409 * - Clears any accounting for "accessed" and "dirty" states.
424 * Map a physical page frame address to a special virtual address
427 * frame's contents from the K_MEM_SCRATCH_PAGE address.
452 * Fetch location information about a page at a particular address
469 * @param addr Virtual data page address that took the page fault
472 * ARCH_PAGE_LOCATION_PAGED_IN, the physical address the page is mapped to.
475 * @retval ARCH_PAGE_LOCATION_BAD The page is un-mapped or otherwise has had
506 * If un-set, the data page is paged out or not mapped.
512 * If ARCH_DATA_PAGE_LOADED is un-set, this will indicate that the page
525 * For the provided virtual address, report the logical OR of the accessed
546 * if ARCH_DATA_PAGE_LOADED is un-set, otherwise ignore it.
554 * @param addr Virtual address to look up in page tables
555 * @param [out] location If non-NULL, updated with either physical page frame
556 * address or backing store location depending on
569 * @defgroup arch-misc Miscellaneous architecture APIs
570 * @ingroup arch-interface
603 * @retval -EAGAIN If the operation could not be performed.
609 * Architecture-specific kernel initialization hook
612 * architecture-specific setup before the rest of the kernel is brought up.
622 * @defgroup arch-coredump Architecture-specific core dump APIs
623 * @ingroup arch-interface
628 * @brief Architecture-specific handling during coredump
630 * This dumps architecture-specific information during coredump.
632 * @param esf Exception Stack Frame (arch-specific)
644 * @brief Architecture-specific handling of dumping privileged stack
646 * This dumps the architecture-specific privileged stack during coredump.
657 * @defgroup arch-tls Architecture-specific Thread Local Storage APIs
658 * @ingroup arch-interface
663 * @brief Setup Architecture-specific TLS area in stack
676 /* Include arch-specific inline function implementation */