diff options
author | H. Peter Anvin <hpa@zytor.com> | 2010-05-12 21:23:13 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2010-05-12 21:23:13 -0700 |
commit | ae197a98b905a7da7872eef29dcbb0f822fa81de (patch) | |
tree | 8749bdaf86105d27506361cb673212e1ae2bc946 /core/isolinux.asm | |
parent | c6bebc44627afe5a652d4e305527ca12e90ff768 (diff) | |
download | syslinux-ae197a98b905a7da7872eef29dcbb0f822fa81de.tar.gz |
diskio: make maxtransfer per-device, cap to 127, imported from headsyslinux-4.00-pre43
Make the maxtransfer per device, as it should be; properly imported
from the head loader (in case it is patched with -s). Also enforce
capping to 127 for EBIOS and 63 for CBIOS. This is structured so that
once EDD4 is approved we can remove the capping for that particular
subcase.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core/isolinux.asm')
-rw-r--r-- | core/isolinux.asm | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/core/isolinux.asm b/core/isolinux.asm index d1d5bf8d..d2ba81d9 100644 --- a/core/isolinux.asm +++ b/core/isolinux.asm @@ -1093,7 +1093,6 @@ bios_ebios: dw getlinsec_ebios, bios_ebios_str %endif ; Maximum transfer size - global MaxTransfer MaxTransfer dw 127 ; Hard disk modes MaxTransferCD dw 32 ; CD mode @@ -1154,11 +1153,18 @@ all_read: ; (which will be at 16 only for a single-session disk!); from the PVD ; we should be able to find the rest of what we need to know. ; +init_fs: pushad mov eax,ROOT_FS_OPS mov dl,[DriveNumber] cmp word [BIOSType],bios_cdrom sete dh ; 1 for cdrom, 0 for hybrid mode + jne .hybrid + movzx ebp,word [MaxTransferCD] + jmp .common +.hybrid: + movzx ebp,word [MaxTransfer] +.common: mov ecx,[bsHidden] mov ebx,[bsHidden+4] mov si,[bsHeads] |