Subversion Repositories shark

Rev

Blame | Last modification | View Log | RSS feed

#include <drivers/keyb.h>

void ctrlc_exit(KEY_EVT *k)
{
  extern void dump_sem_table(void);
  extern void dump_nop_table(void);
  grx_close();
  cprintf("CTRL-C pressed!\n");
  grx_modeinfo();
  sys_end();
}

#include <fs/bdevinit.h>
#include <fs/fsinit.h>
#include <fs/bdev.h>

#include <sys/types.h>
#include <sys/mount.h>

int __register_sub_init_prologue(void)
{
  return 0;
}

int __register_sub_init(void)
{
  return 0;
}

dev_t root_device;

int choose_root_callback(dev_t dev,u_int8_t fs)
{
  if (fs==FS_MSDOS) return dev;
  return -1;
}

int __bdev_sub_init(void)
{
  BDEV_PARMS bdev=BASE_BDEV;
 
  bdev_def_showinfo(bdev,TRUE);
  bdev_init(&bdev);

  root_device=bdev_scan_devices(choose_root_callback);
  if (root_device<0) {
    cprintf("can't find root device to mount on /!!!\n");
    sys_end();
    return -1;
  }

  return 0;
}

extern int libc_initialize(void);

int __fs_sub_init(void)
{
  FILESYSTEM_PARMS fs=BASE_FILESYSTEM;
  //struct mount_opts opts;

  //memset(&opts,0,sizeof(struct mount_opts));
  //opts.flags=MOUNT_FLAG_RW;
 
  filesystem_def_rootdevice(fs,root_device);
  filesystem_def_fs(fs,FS_MSDOS);
  filesystem_def_showinfo(fs,TRUE);
  filesystem_init(&fs);
 
  libc_initialize();

  return 0;
}