root / proj / include / interrupts_func.h @ 347
History | View | Annotate | Download (1.39 KB)
1 | 154 | up20180655 | #ifndef INTERRUPTS_FUNC_H_INCLUDED
|
---|---|---|---|
2 | #define INTERRUPTS_FUNC_H_INCLUDED
|
||
3 | |||
4 | /**
|
||
5 | 340 | up20180642 | * @defgroup interrupts_func interrupts_func
|
6 | * @brief Interrupts functions.
|
||
7 | *
|
||
8 | * @{
|
||
9 | */
|
||
10 | |||
11 | 345 | up20180642 | #include "timer.h" |
12 | #include "kbc.h" |
||
13 | #include "keyboard.h" |
||
14 | #include "mouse.h" |
||
15 | |||
16 | 340 | up20180642 | /**
|
17 | 154 | up20180655 | * @brief Subscribes all drivers used (timer->keyboard->mouse)
|
18 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
19 | * @see {_ERRORS_H_::errors}
|
||
20 | */
|
||
21 | int (subscribe_all)(void); |
||
22 | |||
23 | /**
|
||
24 | * @brief Unsubscribes all subscribed interrupts
|
||
25 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
26 | * @see {_ERRORS_H_::errors}
|
||
27 | */
|
||
28 | int (unsubscribe_all)(void); |
||
29 | |||
30 | /**
|
||
31 | * @brief Calls interrupt handler corresponding to the bit specified by the argument.
|
||
32 | * @param handler Interrupt handler to call
|
||
33 | */
|
||
34 | void interrupt_handler(uint8_t handler);
|
||
35 | |||
36 | 345 | up20180642 | /**
|
37 | * @brief Blocking function that waits for an interrupt to occur.
|
||
38 | *
|
||
39 | * Rewrites the provided argument with the interrupt vector it gets.
|
||
40 | *
|
||
41 | * This function decisively reduces the complexity of an interrupt cycle, allowing
|
||
42 | * for each menu to have its own, simplified interrupt cycle.
|
||
43 | * @param p Pointer where interrupt vector will be saved
|
||
44 | */
|
||
45 | 323 | up20180642 | int get_interrupts_vector(uint64_t *p);
|
46 | 304 | up20180642 | |
47 | 340 | up20180642 | /**
|
48 | * @}
|
||
49 | */
|
||
50 | |||
51 | 154 | up20180655 | #endif /* end of include guard: INTERRUPTS_FUNC_H_INCLUDED */ |