biosdisk.c (43561) | biosdisk.c (44463) |
---|---|
1/*- 2 * Copyright (c) 1998 Michael Smith <msmith@freebsd.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 1998 Michael Smith <msmith@freebsd.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $Id: biosdisk.c,v 1.23 1999/01/25 23:07:02 rnordier Exp $ | 26 * $Id: biosdisk.c,v 1.1 1999/02/03 08:39:09 kato Exp $ |
27 */ 28 29/* 30 * BIOS disk device handling. 31 * 32 * Ideas and algorithms from: 33 * 34 * - NetBSD libi386/biosdisk.c --- 133 unchanged lines hidden (view full) --- 168 int hd_drive=0, n=-0x10; 169 /* sequence 0x90, 0x80, 0xa0 */ 170 for (base = 0x90; base <= 0xa0; base += n, n += 0x30) { 171 for (unit = base; (nbdinfo < MAXBDDEV) || ((unit & 0x0f) < 4); unit++) { 172 bdinfo[nbdinfo].bd_unit = unit; 173 bdinfo[nbdinfo].bd_flags = (unit & 0xf0) == 0x90 ? BD_FLOPPY : 0; 174 175 /* XXX add EDD probes */ | 27 */ 28 29/* 30 * BIOS disk device handling. 31 * 32 * Ideas and algorithms from: 33 * 34 * - NetBSD libi386/biosdisk.c --- 133 unchanged lines hidden (view full) --- 168 int hd_drive=0, n=-0x10; 169 /* sequence 0x90, 0x80, 0xa0 */ 170 for (base = 0x90; base <= 0xa0; base += n, n += 0x30) { 171 for (unit = base; (nbdinfo < MAXBDDEV) || ((unit & 0x0f) < 4); unit++) { 172 bdinfo[nbdinfo].bd_unit = unit; 173 bdinfo[nbdinfo].bd_flags = (unit & 0xf0) == 0x90 ? BD_FLOPPY : 0; 174 175 /* XXX add EDD probes */ |
176 if (!bd_int13probe(&bdinfo[nbdinfo])) 177 break; | 176 if (!bd_int13probe(&bdinfo[nbdinfo])){ 177 if ((unit & 0xf0) == 0xa0 && (unit & 0x0f) < 6) 178 continue; /* Target IDs are not contiguous. */ 179 else 180 break; 181 } |
178 179 if (bdinfo[nbdinfo].bd_flags & BD_FLOPPY){ 180 bdinfo[nbdinfo].bd_drive = 'A' + (unit & 0xf); 181 if (*(u_char *)PTOV(0x5AE) & (1<<(unit & 0xf))) 182 /* available 1.44MB access */ 183 bdinfo[nbdinfo].bd_unit = 0x30 + (unit & 0xf); 184 } 185 else --- 832 unchanged lines hidden --- | 182 183 if (bdinfo[nbdinfo].bd_flags & BD_FLOPPY){ 184 bdinfo[nbdinfo].bd_drive = 'A' + (unit & 0xf); 185 if (*(u_char *)PTOV(0x5AE) & (1<<(unit & 0xf))) 186 /* available 1.44MB access */ 187 bdinfo[nbdinfo].bd_unit = 0x30 + (unit & 0xf); 188 } 189 else --- 832 unchanged lines hidden --- |