Line data Source code
1 0 : /*
2 : * Copyright (c) 2014-2016 Wind River Systems, Inc.
3 : * Copyright (c) 2019 Stephanos Ioannidis <root@stephanos.io>
4 : *
5 : * SPDX-License-Identifier: Apache-2.0
6 : */
7 :
8 : #ifndef ZEPHYR_INCLUDE_ARCH_ARC_ARCH_INLINES_H_
9 : #define ZEPHYR_INCLUDE_ARCH_ARC_ARCH_INLINES_H_
10 :
11 : #ifndef _ASMLANGUAGE
12 :
13 : #include <zephyr/kernel_structs.h>
14 :
15 : #include <zephyr/arch/arc/v2/aux_regs.h>
16 :
17 0 : static ALWAYS_INLINE _cpu_t *arch_curr_cpu(void)
18 : {
19 : #ifdef CONFIG_SMP
20 : uint32_t core;
21 :
22 : core = z_arc_v2_core_id();
23 :
24 : return &_kernel.cpus[core];
25 : #else
26 : return &_kernel.cpus[0];
27 : #endif /* CONFIG_SMP */
28 : }
29 :
30 0 : static ALWAYS_INLINE uint32_t arch_proc_id(void)
31 : {
32 : /*
33 : * Placeholder implementation to be replaced with an architecture
34 : * specific call to get processor ID
35 : */
36 : return arch_curr_cpu()->id;
37 : }
38 :
39 0 : static ALWAYS_INLINE unsigned int arch_num_cpus(void)
40 : {
41 : return CONFIG_MP_MAX_NUM_CPUS;
42 : }
43 :
44 : #endif /* !_ASMLANGUAGE */
45 : #endif /* ZEPHYR_INCLUDE_ARCH_ARC_ARCH_INLINES_H_ */
|