Home | History | Annotate | Line # | Download | only in include
rpb.h revision 1.12.4.1
      1 /* $NetBSD: rpb.h,v 1.12.4.1 1997/08/23 07:06:54 thorpej Exp $ */
      2 
      3 /*
      4  * Copyright Notice:
      5  *
      6  * Copyright (c) 1997 Christopher G. Demetriou.  All rights reserved.
      7  *
      8  * License:
      9  *
     10  * This License applies to this software ("Software"), created
     11  * by Christopher G. Demetriou ("Author").
     12  *
     13  * You may use, copy, modify and redistribute this Software without
     14  * charge, in either source code form, binary form, or both, on the
     15  * following conditions:
     16  *
     17  * 1.  (a) Binary code: (i) a complete copy of the above copyright notice
     18  * must be included within each copy of the Software in binary code form,
     19  * and (ii) a complete copy of the above copyright notice and all terms
     20  * of this License as presented here must be included within each copy of
     21  * all documentation accompanying or associated with binary code, in any
     22  * medium, along with a list of the software modules to which the license
     23  * applies.
     24  *
     25  * (b) Source Code: A complete copy of the above copyright notice and all
     26  * terms of this License as presented here must be included within: (i)
     27  * each copy of the Software in source code form, and (ii) each copy of
     28  * all accompanying or associated documentation, in any medium.
     29  *
     30  * 2. The following Acknowledgment must be used in communications
     31  * involving the Software as described below:
     32  *
     33  *      This product includes software developed by
     34  *      Christopher G. Demetriou for the NetBSD Project.
     35  *
     36  * The Acknowledgment must be conspicuously and completely displayed
     37  * whenever the Software, or any software, products or systems containing
     38  * the Software, are mentioned in advertising, marketing, informational
     39  * or publicity materials of any kind, whether in print, electronic or
     40  * other media (except for information provided to support use of
     41  * products containing the Software by existing users or customers).
     42  *
     43  * 3. The name of the Author may not be used to endorse or promote
     44  * products derived from this Software without specific prior written
     45  * permission (conditions (1) and (2) above are not considered
     46  * endorsement or promotion).
     47  *
     48  * 4.  This license applies to: (a) all copies of the Software, whether
     49  * partial or whole, original or modified, and (b) your actions, and the
     50  * actions of all those who may act on your behalf.  All uses not
     51  * expressly permitted are reserved to the Author.
     52  *
     53  * 5.  Disclaimer.  THIS SOFTWARE IS MADE AVAILABLE BY THE AUTHOR TO THE
     54  * PUBLIC FOR FREE AND "AS IS.''  ALL USERS OF THIS FREE SOFTWARE ARE
     55  * SOLELY AND ENTIRELY RESPONSIBLE FOR THEIR OWN CHOICE AND USE OF THIS
     56  * SOFTWARE FOR THEIR OWN PURPOSES.  BY USING THIS SOFTWARE, EACH USER
     57  * AGREES THAT THE AUTHOR SHALL NOT BE LIABLE FOR DAMAGES OF ANY KIND IN
     58  * RELATION TO ITS USE OR PERFORMANCE.
     59  *
     60  * 6.  If you have a special need for a change in one or more of these
     61  * license conditions, please contact the Author via electronic mail to
     62  *
     63  *     cgd (at) NetBSD.ORG
     64  *
     65  * or via the contact information on
     66  *
     67  *     http://www.NetBSD.ORG/People/Pages/cgd.html
     68  */
     69 
     70 /*
     71  * Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
     72  * All rights reserved.
     73  *
     74  * Author: Keith Bostic, Chris G. Demetriou
     75  *
     76  * Permission to use, copy, modify and distribute this software and
     77  * its documentation is hereby granted, provided that both the copyright
     78  * notice and this permission notice appear in all copies of the
     79  * software, derivative works or modified versions, and any portions
     80  * thereof, and that both notices appear in supporting documentation.
     81  *
     82  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
     83  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
     84  * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
     85  *
     86  * Carnegie Mellon requests users of this software to return to
     87  *
     88  *  Software Distribution Coordinator  or  Software.Distribution (at) CS.CMU.EDU
     89  *  School of Computer Science
     90  *  Carnegie Mellon University
     91  *  Pittsburgh PA 15213-3890
     92  *
     93  * any improvements or extensions that they make and grant Carnegie the
     94  * rights to redistribute these changes.
     95  */
     96 
     97 /*
     98  * From DEC 3000 300/400/500/600/700/800/900 System Programmer's Manual,
     99  * EK-D3SYS-PM.B01.
    100  */
    101 
    102 /*
    103  * HWRPB (Hardware Restart Parameter Block).
    104  */
    105 #define	HWRPB_ADDR	0x10000000		/* virtual address, at boot */
    106 
    107 #ifndef	ASSEMBLER
    108 struct rpb {
    109 	struct restart_blk *rpb;		/*   0: HWRPB phys. address. */
    110 	char		rpb_magic[8];		/*   8: "HWRPB" (in ASCII) */
    111 	u_int64_t	rpb_version;		/*  10 */
    112 	u_int64_t	rpb_size;		/*  18: HWRPB size in bytes */
    113 	u_int64_t	rpb_primary_cpu_id;	/*  20 */
    114 	u_int64_t	rpb_page_size;		/*  28: (8192) */
    115 	u_int64_t	rpb_phys_addr_size;	/*  30:   (34) */
    116 	u_int64_t	rpb_max_asn;		/*  38:   (16) */
    117 	char		rpb_ssn[16];		/*  40: only first 10 valid */
    118 
    119 #define	ST_ADU			1		/* Alpha Demo. Unit (?) */
    120 #define	ST_DEC_4000		2		/* "Cobra" (?) */
    121 #define	ST_DEC_7000		3		/* "Ruby" (?) */
    122 #define	ST_DEC_3000_500		4		/* "Flamingo" family (TC) */
    123 #define	ST_DEC_2000_300		6		/* "Jensen" (EISA/ISA) */
    124 #define	ST_DEC_3000_300		7		/* "Pelican" (TC) */
    125 #define	ST_DEC_2100_A500	9		/* "Sable" (?) */
    126 #define	ST_DEC_APXVME_64	10		/* "AXPvme" (VME?) */
    127 #define	ST_DEC_AXPPCI_33	11		/* "NoName" (PCI/ISA) */
    128 #define	ST_DEC_21000		12		/* "TurboLaser" (?) */
    129 #define	ST_DEC_2100_A50		13		/* "Avanti" (PCI/ISA) */
    130 #define	ST_DEC_MUSTANG		14		/* "Mustang" (?) */
    131 #define	ST_DEC_KN20AA		15		/* kn20aa (PCI/EISA) */
    132 #define	ST_DEC_1000		17		/* "Mikasa" (PCI/ISA?) */
    133 #define	ST_EB66			19		/* EB66 (PCI/ISA?) */
    134 #define	ST_EB64P		20		/* EB64+ (PCI/ISA?) */
    135 #define	ST_ALPHABOOK1		21		/* AlphaBook (?) */
    136 #define	ST_DEC_4100		22		/* "Rawhide" (?) */
    137 #define	ST_DEC_EV45_PBP		23		/* "Lego" (?) */
    138 #define	ST_DEC_2100A_A500	24		/* "Lynx" (?) */
    139 #define	ST_EB164		26		/* EB164 (PCI/ISA) */
    140 #define	ST_DEC_1000A		27		/* "Noritake" (?) */
    141 #define	ST_DEC_ALPHAVME_224	28		/* "Cortex" (?) */
    142 #define	ST_DEC_550		30		/* "Miata" (PCI/ISA) */
    143 #define	ST_DEC_EV56_PBP		32		/* "Takara" (?) */
    144 #define	ST_DEC_ALPHAVME_320	33		/* "Yukon" (?) */
    145 
    146 	u_int64_t	rpb_type;		/*  50: */
    147 
    148 #define	SV_MPCAP		0x00000001	/* multiprocessor capable */
    149 
    150 #define	SV_CONSOLE		0x0000001e	/* console hardware mask */
    151 #define	SV_CONSOLE_DETACHED	0x00000002
    152 #define	SV_CONSOLE_EMBEDDED	0x00000004
    153 
    154 #define	SV_POWERFAIL		0x000000e0	/* powerfail mask */
    155 #define	SV_PF_UNITED		0x00000020
    156 #define	SV_PF_SEPARATE		0x00000040
    157 #define	SV_PF_BBACKUP		0x00000060
    158 #define	SV_PF_ACTION		0x00000100	/* powerfail restart */
    159 
    160 #define	SV_GRAPHICS		0x00000200	/* graphic engine present */
    161 
    162 #define	SV_ST_MASK		0x0000fc00	/* system type mask */
    163 #define	SV_ST_RESERVED		0x00000000	/* RESERVED */
    164 
    165 /*
    166  * System types for the DEC 3000/500 (Flamingo) Family
    167  */
    168 #define	SV_ST_SANDPIPER		0x00000400	/* Sandpiper;	3000/400 */
    169 #define	SV_ST_FLAMINGO		0x00000800	/* Flamingo;	3000/500 */
    170 #define	SV_ST_HOTPINK		0x00000c00	/* "Hot Pink";	3000/500X */
    171 #define	SV_ST_FLAMINGOPLUS	0x00001000	/* Flamingo+;	3000/800 */
    172 #define	SV_ST_ULTRA		0x00001400	/* "Ultra", aka Flamingo+ */
    173 #define	SV_ST_SANDPLUS		0x00001800	/* Sandpiper+;	3000/600 */
    174 #define	SV_ST_SANDPIPER45	0x00001c00	/* Sandpiper45;	3000/700 */
    175 #define	SV_ST_FLAMINGO45	0x00002000	/* Flamingo45;	3000/900 */
    176 
    177 /*
    178  * System types for ???
    179  */
    180 #define	SV_ST_SABLE		0x00000400	/* Sable (???) */
    181 
    182 /*
    183  * System types for the DEC 3000/300 (Pelican) Family
    184  */
    185 #define	SV_ST_PELICAN		0x00000000	/* Pelican;	 3000/300 */
    186 #define	SV_ST_PELICA		0x00000400	/* Pelica;	 3000/300L */
    187 #define	SV_ST_PELICANPLUS	0x00000800	/* Pelican+;	 3000/300X */
    188 #define	SV_ST_PELICAPLUS	0x00000c00	/* Pelica+;	 3000/300LX */
    189 
    190 /*
    191  * System types for the AlphaStation Family
    192  */
    193 #define	SV_ST_AVANTI		0x00000000	/* Avanti;	400 4/233 */
    194 #define	SV_ST_MUSTANG2_4_166	0x00000800	/* Mustang II;	200 4/166 */
    195 #define	SV_ST_MUSTANG2_4_233	0x00001000	/* Mustang II;	200 4/233 */
    196 #define	SV_ST_AVANTI_XXX	0x00001400	/* also Avanti;	400 4/233 */
    197 #define	SV_ST_MUSTANG2_4_100	0x00002400	/* Mustang II;	200 4/100 */
    198 
    199 	u_int64_t	rpb_variation;		/*  58 */
    200 
    201 	char		rpb_revision[8];	/*  60; only first 4 valid */
    202 	u_int64_t	rpb_intr_freq;		/*  68; scaled by 4096 */
    203 	u_int64_t	rpb_cc_freq;		/*  70: cycle cntr frequency */
    204 	vm_offset_t	rpb_vptb;		/*  78: */
    205 	u_int64_t	rpb_reserved_arch;	/*  80: */
    206 	vm_offset_t	rpb_tbhint_off;		/*  88: */
    207 	u_int64_t	rpb_pcs_cnt;		/*  90: */
    208 	u_int64_t	rpb_pcs_size;		/*  98; pcs size in bytes */
    209 	vm_offset_t	rpb_pcs_off;		/*  A0: offset to pcs info */
    210 	u_int64_t	rpb_ctb_cnt;		/*  A8: console terminal */
    211 	u_int64_t	rpb_ctb_size;		/*  B0: ctb size in bytes */
    212 	vm_offset_t	rpb_ctb_off;		/*  B8: offset to ctb */
    213 	vm_offset_t	rpb_crb_off;		/*  C0: offset to crb */
    214 	vm_offset_t	rpb_memdat_off;		/*  C8: memory data offset */
    215 	vm_offset_t	rpb_condat_off;		/*  D0: config data offset */
    216 	vm_offset_t	rpb_fru_off;		/*  D8: FRU table offset */
    217 	u_int64_t	rpb_save_term;		/*  E0: terminal save */
    218 	u_int64_t	rpb_save_term_val;	/*  E8: */
    219 	u_int64_t	rpb_rest_term;		/*  F0: terminal restore */
    220 	u_int64_t	rpb_rest_term_val;	/*  F8: */
    221 	u_int64_t	rpb_restart;		/* 100: restart */
    222 	u_int64_t	rpb_restart_val;	/* 108: */
    223 	u_int64_t	rpb_reserve_os;		/* 110: */
    224 	u_int64_t	rpb_reserve_hw;		/* 118: */
    225 	u_int64_t	rpb_checksum;		/* 120: HWRPB checksum */
    226 	u_int64_t	rpb_rxrdy;		/* 128: receive ready */
    227 	u_int64_t	rpb_txrdy;		/* 130: transmit ready */
    228 	vm_offset_t	rpb_dsrdb_off;		/* 138: HWRPB + DSRDB offset */
    229 	u_int64_t	rpb_tbhint[8];		/* 149: TB hint block */
    230 };
    231 
    232 /*
    233  * PCS: Per-CPU information.
    234  */
    235 struct pcs {
    236 	u_int8_t	pcs_hwpcb[128];		/*   0: PAL dependent */
    237 
    238 #define	PCS_BIP			0x000001	/* boot in progress */
    239 #define	PCS_RC			0x000002	/* restart possible */
    240 #define	PCS_PA			0x000004	/* processor available */
    241 #define	PCS_PP			0x000008	/* processor present */
    242 #define	PCS_OH			0x000010	/* user halted */
    243 #define	PCS_CV			0x000020	/* context valid */
    244 #define	PCS_PV			0x000040	/* PALcode valid */
    245 #define	PCS_PMV			0x000080	/* PALcode memory valid */
    246 #define	PCS_PL			0x000100	/* PALcode loaded */
    247 
    248 #define	PCS_HALT_REQ		0xff0000	/* halt request mask */
    249 #define	PCS_HALT_DEFAULT	0x000000
    250 #define	PCS_HALT_SAVE_EXIT	0x010000
    251 #define	PCS_HALT_COLD_BOOT	0x020000
    252 #define	PCS_HALT_WARM_BOOT	0x030000
    253 #define	PCS_HALT_STAY_HALTED	0x040000
    254 #define	PCS_mbz	      0xffffffffff000000	/* 24:63 -- must be zero */
    255 	u_int64_t	pcs_flags;		/*  80: */
    256 
    257 	u_int64_t	pcs_pal_memsize;	/*  88: PAL memory size */
    258 	u_int64_t	pcs_pal_scrsize;	/*  90: PAL scratch size */
    259 	vm_offset_t	pcs_pal_memaddr;	/*  98: PAL memory addr */
    260 	vm_offset_t	pcs_pal_scraddr;	/*  A0: PAL scratch addr */
    261 	struct {
    262 		u_int64_t
    263 			pcs_alpha	: 8,	/* alphabetic char 'a' - 'z' */
    264 #define	PAL_TYPE_STANDARD	0
    265 #define	PAL_TYPE_VMS		1
    266 #define	PAL_TYPE_OSF1		2
    267 			pcs_pal_type	: 8,	/* PALcode type:
    268 						 * 0 == standard
    269 						 * 1 == OpenVMS
    270 						 * 2 == OSF/1
    271 						 * 3-127 DIGITAL reserv.
    272 						 * 128-255 non-DIGITAL reserv.
    273 						 */
    274 			sbz1		: 16,
    275 			pcs_proc_cnt	: 7,	/* Processor count */
    276 			sbz2		: 25;
    277 	} pcs_pal_rev;				/*  A8: */
    278 #define	pcs_alpha	pcs_pal_rev.alpha
    279 #define	pcs_pal_type	pcs_pal_rev.pal_type
    280 #define	pcs_proc_cnt	pcs_pal_rev.proc_cnt
    281 
    282 	u_int64_t	pcs_proc_type;		/*  B0: processor type */
    283 
    284 #define	PCS_PROC_MAJOR		0x00000000ffffffff
    285 #define	PCS_PROC_MAJORSHIFT	0
    286 
    287 #define	PCS_PROC_EV3		1			/* EV3 */
    288 #define	PCS_PROC_EV4		2			/* EV4: 21064 */
    289 #define	PCS_PROC_SIMULATION	3			/* Simulation */
    290 #define	PCS_PROC_LCA4		4			/* LCA4: 2106[68] */
    291 #define	PCS_PROC_EV5		5			/* EV5: 21164 */
    292 #define	PCS_PROC_EV45		6			/* EV45: 21064A */
    293 #define	PCS_PROC_EV56		7			/* EV56: 21164A */
    294 #define	PCS_PROC_EV6		8			/* EV6: 21264 */
    295 #define	PCS_PROC_PCA56		9			/* PCA256: 21164PC */
    296 
    297 #define	PCS_PROC_MINOR		0xffffffff00000000
    298 #define	PCS_PROC_MINORSHIFT	32
    299 
    300 	/* Minor number interpretation is processor specific.  See cpu.c. */
    301 
    302 	u_int64_t	pcs_proc_var;		/* B8: processor variation. */
    303 
    304 #define	PCS_VAR_VAXFP		0x0000000000000001	/* VAX FP support */
    305 #define	PCS_VAR_IEEEFP		0x0000000000000002	/* IEEE FP support */
    306 #define	PCS_VAR_PE		0x0000000000000004	/* Primary Eligible */
    307 #define	PCS_VAR_RESERVED	0xfffffffffffffff8	/* Reserved */
    308 
    309 	char		pcs_proc_revision[8];	/*  C0: only first 4 valid */
    310 	char		pcs_proc_sn[16];	/*  C8: only first 10 valid */
    311 	vm_offset_t	pcs_machcheck;		/*  D8: mach chk phys addr. */
    312 	u_int64_t	pcs_machcheck_len;	/*  E0: length in bytes */
    313 	vm_offset_t	pcs_halt_pcbb;		/*  E8: phys addr of halt PCB */
    314 	vm_offset_t	pcs_halt_pc;		/*  F0: halt PC */
    315 	u_int64_t	pcs_halt_ps;		/*  F8: halt PS */
    316 	u_int64_t	pcs_halt_r25;		/* 100: halt argument list */
    317 	u_int64_t	pcs_halt_r26;		/* 108: halt return addr list */
    318 	u_int64_t	pcs_halt_r27;		/* 110: halt procedure value */
    319 
    320 #define	PCS_HALT_RESERVED		0
    321 #define	PCS_HALT_POWERUP		1
    322 #define	PCS_HALT_CONSOLE_HALT		2
    323 #define	PCS_HALT_CONSOLE_CRASH		3
    324 #define	PCS_HALT_KERNEL_MODE		4
    325 #define	PCS_HALT_KERNEL_STACK_INVALID	5
    326 #define	PCS_HALT_DOUBLE_ERROR_ABORT	6
    327 #define	PCS_HALT_SCBB			7
    328 #define	PCS_HALT_PTBR			8	/* 9-FF: reserved */
    329 	u_int64_t	pcs_halt_reason;	/* 118: */
    330 
    331 	u_int64_t	pcs_reserved_soft;	/* 120: preserved software */
    332 	u_int64_t	pcs_buffer[21];		/* 128: console buffers */
    333 
    334 #define	PALvar_reserved	0
    335 #define	PALvar_OpenVMS	1
    336 #define	PALvar_OSF1	2
    337 	u_int64_t	pcs_palrevisions[16];	/* 1D0: PALcode revisions */
    338 
    339 	u_int64_t	pcs_reserved_arch[6];	/* 250: reserved arch */
    340 };
    341 
    342 /*
    343  * CTB: Console Terminal Block
    344  */
    345 struct ctb {
    346 	u_int64_t	ctb_type;		/*   0: always 4 */
    347 	u_int64_t	ctb_unit;		/*   8: */
    348 	u_int64_t	ctb_reserved;		/*  16: */
    349 	u_int64_t	ctb_len;		/*  24: bytes of info */
    350 	u_int64_t	ctb_ipl;		/*  32: console ipl level */
    351 	vm_offset_t	ctb_tintr_vec;		/*  40: transmit vec (0x800) */
    352 	vm_offset_t	ctb_rintr_vec;		/*  48: receive vec (0x800) */
    353 
    354 #define	CTB_GRAPHICS	   3			/* graphics device */
    355 #define	CTB_NETWORK	0xC0			/* network device */
    356 #define	CTB_PRINTERPORT	   2			/* printer port on the SCC */
    357 	u_int64_t	ctb_term_type;		/*  56: terminal type */
    358 
    359 	u_int64_t	ctb_keybd_type;		/*  64: keyboard nationality */
    360 	vm_offset_t	ctb_keybd_trans;	/*  72: trans. table addr */
    361 	vm_offset_t	ctb_keybd_map;		/*  80: map table addr */
    362 	u_int64_t	ctb_keybd_state;	/*  88: keyboard flags */
    363 	u_int64_t	ctb_keybd_last;		/*  96: last key entered */
    364 	vm_offset_t	ctb_font_us;		/* 104: US font table addr */
    365 	vm_offset_t	ctb_font_mcs;		/* 112: MCS font table addr */
    366 	u_int64_t	ctb_font_width;		/* 120: font width, height */
    367 	u_int64_t	ctb_font_height;	/* 128:		in pixels */
    368 	u_int64_t	ctb_mon_width;		/* 136: monitor width, height */
    369 	u_int64_t	ctb_mon_height;		/* 144:		in pixels */
    370 	u_int64_t	ctb_dpi;		/* 152: monitor dots per inch */
    371 	u_int64_t	ctb_planes;		/* 160: # of planes */
    372 	u_int64_t	ctb_cur_width;		/* 168: cursor width, height */
    373 	u_int64_t	ctb_cur_height;		/* 176:		in pixels */
    374 	u_int64_t	ctb_head_cnt;		/* 184: # of heads */
    375 	u_int64_t	ctb_opwindow;		/* 192: opwindow on screen */
    376 	vm_offset_t	ctb_head_offset;	/* 200: offset to head info */
    377 	vm_offset_t	ctb_putchar;		/* 208: output char to TURBO */
    378 	u_int64_t	ctb_io_state;		/* 216: I/O flags */
    379 	u_int64_t	ctb_listen_state;	/* 224: listener flags */
    380 	vm_offset_t	ctb_xaddr;		/* 232: extended info addr */
    381 	u_int64_t	ctb_turboslot;		/* 248: TURBOchannel slot # */
    382 	u_int64_t	ctb_server_off;		/* 256: offset to server info */
    383 	u_int64_t	ctb_line_off;		/* 264: line parameter offset */
    384 	u_int8_t	ctb_csd;		/* 272: console specific data */
    385 };
    386 
    387 /*
    388  * CRD: Console Routine Descriptor
    389  */
    390 struct crd {
    391 	int64_t		descriptor;
    392 	u_int64_t	entry_va;
    393 };
    394 
    395 /*
    396  * CRB: Console Routine Block
    397  */
    398 struct crb {
    399 	struct crd	*crb_v_dispatch;	/*   0: virtual dispatch addr */
    400 	vm_offset_t	 crb_p_dispatch;	/*   8: phys dispatch addr */
    401 	struct crd	*crb_v_fixup;		/*  10: virtual fixup addr */
    402 	vm_offset_t	 crb_p_fixup;		/*  18: phys fixup addr */
    403 	u_int64_t	 crb_map_cnt;		/*  20: phys/virt map entries */
    404 	u_int64_t	 crb_page_cnt;		/*  28: pages to be mapped */
    405 };
    406 
    407 /*
    408  * MDDT: Memory Data Descriptor Table
    409  */
    410 struct mddt {
    411 	int64_t	 	mddt_cksum;		/*   0: 7-N checksum */
    412 	vm_offset_t	mddt_physaddr;		/*   8: bank config addr
    413 						 * IMPLEMENTATION SPECIFIC
    414 						 */
    415 	u_int64_t	mddt_cluster_cnt;	/*  10: memory cluster count */
    416 	struct {
    417 		vm_offset_t	mddt_pfn;	/*   0: starting PFN */
    418 		u_int64_t	mddt_pg_cnt;	/*   8: 8KB page count */
    419 		u_int64_t	mddt_pg_test;	/*  10: tested page count */
    420 		vm_offset_t	mddt_v_bitaddr;	/*  18: bitmap virt addr */
    421 		vm_offset_t	mddt_p_bitaddr;	/*  20: bitmap phys addr */
    422 		int64_t		mddt_bit_cksum;	/*  28: bitmap checksum */
    423 
    424 #define	MDDT_PALCODE			0x01	/* console and PAL only */
    425 #define	MDDT_SYSTEM			0x00	/* system software only */
    426 #define	MDDT_mbz	  0xfffffffffffffffe	/* 1:63 -- must be zero */
    427 		int64_t		mddt_usage;	/*  30: bitmap permissions */
    428 	} mddt_clusters[1];			/* variable length array */
    429 };
    430 #endif /* ASSEMBLER */
    431