xref: /openbsd/sys/arch/i386/stand/libsa/libsa.h (revision 4da98914)
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