summaryrefslogtreecommitdiff
path: root/core/timer.inc
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'syslinux-5.00' into firmwaresyslinux-6.00-pre3Matt Fleming2012-12-071-4/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Makefile com32/elflink/ldlinux/Makefile com32/lib/sys/module/elf_module.c core/cleanup.c core/comboot.inc core/conio.c core/fs/fs.c core/init.c core/mem/free.c core/mem/malloc.c core/timer.inc diag/geodsp/Makefile extlinux/main.c mk/embedded.mk modules/Makefile Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * Symbol export whitelistMatt Fleming2012-12-051-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before modules were dynamically loaded the boundary between GPL and non-GPL code was implicit because of the separate link domains for each module. With dynamic modules we need an explicit whitelist of core symbols that non-GPL code can link against at runtime without needing to be re-licensed under the GPL. Mark such symbols with __export, so that it is explicitly clear which symbols in the core can be linked against by non-GPL code. Reduce the visibility of symbols in both the core and ldlinux.c32 with -fvisibility=hidden. __export changes the visibility to 'default'. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | core: Add firmware backend supportMatt Fleming2011-12-161-2/+2
|/ | | | | | | | In an upcoming patch series we're going to need to abstract the firmware operations because they will be provided by both BIOS and EFI. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* core: Reimplement lots asm code in CMatt Fleming2011-12-011-0/+3
| | | | | | | | | | | | | | | | | | | | There is an awful lot of code currently implemented in assembly when it could just as easily be implemented in C. Having it in C makes it much easier to share code between the BIOS and forthcoming EFI firmware backend. The following code fragments have been rewritten, - timer initialisation - adjust_screen() - check_esapes() and mem_init() - conio.inc - plaincon.inc - cleanup.inc - serirq.inc - font.inc - graphics - writehex Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* core: add a ms-denominated timerH. Peter Anvin2010-07-051-2/+13
| | | | | | | | | Add a timer denominated in milliseconds. This is still driven by the 18.2 Hz timer interrupt, but counts "real" milliseconds, including handing the adjustment factor (which in reality means it advances by 55 for most timer ticks and 54 for some.) Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* core: move __jiffies and _IdleTimer to .data16syslinux-4.00-pre37H. Peter Anvin2010-03-301-3/+3
| | | | | | | | Move the __jiffies and _IdleTimer variables to the .data16 segment. This ensures that if do_idle is invoked very early that it will not jump off into a non-existent idle routine. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* core: make sure __jiffies is alignedH. Peter Anvin2009-09-021-0/+1
| | | | | | | __jiffies really wants to be aligned. We're not SMP, so technically it will be atomic anyway. Still... Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* core: hook INT 1Ch for a simple monotonic timerH. Peter Anvin2009-09-021-0/+45
The BIOS_timer variable at 4C6h is somewhat unreliable... it is documented to wrap at "midnight", norminally after 1627419 ticks (0x18d51b), which is a rather awkward number to deal with modulo. Instead, hook the INT 1Ch secondary timer interrupt and just count a simple incrementing variable. Signed-off-by: H. Peter Anvin <hpa@zytor.com>