home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Caldera Network Desktop 1.0
/
caldera-network-desktop-1.0.bin
/
images
/
ramdisk2-beta.img
/
usr
/
lib
/
perl
/
swap
< prev
next >
Wrap
Text File
|
1995-12-04
|
3KB
|
168 lines
### -*-perl-*-
# This is a 2 stage swap module
# select_swap, init_swap
@swappars = ();
sub select_swap {
local ( $found, %swapinfolist, $msg, $ent, $par, $blk );
local ( $p, $r, $lastbsddev );
local ($device, $start, $stop, $blocks, @a, $line)
&rhs_infobox ("Swap Space",
<<EOM
>
Looking for swap partitions...
>
EOM
, 50);
%swapinfolist = &get_partitions("swap");
if (! keys(%swapinfolist)) {
&rhs_msgbox("Notice",
<<EOM
>
No swap partitions were found.
>
If this is an error,
back up and reconstruct your partitions. Swap
partitions must be designated as type 82.
>
EOM
, 60);
return 0;
}
foreach $device (keys(%swapinfolist)) {
@a = split(" ", $swapinfolist{$device});
$start = $a[0];
$stop = $a[1];
$blocks = $a[2];
$line = sprintf("%-9s %9s %9s %9s", $device, $start, $stop, $blocks);
if (&rhs_yesno("Add Swap",
<<EOM
>
This appears to be a swap partition:
>
> Device Start End Blocks
>$line
>
Do you want to use this as a swap partition?
>
EOM
, 52)) {
$swappars[@swappars] = $device;
$swapparsblk{$device} = $blocks;
}
}
return 1;
}
sub init_swap {
local ($ent, $ret);
open(FD, ">/tmp/swap");
foreach $ent (@swappars) {
print FD "$ent\n";
&rhs_infobox ("Format Swap",
<<EOM
>
Formatting and initializing $ent as swapspace.
>
This may take a minute.
>
EOM
, 70);
$ret = &invoke("mkswap -c $ent $swapparsblk{$ent}");
$ret += &invoke("swapon $ent > /dev/null") unless ($ret);
if ($ret) {
&rhs_msgbox ("Format Swap",
<<EOM
>
An error occurred while setting up $ent as swapspace.
>
EOM
, 50);
}
}
close FD;
return 1;
}
sub swap_off {
local ( $ent, @result );
@result = ();
if (@swappars == 0) {
&rhs_msgbox("Error",
<<EOM
>
No swap partitions are active.
>
EOM
, 60);
return 1;
}
foreach $ent (@swappars) {
if (&rhs_yesno("Swap Off",
<<EOM
>
Turn off swapping on device $ent ?
>
EOM
, 60)) {
&invoke("swapoff $ent");
} else {
push(@result, $ent);
}
}
@swappars = @result;
return 1;
}
sub finish_swap {
local ( $ent );
open(FD, ">>$fsmount/etc/fstab");
print FD
<<EOM
#
# Swap partitions
#
EOM
;
foreach $ent (sort @swappars) {
printf(FD "%-30s %-15s %-6s %s\n", $ent, "none", "swap", "sw");
}
close FD;
}
sub swap_reset {
local ( $ent );
foreach $ent (@swappars) {
&invoke("swapoff $ent");
}
@swappars = ();
}
#####################
1;