freebsd-skq/sys
Joerg Wunsch c38b4f3b91 (Part #2, after the Internet link broke totally yesterday.)
This is the long-threatened ISO 9660 CD-ROM bootstrap code.

This work has been sponsored by Plutotech International, Inc (who paid
the initial work), and interface business GmbH (where i did most of
the work).  A big thanks also goes to Bruce Evans, for his continuing
help and answering my stupid questions.

The code is basically functioning, with the following caveats:

. Rock Ridge attributes are not yet supported.
. Only SCSI CD-ROMs are supported, since i fail to see any possibility
  to determine the drive type using BIOS functions.  (Even for hard disks,
  this determination is done by a big hack only.)
. El Torito specifies a lot of crap and useless misfeatures, but crucial
  things like the ability to figure out the CD TOC have been ``forgotten''.
  Thus, if you wanna boot a multisession CD, you need to know at which CD
  block your session starts, and need to speciffy it using the @ clause.

. None of the CD-ROM controllers i've seen so far implements the full
  El Torito specification at all.  Adaptec is probably the closest, but
  they miss on non-emulation booting (which would be the most logical
  choice for us).  Thus, the current code bloats the 7.5 KB boot code
  up to 1.44 MB, in order to fake a `floppy' image.

  If you wanna use it, specify this file as the boot image on the
  command-line of the mksiosfs command (option -b).

  Caveat emptor: some versions of the Adaptec BIOS might even fail to
  access the CD-ROM at all, using the BIOS functions.  I think i've
  notice this for ver 1.26, the code has been tested with ver 1.23.

The boot string is as follows:

        [@sess-start] [filename] [-flags]

sess-start      Extend # where the last session starts, measured in
                CD-ROM blocks.

filename        As usual, but the input is case-insensitive by now
                (since we  don't grok RR anyway).

flags           As usual, but -C (use CDROM root f/s) is default, so
                specifying -C will decactivate this option (which is
                probably not what you want :).

A lot of cleanup work is probably required, and some of the files
could/should be merged back to biosboot, perhaps made conditional on
some #ifdef.  The malloc implementation that comes with cdboot might
also be useful for kzipboot.  (I needed a malloc() since the root dir
ain't fixed in size on a CD.)

I've been testing all this with a 2.2-STABLE as the base for biosboot.
I don't expect too many surprises, although i know the biosboot stuff
has been changed a lot in -current lately.  I'm sure Bruce will
comment on all this here anyway. :-)
1997-07-11 05:52:41 +00:00
..
alpha Grr. Remove not-ready LDT modification fluff that also crept in with 1997-06-02 06:45:17 +00:00
amd64 Back out my changes with 'conflicts' keyword for IRQs, 1997-07-09 17:58:16 +00:00
compat/linux Make this thing actually compile. 1997-06-02 10:43:41 +00:00
compile Stop cvs up -P from removing empty compile directories. 1994-08-25 16:20:16 +00:00
conf Delete $Id$ line from copyright. 1997-07-09 20:38:19 +00:00
ddb Some staticized variables were still declared to be extern. 1997-06-30 23:54:50 +00:00
dev Don't allow CONS_HISTORY ioctl to alter history pointers 1997-07-09 14:10:19 +00:00
fs More comment cleanup. 1997-06-26 17:12:59 +00:00
geom Removed unused #includes. 1997-06-14 13:56:12 +00:00
gnu Don't depend on gcc's feature of permitting labels that aren't followed 1997-07-01 00:22:51 +00:00
i386 (Part #2, after the Internet link broke totally yesterday.) 1997-07-11 05:52:41 +00:00
isa Don't allow CONS_HISTORY ioctl to alter history pointers 1997-07-09 14:10:19 +00:00
isofs/cd9660 Hide the kernel-only stuff inside #ifdef KERNEL. 1997-05-07 13:23:04 +00:00
kern Adds sysctl int for shutdown timeout. 1997-07-10 11:44:42 +00:00
libkern Style optimization in newly added POSIX range []] conformance, redo 1997-06-07 01:33:10 +00:00
miscfs More comment cleanup. 1997-06-26 17:12:59 +00:00
modules Take the OS release string from the kernel variable `osrelease' 1997-06-24 12:43:18 +00:00
msdosfs Remove redundant check for vp == dvp (done in VFS before calling). 1997-05-17 18:32:53 +00:00
net Don't add an item to the multicast linked list if it's already 1997-07-07 17:36:06 +00:00
netatalk Actually POINT to the appletalk usrreqs struct. 1997-06-02 20:07:33 +00:00
netinet Fix a bug (apparently very old) that can cause a TCP connection to 1997-07-01 05:42:16 +00:00
netipx Don't depend on gcc's feature of permitting labels that aren't followed 1997-07-01 00:22:51 +00:00
netkey This is the `netkey' kernel key-management service (the PF_KEY analogue 1996-06-14 17:22:18 +00:00
netnatm import Chuck Cranor's ATM driver 1997-05-09 08:04:59 +00:00
netns Remove unneeded member nsp_head from struct nspcb. 1997-04-14 18:26:51 +00:00
nfs Fix a condition where nfs_statfs() can precipitate a panic. There is 1997-06-27 19:10:46 +00:00
nfsclient Fix a condition where nfs_statfs() can precipitate a panic. There is 1997-06-27 19:10:46 +00:00
nfsserver Clear nfs_iodwant[myiod] when the nfsiod process exits due to a signal. 1997-06-25 21:07:26 +00:00
pc98 Synchronize with sys/i386/isa/isa.c revision 1.94. 1997-07-10 10:22:34 +00:00
pccard Make this puppy compile again - add two includes. 1997-06-01 05:04:39 +00:00
pci Don't cast function pointers to (void *). This will cause warnings. 1997-07-01 00:45:45 +00:00
powerpc/include Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
rpc Resolve conflicts. 1997-05-28 04:45:15 +00:00
scsi Don't depend on gcc's feature of permitting labels that aren't followed 1997-07-01 00:22:51 +00:00
sys Back out 'conflicts' with IRQs, remove intr_registered() decl 1997-07-09 18:08:15 +00:00
tools Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
ufs Fix a problem with the VN device. Specifically, the VN device can 1997-06-15 17:56:53 +00:00
vm Don't try upgrading an existing exclusive lock in vm_map_user_pageable. 1997-06-23 21:51:03 +00:00
Makefile Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00