1*4da98914Stom /* $OpenBSD: libsa.h,v 1.42 2004/08/21 19:09:42 tom Exp $ */ 2df1f5d3aSweingart 3df1f5d3aSweingart /* 4857b0937Smickey * Copyright (c) 1996-1999 Michael Shalayeff 5df1f5d3aSweingart * All rights reserved. 6df1f5d3aSweingart * 7df1f5d3aSweingart * Redistribution and use in source and binary forms, with or without 8df1f5d3aSweingart * modification, are permitted provided that the following conditions 9df1f5d3aSweingart * are met: 10df1f5d3aSweingart * 1. Redistributions of source code must retain the above copyright 11df1f5d3aSweingart * notice, this list of conditions and the following disclaimer. 12df1f5d3aSweingart * 2. Redistributions in binary form must reproduce the above copyright 13df1f5d3aSweingart * notice, this list of conditions and the following disclaimer in the 14df1f5d3aSweingart * documentation and/or other materials provided with the distribution. 15df1f5d3aSweingart * 16df1f5d3aSweingart * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17857b0937Smickey * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18857b0937Smickey * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19857b0937Smickey * IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT, 20857b0937Smickey * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21857b0937Smickey * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22857b0937Smickey * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23857b0937Smickey * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24857b0937Smickey * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 25857b0937Smickey * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 26857b0937Smickey * THE POSSIBILITY OF SUCH DAMAGE. 27df1f5d3aSweingart */ 28df1f5d3aSweingart 291b039fc9Smickey #include <lib/libsa/stand.h> 3005cdd021Sweingart #include <machine/biosvar.h> 31df1f5d3aSweingart 32d95e68c6Sdrahn #define EXEC_ELF 3353fcb3f9Smickey 349fcb9114Smickey #define DEFAULT_KERNEL_ADDRESS 0 35bb1fa84bSmickey 36ef7aef7bStom struct i386_boot_probes { 37ef7aef7bStom char *name; 38ef7aef7bStom void (**probes)(void); 39ef7aef7bStom int count; 40ef7aef7bStom }; 41ef7aef7bStom 42ef7aef7bStom extern void (*sa_cleanup)(void); 43ef7aef7bStom 44c4071fd1Smillert void gateA20(int); 45ef7aef7bStom void gateA20on(void); 4605cdd021Sweingart 47e767ea5cStom void cpuprobe(void); 48c4071fd1Smillert void smpprobe(void); 49ef7aef7bStom void ps2probe(void); 50c4071fd1Smillert void pciprobe(void); 51c4071fd1Smillert void memprobe(void); 52c4071fd1Smillert void diskprobe(void); 53285601acStom void cdprobe(void); 54c4071fd1Smillert void apmprobe(void); 55055d6d0dSweingart void apmfixmem(void); 56c4071fd1Smillert void dump_biosmem(bios_memmap_t *); 57c4071fd1Smillert int mem_add(long, long); 58c4071fd1Smillert int mem_delete(long, long); 59c4071fd1Smillert void mem_pass(void); 6005cdd021Sweingart 61c4071fd1Smillert void devboot(dev_t, char *); 62c4071fd1Smillert void machdep(void); 63df1f5d3aSweingart 64055d6d0dSweingart void *getSYSCONFaddr(void); 65055d6d0dSweingart void *getEBDAaddr(void); 66055d6d0dSweingart 6741a5b770Smickey extern const char bdevs[][4]; 6841a5b770Smickey extern const int nbdevs; 6903b324a0Smickey extern u_int cnvmem, extmem; /* XXX global pass memprobe()->machdep_start() */ 705adc64b9Smickey extern int ps2model; 71deaa2fceSmickey 72ef7aef7bStom extern struct i386_boot_probes probe_list[]; 73ef7aef7bStom extern int nibprobes; 74ef7aef7bStom extern void (*devboot_p)(dev_t, char *); 75ef7aef7bStom 76b9a05c75Smickey /* diskprobe.c */ 77b9a05c75Smickey extern bios_diskinfo_t bios_diskinfo[]; 787f850a97Smickey extern u_int32_t bios_cksumlen; 79b9a05c75Smickey 80*4da98914Stom #define MACHINE_CMD cmd_machine /* we have i386-specific commands */ 81