Deleted Added
full compact
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 ---