瀏覽代碼

[efi] Support displaying and hiding cursor

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 10 年之前
父節點
當前提交
f1b520dbad
共有 1 個檔案被更改,包括 32 行新增0 行删除
  1. 32
    0
      src/interface/efi/efi_console.c

+ 32
- 0
src/interface/efi/efi_console.c 查看文件

@@ -152,11 +152,43 @@ static void efi_handle_sgr ( struct ansiesc_context *ctx __unused,
152 152
 	conout->SetAttribute ( conout, efi_attr );
153 153
 }
154 154
 
155
+/**
156
+ * Handle ANSI DECTCEM set (show cursor)
157
+ *
158
+ * @v ctx		ANSI escape sequence context
159
+ * @v count		Parameter count
160
+ * @v params		List of graphic rendition aspects
161
+ */
162
+static void efi_handle_dectcem_set ( struct ansiesc_context *ctx __unused,
163
+				     unsigned int count __unused,
164
+				     int params[] __unused ) {
165
+	EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *conout = efi_systab->ConOut;
166
+
167
+	conout->EnableCursor ( conout, TRUE );
168
+}
169
+
170
+/**
171
+ * Handle ANSI DECTCEM reset (hide cursor)
172
+ *
173
+ * @v ctx		ANSI escape sequence context
174
+ * @v count		Parameter count
175
+ * @v params		List of graphic rendition aspects
176
+ */
177
+static void efi_handle_dectcem_reset ( struct ansiesc_context *ctx __unused,
178
+				       unsigned int count __unused,
179
+				       int params[] __unused ) {
180
+	EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *conout = efi_systab->ConOut;
181
+
182
+	conout->EnableCursor ( conout, FALSE );
183
+}
184
+
155 185
 /** EFI console ANSI escape sequence handlers */
156 186
 static struct ansiesc_handler efi_ansiesc_handlers[] = {
157 187
 	{ ANSIESC_CUP, efi_handle_cup },
158 188
 	{ ANSIESC_ED, efi_handle_ed },
159 189
 	{ ANSIESC_SGR, efi_handle_sgr },
190
+	{ ANSIESC_DECTCEM_SET, efi_handle_dectcem_set },
191
+	{ ANSIESC_DECTCEM_RESET, efi_handle_dectcem_reset },
160 192
 	{ 0, NULL }
161 193
 };
162 194
 

Loading…
取消
儲存