Subject: Re: Adding cd9660 support to the i386/amd64 BIOS bootloader
To: Bang Jun-Young <junyoung@netbsd.org>
From: Jason Thorpe <thorpej@shagadelic.org>
List: port-i386
Date: 06/21/2005 09:45:31
On Jun 21, 2005, at 8:26 AM, Bang Jun-Young wrote:

> Even if it is, we still have nothing to lose, because there's no  
> platform
> that have cd9660 support in their bootloaders. When it becomes a real
> problem, we can easily fix it.

You are gravely mistaken:

yeah-baby:thorpej 218$ find . -name "*.c" | xargs grep cd9660
./alpha/stand/boot/filesystem.c:#include <lib/libsa/cd9660.h>
./alpha/stand/boot/filesystem.c:    { cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./alpha/stand/boot/filesystem.c:        cd9660_stat },
./arc/stand/boot/conf.c:#include <lib/libsa/cd9660.h>
./arc/stand/boot/conf.c:#define cd9660_close    0
./arc/stand/boot/conf.c:#define cd9660_write    0
./arc/stand/boot/conf.c:        { cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./arc/stand/boot/conf.c:            cd9660_stat },
./bebox/stand/boot/filesystem.c:#include <cd9660.h>
./bebox/stand/boot/filesystem.c:{ cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek, cd9660_stat },
./macppc/stand/ofwboot/ofdev.c:#include <lib/libsa/cd9660.h>
./macppc/stand/ofwboot/ofdev.c:static struct fs_ops  
file_system_cd9660 = {
./macppc/stand/ofwboot/ofdev.c: cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./macppc/stand/ofwboot/ofdev.c:     cd9660_stat
./macppc/stand/ofwboot/ofdev.c:         file_system[2] =  
file_system_cd9660;
./mipsco/stand/common/conf.c:#include <lib/libsa/cd9660.h>
./mipsco/stand/common/conf.c:#define cd9660_close       0
./mipsco/stand/common/conf.c:#define cd9660_write       0
./mipsco/stand/common/conf.c:   { cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./mipsco/stand/common/conf.c:       cd9660_stat },
./ofppc/stand/ofwboot/ofdev.c:#include <lib/libsa/cd9660.h>
./ofppc/stand/ofwboot/ofdev.c:static struct fs_ops file_system_cd9660  
= {
./ofppc/stand/ofwboot/ofdev.c:  cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./ofppc/stand/ofwboot/ofdev.c:      cd9660_stat
./ofppc/stand/ofwboot/ofdev.c:          file_system[1] =  
file_system_cd9660;
./pmax/stand/common/conf.c:#include <lib/libsa/cd9660.h>
./pmax/stand/common/conf.c:#define cd9660_close 0
./pmax/stand/common/conf.c:#define cd9660_write 0
./pmax/stand/common/conf.c:     { cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./pmax/stand/common/conf.c:         cd9660_stat },
./prep/stand/boot/filesystem.c:#include <lib/libsa/cd9660.h>
./prep/stand/boot/filesystem.c:{ cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek, cd9660_stat },
./sgimips/stand/common/conf.c:#include <lib/libsa/cd9660.h>
./sgimips/stand/common/conf.c:#define cd9660_close      0
./sgimips/stand/common/conf.c:#define cd9660_write      0
./sgimips/stand/common/conf.c:  { cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./sgimips/stand/common/conf.c:      cd9660_stat },
./shark/stand/ofwboot/ofdev.c:#include <lib/libsa/cd9660.h>
./shark/stand/ofwboot/ofdev.c:static struct fs_ops file_system_cd9660  
= {
./shark/stand/ofwboot/ofdev.c:  cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./shark/stand/ofwboot/ofdev.c:      cd9660_stat
./shark/stand/ofwboot/ofdev.c:          file_system[1] =  
file_system_cd9660;
./sparc/stand/ofwboot/ofdev.c:#include <lib/libsa/cd9660.h>
./sparc/stand/ofwboot/ofdev.c:static struct fs_ops file_system_cd9660  
= {
./sparc/stand/ofwboot/ofdev.c:  cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./sparc/stand/ofwboot/ofdev.c:      cd9660_stat
./sparc/stand/ofwboot/ofdev.c:          bcopy(&file_system_cd9660,  
&file_system[nfsys++],
./vax/boot/boot/conf.c:#include "lib/libsa/cd9660.h"
./vax/boot/boot/conf.c: { cd9660_open, cd9660_close, cd9660_read,  
cd9660_write,
./vax/boot/boot/conf.c:     cd9660_seek, cd9660_stat },
./vax/boot/xxboot/bootxx.c:#include "lib/libsa/cd9660.h"
./vax/boot/xxboot/bootxx.c:     { cd9660_open, 0, cd9660_read, 0, 0,  
cd9660_stat },
./x68k/stand/boot/conf.c:#include <lib/libsa/cd9660.h>
./x68k/stand/boot/conf.c:    { cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./x68k/stand/boot/conf.c:       cd9660_stat },
./sbmips/stand/boot/filesystem.c:#include <lib/libsa/cd9660.h>
./sbmips/stand/boot/filesystem.c:    { cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./sbmips/stand/boot/filesystem.c:       cd9660_stat },
./hp700/stand/boot/conf.c:#include <lib/libsa/cd9660.h>
./hp700/stand/boot/conf.c:      { cd9660_open, cd9660_close,  
cd9660_read, cd9660_write, cd9660_seek,
./hp700/stand/boot/conf.c:        cd9660_stat },
yeah-baby:thorpej 219$


These bootloaders have worked for years.  Sounds to me like you need  
to figure out some other way to fix the problem on i386.

-- thorpej