Kevin O'Connor wrote:
On Sat, Jul 31, 2010 at 09:02:24PM +0200, Sebastian Herbszt wrote:
Kevin O'Connor wrote:
On Sat, Jul 31, 2010 at 05:26:09PM +0200, Sebastian Herbszt wrote:
Fix data returned in the int13dpt structure.
[...]
- if (size < 66) {
- if (size < 74) { disk_ret(regs, DISK_RET_SUCCESS); return; }
This is not correct - the EDD v3.0 spec has a 66 byte structure.
You mean the Phoenix spec (BIOS Enhanced Disk Drive Specification, Version 3.0, Rev 0.8, March 12, 1998).
What about the T13 Working Draft, D1572, Information Technology - BIOS Enhanced Disk Drive Services - 3 (EDD-3), Revision 3, November 5, 2004?
Heh. It looks like the standards are confusingly named. The T13 EDD-1 spec is actually newer than the Phoenix EDD 3 spec. At least by looking at the specs at: http://www.t10.org/t13/#Project_drafts
So, I guess you are right and the bios should support 74 byte callers. However, I also think it should still support 66 byte callers as there may be something out there coded to the Phoenix spec.
-Kevin
We have the following specs:
Phoenix BIOS Enhanced Disk Drive Specification Version 1.1 May 9, 1995 (30 bytes structure)
T13 Working Draft - 1226DT Information Technology - Enhanced BIOS Services For Disk Drives Revision 7 23 Oct, 1997 (30 bytes structure)
Phoenix BIOS Enhanced Disk Drive Specification Version 3.0 Rev 0.8 March 12, 1998 (66 bytes structure, padding not mentioned)
Interrupt List, part 2 of 18 Copyright (c) 1989-1999,2000 Ralf Brown (66 bytes structure, ASCIZ strings)
T13 Working Draft - D1386 Information Technology - BIOS Enhanced Disk Drive Services (EDD) Revision 5 September 28, 2000 (74 bytes structure, space padding)
T13 Working Draft - D1484 Information Technology - BIOS Enhanced Disk Drive Services - 2 (EDD-2) Revision 3 February 21, 2002 (74 bytes structure, space padding)
T13 Working Draft - D1572 Information Technology - BIOS Enhanced Disk Drive Services - 3 (EDD-3) Revision 3 November 5, 2004 (74 bytes structure, space padding)
The device path is either Qword or double Qword (66 vs. 74 bytes). The strings are either ASCIZ or space padded. It should be possible to special case 66 bytes size buffers and then use Qword device path and ASCIZ strings.
Sebastian