All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
irq.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2013,2019 Freie Universität Berlin
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
9#ifndef IRQ_H
10#define IRQ_H
11
25#include <stdbool.h>
26#include "cpu_conf.h"
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#ifdef IRQ_API_INLINED
33# define MAYBE_INLINE static inline __attribute__((always_inline))
34#else
35# define MAYBE_INLINE
36#endif /* IRQ_API_INLINED */
37
38#ifndef IRQ_API_INLINED
48MAYBE_INLINE unsigned irq_disable(void);
49
64MAYBE_INLINE unsigned irq_enable(void);
65
74MAYBE_INLINE void irq_restore(unsigned state);
75
85MAYBE_INLINE bool irq_is_enabled(void);
86
91MAYBE_INLINE bool irq_is_in(void);
92
93#else
94# include "irq_arch.h" /* IWYU pragma: export */
95#endif /* IRQ_API_INLINED */
96
97#ifdef __cplusplus
98}
99#endif
100
102#endif /* IRQ_H */
MAYBE_INLINE void irq_restore(unsigned state)
This function restores the IRQ disable bit in the status register to the value contained within passe...
MAYBE_INLINE unsigned irq_disable(void)
This function sets the IRQ disable bit in the status register.
MAYBE_INLINE bool irq_is_enabled(void)
Test if IRQs are currently enabled.
MAYBE_INLINE unsigned irq_enable(void)
This function clears the IRQ disable bit in the status register.
MAYBE_INLINE bool irq_is_in(void)
Check whether called from interrupt service routine.