函数逻辑报告 | 
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 | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称: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
参数:无
| 45 | kbd_exists等于0 | 
| 46 | 返回:负1 | 
| 48 | kbd_exists等于1 | 
| 50 | 如果从端口输入字节按位与Keyboard output buffer full 的值恒等于0则返回:负1 | 
| 57 | scanstatus等于从端口输入字节 | 
| 62 | 如果scanstatus按位与Mouse output buffer full 则返回:负1 | 
| 83 | 如果scancode按位与0x7f的值恒等于0x1d则 | 
| 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 | 
| 128 | 返回:9 | 
| 130 | 返回:4 | 
| 132 | 返回:1 | 
| 134 | 返回:5 | 
| 136 | 返回:2 | 
| 138 | 返回:16 | 
| 140 | 返回:14 | 
| 142 | 返回:6 | 
| 145 | 如果scancode恒等于0xe0则返回:负1 | 
| 158 | 如果非shift_lock且非shift_key且非ctrl_key则 | 
| 160 | 否则如果shift_lock或shift_key的值且key_maps[1]则 | 
| 164 | 否则 | 
| 165 | keychar等于0x0020 | 
| 166 | kdb_printf("Unknown state/scancode (%d)\n", scancode) | 
| 168 | keychar与等于0x0fff | 
| 173 | 当:KTYP(keychar)恒等于we depend on this being zero | 
| 181 | 默认 | 
| 182 | 返回:负1 | 
| 185 | 如果scancode恒等于0x1c则 | 
| 186 | kbd_last_ret等于1 | 
| 187 | 返回:13 | 
| 190 | 返回:keychar按位与0xff | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |