diff options
author | John Baldwin <jhb@FreeBSD.org> | 2007-10-24 12:49:55 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2007-10-24 12:49:55 +0000 |
commit | 21439626472b5a6d5317cc38b361bc2368f97d93 (patch) | |
tree | 1725f6452f05060ccef39f3d841cfc1b579ad21a /sys/security/mac_ifoff | |
parent | 1c44b03ee9dbe834d53e511d0f141dfd481f0848 (diff) |
Rework the read/write support in the bios disk driver some to cut down
on duplicated code and support 64-bit LBAs for GPT.
- The code to manage an EDD or C/H/S I/O request are now in their own
routines. The EDD routine now handles a full 64-bit LBA instead of
truncating LBAs to the lower 32-bits. (MBRs and BSD labels only
have 32-bit LBAs anyway, so the only LBAs ever passed down were 32-bit).
- All of the bounce buffer and retry logic duplicated in bd_read() and
bd_write() are merged into a single bd_io() routine that takes an
extra direction argument. bd_read() and bd_write() are now simple
wrappers around bd_io().
- If a disk supports EDD then always use it rather than only using it if
the cylinder is > 1023. Other parts of the boot code already do
something similar to this. Also, GPT just uses LBAs, so for a GPT disk
it's probably best to ignore C/H/S completely. Always using EDD when
it is supported by a disk is an easy way to accomplish this.
MFC after: 1 week
Notes
Notes:
svn path=/head/; revision=172927
Diffstat (limited to 'sys/security/mac_ifoff')
0 files changed, 0 insertions, 0 deletions