Project

General

Profile

Statistics
| Revision:

root / lab3 / kbc_func.h @ 30

History | View | Annotate | Download (1.16 KB)

1 30 up20180655
#ifndef _KBC_FUNC_H_
2
#define _KBC_FUNC_H_
3
4
#include <stdint.h>
5
6
#define GET         0 /* @brief Argument to get counter without incrementing */
7
#define INCREMENT   1 /* @brief Argument for incrementing counter */
8
9
/**
10
 * @brief Subscribes KBC Interrupts and disables Minix Default Keyboard IH
11
 * @param interrupt_bit Bit of Interrupt Vector that will be set when KBC Interrupt is pending
12
 * @param interrupt_id KBC Interrupt ID to specify the KBC Interrupt in other calls
13
 * @return Whether operation was sucessful or not
14
 */
15
int (subscribe_kbc_interrupt)(uint8_t interrupt_bit, int *interrupt_id);
16
17
/**
18
 * @brief Unsubcribes KBC Interrupts
19
 * @param interrupt_id KBC Interrupt ID, value via arguments on subscription of the interrupt_id
20
 * @see subscribe_kbc_interrupt
21
 * @return Whether operation was sucessful or not
22
 */
23
int (unsubscribe_kbc_interrupt)(int *interrupt_id);
24
25
/**
26
 * @brief KBC Interrupt Handler
27
 */
28
void (kbc_ih)(void);
29
30
/**
31
 * @brief Counter for sys_inb calls
32
 * @param increment Whether the value should be incremented or not
33
 * @return The current value of the counter
34
 */
35
uint32_t sys_inb_counter(int get_increment);
36
37
#endif