1*ce099b40Smartin /* $NetBSD: tosdefs.h,v 1.4 2008/04/28 20:23:15 martin Exp $ */ 2d6d66d66Sleo 3d6d66d66Sleo /*- 4d6d66d66Sleo * Copyright (c) 1998 The NetBSD Foundation, Inc. 5d6d66d66Sleo * All rights reserved. 6d6d66d66Sleo * 7d6d66d66Sleo * This code is derived from software contributed to The NetBSD Foundation 8d6d66d66Sleo * by Leo Weppelman. 9d6d66d66Sleo * 10d6d66d66Sleo * Redistribution and use in source and binary forms, with or without 11d6d66d66Sleo * modification, are permitted provided that the following conditions 12d6d66d66Sleo * are met: 13d6d66d66Sleo * 1. Redistributions of source code must retain the above copyright 14d6d66d66Sleo * notice, this list of conditions and the following disclaimer. 15d6d66d66Sleo * 2. Redistributions in binary form must reproduce the above copyright 16d6d66d66Sleo * notice, this list of conditions and the following disclaimer in the 17d6d66d66Sleo * documentation and/or other materials provided with the distribution. 18d6d66d66Sleo * 19d6d66d66Sleo * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20d6d66d66Sleo * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21d6d66d66Sleo * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22d6d66d66Sleo * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23d6d66d66Sleo * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24d6d66d66Sleo * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25d6d66d66Sleo * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26d6d66d66Sleo * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27d6d66d66Sleo * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28d6d66d66Sleo * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29d6d66d66Sleo * POSSIBILITY OF SUCH DAMAGE. 30d6d66d66Sleo */ 31d6d66d66Sleo 3213a1055eSleo #ifndef _LIBTOS_TOSDEFS_H 3313a1055eSleo #define _LIBTOS_TOSDEFS_H 3413a1055eSleo 35d6d66d66Sleo #include <sys/types.h> 36d6d66d66Sleo 37d6d66d66Sleo 38d6d66d66Sleo #include "kparamb.h" 39d6d66d66Sleo 40d6d66d66Sleo /* 41d6d66d66Sleo * TOS variables in low memory 42d6d66d66Sleo */ 43d6d66d66Sleo struct _gem_mupb; 44d6d66d66Sleo struct _basepage; 45d6d66d66Sleo struct _osheader { 46d6d66d66Sleo u_int16_t os_entry; 47d6d66d66Sleo u_int16_t os_version; 48d6d66d66Sleo void *reseth; 49d6d66d66Sleo struct _osheader *os_beg; 50d6d66d66Sleo void *os_end; 51d6d66d66Sleo u_int32_t os_rsv1; 52d6d66d66Sleo struct _gem_mupb *os_magic; 53d6d66d66Sleo u_int32_t os_date; 54d6d66d66Sleo u_int16_t os_conf; 55d6d66d66Sleo u_int16_t os_dosdate; 56d6d66d66Sleo char **p_root; 57d6d66d66Sleo u_int8_t **pkbshift; 58d6d66d66Sleo struct _basepage **p_run; 59d6d66d66Sleo char *p_rsv2; 60d6d66d66Sleo }; 61d6d66d66Sleo 62d6d66d66Sleo typedef struct _osheader OSH; 63d6d66d66Sleo 64d6d66d66Sleo #define ADDR_P_COOKIE ((long**)0x5a0) /* Pointer to cookie jar */ 65d6d66d66Sleo #define ADDR_OSHEAD ((OSH**)0x4f2) /* Pointer Os-header */ 66d6d66d66Sleo #define ADDR_PHYSTOP ((long*)0x42e) /* End of ST-ram */ 67d6d66d66Sleo #define ADDR_RAMTOP ((long*)0x5a4) /* End of TT-ram (unofficial) */ 68d6d66d66Sleo #define ADDR_CHKRAMTOP ((long*)0x5a8) /* above is valid (unofficial) */ 69d6d66d66Sleo 70d6d66d66Sleo #define RAMTOP_MAGIC (0x1357bd13) /* Magic no. for ADDR_CHKRAMTOP */ 71d6d66d66Sleo 72d6d66d66Sleo #define TTRAM_BASE (0x1000000) /* Fastram always starts here */ 73d6d66d66Sleo #define CTRAM_BASE (0x4000000) /* ... except on CT2 boards: */ 74d6d66d66Sleo /* Logical : TTRAM_BASE */ 75d6d66d66Sleo /* Physical: CTRAM_BASE */ 76d6d66d66Sleo 77d6d66d66Sleo /* 78d6d66d66Sleo * Kernel parameter block 79d6d66d66Sleo */ 80d6d66d66Sleo typedef struct osdsc { 81d6d66d66Sleo const char * ostype; 82d6d66d66Sleo const char * osname; 83d6d66d66Sleo unsigned rootfs; 84d6d66d66Sleo struct kparamb kp; 85d6d66d66Sleo } osdsc_t; 86d6d66d66Sleo 87d6d66d66Sleo #define ksize kp.ksize 88d6d66d66Sleo #define kstart kp.kp 89d6d66d66Sleo #define kentry kp.entry 90d6d66d66Sleo #define k_esym kp.esym_loc 91d6d66d66Sleo #define stmem_size kp.stmem_size 92d6d66d66Sleo #define ttmem_size kp.ttmem_size 93d6d66d66Sleo #define ttmem_start kp.ttmem_start 94d6d66d66Sleo #define cputype kp.bootflags 95d6d66d66Sleo #define boothowto kp.boothowto 9613a1055eSleo 9713a1055eSleo #endif /* !_LIBTOS_TOSDEFS_H */ 98