root/arch/i386/stand/pxeboot/conf.c

/* [<][>][^][v][top][bottom][index][help] */
    1 /*      $OpenBSD: conf.c,v 1.15 2007/07/27 17:46:57 tom Exp $   */
    2 
    3 /*
    4  * Copyright (c) 2004 Tom Cosgrove
    5  * Copyright (c) 1996 Michael Shalayeff
    6  * All rights reserved.
    7  *
    8  * Redistribution and use in source and binary forms, with or without
    9  * modification, are permitted provided that the following conditions
   10  * are met:
   11  * 1. Redistributions of source code must retain the above copyright
   12  *    notice, this list of conditions and the following disclaimer.
   13  * 2. Redistributions in binary form must reproduce the above copyright
   14  *    notice, this list of conditions and the following disclaimer in the
   15  *    documentation and/or other materials provided with the distribution.
   16  *
   17  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 
   18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
   19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   20  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   21  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   22  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   23  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   24  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   25  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   26  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   27  * SUCH DAMAGE.
   28  */
   29 
   30 #include <sys/types.h>
   31 #include <netinet/in.h>
   32 #include <libsa.h>
   33 #include <lib/libsa/ufs.h>
   34 #ifdef notdef
   35 #include <lib/libsa/cd9660.h>
   36 #include <lib/libsa/fat.h>
   37 #endif
   38 #include <lib/libsa/nfs.h>
   39 #include <lib/libsa/tftp.h>
   40 #include <lib/libsa/netif.h>
   41 #include <lib/libsa/unixdev.h>
   42 #include <biosdev.h>
   43 #include <dev/cons.h>
   44 #include "debug.h"
   45 #include "pxeboot.h"
   46 #include "pxe_net.h"
   47 
   48 const char version[] = "2.02";
   49 int     debug = 1;
   50 
   51 #undef _TEST
   52 
   53 
   54 void (*sa_cleanup)(void) = pxe_shutdown;
   55 
   56 
   57 void (*i386_probe1[])(void) = {
   58         ps2probe, gateA20on, debug_init, cninit, apmprobe,
   59         pciprobe, /* smpprobe, */ pxeprobe, memprobe
   60 };
   61 void (*i386_probe2[])(void) = {
   62         diskprobe
   63 };
   64 void (*i386_probe3[])(void) = {
   65         pxeinfo
   66 /*      netprobe_pxe, netprobe_mac, netprobe_inet4, netprobe_bootdev */
   67 };
   68 
   69 struct i386_boot_probes probe_list[] = {
   70         { "probing", i386_probe1, NENTS(i386_probe1) },
   71         { "disk",    i386_probe2, NENTS(i386_probe2) },
   72         { "net",     i386_probe3, NENTS(i386_probe3) },
   73 };
   74 int nibprobes = NENTS(probe_list);
   75 
   76 /* This next list must match file_system[]. */
   77 char *fs_name[] = {
   78         NULL, "tftp", "nfs"
   79 };
   80 int nfsname = NENTS(fs_name);
   81 
   82 struct fs_ops file_system[] = {
   83         { ufs_open,    ufs_close,    ufs_read,    ufs_write,    ufs_seek,
   84           ufs_stat,    ufs_readdir    },
   85         { tftp_open,   tftp_close,   tftp_read,   tftp_write,   tftp_seek,
   86           tftp_stat,   tftp_readdir   },
   87         { nfs_open,    nfs_close,    nfs_read,    nfs_write,    nfs_seek,
   88           nfs_stat,    nfs_readdir    },
   89 #ifdef notdef
   90         { fat_open,    fat_close,    fat_read,    fat_write,    fat_seek,
   91           fat_stat,    fat_readdir    },
   92         { cd9660_open, cd9660_close, cd9660_read, cd9660_write, cd9660_seek,
   93           cd9660_stat, cd9660_readdir },
   94 #endif
   95 #ifdef _TEST
   96         { null_open,   null_close,   null_read,   null_write,   null_seek,
   97           null_stat,   null_readdir   }
   98 #endif
   99 };
  100 int nfsys = NENTS(file_system);
  101 
  102 struct devsw    devsw[] = {
  103 #ifdef _TEST
  104         { "UNIX", unixstrategy, unixopen, unixclose, unixioctl },
  105 #else
  106         { "BIOS", biosstrategy, biosopen, biosclose, biosioctl },
  107 #endif
  108 };
  109 int ndevs = NENTS(devsw);
  110 
  111 struct devsw    netsw[] = {
  112         { "net",  net_strategy, net_open, net_close, net_ioctl },
  113 };
  114 
  115 struct netif_driver     *netif_drivers[] = {
  116 };
  117 int n_netif_drivers = NENTS(netif_drivers);
  118 
  119 struct consdev constab[] = {
  120 #ifdef _TEST
  121         { unix_probe, unix_init, unix_getc, unix_putc },
  122 #else
  123         { pc_probe, pc_init, pc_getc, pc_putc },
  124         { com_probe, com_init, com_getc, com_putc },
  125 #endif
  126         { NULL }
  127 };
  128 struct consdev *cn_tab = constab;

/* [<][>][^][v][top][bottom][index][help] */