diff options
author | jhb <jhb@FreeBSD.org> | 2007-10-24 12:49:55 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2007-10-24 12:49:55 +0000 |
commit | 7781c2181af1113baab38322a55a90b5469cba03 (patch) | |
tree | 1725f6452f05060ccef39f3d841cfc1b579ad21a /sys/netncp/ncp_lib.h | |
parent | 622324e2217a2bda098832b540db064fa22a1901 (diff) | |
download | FreeBSD-src-7781c2181af1113baab38322a55a90b5469cba03.zip FreeBSD-src-7781c2181af1113baab38322a55a90b5469cba03.tar.gz |
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
Diffstat (limited to 'sys/netncp/ncp_lib.h')
0 files changed, 0 insertions, 0 deletions