/*
** bootinfo.h -- Defintion of the Linux/68K boot information structure
**
** Copyright 1994 by Bj”rn Brauel
**
** 5/2/94 Roman Hodek:
**   Added bi_atari part of the machine dependant nion bi_un; for now it
**	 contains just a model field to distinguish between TT and Falcon.
**
** This file is subject to the terms and conditions of the GNU General Public
** License.  See the file README.legal in the main directory of this archive
** for more details.
**
*/

#ifndef BOOTINFO_H
#define BOOTINFO_H


/*
 * CPU and FPU types
 */
#define CPU_68020    (1)
#define CPU_68030    (2)
#define CPU_68040    (4)
#define CPU_MASK     (31)
#define FPU_68881    (32)
#define FPU_68882    (64)

#define NUM_MEMINFO  4

#define MACH_AMIGA   1
#define MACH_ATARI   2
#define MACH_MAC     3

#define CL_SIZE      (80)


/* bi_Amiga and bi_Mac not present here, sorry */

struct bi_Amiga {
	int		dummy;
};

struct bi_Mac {
	int		dummy;
};

/* Atari specific part of bootinfo */

typedef enum {
	ATARI_TT, ATARI_FALCON		/* to be continued... */
} AtariModel;

struct bi_Atari {
	AtariModel	model;			/* needs not be initialized by bootstrap! ---
								   model is determined at run time in
								   config_atari() */
};

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

struct bootinfo {
    unsigned long
 	machtype;			/* machine type */

    unsigned long
	cputype;			/* system CPU & FPU */
	

    struct mem_info
	memory[NUM_MEMINFO]; /*		 memory description */

    short
	num_memory;			/* # of memory blocks found */

    unsigned long
	ramdisk_size;			/* ramdisk size in 1024 byte blocks */

    unsigned long
	ramdisk_addr;			/* address of the ram disk in mem */

    char
        command_line[CL_SIZE];		/* kernel command line parameters */

	union {
		struct bi_Amiga	bi_ami;
		struct bi_Atari	bi_ata;
		struct bi_Mac	bi_mac;
	} bi_un;
};

#define	bi_amiga	bi_un.bi_ami
#define	bi_atari	bi_un.bi_ata
#define	bi_mac		bi_un.bi_mac


extern struct bootinfo
    boot_info;

#endif /* BOOTINFO_H */
