LCOV - code coverage report
Current view: top level - zephyr/arch/xtensa - thread_stack.h Coverage Total Hit
Test: new.info Lines: 0.0 % 6 0
Test Date: 2025-09-05 16:43:28

            Line data    Source code
       1            0 : /*
       2              :  * Copyright (c) 2022 Intel Corporation
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : #ifndef ZEPHYR_INCLUDE_ARCH_XTENSA_THREAD_STACK_H_
       8              : #define ZEPHYR_INCLUDE_ARCH_XTENSA_THREAD_STACK_H_
       9              : 
      10              : #include <xtensa/config/core-isa.h>
      11              : #include <zephyr/toolchain.h>
      12              : #include <zephyr/sys/util.h>
      13              : 
      14              : #ifdef CONFIG_KERNEL_COHERENCE
      15              : #define ARCH_STACK_PTR_ALIGN XCHAL_DCACHE_LINESIZE
      16              : #else
      17            0 : #define ARCH_STACK_PTR_ALIGN 16
      18              : #endif
      19              : 
      20              : 
      21              : #ifdef CONFIG_USERSPACE
      22              : #ifdef CONFIG_XTENSA_MMU
      23              : #define XTENSA_STACK_BASE_ALIGN         CONFIG_MMU_PAGE_SIZE
      24              : #define XTENSA_STACK_SIZE_ALIGN         CONFIG_MMU_PAGE_SIZE
      25              : #endif
      26              : #ifdef CONFIG_XTENSA_MPU
      27              : #define XTENSA_STACK_BASE_ALIGN         XCHAL_MPU_ALIGN
      28              : #define XTENSA_STACK_SIZE_ALIGN         XCHAL_MPU_ALIGN
      29              : #endif
      30              : #else
      31              : #define XTENSA_STACK_BASE_ALIGN         ARCH_STACK_PTR_ALIGN
      32              : #define XTENSA_STACK_SIZE_ALIGN         ARCH_STACK_PTR_ALIGN
      33              : #endif
      34              : 
      35              : /*
      36              :  *
      37              :  * High memory addresses
      38              :  *
      39              :  * +-------------------+ <- thread.stack_info.start + thread.stack_info.size
      40              :  * |       TLS         |
      41              :  * +-------------------+ <- initial sp (computable with thread.stack_info.delta)
      42              :  * |                   |
      43              :  * |   Thread stack    |
      44              :  * |                   |
      45              :  * +-------------------+ <- thread.stack_info.start
      46              :  * | Privileged stack  | } CONFIG_MMU_PAGE_SIZE
      47              :  * +-------------------+ <- thread.stack_obj
      48              :  *
      49              :  * Low Memory addresses
      50              :  */
      51              : 
      52              : #ifndef _ASMLANGUAGE
      53              : 
      54              : /* thread stack */
      55            0 : struct xtensa_thread_stack_header {
      56              : #if defined(CONFIG_XTENSA_MMU) || defined(CONFIG_XTENSA_MPU)
      57              :         char privilege_stack[CONFIG_PRIVILEGED_STACK_SIZE];
      58              : #endif /* CONFIG_XTENSA_MPU */
      59              : } __packed __aligned(XTENSA_STACK_BASE_ALIGN);
      60              : 
      61              : #if defined(CONFIG_XTENSA_MMU) || defined(CONFIG_XTENSA_MPU)
      62              : #define ARCH_THREAD_STACK_RESERVED              \
      63              :         sizeof(struct xtensa_thread_stack_header)
      64              : #endif /* CONFIG_XTENSA_MMU || CONFIG_XTENSA_MPU */
      65              : 
      66            0 : #define ARCH_THREAD_STACK_OBJ_ALIGN(size)       XTENSA_STACK_BASE_ALIGN
      67            0 : #define ARCH_THREAD_STACK_SIZE_ADJUST(size)     \
      68              :         ROUND_UP((size), XTENSA_STACK_SIZE_ALIGN)
      69              : 
      70              : /* kernel stack */
      71            0 : #define ARCH_KERNEL_STACK_OBJ_ALIGN             ARCH_STACK_PTR_ALIGN
      72              : 
      73              : #endif /* _ASMLANGUAGE */
      74              : 
      75              : #endif
        

Generated by: LCOV version 2.0-1