diff options
author | Jan Beulich <jbeulich@suse.com> | 2012-09-12 10:17:34 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2012-09-12 10:17:34 +0200 |
commit | 7aa9625cc4b549a6316b43c5f07cc2dec1d7a8ce (patch) | |
tree | ef21c0647953f717ea89209808c7ddbd5b5adf88 /xen/arch/x86/boot/trampoline.S | |
parent | 9badeb5dcd4deaebcab6d736943b8ffc2afdacb3 (diff) | |
download | xen-7aa9625cc4b549a6316b43c5f07cc2dec1d7a8ce.tar.gz xen-7aa9625cc4b549a6316b43c5f07cc2dec1d7a8ce.tar.bz2 xen-7aa9625cc4b549a6316b43c5f07cc2dec1d7a8ce.zip |
x86: retrieve keyboard shift status flags from BIOS
Recent Linux tries to make use of this, and has no way of getting at
these bits without Xen assisting it.
There doesn't appear to be a way to obtain the same information from
UEFI.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/arch/x86/boot/trampoline.S')
-rw-r--r-- | xen/arch/x86/boot/trampoline.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/xen/arch/x86/boot/trampoline.S b/xen/arch/x86/boot/trampoline.S index 4421fc2c69..c6bda28103 100644 --- a/xen/arch/x86/boot/trampoline.S +++ b/xen/arch/x86/boot/trampoline.S @@ -184,11 +184,16 @@ trampoline_boot_cpu_entry: * 1. Get memory map. * 2. Get Enhanced Disk Drive (EDD) information. * 3. Set video mode. + * 4. Get keyboard shift flags. */ call get_memory_map call get_edd call video + mov $0x0200,%ax + int $0x16 + mov %al,bootsym(kbd_shift_flags) + /* Disable irqs before returning to protected mode. */ cli @@ -221,6 +226,10 @@ trampoline_boot_cpu_entry: skip_realmode: .byte 0 + .globl kbd_shift_flags +kbd_shift_flags: + .byte 0 + rm_idt: .word 256*4-1, 0, 0 #include "mem.S" |