xref: /openbsd-src/sbin/fdisk/mbr.h (revision 3d40667ede5978c665cc4fbff0aaf3b92c16a5da)
1 /*	$OpenBSD: mbr.h,v 1.44 2022/07/26 14:30:37 krw Exp $	*/
2 
3 /*
4  * Copyright (c) 1997 Tobias Weingartner
5  *
6  * Permission to use, copy, modify, and distribute this software for any
7  * purpose with or without fee is hereby granted, provided that the above
8  * copyright notice and this permission notice appear in all copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 struct mbr {
20 	uint64_t	mbr_lba_firstembr;
21 	uint64_t	mbr_lba_self;
22 	unsigned char	mbr_code[DOSPARTOFF];
23 	struct prt	mbr_prt[NDOSPART];
24 	uint16_t	mbr_signature;
25 	unsigned int	mbr_dmbrzeros;
26 };
27 
28 extern struct dos_mbr	default_dmbr;
29 
30 void		MBR_print(const struct mbr *, const char *);
31 void		MBR_init(struct mbr *);
32 int		MBR_read(const uint64_t, const uint64_t, struct mbr *);
33 int		MBR_write(const struct mbr *);
34 int		MBR_valid_prt(const struct mbr *);
35