summaryrefslogtreecommitdiffstats
ModeNameSize
-rw-r--r--.cvsignore47logstatsplain
-rw-r--r--Makefile3613logstatsplain
-rw-r--r--Makefile.common1613logstatsplain
-rw-r--r--Makefile.config677logstatsplain
-rw-r--r--advanced.msg.xml1002logstatsplain
d---------docs1052logstatsplain
d---------globetrotter424logstatsplain
-rw-r--r--help.msg.xml1075logstatsplain
-rw-r--r--isolinux-graphic-simple.bmp480566logstatsplain
-rw-r--r--isolinux-graphic-simple.bmp.parameters141logstatsplain
-rw-r--r--isolinux-graphic.bmp480566logstatsplain
-rw-r--r--isolinux-graphic.bmp.parameters141logstatsplain
d---------kernel237logstatsplain
-rwxr-xr-xmake_boot_img25693logstatsplain
d---------mdk-stage12797logstatsplain
d---------move667logstatsplain
d---------perl-install3011logstatsplain
d---------rescue629logstatsplain
d---------tools1497logstatsplain
span> (my $size = c::total_sectors(fileno $F)) { return $size * $common::SECTORSIZE; } #- sad it didn't work, well searching the size using the dichotomy algorithm! my $low = 0; my ($high, $mid); #- first find n where 2^n < size <= 2^n+1 for ($high = 1; $high > 0 && $valid_offset->($high); $high *= 2) { $low = $high } while ($low < $high - 1) { $mid = int(($low + $high) / 2); $valid_offset->($mid) ? $low : $high = $mid; } $low + 1; } sub del_loop { my ($dev) = @_; run_program::run("losetup", "-d", $dev); } sub find_free_loop_raw { my ($o_chloop) = @_; foreach (0..7) { my $dev = make(($o_chloop && 'ch') . "loop$_"); sysopen(my $F, $dev, 2) or next; !ioctl($F, c::LOOP_GET_STATUS(), my $_tmp) && $! == 6 or next; #- 6 == ENXIO return $dev; } die "no free loop found"; } sub find_free_loop() { find_free_loop_raw() } sub find_free_chloop() { find_free_loop_raw('chloop') } sub set_loop { my ($file, $o_encrypt_key, $o_encryption) = @_; eval { modules::load('loop') }; my $dev = find_free_loop(); if ($o_encrypt_key && $o_encryption) { eval { modules::load('cryptoloop', 'aes') }; my $cmd = "losetup -p 0 -e $o_encryption $dev $file"; log::l("calling $cmd"); open(my $F, "|$cmd"); print $F $o_encrypt_key; close $F or die "losetup failed"; } else { run_program::run("losetup", $dev, $file) or return; } $dev; } sub entry { my ($type, $major, $minor); local ($_) = @_; if (/^0x([\da-f]{3,4})$/i) { $type = c::S_IFBLK(); ($major, $minor) = unmakedev(hex $1); } elsif (/^sd(.)(\d{0,2})/) { $type = c::S_IFBLK(); $major = 8; $minor = 16 * (ord($1) - ord('a')) + ($2 || 0); } elsif (/^hd(.)(\d{0,2})/) { $type = c::S_IFBLK(); ($major, $minor) = @{ ${{'a' => [3, 0], 'b' => [3, 64], 'c' => [22,0], 'd' => [22,64], 'e' => [33,0], 'f' => [33,64], 'g' => [34,0], 'h' => [34,64],