[SeaBIOS] non-emulated AHCI hardware
Scott Duplichan
scott at notabs.org
Wed Apr 27 04:15:04 CEST 2011
Kevin O'Connor wrote:
]> Peter Stuge wrote:
]>
]> ]Still it's not nice to write outside the callers buffer. Another OS
]> ]might call same function and SeaBIOS would end up corrupting some
]> ]variable. Ungood. I guess memmove() is the only choice?
]>
]> ]//Peter
]>
]> I had a couple of ideas for a more sound solution.
]
]This came up for DMA on IDE too. What I did there was just fallback
]to PIO if the buffer was not aligned.
]
]Out of curiosity, can you see what happens if you return
]DISK_RET_EBOUNDARY in the unaligned case?
DOS tries the same request 10 times then ignores the error
and continues.
]It's not currently possible to dynamically allocate memory during
]runtime. However, it is possible to allocate a buffer at init and
]keep it around for later. How big of a buffer would you need?
I think a single aligned 512 byte buffer would do. The code could
read a sector at a time and memcpy from the seabios aligned buffer
into the caller's unaligned buffer.
]Thanks,
]-Kevin
More information about the SeaBIOS
mailing list