FreeBSD Bugzilla – Attachment 5967 Details for
Bug 13847
missing support for INT 0x13 extensions in /boot/loader
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 1.99 KB, created by
Tor Egge
on 1999-09-20 05:20:01 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Tor Egge
Created:
1999-09-20 05:20:01 UTC
Size:
1.99 KB
patch
obsolete
>Index: i386/libi386/biosdisk.c >=================================================================== >RCS file: /home/ncvs/src/sys/boot/i386/libi386/biosdisk.c,v >retrieving revision 1.20.2.7 >diff -u -r1.20.2.7 biosdisk.c >--- biosdisk.c 1999/08/29 16:20:59 1.20.2.7 >+++ biosdisk.c 1999/09/19 23:20:02 >@@ -687,18 +687,53 @@ > v86int(); > } > >- /* build request XXX support EDD requests too */ >- v86.ctl = V86_FLAGS; >- v86.addr = 0x13; >- v86.eax = 0x200 | x; >- v86.ecx = ((cyl & 0xff) << 8) | ((cyl & 0x300) >> 2) | sec; >- v86.edx = (hd << 8) | od->od_unit; >- v86.es = VTOPSEG(xp); >- v86.ebx = VTOPOFF(xp); >- v86int(); >- result = (v86.efl & 0x1); >- if (result == 0) >+ if (cyl > 1023) { >+ static unsigned short packet[8]; >+ >+ /* Check for Extended READ */ >+ v86.ctl = V86_FLAGS; >+ v86.addr = 0x13; >+ v86.eax = 0x4100; >+ v86.ebx = 0x55aa; >+ v86.edx = od->od_unit; >+ v86int(); >+ >+ if (v86.ebx == 0xaa55 && (v86.ecx & 1) == 1) { >+ >+ packet[0] = 0x10; >+ packet[1] = x; >+ packet[2] = VTOPOFF(xp); >+ packet[3] = VTOPSEG(xp); >+ packet[4] = dblk; >+ packet[5] = dblk >> 16; >+ packet[6] = 0; >+ packet[7] = 0; >+ /* build request XXX support EDD requests too */ >+ v86.ctl = V86_FLAGS; >+ v86.addr = 0x13; >+ v86.eax = 0x4200; >+ v86.ds = VTOPSEG(packet); >+ v86.esi = VTOPOFF(packet); >+ v86int(); >+ result = (v86.efl & 0x1); >+ if (result == 0) >+ break; >+ } >+ result = 1; >+ } else { >+ /* build request XXX support EDD requests too */ >+ v86.ctl = V86_FLAGS; >+ v86.addr = 0x13; >+ v86.eax = 0x200 | x; >+ v86.ecx = ((cyl & 0xff) << 8) | ((cyl & 0x300) >> 2) | sec; >+ v86.edx = (hd << 8) | od->od_unit; >+ v86.es = VTOPSEG(xp); >+ v86.ebx = VTOPOFF(xp); >+ v86int(); >+ result = (v86.efl & 0x1); >+ if (result == 0) > break; >+ } > } > > DEBUG("%d sectors from %d/%d/%d to %p (0x%x) %s", x, cyl, hd, sec - 1, p, VTOP(p), result ? "failed" : "ok");
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 13847
: 5967