fb11e647
vrobic
reseau statique a...
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
/*
* Copyright (C) 2014-2015 Freie Universitรคt Berlin
*
* This file is subject to the terms and conditions of the GNU Lesser General
* Public License v2.1. See the file LICENSE in the top level directory for more
* details.
*/
/**
* @ingroup cpu_cortexm_common
* @{
*
* @file
* @brief Implementation of the kernels irq interface
*
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
*
* @}
*/
#include <stdint.h>
#include "arch/irq_arch.h"
#include "cpu.h"
/**
* @brief Disable all maskable interrupts
*/
unsigned int irq_arch_disable(void)
{
uint32_t mask = __get_PRIMASK();
__disable_irq();
return mask;
}
/**
* @brief Enable all maskable interrupts
*/
__attribute__((used)) unsigned int irq_arch_enable(void)
{
__enable_irq();
return __get_PRIMASK();
}
/**
* @brief Restore the state of the IRQ flags
*/
void irq_arch_restore(unsigned int state)
{
__set_PRIMASK(state);
}
/**
* @brief See if the current context is inside an ISR
*/
int irq_arch_in(void)
{
return (__get_IPSR() & 0xFF);
}
|