Project

General

Profile

Statistics
| Revision:

root / proj / project / include / interrupts_func.h @ 355

History | View | Annotate | Download (1.33 KB)

1
#ifndef INTERRUPTS_FUNC_H_INCLUDED
2
#define INTERRUPTS_FUNC_H_INCLUDED
3

    
4
/**
5
 * @defgroup interrupts_func interrupts_func
6
 * @brief Interrupts functions.
7
 *
8
 * @{
9
 */
10

    
11
#include "libs.h"
12

    
13
/**
14
 * @brief Subscribes all drivers used (timer->keyboard->mouse)
15
 * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
16
 * @see {_ERRORS_H_::errors}
17
 */
18
int (subscribe_all)(void);
19

    
20
/**
21
 * @brief Unsubscribes all subscribed interrupts
22
 * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
23
 * @see {_ERRORS_H_::errors}
24
 */
25
int (unsubscribe_all)(void);
26

    
27
/**
28
 * @brief Calls interrupt handler corresponding to the bit specified by the argument.
29
 * @param handler Interrupt handler to call
30
 */
31
void interrupt_handler(uint8_t handler);
32

    
33
/**
34
 * @brief Blocking function that waits for an interrupt to occur.
35
 *
36
 * Rewrites the provided argument with the interrupt vector it gets.
37
 *
38
 * This function decisively reduces the complexity of an interrupt cycle, allowing
39
 * for each menu to have its own, simplified interrupt cycle.
40
 * @param   p   Pointer where interrupt vector will be saved
41
 */
42
int get_interrupts_vector(uint64_t *p);
43

    
44
/**
45
 * @}
46
 */
47

    
48
#endif /* end of include guard: INTERRUPTS_FUNC_H_INCLUDED */