zephyr/kernel/include/offsets_short.h
Daniel Leung 02b20351cd kernel: add common bits to support TLS
This adds the common struct fields and functions to support
the implementation of thread local storage in individual
architecture. This uses the thread stack to store TLS data.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2020-10-24 10:52:00 -07:00

77 lines
1.8 KiB
C

/*
* Copyright (c) 2016 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_KERNEL_INCLUDE_OFFSETS_SHORT_H_
#define ZEPHYR_KERNEL_INCLUDE_OFFSETS_SHORT_H_
#include <offsets.h>
#include <offsets_short_arch.h>
/* kernel */
/* main */
#ifndef CONFIG_SMP
/* Relies on _kernel.cpu being the first member of _kernel and having 1 element
*/
#define _kernel_offset_to_nested \
(___cpu_t_nested_OFFSET)
#define _kernel_offset_to_irq_stack \
(___cpu_t_irq_stack_OFFSET)
#define _kernel_offset_to_current \
(___cpu_t_current_OFFSET)
#endif /* CONFIG_SMP */
#define _kernel_offset_to_idle \
(___kernel_t_idle_OFFSET)
#define _kernel_offset_to_current_fp \
(___kernel_t_current_fp_OFFSET)
#define _kernel_offset_to_ready_q_cache \
(___kernel_t_ready_q_OFFSET + ___ready_q_t_cache_OFFSET)
/* end - kernel */
/* threads */
/* main */
#define _thread_offset_to_callee_saved \
(___thread_t_callee_saved_OFFSET)
#ifdef CONFIG_THREAD_LOCAL_STORAGE
#define _thread_offset_to_tls \
(___thread_t_tls_OFFSET)
#endif /* CONFIG_THREAD_LOCAL_STORAGE */
/* base */
#define _thread_offset_to_thread_state \
(___thread_t_base_OFFSET + ___thread_base_t_thread_state_OFFSET)
#define _thread_offset_to_user_options \
(___thread_t_base_OFFSET + ___thread_base_t_user_options_OFFSET)
#define _thread_offset_to_prio \
(___thread_t_base_OFFSET + ___thread_base_t_prio_OFFSET)
#define _thread_offset_to_sched_locked \
(___thread_t_base_OFFSET + ___thread_base_t_sched_locked_OFFSET)
#define _thread_offset_to_preempt \
(___thread_t_base_OFFSET + ___thread_base_t_preempt_OFFSET)
#define _thread_offset_to_esf \
(___thread_t_arch_OFFSET + ___thread_arch_t_esf_OFFSET)
#define _thread_offset_to_stack_start \
(___thread_t_stack_info_OFFSET + ___thread_stack_info_t_start_OFFSET)
/* end - threads */
#endif /* ZEPHYR_KERNEL_INCLUDE_OFFSETS_SHORT_H_ */