void plat_boot(void) { int i; for(i=0; init[i]; i++) { init[i](); } init_sys_mmu(); start_mmu(); // timer_init(); init_page_map(); kmalloc_init(); ramdisk_driver_init(); romfs_init(); struct inode *node; char buf[128]; node=fs_type[ROMFS]->namei(fs_type[ROMFS],"number.txt"); fs_type[ROMFS]->device->dout(fs_type[ROMFS]->device,buf,fs_type[ROMFS]->get_daddr(node),node->dsize); for(i=0; i<sizeof(buf); i++) { printk("%c ",buf[i]); } while(1); }
void plat_boot(void){ int i; for(i=0;init[i];i++){ init[i](); } init_sys_mmu(); start_mmu(); // timer_init(); init_page_map(); kmalloc_init(); ramdisk_driver_init(); romfs_init(); struct inode *node; char *buf=(char *)0x30100000; if((node=fs_type[ROMFS]->namei(fs_type[ROMFS],"main.bin"))==(void *)0){ printk("inode read eror\n"); goto HALT; } if(fs_type[ROMFS]->device->dout(fs_type[ROMFS]->device,buf,fs_type[ROMFS]->get_daddr(node),node->dsize)){ printk("dout error\n"); goto HALT; } exec(buf); HALT: while(1); }
void plat_boot(void) { int i; for (i=0; init[i]; i++) { init[i](); } init_sys_mmu(); start_mmu(); // timer_init(); init_page_map(); kmalloc_init(); ramdisk_driver_init(); romfs_init(); struct inode *node; struct elf32_phdr *phdr; struct elf32_ehdr *ehdr; int phnum, pos, dpos; char *buf; if ((buf = (char *)kmalloc(1024)) == (void *)0) { printk("get free pages error\n"); goto HALT; } if ((node = fs_type[ROMFS]->namei(fs_type[ROMFS], "main")) == (void *)0) { printk("inode read error\n"); goto HALT; } if (fs_type[ROMFS]->device->dout(fs_type[ROMFS]->device, buf, \ fs_type[ROMFS]->get_daddr(node), node->dsize)) { printk("dount error\n"); goto HALT; } ehdr = (struct elf32_ehdr *)buf; phdr = (struct elf32_phdr *)((char *)buf+ehdr->e_phoff); for (i = 0; i< ehdr->e_phnum; i++) { if (CHECK_PT_TYPE_LOAD(phdr)) { if (fs_type[ROMFS]->device->dout(fs_type[ROMFS]->device,\ (char *)phdr->p_vaddr, \ fs_type[ROMFS]->get_daddr(node) + \ phdr->p_offset, phdr->p_filesz) < 0) { printk("dout error\n"); goto HALT; } } phdr++; } exec(ehdr->e_entry); HALT: while (1); }
void plat_boot(void) { int i; for (i=0; init[i]; i++) { init[i](); } init_sys_mmu(); start_mmu(); task_init(); timer_init(); init_page_map(); kmalloc_init(); ramdisk_driver_init(); romfs_init(); i = do_fork(test_process, (void *)0x1); i = do_fork(test_process, (void *)0x2); while (1) { delay (); printk("this is the original process\n"); } }