summaryrefslogtreecommitdiff
path: root/sys/arch/arm32/include/disklabel.h
blob: 51789255abc25f2f865528f2fb631e15c49739b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/* $NetBSD: disklabel.h,v 1.2 1996/03/06 23:17:51 mark Exp $ */

/*
 * Copyright (c) 1994 Mark Brinicombe.
 * Copyright (c) 1994 Brini.
 * All rights reserved.
 *
 * This code is derived from software written for Brini by Mark Brinicombe
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed by Brini.
 * 4. The name of the company nor the name of the author may be used to
 *    endorse or promote products derived from this software without specific
 *    prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY BRINI ``AS IS'' AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL BRINI OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * RiscBSD kernel project
 *
 * disklabel.h
 *
 * machine specific disk label info
 *
 * Created      : 04/10/94
 */

#ifndef _ARM32_DISKLABEL_H_
#define _ARM32_DISKLABEL_H_

#define LABELSECTOR	1		/* sector containing label */
#define LABELOFFSET	0		/* offset of label in sector */
#define MAXPARTITIONS	8		/* number of partitions */
#define RAW_PART	2		/* raw partition: XX?c */

#define NRISCBSD_PARTITIONS MAXPARTITIONS

#define PARTITION_TYPE_UNUSED  0
#define PARTITION_TYPE_ADFS    1
#define PARTITION_TYPE_RISCIX  2

#define PARTITION_FORMAT_RISCIX  2
#define PARTITION_FORMAT_RISCBSD 0x42

#define FILECORE_BOOT_SECTOR 6

/* Stuff to deal with RISCiX partitions */

#define NRISCIX_PARTITIONS 8
#define RISCIX_PARTITION_OFFSET 8

struct riscix_partition {
	u_int rp_start;
	u_int rp_length;
	u_int rp_type;
	char rp_name[16];
};

struct riscix_partition_table {
	u_int pad0;
	u_int pad1;
	struct riscix_partition partitions[NRISCIX_PARTITIONS];
};

  
#include <sys/dkbad.h>

struct riscbsd_partition {
	u_int rp_start;
	u_int rp_length;
	u_int rp_type;
	char rp_name[16];
};

struct cpu_disklabel {
	u_int pad0;
	u_int pad1;
	struct riscbsd_partition partitions[NRISCBSD_PARTITIONS];
	struct dkbad bad;
};

struct filecore_bootblock {
	u_char  padding0[0x1c0];
	u_char  log2secsize;
	u_char  secspertrack;
	u_char  heads;
	u_char  density;
	u_char  idlen;
	u_char  log2bpmb;
	u_char  skew;
	u_char  bootoption;
	u_char  lowsector;
	u_char  nzones;
	u_short zone_spare;
	u_int   root;
	u_int   disc_size;
	u_short disc_id;
	u_char  disc_name[10];
	u_int   disc_type;

	u_char  padding1[24];

	u_char partition_type;
	u_char partition_cyl_low;
	u_char partition_cyl_high;
	u_char checksum;
};

#ifdef _KERNEL
struct disklabel;
int	bounds_check_with_label __P((struct buf *, struct disklabel *, int));
#endif /* _KERNEL */

#endif /* _ARM32_DISKLABEL_H_ */

/* End of disklabel.h */