|  | /* | 
|  | * Copyright (c) 2013-2014 Wind River Systems, Inc. | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  | #include <zephyr/device.h> | 
|  | #include <zephyr/pm/device.h> | 
|  | #include "kernel_internal.h" | 
|  |  | 
|  | #ifndef ZEPHYR_KERNEL_INCLUDE_KERNEL_OFFSETS_H_ | 
|  | #define ZEPHYR_KERNEL_INCLUDE_KERNEL_OFFSETS_H_ | 
|  |  | 
|  | #include <zephyr/syscall_list.h> | 
|  |  | 
|  | /* All of this is build time magic, but LCOV gets confused. Disable coverage | 
|  | * for this whole file. | 
|  | * | 
|  | * LCOV_EXCL_START | 
|  | */ | 
|  |  | 
|  | /* | 
|  | * The final link step uses the symbol _OffsetAbsSyms to force the linkage of | 
|  | * offsets.o into the ELF image. | 
|  | */ | 
|  |  | 
|  | GEN_ABS_SYM_BEGIN(_OffsetAbsSyms) | 
|  |  | 
|  | GEN_OFFSET_SYM(_cpu_t, current); | 
|  | GEN_OFFSET_SYM(_cpu_t, nested); | 
|  | GEN_OFFSET_SYM(_cpu_t, irq_stack); | 
|  | GEN_OFFSET_SYM(_cpu_t, arch); | 
|  |  | 
|  | GEN_OFFSET_SYM(_kernel_t, cpus); | 
|  |  | 
|  | #if defined(CONFIG_FPU_SHARING) | 
|  | GEN_OFFSET_SYM(_cpu_t, fp_ctx); | 
|  | #endif /* CONFIG_FPU_SHARING */ | 
|  |  | 
|  | #ifdef CONFIG_PM | 
|  | GEN_OFFSET_SYM(_kernel_t, idle); | 
|  | #endif /* CONFIG_PM */ | 
|  |  | 
|  | #ifndef CONFIG_SCHED_CPU_MASK_PIN_ONLY | 
|  | GEN_OFFSET_SYM(_kernel_t, ready_q); | 
|  | #endif /* CONFIG_SCHED_CPU_MASK_PIN_ONLY */ | 
|  |  | 
|  | #ifndef CONFIG_SMP | 
|  | GEN_OFFSET_SYM(_ready_q_t, cache); | 
|  | #endif /* CONFIG_SMP */ | 
|  |  | 
|  | GEN_OFFSET_SYM(_thread_base_t, user_options); | 
|  |  | 
|  | GEN_OFFSET_SYM(_thread_t, base); | 
|  | GEN_OFFSET_SYM(_thread_t, callee_saved); | 
|  | GEN_OFFSET_SYM(_thread_t, arch); | 
|  |  | 
|  | #ifdef CONFIG_USE_SWITCH | 
|  | GEN_OFFSET_SYM(_thread_t, switch_handle); | 
|  | #endif /* CONFIG_USE_SWITCH */ | 
|  |  | 
|  | #ifdef CONFIG_THREAD_STACK_INFO | 
|  | GEN_OFFSET_SYM(_thread_t, stack_info); | 
|  | #endif /* CONFIG_THREAD_STACK_INFO */ | 
|  |  | 
|  | #ifdef CONFIG_THREAD_LOCAL_STORAGE | 
|  | GEN_OFFSET_SYM(_thread_t, tls); | 
|  | #endif /* CONFIG_THREAD_LOCAL_STORAGE */ | 
|  |  | 
|  | GEN_ABSOLUTE_SYM(__z_interrupt_stack_SIZEOF, sizeof(z_interrupt_stacks[0])); | 
|  | GEN_ABSOLUTE_SYM(__z_interrupt_all_stacks_SIZEOF, sizeof(z_interrupt_stacks)); | 
|  |  | 
|  | /* member offsets in the device structure. Used in image post-processing */ | 
|  | #ifdef CONFIG_DEVICE_DEPS | 
|  | GEN_ABSOLUTE_SYM(_DEVICE_STRUCT_HANDLES_OFFSET, | 
|  | offsetof(struct device, deps)); | 
|  | #endif /* CONFIG_DEVICE_DEPS */ | 
|  |  | 
|  | #ifdef CONFIG_PM_DEVICE | 
|  | GEN_ABSOLUTE_SYM(_DEVICE_STRUCT_PM_OFFSET, | 
|  | offsetof(struct device, pm)); | 
|  | #endif /* CONFIG_PM_DEVICE */ | 
|  |  | 
|  | /* member offsets in the pm_device structure. Used in image post-processing */ | 
|  |  | 
|  | GEN_ABSOLUTE_SYM(_PM_DEVICE_STRUCT_FLAGS_OFFSET, | 
|  | offsetof(struct pm_device_base, flags)); | 
|  |  | 
|  | GEN_ABSOLUTE_SYM(_PM_DEVICE_FLAG_PD, PM_DEVICE_FLAG_PD); | 
|  |  | 
|  | /* LCOV_EXCL_STOP */ | 
|  | #endif /* ZEPHYR_KERNEL_INCLUDE_KERNEL_OFFSETS_H_ */ |