/* $NetBSD$ */

/*
 * 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 THE REGENTS 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
 *
 * bootconfig.h
 *
 * boot configuration structure
 *
 * Created      : 12/09/94
 * Last updated : 13/07/96
 *
 * Based on kate/boot/bootconfig.h
 *
 *    $Id$
 */

typedef struct _PhysMem {
    unsigned int address;
    unsigned int pages;
} PhysMem;

typedef struct _BootConfig {
    unsigned int kernvirtualbase;
    unsigned int kernphysicalbase;
    unsigned int kernsize;
    unsigned int argvirtualbase;
    unsigned int argphysicalbase;
    unsigned int argsize;
    unsigned int scratchvirtualbase;
    unsigned int scratchphysicalbase;
    unsigned int scratchsize;

    unsigned int display_start;
    unsigned int display_size;
    unsigned int width;
    unsigned int height;
    unsigned int bitsperpixel;

    PhysMem dram[4];
    PhysMem vram[1];

    unsigned int dramblocks;
    unsigned int vramblocks;
    unsigned int pagesize;
    unsigned int drampages;
    unsigned int vrampages;

    char kernelname[80];
    
    unsigned int framerate;
    unsigned int machine_id;
    unsigned int magic;
    unsigned int vdram_phys;
} BootConfig;

#define BOOTCONFIG_MAGIC 0x42301068

typedef struct _aout_t {
    long a_magic;
    unsigned long a_text;
    unsigned long a_data;
    unsigned long a_bss;
    unsigned long a_syms;
    unsigned long a_entry;
    unsigned long a_trsize;
    unsigned long a_drsize;
} aout_t;

#define MAGICMASK 0xffff0000
#define OMAGIC 0x07010000
#define NMAGIC 0x08010000
#define ZMAGIC 0x0b010000

/* End of bootconfig.h */
