xref: /openbsd-src/sbin/fdisk/mbr.h (revision 3d40667ede5978c665cc4fbff0aaf3b92c16a5da)
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