1*adf35c80Skrw /* $OpenBSD: disk.h,v 1.33 2022/04/25 17:10:09 krw Exp $ */ 2a1705421Sweingart 3a1705421Sweingart /* 4a1705421Sweingart * Copyright (c) 1997 Tobias Weingartner 5a1705421Sweingart * 610a68084Skrw * Permission to use, copy, modify, and distribute this software for any 710a68084Skrw * purpose with or without fee is hereby granted, provided that the above 810a68084Skrw * copyright notice and this permission notice appear in all copies. 9a1705421Sweingart * 1010a68084Skrw * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1110a68084Skrw * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1210a68084Skrw * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1310a68084Skrw * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1410a68084Skrw * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1510a68084Skrw * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1610a68084Skrw * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17a1705421Sweingart */ 18a1705421Sweingart 195cbc8961Skrw struct disk { 20199eafeaSkrw struct prt dk_bootprt; 2133e90638Skrw char *dk_name; 2233e90638Skrw int dk_fd; 2333e90638Skrw uint32_t dk_cylinders; 2433e90638Skrw uint32_t dk_heads; 2533e90638Skrw uint32_t dk_sectors; 2633e90638Skrw uint32_t dk_size; 2753f0474fSkrw }; 28a1705421Sweingart 29893a2455Skrw /* Align partition starts/sizes on 32K-byte boundaries. */ 30893a2455Skrw #define BLOCKALIGNMENT 64 31893a2455Skrw 32f9336ec7Skrw void DISK_open(const char *, const int); 3339351f7aSkrw void DISK_printgeometry(const char *); 34*adf35c80Skrw int DISK_readbytes(void *, const uint64_t, const size_t); 35*adf35c80Skrw int DISK_writebytes(const void *, const uint64_t, const size_t); 36a1705421Sweingart 37ac519580Skrw extern struct disk disk; 38afe4b3d4Skrw extern struct disklabel dl; 39