/*
 *  linux/arch/m68k/kernel/setup.c
 *
 *  Copyright (C) 1995  Hamish Macdonald
 */

/*
 * This file handles the architecture-dependent parts of system setup
 */

#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/fs.h>
#include <linux/console.h>
#include <linux/genhd.h>
#include <linux/errno.h>
#include <linux/string.h>

#include <asm/bootinfo.h>
#include <asm/irq.h>
#include <asm/machdep.h>
#include <asm/amigatypes.h>
#include <asm/amigahw.h>

#ifdef CONFIG_BLK_DEV_INITRD
#include <linux/blk.h>
#include <asm/pgtable.h>
#endif

struct bootinfo boot_info = {0,};
int bisize = sizeof boot_info;

int m68k_is040or060 = 0;

char m68k_debug_device[6] = "";

extern int end;
extern unsigned long availmem;

char saved_command_line[CL_SIZE];

/* setup some dummy routines */
static void dummy_waitbut(void)
{
}

void (*mach_sched_init) (isrfunc);
int (*mach_keyb_init) (void);
int (*mach_kbdrate) (struct kbd_repeat *) = NULL;
void (*mach_kbd_leds) (unsigned int) = NULL;
void (*mach_init_INTS) (void);
int (*mach_add_isr) (unsigned long, isrfunc, int, void *, char *);
int (*mach_remove_isr) (unsigned long, isrfunc, void *);
void (*mach_process_int) (int, struct pt_regs *) = NULL;
void (*mach_enable_irq) (unsigned) = NULL;
void (*mach_disable_irq) (unsigned) = NULL;
int (*mach_get_irq_list) (char *, int) = NULL;
unsigned long (*mach_gettimeoffset) (void);
void (*mach_gettod) (int*, int*, int*, int*, int*, int*);
int (*mach_hwclk) (int, struct hwclk_time*) = NULL;
int (*mach_set_clock_mmss) (unsigned long) = NULL;
void (*mach_mksound)( unsigned int count, unsigned int ticks );
void (*mach_reset)( void );
void (*waitbut)(void) = dummy_waitbut;
struct fb_info *(*mach_fb_init)(long *);
long mach_max_dma_address = 0x00ffffff; /* default set to the lower 16MB */
void (*mach_debug_init)(void);
void (*mach_video_setup) (char *, int *);
#ifdef CONFIG_BLK_DEV_FD
int (*mach_floppy_init) (void) = NULL;
void (*mach_floppy_setup) (char *, int *) = NULL;
void (*mach_floppy_eject) (void) = NULL;
#endif

extern void config_amiga(void);
extern void config_atari(void);
extern void config_mac(void);

extern void register_console(void (*proc)(const char *));
extern void ami_serial_print (const char *str);
extern void ata_serial_print (const char *str);

extern void (*kd_mksound)(unsigned int, unsigned int);

extern void amiga_get_model(char *model);
extern void atari_get_model(char *model);
extern void mac_get_model(char *model);
extern int amiga_get_hardware_list(char *buffer);
extern int atari_get_hardware_list(char *buffer);
extern int mac_get_hardware_list(char *buffer);

#define MASK_256K 0xfffc0000

void setup_arch(char **cmdline_p,
		unsigned long * memory_start_p, unsigned long * memory_end_p)
{
}

int setkeycode(unsigned int scancode, unsigned int keycode)
{
  return 0;
}

int getkeycode(unsigned int scancode)
{
  return 0;
}

int get_cpuinfo(char * buffer)
{
  return 0;
}

int get_hardware_list(char *buffer)
{
  return 0;
}

#ifdef CONFIG_BLK_DEV_FD
int floppy_init(void)
{
  return 0;
}

void floppy_setup(char *str, int *ints)
{
}

void floppy_eject(void)
{
}
#endif

unsigned long arch_kbd_init(void)
{
  return 0;
}

void arch_gettod(int *year, int *mon, int *day, int *hour,
		 int *min, int *sec)
{
}

void video_setup (char *options, int *ints)
{
}
