|
lilo.c:main() |-- cfg_open(config_file); |-- cfg_parse(cf_options); |-- bsect_open(boot_dev, map_file, install, delay, timeout); | |-- open_bsect(boot_dev); | `-- map_create(map_file); |-- cfg_parse(cf_top) | `-- cfg_do_set(); | `-- do_image(); // "image=" bölümü için walk->action | |-- cfg_parse(cf_image) -> cfg_do_set(); | |-- bsect_common(&descr, 1); | | |-- map_begin_section(); | | |-- map_add_sector(fallback_buf); | | `-- map_add_sector(options); | |-- boot_image(name, &descr) veya boot_device(name, range, &descr); | | |-- int fd = geo_open(&descr, name, O_RDONLY); | | | read(fd, &buff, SECTOR_SIZE); | | | map_add(&geo, 0, image_sectors); | | | map_end_section(&descr->start, setup_sects+2+1); | | | /* bsect_common()içinde iki sektör yaratıldı, | | | * bootsect için ise başka bir sektör*/ | | | geo_close(&geo); | | `-- fd = geo_open(&descr, initrd, O_RDONLY); | | map_begin_section(); | | map_add(&geo, 0, initrd_sectors); | | map_end_section(&descr->initrd,0); | | geo_close(&geo); | `-- bsect_done(name, &descr); `-- bsect_update(backup_file, force_backup, 0); // önyükleme sektörünü güncelle |-- make_backup(); |-- map_begin_section(); | map_add_sector(table); | map_write(¶m2, keytab, 0, 0); | map_close(¶m2, here2); |-- // ... önyükleme sektörünün yeniden yerleştirilmesini yap |-- // ... bsect_wr'yi doğru yere ayarla |-- write(fd, bsect_wr, SECTOR_SIZE); `-- close(fd);
|