/** * Execute El Torito image * * @v image El Torito image * @ret rc Return status code */ static int eltorito_exec ( struct image *image ) { struct ramdisk ramdisk; struct int13_drive int13_drive; unsigned int load_segment = image->priv.ul; unsigned int load_offset = ( load_segment ? 0 : 0x7c00 ); int rc; memset ( &ramdisk, 0, sizeof ( ramdisk ) ); init_ramdisk ( &ramdisk, image->data, image->len, ISO9660_BLKSIZE ); memset ( &int13_drive, 0, sizeof ( int13_drive ) ); int13_drive.blockdev = &ramdisk.blockdev; register_int13_drive ( &int13_drive ); if ( ( rc = call_bootsector ( load_segment, load_offset, int13_drive.drive ) ) != 0 ) { DBGC ( image, "ElTorito %p boot failed: %s\n", image, strerror ( rc ) ); goto err; } rc = -ECANCELED; /* -EIMPOSSIBLE */ err: unregister_int13_drive ( &int13_drive ); return rc; }
void restart() { /* Perform some initialization to restart a program */ #ifdef USE_RAMDISK /* Read the file with name `argv[1]' into ramdisk. */ init_ramdisk(); #endif /* Read the entry code into memory. */ load_entry(); /* Set the initial instruction pointer. */ cpu.eip = ENTRY_START; cpu.ebp = 0; cpu.esp = 0x80000000; cpu.eflags_cf = false; cpu.eflags_pf = false; cpu.eflags_zf = false; cpu.eflags_sf = false; cpu.eflags_if = false; cpu.eflags_df = false; cpu.eflags_of = false; /* Initialize DRAM. */ init_ddr3(); }
void init_driver() { init_hal(); init_timer(); init_tty(); init_ide(); init_ramdisk(); hal_list(); }
void restart() { /* Perform some initialization to restart a program */ #ifdef USE_RAMDISK /* Read the file with name `argv[1]' into ramdisk. */ init_ramdisk(); #endif /* Read the entry code into memory. */ load_entry(); /* Set the initial instruction pointer. */ cpu.eip = ENTRY_START; /* Set the initial flag register */ cpu.EFLAGS.val = 0x00000002; /* Initialize DRAM. */ init_ddr3(); }
void test_initialize_filesystem(void) { int rc=0; rc = mkdir (BASE_FOR_TEST,S_IRWXU|S_IRWXG|S_IRWXO); rtems_test_assert(rc==0); init_ramdisk(); rc=msdos_format(RAMDISK_PATH,&rqdata); rtems_test_assert(rc==0); rtems_resource_snapshot_take(&before_mount); rc=mount(RAMDISK_PATH, BASE_FOR_TEST, "dosfs", RTEMS_FILESYSTEM_READ_WRITE, NULL); rtems_test_assert(rc==0); }