1 1.13 mlelstv /* $NetBSD: biosdisk.h,v 1.13 2021/05/30 05:59:23 mlelstv Exp $ */ 2 1.1 perry 3 1.1 perry /* 4 1.1 perry * Copyright (c) 1996 5 1.1 perry * Matthias Drochner. All rights reserved. 6 1.1 perry * 7 1.1 perry * Redistribution and use in source and binary forms, with or without 8 1.1 perry * modification, are permitted provided that the following conditions 9 1.1 perry * are met: 10 1.1 perry * 1. Redistributions of source code must retain the above copyright 11 1.1 perry * notice, this list of conditions and the following disclaimer. 12 1.1 perry * 2. Redistributions in binary form must reproduce the above copyright 13 1.1 perry * notice, this list of conditions and the following disclaimer in the 14 1.1 perry * documentation and/or other materials provided with the distribution. 15 1.1 perry * 16 1.1 perry * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 1.1 perry * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18 1.1 perry * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19 1.1 perry * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20 1.1 perry * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21 1.1 perry * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 1.1 perry * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 1.1 perry * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 1.1 perry * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25 1.1 perry * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 1.1 perry */ 27 1.1 perry 28 1.11 manu #define BIOSDISK_PART_NAME_LEN 36 29 1.11 manu 30 1.9 nonaka struct biosdisk_partition { 31 1.9 nonaka daddr_t offset; 32 1.9 nonaka daddr_t size; 33 1.9 nonaka int fstype; 34 1.11 manu #ifndef NO_GPT 35 1.9 nonaka const struct gpt_part { 36 1.9 nonaka const struct uuid *guid; 37 1.9 nonaka const char *name; 38 1.9 nonaka } *guid; 39 1.9 nonaka uint64_t attr; 40 1.11 manu char *part_name; /* maximum BIOSDISK_PART_NAME_LEN */ 41 1.9 nonaka #endif 42 1.9 nonaka }; 43 1.9 nonaka 44 1.12 manu extern struct btinfo_bootdisk bi_disk; 45 1.12 manu extern struct btinfo_bootwedge bi_wedge; 46 1.13 mlelstv extern struct btinfo_rootdevice bi_root; 47 1.12 manu 48 1.5 junyoung int biosdisk_strategy(void *, int, daddr_t, size_t, void *, size_t *); 49 1.5 junyoung int biosdisk_open(struct open_file *, ...); 50 1.11 manu int biosdisk_open_name(struct open_file *, const char *); 51 1.5 junyoung int biosdisk_close(struct open_file *); 52 1.5 junyoung int biosdisk_ioctl(struct open_file *, u_long, void *); 53 1.11 manu int biosdisk_findpartition(int, daddr_t, int *, const char **); 54 1.11 manu int biosdisk_readpartition(int, daddr_t, daddr_t, 55 1.11 manu struct biosdisk_partition **, int *); 56 1.11 manu 57 1.11 manu struct RF_ComponentLabel_s; 58 1.11 manu int biosdisk_read_raidframe(int, daddr_t, struct RF_ComponentLabel_s *); 59 1.10 nonaka 60 1.10 nonaka #if !defined(NO_GPT) 61 1.10 nonaka struct uuid; 62 1.10 nonaka bool guid_is_nil(const struct uuid *); 63 1.10 nonaka bool guid_is_equal(const struct uuid *, const struct uuid *); 64 1.10 nonaka #endif 65