Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
thread.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021 Intel Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_ARCH_XTENSA_THREAD_H_
8#define ZEPHYR_INCLUDE_ARCH_XTENSA_THREAD_H_
9
10#include <stdint.h>
11#ifndef _ASMLANGUAGE
12
13#ifdef CONFIG_XTENSA_MPU
15#endif
16
17/* Xtensa doesn't use these structs, but Zephyr core requires they be
18 * defined so they can be included in struct _thread_base. Dummy
19 * field exists for sizeof compatibility with C++.
20 */
21
22struct _callee_saved {
23 char dummy;
24};
25
26typedef struct _callee_saved _callee_saved_t;
27
28struct _thread_arch {
29 uint32_t last_cpu;
30#ifdef CONFIG_USERSPACE
31
32#ifdef CONFIG_XTENSA_MMU
33 uint32_t *ptables;
34#endif
35
36#ifdef CONFIG_XTENSA_MPU
37 /* Pointer to the memory domain's MPU map. */
38 struct xtensa_mpu_map *mpu_map;
39#endif
40
41 /* Initial privilege mode stack pointer when doing a system call.
42 * Un-set for surpervisor threads.
43 */
44 uint8_t *psp;
45#endif
46};
47
48typedef struct _thread_arch _thread_arch_t;
49
50#endif /* _ASMLANGUAGE */
51
52#endif /* ZEPHYR_INCLUDE_ARCH_XTENSA_THREAD_H_ */
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Struct to hold foreground MPU map and its entries.
Definition mpu.h:186