函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\debug\kdb\kdb_keyboard.c Create Date:2022-07-27 12:49:12
Last Modify:2020-03-17 19:12:05 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Check if the keyboard controller has a keypress for us.* Some parts (Enter Release, LED change) are still blocking polled here,* but hopefully they are all short.

函数原型:int kdb_get_kbd_char(void)

返回类型:int

参数:

43  如果KDB_FLAG(NO_I8042)或KDB_FLAG(NO_VT_CONSOLE)或从端口输入字节恒等于0xff且从端口输入字节恒等于0xff则
45  kbd_exists等于0
46  返回:负1
48  kbd_exists等于1
50  如果从端口输入字节按位与Keyboard output buffer full 的值恒等于0则返回:负1
56  scancode等于从端口输入字节
57  scanstatus等于从端口输入字节
62  如果scanstatus按位与Mouse output buffer full 则返回:负1
72  如果scancode按位与0x7f的值恒等于0x2a或scancode按位与0x7f的值恒等于0x36则
76  如果scancode按位与0x80的值恒等于0则shift_key等于1
78  否则shift_key等于0
80  返回:负1
83  如果scancode按位与0x7f的值恒等于0x1d则
87  如果scancode按位与0x80的值恒等于0则ctrl_key等于1
89  否则ctrl_key等于0
91  返回:负1
94  如果scancode按位与0x80的值不等于0则
95  如果scancode恒等于0x9c则kbd_last_ret等于0
97  返回:负1
100  scancode与等于0x7f
106  如果scancode恒等于0x3a则
110  shift_lock异或等于1
115  返回:负1
118  如果scancode恒等于0x0e则
122  返回:8
127  :scancode恒等于0xF
128  返回:9
129  :scancode恒等于0x53
130  返回:4
131  :scancode恒等于0x47
132  返回:1
133  :scancode恒等于0x4F
134  返回:5
135  :scancode恒等于0x4B
136  返回:2
137  :scancode恒等于0x48
138  返回:16
139  :scancode恒等于0x50
140  返回:14
141  :scancode恒等于0x4D
142  返回:6
145  如果scancode恒等于0xe0则返回:负1
153  如果scancode恒等于0x73则scancode等于0x59
155  否则如果scancode恒等于0x7d则scancode等于0x7c
158  如果非shift_lock且非shift_key且非ctrl_key
159  keychar等于plain_map[scancode]
160  否则如果shift_lockshift_key的值且key_maps[1]则
161  keychar等于key_maps[1][scancode]
162  否则如果ctrl_keykey_maps[4]则
163  keychar等于key_maps[4][scancode]
164  否则
165  keychar等于0x0020
166  kdb_printf("Unknown state/scancode (%d)\n", scancode)
168  keychar与等于0x0fff
169  如果keychar恒等于'\t'则keychar等于' '
172  :KTYP(keychar)恒等于symbol that can be acted upon by CapsLock
174  如果isprint(keychar)则退出
177  :KTYP(keychar)恒等于KT_SPEC
178  如果keychar恒等于K_ENTER退出
181  默认
182  返回:负1
185  如果scancode恒等于0x1c则
186  kbd_last_ret等于1
187  返回:13
190  返回:keychar按位与0xff