1*3d40667eSkrw /* $OpenBSD: mbr.h,v 1.44 2022/07/26 14:30:37 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 1953f0474fSkrw struct mbr { 200cd9e2afSkrw uint64_t mbr_lba_firstembr; 210cd9e2afSkrw uint64_t mbr_lba_self; 22061e6e0aSkrw unsigned char mbr_code[DOSPARTOFF]; 23061e6e0aSkrw struct prt mbr_prt[NDOSPART]; 24061e6e0aSkrw uint16_t mbr_signature; 25*3d40667eSkrw unsigned int mbr_dmbrzeros; 2653f0474fSkrw }; 27a1705421Sweingart 28f43a9f23Skrw extern struct dos_mbr default_dmbr; 299317a2ddSkrw 30859be6c9Skrw void MBR_print(const struct mbr *, const char *); 31ac519580Skrw void MBR_init(struct mbr *); 321429e715Skrw int MBR_read(const uint64_t, const uint64_t, struct mbr *); 33e79775dbSkrw int MBR_write(const struct mbr *); 349ba61043Skrw int MBR_valid_prt(const struct mbr *); 35