Skip to main contentModule user_win
Source - Registry 🔒
- UserApp
- EL0 アプリの代理として WM に住むプロキシアプリ
- UserWinShared
- EL0 プロセスとカーネル側 UserApp が共有するウィンドウ状態
- EV_CLOSED
- EV_KEY
- イベントのエンコード (u64):
bits 56..63 = 種別 (1=Key, 2=Mouse, 3=Closed)
Key : bits 0..7 = keycode, bit 8 = pressed, bits 16..31 = ascii (0 なら None)
Mouse: bits 0..15 = x (i16), bits 16..31 = y (i16), bit 32 = 左ボタン, bits 40..47 = wheel (i8)
- EV_MOUSE
- MAX_DIM 🔒
- MAX_EVENTS 🔒
- REGISTRY 🔒
- lookup 🔒
- sys_win_blit
- SYS_WIN_BLIT: x0 = handle, x1 = ピクセルポインタ (u32 ARGB, width*height 個)
戻り値: 0 = 成功, usize::MAX = 失敗
- sys_win_close
- SYS_WIN_CLOSE: x0 = handle。EL0 側からウィンドウを閉じる
- sys_win_create
- SYS_WIN_CREATE: x0 = リクエスト構造体ポインタ [title_ptr, title_len, width, height]
戻り値: ウィンドウハンドル(0 = 失敗)
- sys_win_poll
- SYS_WIN_POLL: x0 = handle, x1 = イベント書き込み先ポインタ (u64)
戻り値: 1 = イベントあり, 0 = なし, usize::MAX = 失敗