所以回到
main
函式中,繼續走,下乙個該執行
keyboard_set_repeat()
函式了。
59/*
60 * set the keyboard repeat rate to maximum.unclear why this
61 * is done here; this might be possible to kill off as stale code.
62 */
63static void keyboard_set_repeat(void)
64 70
這個函式不需要多說,就是觸發
bios
的第16
號中斷。這個中斷的引數來自於
ireg的ax
暫存器,該引數的值為
0x0305
,其作用為設定鍵盤重複延時和速率。從注釋我們可以看出,寫**的人也不明白為什麼這個時候要觸發這麼乙個中斷,估計是為了與老**相容吧。
繼續走,來看
main
中的query_mca()
函式。這個函式來自
arc/x86/boot/mca.c
:18int query_mca(void)
19 在「
bios
系統服務
——雜項系統服務」一篇博文中
我們知道,
bios的15
號服務程式用於讀取系統環境,這裡的
query_mca()
函式中執行
25行**後,
oreg
中的暫存器就有了博文中「配置表的位址(
es:bx
)」,再通過
30行將
fs暫存器的值設為
es,即配置表位址的基位址,內部變數
len為配置表位址的偏移量。最後將系統環境配置表的內容拷貝到
boot_params
的sys_desc_table中。在
main
函式裡接下來乙個過程是
query_ist
函式,位於
main
函式同乙個檔案中:
71/*
72 * get intel speedstep (ist) information.
73 */
74static void query_ist(void)
75 該函式同樣是利用第15號
bios
服務程式,得到
intel
的ist
資訊。分別儲存在
boot_params
的ist_info
的四個欄位中。
main.c
的隨後兩個函式
query_apm_bios()
和query_edd()
涉及到apm
和edd
的內容,執行過程也與
query_ist
差不多,分別填充了的
boot_params
的apm_bios_info
字段、edd_mbr_sig_buf_entries
欄位和eddbuf_entries
字段,所以我們也就不細講了。
設定dvorak鍵盤
vi etc locale.conf預設配置檔案中只有lang這一項,還可以新增以下專案 選項描述 lang 提供系統區域設定的預設值。lc collate 更改比較本地字母表中的字串的函式的行為。lc ctype 更改字元處理和分類函式以及多位元組字元函式的行為。lc numeric 描述通常列印...
鍵盤的相關設定
一 鍵盤風格 uikit框架支援8種風格鍵盤。typedefenumuikeyboardtype 用法用例 textview.keyboardtype uikeyboardtypenumberpad 二 鍵盤外觀 typedefenumuireturnkeytype 用法用例 textview.re...
鍵盤樣式風格設定
一 鍵盤風格 uikit框架支援8種風格鍵盤。typedefenumuikeyboardtype 用法用例 textview.keyboardtype uikeyboardtypenumberpad 二 鍵盤外觀 typedefenumuireturnkeytype 用法用例 textview.re...