summaryrefslogtreecommitdiff
path: root/core
Commit message (Collapse)AuthorAgeFilesLines
* core/runkernel.inc: remove dead codesyslinux-3.71-pre16Sergey Vlasov2008-07-221-6/+0
| | | | | Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Fix initrd overwriting the kernel for some kernel sizesSergey Vlasov2008-07-221-0/+2
| | | | | | | | | | | | | The address in EDI returned by the load_high call used to load the kernel needs to be passed to parse_load_initrd, but the code which clears memory after setup sectors for 1.2.x kernels was corrupting low 16 bits of EDI. In most cases this corruption was not noticed, because with usual setup sizes DI was set to 0xf800, therefore the chance of getting the kernel size such that initrd would actually overwrite the kernel was about 3%. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Fix loading of *.lkrn images from gPXESergey Vlasov2008-07-221-7/+6
| | | | | | | | | | | Attempts to load *.lkrn images were failing with "Not enough memory to load specified image". These images have the su_ramdisk_max header field set to zero, and the code in core/runkernel.inc was limiting MyHighMemSize too early (before the load_high call used to load the main part of the kernel). Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Correctly parse "serial" statements with no baud rateH. Peter Anvin2008-07-171-7/+6
| | | | | People often don't bother specifying a baud rate for virtual serial ports. Handle parsing correctly.
* isolinux: rename CurDir to CurrentDirSebastian Herbszt2008-07-161-8/+8
| | | | | | | ldlinux and extlinux are both using CurrentDir variable name. Rename CurDir to make it consistent with those. - Sebastian
* adv: fix the handling of the ADV with CBIOSH. Peter Anvin2008-07-161-25/+39
| | | | | | | Fix numerous problems in the way we handled the ADV with CBIOS. The EBIOS code was largely correct, but the CBIOS code was just busted. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* parseconfig: fix invalid mangle_name assumptionH. Peter Anvin2008-07-161-1/+1
| | | | | | | | Remove assumption that mangle_name leaves DI beyond the end of the buffer. This was true back when the mangled filename buffer was an 11-byte DOS filename, but it is definitely not true anymore. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* gen-id: only truncate tags starting with syslinux-<version>-H. Peter Anvin2008-07-151-1/+1
| | | | | If git-describe comes up with a tag not starting with syslinux-<version>- then leave it as-is.
* Reformat overwide commentH. Peter Anvin2008-07-151-11/+15
|
* keymap, font: use readc, so we can handle indeterminate file sizessyslinux-3.71-pre10H. Peter Anvin2008-07-143-30/+42
| | | | | | The keymap and font commands still assumed that we knew the file size, which is no longer true. Fix that by instead using "readc" and checking the CF.
* getc: add "readc" function to do block readsH. Peter Anvin2008-07-141-0/+20
| | | | | Add "readc" function to do block reads. Currently it just does a loop around "call getc/stosb".
* conio: jump to loadkeys_ret in loadkeys if size not 256 bytessyslinux-3.71-pre9Sebastian Herbszt2008-07-141-0/+2
| | | | | Add back jump to loadkeys_ret if the file size was not 256 bytes; inadvertently deleted when removing DX:AX 16-bitism.
* Fix residual use of DX:AX in the KEYMAP commandH. Peter Anvin2008-07-131-6/+2
| | | | The KEYMAP command still expected length in DX:AX, and so got broken.
* ldlinux: CurrentDir not set if syslinux.cfg is missingSebastian Herbszt2008-07-091-0/+2
| | | | | | | | | | | | | | | If a syslinux floppy does not contain a config file (syslinux.cfg) modules are not being found unless specified with a directory prefix (e.g. /pcitest.c32). The reason is that CurrentDir is only set if there is a config file present. This is a possible regression since commit 68eefb79e2cbb590ebf958dd0c50ce00b941abd2. Before this change RootDir was used in searchdir and now it's CurrentDir unless the filename starts with '/'. Possible fix is to set CurrentDir to RootDir if no config file is found. Actually it seems better to move this to the top of the "check for config file" block. Initialize CurrentDir to RootDir and change it if a config file is found. - Sebastian
* Make version.mk optional, so cleaning commands worksyslinux-3.71-pre6H. Peter Anvin2008-07-071-1/+1
| | | | For cleaning commands, we need version.mk to be optional.
* Share the gen-id stuff between core and memdiskH. Peter Anvin2008-07-074-47/+2
| | | | Both core and memdisk wants to use the gen-id stuff, so let it.
* Centralize more of the version number machineryH. Peter Anvin2008-07-076-7/+8
| | | | Centralize more (most) of the version number machinery to version.pl.
* Drop macros that just point to other macrosH. Peter Anvin2008-07-075-7/+5
| | | | | Drop macros for "date" and "version_str", which are nothing but redefined names of macros we already define (DATE_STR and VERSION).
* comboot: re-enable the idle callsyslinux-3.71-pre5H. Peter Anvin2008-07-071-4/+2
| | | | Try again to enable the idle call.
* comboot: make sure we CLD at all relevant entry pointsH. Peter Anvin2008-07-071-1/+6
| | | | | DF is undefined on entry, so make sure we clear it at all entry points where it could possibly matter.
* comboot.inc: add missing "section .text"H. Peter Anvin2008-07-071-0/+2
|
* comboot: save/restore all the DOS vectors; handle a few moreH. Peter Anvin2008-07-071-16/+85
| | | | | - save and restore all the DOS vectors around COMBOOT invocations. - handle INT 28h and INT 29h, and IRET on INT 2Dh, 2Fh, 33h.
* Include the git ID in the build stringH. Peter Anvin2008-07-072-1/+23
| | | | | | If we're doing an unofficial build from git, put the git id and a dirty flag in the build string, instead of a timestamp. This is a lot more useful.
* Allow the initrd to be specified on a separate linesyslinux-3.71-pre4H. Peter Anvin2008-07-038-45/+49
| | | | | Allow the initrd to be specified on a separate line from command-line options (append). This apparently can help certain tools.
* comboot: issue IRET for INT 2FhH. Peter Anvin2008-06-301-0/+5
| | | | | At least one laptop exists which calls INT 2Fh from inside the BIOS! So just point INT 2Fh to IRET, and hope that's good enough.
* Build _bin.c files in libinstaller; clean up B/I separationH. Peter Anvin2008-06-271-33/+2
| | | | | | | Clean up the BSUBDIR/ISUBDIR separation further. Build _bin.c files, which are an intermediate stage toward building the installers, in the libinstaller directory, since that directory is used by all the installers anyway. That also lets us get bin2c.pl out of the root.
* Fix "make clean", "make installer"H. Peter Anvin2008-06-271-2/+2
| | | | | | | | | | - "make clean" should not clean up things that "make installer" cannot regenerate. - "make installer" should not descend into subdirectories which are target only, e.g. com32 and sample. The Linux platform stuff in com32 is old and bitrotted, and was only for debugging in the first place. Just ignore it.
* isolinux: don't clobber bp in getfssecsyslinux-3.70-pre26H. Peter Anvin2008-06-261-15/+6
| | | | | The comapi functions get very unhappy if bp is ever clobbered, since it uses bp as a frame pointer.
* ldlinux: handle "first byte E5 change to 05" rule in FATH. Peter Anvin2008-06-251-1/+5
| | | | | | | | | | | | | | FAT has a somewhat obnoxious rule: byte E5 in the first position is encoded as 05. If it was *always* that case we could simply fold it into the codepage tables, but that rule applies only to the first character. Note that in the common codepages (incl. 437), E5 is lower-case sigma (σ), which we currently upper case to upper case sigma (Σ, E4) preventing a match -- which DOS *doesn't* do (it thinks of the Greek characters as symbols, not subject to case distinctions.) Putting that special case in the codepage-generation scripts seems too ugly, though.
* extlinux: Fix commentH. Peter Anvin2008-06-241-1/+1
| | | | "Bytes left" should be "bytes read"
* Ugly workaround for bug in GNU ld 2.17H. Peter Anvin2008-06-232-2/+16
| | | | | | | GNU ld 2.17, which is still included with Debian 4.0 (etch), mishandles PC-relative relocations to an absolute address. Hack around it by making pm_entry a segment-relative symbol, completely unnecessarily so.
* extlinux: actually fix the closing of a file on EOFsyslinux-3.70-pre22H. Peter Anvin2008-06-221-2/+1
| | | | | Actually close the file properly on EOF, even if not aligned to a sector boundary. Sigh.
* parsecmd: on an unknown keyword, print the unknown keywordsyslinux-3.70-pre21H. Peter Anvin2008-06-221-4/+13
| | | | Print the unknown keyword if we run into one.
* extlinux: fix the end of file conditionH. Peter Anvin2008-06-221-7/+7
| | | | | We would incorrectly not set SI=0 when returning from getfssec upon end of file. Fix this.
* core/writedec.inc: fix commentH. Peter Anvin2008-06-191-1/+2
| | | | Decimal, not hex...
* core: add decimal number write routineH. Peter Anvin2008-06-191-0/+56
| | | | | Add routine to write decimal numbers, currently unused, but likely to become useful at some time or another.
* TEST: issue a null command to the KBC as part of A20-flippingsyslinux-3.70-pre19H. Peter Anvin2008-06-181-2/+16
| | | | | UHCI supposedly wants a null command (0FFh) sent to the KBC as part of the A20-flipping sequence. See if that works for us.
* writestr_early: save/restore registersH. Peter Anvin2008-06-152-2/+6
| | | | | We have made it this far without it, but it seems like a disaster waiting to happen. We can afford the extra four bytes in sector 1.
* Fix bogus instances of writestr_earlyH. Peter Anvin2008-06-154-5/+6
| | | | Fix a set of bogus calls to writestr_early instead of writestr.
* Mechanically rename the writestr functionsH. Peter Anvin2008-06-1515-101/+101
| | | | | | | | | | Mechanically rename the writestr functions: writestr -> writestr_early cwritestr -> writestr ... to reflect which function is more appropriate to call in normal circumstances.
* Fix DOS interrupt error messagessyslinux-3.70-pre16H. Peter Anvin2008-06-101-3/+4
|
* When erroring out on an DOS interrupt, print infoH. Peter Anvin2008-06-103-11/+54
| | | | | Print the interrupt number, AX, and CS:IP of the offending system call.
* ldlinux: search_dos_dir returns attributes in DLsyslinux-3.70-pre15H. Peter Anvin2008-06-101-4/+3
| | | | | search_dos_dir returns attributes in DL, so we shouldn't push/pop DX around this function!
* Add file missing from previous checkinH. Peter Anvin2008-06-101-0/+92
| | | | Add file missing from checkin 012d53b0453ac7a5ec03fb802434fe64e6f85bf5
* Whitespace cleanupH. Peter Anvin2008-06-096-8/+8
|
* PXELINUX: Enable idle calls on select platformsH. Peter Anvin2008-06-093-18/+25
| | | | | Enable idle calls on select platforms, based on device ID. In particular, certain Broadcom chips need them to avoid FIFO stalls.
* FAT: make all codepage data derived from the same placeH. Peter Anvin2008-06-092-41/+33
| | | | | Make the codepage data all derive from the Unicode tables, and create files that could be dynamically loaded in the future.
* core: do aligned transfers in bcopy32H. Peter Anvin2008-06-061-19/+104
| | | | | Always align the destination in transfers in bcopy32. We should also do this in the varous other implementations, especially in com32.
* FAT: Support VFAT long filenamessyslinux-3.70-pre13H. Peter Anvin2008-06-062-7/+170
| | | | | | | Initial support for VFAT long filenames; currently hard-coded to codepage 865, no support for other codepages or for accessing files with names which aren't in the current codepage. This hopefully shouldn't be an issue for SYSLINUX applications.
* core: fail the link if we push above the 64K pointH. Peter Anvin2008-06-051-0/+2
| | | | If the base section stuff exceeds 64K, then fail.