summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [vesafb] Handle failures from fbcon_init()Michael Brown2014-01-221-9/+27
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [png] Add support for PNG imagesMichael Brown2014-01-127-0/+3185
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [test] Generalise pnm_ok() to pixbuf_ok()Michael Brown2014-01-123-88/+157
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [test] Rewrite pnm_ok() using okx()Michael Brown2014-01-121-29/+36
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [uaccess] Add memcmp_user()Michael Brown2014-01-124-0/+50
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [libc] Add abs()Michael Brown2014-01-121-0/+4
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [deflate] Fix literal data length calculationMichael Brown2014-01-122-1/+8
| | | | | | | | Fix incorrect calculation used to determine length of data to be copied within a literal data block, and add a test case to prevent this bug from going undetected in future. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [deflate] Add support for DEFLATE decompressionMichael Brown2014-01-065-0/+1569
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [test] Add okx() macro taking an explicit file name and line numberMichael Brown2014-01-061-3/+6
| | | | | | | | | Allow test reports to specify an explicit file name and line number using the extended okx() macro. This allows large blocks of test report code such as tcpip_random_ok() to be implemented as functions rather than macros. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [libc] Add isprint()Michael Brown2014-01-062-3/+3
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Build ROMs used by qemu and VMware as part of "make all"Michael Brown2013-12-261-1/+5
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ipv6] Fix compilation under FreeBSDMichael Brown2013-12-211-1/+1
| | | | | Reported-by: Dewey Hylton <dewey@hyltown.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Remove obsolete check for GNU as version 2.9.1Michael Brown2013-12-211-7/+0Star
| | | | | Reported-by: Dewey Hylton <dewey@hyltown.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [vesafb] Set "magic" colour to transparent when a background picture is usedMichael Brown2013-12-091-0/+6
| | | | | | | Use the magic colour facility to cause the user interface background to become transparent when we have a background picture. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [console] Add concept of a "magic" colourMichael Brown2013-12-092-4/+45
| | | | | | | | The magic basic colour can be remapped at runtime from COLOR_NORMAL_BG (usually blue) to COLOR_DEFAULT (which will be transparent as a background colour on the framebuffer console). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [cmdline] Add the "colour" and "cpair" commandsMichael Brown2013-12-091-0/+125
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [mucurses] Use centralised concept of colour pairsMichael Brown2013-12-095-43/+14Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [console] Add centralised concept of colours and colour pairsMichael Brown2013-12-095-0/+361
| | | | | | | | | | | | | Add a centralised concept of colours and colour pairs (using the default colour pairs as configured via config/colour.h). A colour pair consists of a pair of colour indices. Add the ability to redefine both a colour pair and an individual colour index, with minimal overhead if this feature is not required (e.g. because the relevant shell commands are not present in the build). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [fbcon] Always draw cursor using current foreground and background coloursMichael Brown2013-12-091-5/+3Star
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [lkrnprefix] Include iPXE version string in image headerMichael Brown2013-12-062-1/+8
| | | | | Originally-implemented-by: Christian Hesse <list@eworm.de> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [fbcon] Update the console width and height after changing modeMichael Brown2013-12-061-0/+4
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [console] Allow consoles to update the recorded console sizeMichael Brown2013-12-064-8/+33
| | | | | | | | | | | | | | | | | | | | Provide a mechanism for consoles to update the recorded console width and height, and use this width and height to provide the curses COLS and LINES variables. We choose not to use ANSI escape sequences to obtain the width and height, for two reasons: - iPXE's model is that all output is sent to all consoles; we could therefore end up with multiple consoles reporting conflicting widths and heights - when a serial console is in use, we probably don't want to resize the output shown on the BIOS console to match the size of the serial console, since it's likely that the serial console is in use only for debugging. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Fix LABEL name for .liso imagesChristian Hesse2013-12-061-1/+1
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [menu] Adapt user interface to fit display sizeMichael Brown2013-12-061-8/+8
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [login] Adapt user interface to fit display sizeMichael Brown2013-12-061-7/+7
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Adapt user interface to fit display sizeMichael Brown2013-12-061-29/+44
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [vesafb] Work around data corruption bug in bochs/qemu VBE implementationMichael Brown2013-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The vgabios used by bochs and qemu (and other virtualisation products) has a bug in its implementation of INT 10,4f00 which causes the high 16 bits of %ebx and %edx to become corrupted. The vgabios code uses a "pushaw"/"popaw" pair to preserve the low 16 bits of all non-segment registers. The vgabios code is compiled using bcc, which generates 8086-compatible code and so never touches the high 16 bits of the 32-bit registers. However, the function vbe_biosfn_return_controller_information() includes the line: size_64k = (Bit16u)((Bit32u)cur_info->info.XResolution * cur_info->info.XResolution * cur_info->info.BitsPerPixel) >> 19; which generates an implicit call to the "lmulul" function. This function is implemented in vbe.c as: ; helper function for memory size calculation lmulul: and eax, #0x0000FFFF shl ebx, #16 or eax, ebx SEG SS mul eax, dword ptr [di] mov ebx, eax shr ebx, #16 ret which modifies %eax, %ebx, and %edx (as a result of the "mul" instruction, which places its result into %edx:%eax). Work around this problem by marking %ebx and %edx as being clobbered by the call to INT 10,4f00. (%eax is already used as an output register, so does not need to be on the clobber list.) Reported-by: Oliver Rath <rath@mglug.de> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ipv6] Expose NDP-provided settings (including the DNS server)Michael Brown2013-12-052-9/+234
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [dhcpv6] Add DHCPv6 "filename" settingMichael Brown2013-12-052-0/+16
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Merge SETTING_IPv4 and SETTING_IPv6Michael Brown2013-12-054-25/+23Star
| | | | | | | Allow for equivalent IPv4 and IPv6 settings (which requires equivalent settings to be adjacent within the settings list). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Allow for multiple definitions of each predefined settingMichael Brown2013-12-053-6/+44
| | | | | | | | | | Allow for multiple setting definitions with the same name but different scopes and tags. For example, allow for a "filename" setting with default scope and tag value 67 (for DHCPv4) and a corresponding "filename" setting with IPv6 scope and tag value 59 (for DHCPv6). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Force settings into alphabetical order within sectionsMichael Brown2013-12-0519-125/+158
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [dhcpv6] Use DUID-UUID form of client DUIDMichael Brown2013-12-052-28/+28
| | | | | | Use the system UUID to generate the client DUID-UUID as per RFC 6355. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [linux] Provide access to SMBIOS via /dev/memMichael Brown2013-12-054-49/+149
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [ipv6] Add support for resolving IPv6 addresses via the "nslookup" commandMichael Brown2013-12-051-0/+7
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [syslog] Add support for IPv6 syslog serverMichael Brown2013-12-053-17/+42
| | | | | | | | | | | Note that IANA has not yet assigned a DHCPv6 option code for the syslog server. When a code is assigned, the definition of DHCPV6_LOG_SERVERS should be updated. Until then, an IPv6 address of a syslog server can be configured manually using e.g. set syslog6 3ffe:302:11:2::8309 Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [socket] Ensure socket address structure sizes are fixedMichael Brown2013-12-054-5/+5
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [dns] Add support for resolving IPv6 addresses via AAAA recordsMichael Brown2013-12-054-36/+112
| | | | | | | | Our policy is to prefer IPv6 addreses to IPv4 addresses, but to request IPv6 addresses only if we have an IPv6 address for the name server itself. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Add fetch_ipv6_setting()Michael Brown2013-12-052-0/+45
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Allow for IPv6 setting types in non-IPv6 buildsMichael Brown2013-12-057-51/+132
| | | | | | | | | Allow for the existence of references to IPv6 setting types without dragging in the whole IPv6 stack, by placing the definition of setting_type_ipv6 in core/settings.c and providing weak stub methods for parse_ipv6_setting() and format_ipv6_setting(). Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Explicitly separate the concept of a completed fetched settingMichael Brown2013-12-0537-563/+610
| | | | | | | | | | The fetch_setting() family of functions may currently modify the definition of the specified setting (e.g. to add missing type information). Clean up this interface by requiring callers to provide an explicit buffer to contain the completed definition of the fetched setting, if required. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [fbcon] Add support for displaying a cursorMichael Brown2013-12-022-25/+97
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [menu] Hide cursor when displaying menuMichael Brown2013-12-021-0/+1
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [settings] Hide cursor when not actively editing a settingMichael Brown2013-12-021-0/+2
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [mucurses] Implement curs_set() to control cursor visibilityMichael Brown2013-12-024-0/+24
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [console] Allow '?' as an intermediate byte in ANSI escape sequencesMichael Brown2013-12-022-1/+8
| | | | | | | | | The ANSI escape sequences to show and hide the cursor take the form "<ESC>[?25h" and "<ESC>[?25l" respectively. iPXE currently treats the '?' character as the final byte. Fix by explicitly treating '?' as an intermediate byte. Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [build] Fix building on OpenBSD 5.4Michael Brown2013-12-021-0/+5
| | | | | | | | | | OpenBSD 5.4 seems to generate dynamically linked binaries by default, which breaks our build process. Fix by forcing the linker to always create static binaries. Reported-by: Jiri B <jirib@devio.us> Tested-by: Jiri B <jirib@devio.us> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [vesafb] Select an optimal mode, rather than the first acceptable modeMichael Brown2013-11-281-49/+91
| | | | | | | | | | | | | | | | | | There is no requirement for VBE modes to be listed in increasing order of resolution. With the present logic, this can cause e.g. a 1024x768 mode to be selected if the user asks for 640x480, if the 1024x768 mode is earlier in the mode list. Define a scoring system for modes as score = ( width * height - bpp ) and choose the mode with the lowest score among all acceptable modes. This should prefer to choose the mode closest to the requested resolution, with a slight preference for higher colour depths. Reported-by: Robin Smidsrød <robin@smidsrod.no> Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [vesafb] Return meaningful error when no suitable mode is foundMichael Brown2013-11-281-44/+75
| | | | Signed-off-by: Michael Brown <mcb30@ipxe.org>
* [vesafb] Skip modes for which we cannot get mode informationMichael Brown2013-11-281-2/+1Star
| | | | | | | | | The VirtualBox BIOS fails to retrieve mode information (with status 0x0100) for some modes within the mode list. Skip any such modes, rather than treating this as a fatal error. Reported-by: Robin Smidsrød <robin@smidsrod.no> Signed-off-by: Michael Brown <mcb30@ipxe.org>