GoldFish虛擬處理器鍵盤輸入部分的驅(qū)動(dòng)程序是event驅(qū)動(dòng)程序,在標(biāo)準(zhǔn)的路徑中,相關(guān)文件如下所示:
drivers/input/keyboard/goldfish_events.c
這個(gè)驅(qū)動(dòng)程序是一個(gè)標(biāo)準(zhǔn)的event驅(qū)動(dòng)程序,在用戶空間的設(shè)備節(jié)點(diǎn)為/dev/event/ event0,其核心的內(nèi)容為:
events_interrupt實(shí)現(xiàn)的是按鍵事件的中斷處理函數(shù),當(dāng)中斷發(fā)生后,讀取虛擬寄存器的內(nèi)容,將信息上報(bào)。實(shí)際上,虛擬寄存器中的內(nèi)容由模擬器根據(jù)主機(jī)環(huán)境鍵盤按下的情況得到。
è 8.3.2 用戶空間的配置文件
在模擬器環(huán)境中,使用了默認(rèn)的所有的KL和KCM文件,由于模擬器環(huán)境支持全鍵盤,因此基本上包含了大部分的功能。在模擬器環(huán)境中,實(shí)際上按鍵的掃描碼對(duì)應(yīng)的是桌面電腦的鍵盤(效果和鼠標(biāo)點(diǎn)擊模擬器的控制面板類似),鍵盤的某些按鍵按下后,轉(zhuǎn)化為驅(qū)動(dòng)程序中的掃描碼,然后再由上層的用戶空間處理。這個(gè)過(guò)程和實(shí)際系統(tǒng)中是類似的。顯然,通過(guò)更改默認(rèn)的KL文件,又可以更改實(shí)際按鍵的映射關(guān)系。