Zephyr API Documentation  3.6.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
arch.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2010-2014 Wind River Systems, Inc.
3 * Copyright (c) 2017 Oticon A/S
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
17#ifndef ZEPHYR_INCLUDE_ARCH_POSIX_ARCH_H_
18#define ZEPHYR_INCLUDE_ARCH_POSIX_ARCH_H_
19
20/* Add include for DTS generated information */
21#include <zephyr/devicetree.h>
22
23#include <zephyr/toolchain.h>
24#include <zephyr/irq.h>
27#include <board_irq.h> /* Each board must define this */
28#include <zephyr/sw_isr_table.h>
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35#ifdef CONFIG_64BIT
36#define ARCH_STACK_PTR_ALIGN 8
37#else
38#define ARCH_STACK_PTR_ALIGN 4
39#endif
40
41struct __esf {
42 uint32_t dummy; /*maybe we will want to add something someday*/
43};
44
45typedef struct __esf z_arch_esf_t;
46
48
49static inline uint32_t arch_k_cycle_get_32(void)
50{
52}
53
55
56static inline uint64_t arch_k_cycle_get_64(void)
57{
59}
60
61static ALWAYS_INLINE void arch_nop(void)
62{
63 __asm__ volatile("nop");
64}
65
66static ALWAYS_INLINE bool arch_irq_unlocked(unsigned int key)
67{
68 return key == false;
69}
70
71static ALWAYS_INLINE unsigned int arch_irq_lock(void)
72{
73 return posix_irq_lock();
74}
75
76
77static ALWAYS_INLINE void arch_irq_unlock(unsigned int key)
78{
80}
81
82#ifdef __cplusplus
83}
84#endif
85
86#endif /* ZEPHYR_INCLUDE_ARCH_POSIX_ARCH_H_ */
static ALWAYS_INLINE void arch_nop(void)
Definition: arch.h:348
Per-arch thread definition.
#define ALWAYS_INLINE
Definition: common.h:129
Devicetree main header.
Public interface for configuring interrupts.
static ALWAYS_INLINE unsigned int arch_irq_lock(void)
Definition: arch.h:63
static ALWAYS_INLINE void arch_irq_unlock(unsigned int key)
Definition: arch.h:74
uint64_t sys_clock_cycle_get_64(void)
uint32_t sys_clock_cycle_get_32(void)
static uint32_t arch_k_cycle_get_32(void)
Definition: arch.h:99
static uint64_t arch_k_cycle_get_64(void)
Definition: arch.h:106
static ALWAYS_INLINE bool arch_irq_unlocked(unsigned int key)
Definition: arch.h:87
unsigned int posix_irq_lock(void)
void posix_irq_unlock(unsigned int key)
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT64_TYPE__ uint64_t
Definition: stdint.h:91
Software-managed ISR table.
Macros to abstract toolchain specific capabilities.