xref: /netbsd-src/sys/arch/ews4800mips/include/disklabel.h (revision 021d832a1333a7c481b64a5d4c4c4d092bd0bc20)
1*021d832aSchristos /*	$NetBSD: disklabel.h,v 1.5 2019/04/03 22:10:49 christos Exp $	*/
204faabf0Stsutsui 
304faabf0Stsutsui /*-
404faabf0Stsutsui  * Copyright (c) 2004 The NetBSD Foundation, Inc.
504faabf0Stsutsui  * All rights reserved.
604faabf0Stsutsui  *
704faabf0Stsutsui  * This code is derived from software contributed to The NetBSD Foundation
804faabf0Stsutsui  * by UCHIYAMA Yasushi.
904faabf0Stsutsui  *
1004faabf0Stsutsui  * Redistribution and use in source and binary forms, with or without
1104faabf0Stsutsui  * modification, are permitted provided that the following conditions
1204faabf0Stsutsui  * are met:
1304faabf0Stsutsui  * 1. Redistributions of source code must retain the above copyright
1404faabf0Stsutsui  *    notice, this list of conditions and the following disclaimer.
1504faabf0Stsutsui  * 2. Redistributions in binary form must reproduce the above copyright
1604faabf0Stsutsui  *    notice, this list of conditions and the following disclaimer in the
1704faabf0Stsutsui  *    documentation and/or other materials provided with the distribution.
1804faabf0Stsutsui  *
1904faabf0Stsutsui  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
2004faabf0Stsutsui  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2104faabf0Stsutsui  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
2204faabf0Stsutsui  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
2304faabf0Stsutsui  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2404faabf0Stsutsui  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2504faabf0Stsutsui  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2604faabf0Stsutsui  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2704faabf0Stsutsui  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2804faabf0Stsutsui  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2904faabf0Stsutsui  * POSSIBILITY OF SUCH DAMAGE.
3004faabf0Stsutsui  */
3104faabf0Stsutsui 
3204faabf0Stsutsui #ifndef _EWS4800MIPS_DISKLABEL_H_
3304faabf0Stsutsui #define	_EWS4800MIPS_DISKLABEL_H_
3404faabf0Stsutsui 
3504faabf0Stsutsui #if HAVE_NBTOOL_CONFIG_H
3604faabf0Stsutsui #include <nbinclude/machine/pdinfo.h>
3704faabf0Stsutsui #include <nbinclude/machine/vtoc.h>
3804faabf0Stsutsui #else
3904faabf0Stsutsui #include <machine/pdinfo.h>
4004faabf0Stsutsui #include <machine/vtoc.h>
4104faabf0Stsutsui #endif
4204faabf0Stsutsui 
4304faabf0Stsutsui /*
4404faabf0Stsutsui  * UX reserved partition
4504faabf0Stsutsui  *	0	/
4604faabf0Stsutsui  *	1	swap
4704faabf0Stsutsui  *	2	/usr
4804faabf0Stsutsui  *	3	/stand (bfs)
4904faabf0Stsutsui  *	6	whole disk
5004faabf0Stsutsui  *	7	boot block (VTOC)
5104faabf0Stsutsui  *	8	/var
5204faabf0Stsutsui  *	9	/home
5304faabf0Stsutsui  */
5404faabf0Stsutsui 
5504faabf0Stsutsui #define	MAXPARTITIONS	16
5604faabf0Stsutsui /* 'p'-partition is mostly familiar with EWS-UX */
5704faabf0Stsutsui #define	RAW_PART	15
5804faabf0Stsutsui 
59a47e2eb7Sbouyer #define LABELUSESMBR	0	/* no MBR partitionning */
6004faabf0Stsutsui #define	LABELSECTOR	9	/* See ews4800mips/disksubr/disksubr_conv.c */
6104faabf0Stsutsui #define	LABELOFFSET	0
6204faabf0Stsutsui 
6304faabf0Stsutsui struct cpu_disklabel {
6404faabf0Stsutsui 	/* EWS-UX native disklabel */
6504faabf0Stsutsui 	struct pdinfo_sector pdinfo;
6604faabf0Stsutsui 	struct vtoc_sector vtoc;
6704faabf0Stsutsui };
6804faabf0Stsutsui 
6904faabf0Stsutsui #if defined(_KERNEL)
7004faabf0Stsutsui /* VTOC <-> disklabel conversion ops. */
7104faabf0Stsutsui struct disklabel;
7204faabf0Stsutsui void vtoc_set_default(struct cpu_disklabel *, struct disklabel *);
7304faabf0Stsutsui void disklabel_to_vtoc(struct cpu_disklabel *, struct disklabel *);
7404faabf0Stsutsui void vtoc_to_disklabel(struct cpu_disklabel *, struct disklabel *);
7504faabf0Stsutsui void disklabel_set_default(struct disklabel *);
76712239e3Sthorpej bool disklabel_sanity(struct disklabel *);
77*021d832aSchristos 
78*021d832aSchristos #define __HAVE_SETDISKLABEL
7904faabf0Stsutsui #endif
8004faabf0Stsutsui 
81*021d832aSchristos 
8204faabf0Stsutsui #endif /* _EWS4800MIPS_DISKLABEL_H_ */
83