Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3:Staging:A
syslinux
syslinux-4.04-timeout.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File syslinux-4.04-timeout.diff of Package syslinux
diff --git a/core/ui.inc b/core/ui.inc index 0a4bb56..97945c9 100644 --- a/core/ui.inc +++ b/core/ui.inc @@ -529,30 +529,36 @@ kernel_corrupt: mov si,err_notkernel ; which can be adjusted by the caller based on the corresponding ; master variables; on return they're updated. ; -; This cheats. If we say "no timeout" we actually get a timeout of -; 7.5 years. -; getchar_timeout: call vgashowcursor call reset_idle .loop: - push word [__jiffies] + push dword [__jiffies] call pollchar jnz .got_char call do_idle - pop ax - cmp ax,[__jiffies] ; Has the timer advanced? + pop eax + sub eax,[__jiffies] ; Has the timer advanced? je .loop - dec dword [ThisKbdTo] - jz .timeout - dec dword [ThisTotalTo] - jnz .loop + ; more than one tick may have passed, keep the diff in eax + neg eax + + cmp dword [ThisKbdTo],0 + jz .chk_total + sub [ThisKbdTo],eax + jbe .timeout + +.chk_total: + cmp dword [ThisTotalTo],0 + jz .loop + sub [ThisTotalTo],eax + ja .loop .timeout: ; Timeout!!!! - pop cx ; Discard return address + pop ecx ; Discard return address call vgahidecursor mov si,Ontimeout ; Copy ontimeout command mov di,command_line @@ -561,7 +567,7 @@ getchar_timeout: jmp command_done .got_char: - pop cx ; Discard + pop ecx ; Discard call getchar call vgahidecursor ret
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor