xref: /openbsd/sys/arch/amd64/stand/libsa/biosdev.h (revision 3e58d19e)
1*3e58d19eSkrw /*	$OpenBSD: biosdev.h,v 1.6 2020/12/09 18:10:18 krw Exp $	*/
2a47f7207Smickey 
3a47f7207Smickey /*
4a47f7207Smickey  * Copyright (c) 1996 Michael Shalayeff
5a47f7207Smickey  * All rights reserved.
6a47f7207Smickey  *
7a47f7207Smickey  * Redistribution and use in source and binary forms, with or without
8a47f7207Smickey  * modification, are permitted provided that the following conditions
9a47f7207Smickey  * are met:
10a47f7207Smickey  * 1. Redistributions of source code must retain the above copyright
11a47f7207Smickey  *    notice, this list of conditions and the following disclaimer.
12a47f7207Smickey  * 2. Redistributions in binary form must reproduce the above copyright
13a47f7207Smickey  *    notice, this list of conditions and the following disclaimer in the
14a47f7207Smickey  *    documentation and/or other materials provided with the distribution.
15a47f7207Smickey  *
16a47f7207Smickey  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17a47f7207Smickey  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18a47f7207Smickey  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19a47f7207Smickey  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20a47f7207Smickey  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21a47f7207Smickey  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22a47f7207Smickey  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23a47f7207Smickey  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24a47f7207Smickey  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25a47f7207Smickey  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26a47f7207Smickey  * SUCH DAMAGE.
27a47f7207Smickey  *
28a47f7207Smickey  */
29a47f7207Smickey 
30a47f7207Smickey /*
31a47f7207Smickey  * Extension support bitmap definition (returned by 41h)
32a47f7207Smickey  */
33a47f7207Smickey #define EXT_BM_EDA	0x01	/* Extended disk access functions	*/
34a47f7207Smickey 				/*  (42h-44h, 47h and 48h) supported.	*/
35a47f7207Smickey #define EXT_BM_RDC	0x02	/* Removable drive controller functions	*/
36a47f7207Smickey 				/*  (45h, 46h, 48h, 49h and INT 15 52h)	*/
37a47f7207Smickey 				/*  supported.				*/
38a47f7207Smickey #define EXT_BM_EDD	0x04	/* Enhanced disk drive functions	*/
39a47f7207Smickey 				/*  (48h and 4eh) supported.		*/
40a47f7207Smickey #define EXT_BM_RSV	0xf8	/* Reserved (0)				*/
41a47f7207Smickey 
42a47f7207Smickey struct consdev;
43a47f7207Smickey struct open_file;
447b5f1cbeSyasuoka struct diskinfo;
45a47f7207Smickey 
46a47f7207Smickey /* biosdev.c */
47a47f7207Smickey extern const char *biosdevs[];
48*3e58d19eSkrw int biosstrategy(void *, int, daddr_t, size_t, void *, size_t *);
49a47f7207Smickey int biosopen(struct open_file *, ...);
50a47f7207Smickey int biosclose(struct open_file *);
51a47f7207Smickey int biosioctl(struct open_file *, u_long, void *);
52a47f7207Smickey int bios_getdiskinfo(int, bios_diskinfo_t *);
537b5f1cbeSyasuoka int biosd_diskio(int, struct diskinfo *, u_int, int, void *);
54a47f7207Smickey const char * bios_getdisklabel(bios_diskinfo_t *, struct disklabel *);
55a47f7207Smickey 
56a47f7207Smickey /* diskprobe.c */
57a47f7207Smickey struct diskinfo *dklookup(int);
58a47f7207Smickey bios_diskinfo_t *bios_dklookup(int);
59a47f7207Smickey 
60a47f7207Smickey /* bioscons.c */
61a47f7207Smickey void pc_probe(struct consdev *);
62a47f7207Smickey void pc_init(struct consdev *);
63a47f7207Smickey int pc_getc(dev_t);
645b12e470Sderaadt int pc_getshifts(dev_t);
65a47f7207Smickey void pc_putc(dev_t, int);
66a47f7207Smickey void pc_pollc(dev_t, int);
67a47f7207Smickey void com_probe(struct consdev *);
68a47f7207Smickey void com_init(struct consdev *);
69a47f7207Smickey int comspeed(dev_t, int);
70a47f7207Smickey int com_getc(dev_t);
71a47f7207Smickey void com_putc(dev_t, int);
72a47f7207Smickey void com_pollc(dev_t, int);
73