/*
 * linuxboot.h -- Header file for linuxboot.c
 *
 * Copyright (c) 1993-97 by
 *   Arjan Knor
 *   Robert de Vries
 *   Roman Hodek <Roman.Hodek@informatik.uni-erlangen.de>
 *   Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file COPYING in the main directory of this archive
 * for more details.
 */
#ifndef _linuxboot_h
#define _linuxboot_h

#define __KERNEL__
#include "linux_types.h"
#undef __KERNEL__

/* linux specific include files */
#ifdef AOUT_KERNEL
#include <linux/a.out.h>
#endif
#include "linux_elf_h"
#include "asm_page.h"

#include "asm_bootinfo.h"
#include "asm_setup.h"


#define MB           (1024 * 1024)

/* global variables for communicating options */
extern int debugflag;

extern unsigned long extramem_start;
extern unsigned long extramem_size;
extern char kernel_name[];
extern char ramdisk_name[];
extern char command_line[];

#if 1
#define NUM_MEMINFO 4
#define CL_SIZE 256
#endif

struct mem_info {
	unsigned long addr;		/* physical address of memory chunk */
	unsigned long size;		/* length of memory chunk (in bytes) */
};

/* Bootinfo */
struct atari_bootinfo {
    unsigned long machtype;		  /* machine type */
    unsigned long cputype;		  /* system CPU */
    unsigned long fputype;		  /* system FPU */
    unsigned long mmutype;		  /* system MMU */
    int num_memory;			  /* # of memory blocks found */
    struct mem_info memory[NUM_MEMINFO];  /* memory description */
    struct mem_info ramdisk;		  /* ramdisk description */
    char command_line[CL_SIZE];		  /* kernel command line parameters */
    unsigned long mch_cookie;		  /* _MCH cookie from TOS */
    unsigned long mch_type;		  /* special machine types */
};

void linux_boot( void );

#endif  /* _linuxboot_h */

