root / lab4 / .minix-src / include / lcom / lab3.h @ 14
History | View | Annotate | Download (1.75 KB)
1 | 13 | up20180614 | #pragma once
|
---|---|---|---|
2 | |||
3 | #include <stdbool.h> |
||
4 | #include <stdint.h> |
||
5 | |||
6 | /** @defgroup lab3 lab3
|
||
7 | * @{
|
||
8 | *
|
||
9 | * Functions for testing the kbd code
|
||
10 | */
|
||
11 | |||
12 | /**
|
||
13 | * @brief To test reading of scancodes via KBD interrupts
|
||
14 | *
|
||
15 | * Displays the scancodes received from the keyboard
|
||
16 | * Exits upon release of the ESC key
|
||
17 | *
|
||
18 | * @return Return 0 upon success and non-zero otherwise
|
||
19 | */
|
||
20 | int (kbd_test_scan)();
|
||
21 | |||
22 | /**
|
||
23 | * @brief To test reading of scancodes via polling
|
||
24 | *
|
||
25 | * Displays the scancodes received from the keyboard
|
||
26 | * Exits upon release of the ESC key
|
||
27 | *
|
||
28 | * @return Return 0 upon success and non-zero otherwise
|
||
29 | */
|
||
30 | int (kbd_test_poll)();
|
||
31 | |||
32 | /**
|
||
33 | * @brief To test handling of more than one interrupt
|
||
34 | *
|
||
35 | * Similar to kbd_test_scan() except that it
|
||
36 | * should terminate also if no scancodes are received for n seconds
|
||
37 | *
|
||
38 | * @param n Number of seconds without scancodes before exiting
|
||
39 | *
|
||
40 | * @return Return 0 upon success and non-zero otherwise
|
||
41 | */
|
||
42 | int (kbd_test_timed_scan)(uint8_t n);
|
||
43 | |||
44 | /**
|
||
45 | * @brief Interrupt handler to read scancodes in C.
|
||
46 | */
|
||
47 | void (kbc_ih)(void); |
||
48 | |||
49 | /**
|
||
50 | * @brief To print the scancodes
|
||
51 | *
|
||
52 | * Prints the scancodes via printf
|
||
53 | * Provided via the LCF -- no need to implement it
|
||
54 | *
|
||
55 | * @param make Whether this is a make or a break code
|
||
56 | * @param size Size in bytes of the scancode
|
||
57 | * @param bytes Array with size elements, with the scancode bytes
|
||
58 | *
|
||
59 | * @return Return 0 upon success and non-zero otherwise
|
||
60 | */
|
||
61 | int (kbd_print_scancode)(bool make, uint8_t size, uint8_t *bytes); |
||
62 | |||
63 | /**
|
||
64 | * @brief To print the no of sys_inb() calls
|
||
65 | *
|
||
66 | * Prints the no of sys_inb() calls via printf
|
||
67 | * Provided via the LCF -- no need to implement it
|
||
68 | *
|
||
69 | * @param no_calls Number of sys_inb() calls via printf
|
||
70 | *
|
||
71 | * @return Return 0 upon success and non-zero otherwise
|
||
72 | */
|
||
73 | int (kbd_print_no_sysinb)(uint32_t cnt); |