Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.rmit.EDU.AU!news.unimelb.EDU.AU!munnari.OZ.AU!news.ecn.uoknor.edu!qns3.qns.com!imci4!newsfeed.internetmci.com!in2.uu.net!nwnews.wa.com!news1.halcyon.com!coho!tzs From: tzs@coho.halcyon.com (Tim Smith) Newsgroups: comp.unix.bsd.freebsd.misc Subject: Re: FreeBSD support [was Re: God Damn partition crap!] Date: 6 Apr 1996 12:18:52 GMT Organization: Northwest Nexus, Inc. - Professional Internet Services Lines: 27 Message-ID: <4k5nfc$9sp@news1.halcyon.com> References: <4hqav8$kmo@nntp.interaccess.com> <4jfhlv$kt1@park.uvsc.edu> <4jlm89$7bm@calypso.bns.com.au> <4jvaqg$mih@park.uvsc.edu> NNTP-Posting-Host: coho.halcyon.com Terry Lambert <terry@lambert.org> wrote: >chaining. Since INT 13 chaining is established by controller >POST routines installing controller BIOS entry points into >the INT 13 vector, you generally have to do something like >read the first sector of each BIOS device, calcualate an >MD5 checksum for each one, and then do the same for each >protected mode driver device node to establish your mapping. >You may have to repeat this process multiple times if the >checksums match (which they might if the drives are idenitically >partitioned). The following hack, which I used when in NCR's SDMS software, actually worked: int identify( int target ) { for ( bios_drive = 0x80; bios_drive <= x87; bios_drive++ ) { issue_illegal_request_to_target_drive(target); read_a_sector_from_bios_drive(bios_drive); issue_REQUEST_SENSE_to_target_drive(target); if ( sense_key == WHATEVER_THE_NO_ERROR_ONE_IS ) return bios_drive; } } --Tim Smith