summaryrefslogtreecommitdiff
path: root/com32/include/syslinux/firmware.h
Commit message (Collapse)AuthorAgeFilesLines
* kbd: Make getting the keyboard shift state a firmware methodH. Peter Anvin2014-04-201-0/+1
| | | | | | | Getting the keyboard shift state is a firmware method. It is unfortunately unclear if it is even possible on EFI. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* memscan: build a linked list of memory scannersMatt Fleming2013-07-171-2/+2
| | | | | | | | | | | By registering memory scanners at runtime we can support multiple memory scanner functions, which helps us to isolate them and keep things modular, only registering them for specific platform/derivative combinations. This is preparation for adding a memory scanner that is specific to PXELINUX on bios and understands when the memory region occupied by the PXE stack can be reused. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* firmware: s/set_mode/text_mode/Matt Fleming2013-07-041-1/+1
| | | | | | | We only ever use ->set_mode() to transition into text mode, so rename it to something more suitable and drop the unused 'mode' argument. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* ipappend: delete .ipappend_strings()Matt Fleming2013-06-191-1/+0
| | | | | | | It's no longer referenced anywhere as everything has now moved to *sysappend*. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* firmware: correct the get_cursor() argument typesMatt Fleming2013-06-191-1/+1
| | | | | | | | | | | | | We only ever pass uint8_t * to get_cursor(), so update the prototypes and fix the following compiler warnings, In function ‘__ansicon_open’: com32/lib/sys/ansicon_write.c:93:6: warning: passing argument 1 of ‘firmware->o_ops->get_cursor’ from incompatible pointer type [enabled by default] com32/lib/sys/ansicon_write.c:93:6: note: expected ‘int *’ but argument is of type ‘uint8_t *’ com32/lib/sys/ansicon_write.c:93:6: warning: passing argument 2 of ‘firmware->o_ops->get_cursor’ from incompatible pointer type [enabled by default] com32/lib/sys/ansicon_write.c:93:6: note: expected ‘int *’ but argument is of type ‘uint8_t *’ Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* Revert "vesa: Correct screencpy() prototype"Matt Fleming2013-01-111-1/+1
| | | | | | | | | | | | | | This reverts commit 15a67011987c341814533ac4d8e23c9a72dc7605, because as Peter points out, The objects are uint32_t and so the prototype is correct. It should not "leak" outside the screencpy function that we play ugly tricks with these pointers; that is better handled by an internal cast. So do the necessary casting inside bios_vesacon_screencpy(). Cc: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* vesa: Correct screencpy() prototypeMatt Fleming2013-01-071-1/+1
| | | | | | | The 'src' argument should actually be const char * because the BIOS code performs pointer arithmetic on it. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* firmware: Make disk->private an opaque typeMatt Fleming2012-11-151-1/+0
| | | | | | | | | | | | | | | | We've currently got both the BIOS and EFI versions of struct disk_private in core/include/disk.h, which isn't ideal because this file shouldn't need to know about the inner-workings of the firmware's private disk info. Move the implementation of 'struct disk_private' into more suitable locations and use a void * for the 'private' member of struct disk. This change allows us to once and for all delete the gnu-efi header files from core/include/core.h and the gnu-efi include paths from mk/lib.mk. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* firmware: Move memory operations into firmwareMatt Fleming2012-11-151-1/+9
| | | | | | | | Instead of littering core/mem with #ifdef SYSLINUX_EFI move memory operations into the 'firmware' structure so that they can be implemented differently for BIOS and EFI. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* sys/vesa: Modularise common vesa codeMatt Fleming2012-11-151-0/+11
| | | | | | | | | | | | | | There's lots of the vesa infrastructure that can be shared for both BIOS and EFI, so share the things that are common and split out the things that are not into firmware-specific functions and use the 'firmware' structure to access them. This commit is part of a series of changes that removes all EFI-specific code from everywhere except efi/, which means we can delete inclusion of any gnu-efi header files and remove gnu-efi paths from CFLAGS. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* Merge remote-tracking branch 'mfleming/elflink' into for-hpa/elflink/firmwareMatt Fleming2012-07-301-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Makefile com32/elflink/ldlinux/adv.c com32/elflink/ldlinux/kernel.c com32/elflink/ldlinux/ldlinux.c com32/include/bitsize/stddef.h com32/include/bitsize/stdint.h com32/include/stdint.h com32/include/sys/module.h com32/include/sys/x86_64/bitops.h com32/include/syslinux/linux.h com32/lib/Makefile com32/lib/sys/ansicon_write.c com32/lib/sys/module/elfutils.h com32/lib/sys/vesa/efi/fill.h com32/lib/syslinux/load_linux.c com32/lib/syslinux/serial.c com32/lib/syslinux/shuffle.c core/conio.c core/elflink/config.c core/elflink/load_env32.c core/graphics.c core/include/graphics.h core/init.c core/pxelinux.asm mk/elf.mk mk/lib.mk
* firmware: Fix assorted compiler warningsMatt Fleming2012-03-281-1/+2
| | | | | | | | | | | | | | | This commit makes the build a little quieter by fixing the following warnings, firmware.h:39:43: warning: ‘struct initramfs’ declared inside parameter list main.c:714:2: warning: implicit declaration of function ‘fs_init’ core/mem/free.c:79:5: warning: implicit declaration of function ‘FreePool’ core/mem/malloc.c:73:5: warning: implicit declaration of function ‘AllocatePool’ Signed-off-by: Chandramouli Narayanan <chandramouli.narayanan@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* firmware, diskio: Create struct disk_privateMatt Fleming2012-03-281-0/+2
| | | | | | | | | We need a way of passing firmware-specific information to the disk I/O subsystem. Split the BIOS code into diskio_bios.c so that we don't include any disk BIOS symbols in the EFI executable. This way, the code in core/fs/diskio.c is firmware independent. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* firmware: Add EFI linux boot supportMatt Fleming2012-02-021-0/+1
| | | | | | | | | Add .boot_linux to 'struct firmware', we do quite a lot of things differently for BIOS and EFI. For EFI we don't need the movelist code because we have little control over the memory map, and so can't guarantee we can place code/data at specific addresses. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* efi: Add Auxiliary Data Vector supportChandramouli Narayanan2012-02-021-0/+7
| | | | | | | | | | | | Including deleting some ADV code that found its way into core/elflink. Also, move the __syslinux_adv_ptr and __syslinux_adv_size symbols out of ldlinux.c32 and into the core. Normally we don't want to move symbols into the core (as it increases the size), but we do in this case because the values for these symbols are firmware dependent. Signed-off-by: Chandramouli Narayanan <chandramouli.narayanan@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* firmware: Add .ipappend_strings function pointerMatt Fleming2012-02-021-0/+1
| | | | | | | | | | | | | | We need a firmware-independent way of getting the ipappend strings so add a function pointer to 'struct firmware'. The BIOS backend uses the old __intcall() method whereas the EFI backend accesses 'IPAppends' and 'numIPAppends' directly. Note that the EFI backend currently always returns 0 for 'numIPAppends' because it does not support PXE. Also, while I'm here I fixed the types of 'numIPAppends' and 'IPAppends' for EFI. For some reason the data types were the wrong way around. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* firmware: Add .get_serial_console_infoMatt Fleming2012-02-021-0/+1
| | | | Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* firmware: Add .get_config_file_nameMatt Fleming2012-02-021-0/+1
| | | | Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* firmware: Don't include disk.hMatt Fleming2012-01-201-1/+0
| | | | | | | | disk.h is a core/ header file and should only be included by code that requires it because not all code has core/include/ in its -I path (which can result in a compilation failure). Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* com32: Add firmware backend support to ansiconMatt Fleming2011-12-161-0/+18
| | | | | | | | The way in which I/O is done is firmware backend-specific. Jump through some layers of indirection so that things can be implemented differently for BIOS and EFI. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* disk: Add .disk_init() to firmware structMatt Fleming2011-12-161-0/+4
| | | | | | | | | | | Each firmware has its own method of initialising a disk so allow each firmware backend to implement a separate disk_init() function. Make all the assembly callers of fs_init() jump through pm_fs_init(), which allows us to restrict the com32sys_t arguments to only those callers that really need it, e.g. the .asm files. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* core: Add firmware backend supportMatt Fleming2011-12-161-0/+15
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>