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