summaryrefslogtreecommitdiffstats
path: root/perl-install/unused
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/unused')
-rw-r--r--perl-install/unused/cdrom.pm41
-rw-r--r--perl-install/unused/dns.pm64
-rw-r--r--perl-install/unused/otherinsmod.pm26
-rw-r--r--perl-install/unused/scsi.pm104
4 files changed, 235 insertions, 0 deletions
diff --git a/perl-install/unused/cdrom.pm b/perl-install/unused/cdrom.pm
new file mode 100644
index 000000000..46bb4fc3f
--- /dev/null
+++ b/perl-install/unused/cdrom.pm
@@ -0,0 +1,41 @@
+package cdrom;
+
+use diagnostics;
+use strict;
+
+use detect_devices;
+
+
+my %transTable = ( cm206 => 'cm206cd', sonycd535 => 'cdu535');
+
+1;
+
+
+sub setupCDdevicePanel {
+ my ($type) = @_;
+}
+
+sub findAtapi {
+ my $ide = ideGetDevices();
+ foreach (@$ide) { $_->{type} eq 'cdrom' and return $_->{device} }
+ error();
+}
+
+sub findSCSIcdrom {
+ detect_devices::isSCSI() or return error();
+ my $scsi = detect_devices::getSCSI();
+ foreach (@$scsi) { $_->{type} eq 'cdrom' and return $_->{device} }
+ error();
+}
+
+sub setupCDdevice {
+ my ($cddev, $dl) = @_;
+ #TODO
+}
+
+sub removeCDmodule {
+ # this wil fail silently if no CD module has been loaded
+ removeDeviceDriver('cdrom');
+ 1;
+}
+
diff --git a/perl-install/unused/dns.pm b/perl-install/unused/dns.pm
new file mode 100644
index 000000000..baad57f9e
--- /dev/null
+++ b/perl-install/unused/dns.pm
@@ -0,0 +1,64 @@
+use diagnostics;
+use strict;
+
+# This is dumb, but glibc doesn't like to do hostname lookups w/o libc.so
+
+
+#TODO TODO
+sub doQuery {
+# my ($query, $queryType, $domainName, $ipNum) = @_;
+#
+# _res.retry = 2;
+#
+# len = res_search(query, C_IN, queryType, (void *) &response,
+# sizeof(response));
+# if (len <= 0) return -1;
+#
+# if (ntohs(response.hdr.rcode) != NOERROR) return -1;
+# ancount = ntohs(response.hdr.ancount);
+# if (ancount < 1) return -1;
+#
+# data = response.buf + sizeof(HEADER);
+# end = response.buf + len;
+#
+# # skip the question
+# data += dn_skipname(data, end) + QFIXEDSZ;
+#
+# # parse the answer(s)
+# while (--ancount >= 0 && data < end) {
+#
+# # skip the domain name portion of the RR record
+# data += dn_skipname(data, end);
+#
+# # get RR information
+# GETSHORT(type, data);
+# data += INT16SZ; # skipp class
+# data += INT32SZ; # skipp TTL
+# GETSHORT(len, data);
+#
+# if (type == T_PTR) {
+# # we got a pointer
+# len = dn_expand(response.buf, end, data, name, sizeof(name));
+# if (len <= 0) return -1;
+# if (queryType == T_PTR && domainName) {
+# # we wanted a pointer
+# *domainName = malloc(strlen(name) + 1);
+# strcpy(*domainName, name);
+# return 0;
+# }
+# } else if (type == T_A) {
+# # we got an address
+# if (queryType == T_A && ipNum) {
+# # we wanted an address
+# memcpy(ipNum, data, sizeof(*ipNum));
+# return 0;
+# }
+# }
+#
+# # move ahead to next RR
+# data += len;
+# }
+#
+# return -1;
+}
+
diff --git a/perl-install/unused/otherinsmod.pm b/perl-install/unused/otherinsmod.pm
new file mode 100644
index 000000000..fb62ff945
--- /dev/null
+++ b/perl-install/unused/otherinsmod.pm
@@ -0,0 +1,26 @@
+use diagnostics;
+use strict;
+
+sub insmod {
+
+ @_ or die "usage: insmod <module>.o [params]\n";
+
+ my $file = shift;
+ my $tmpname;
+
+ unless (-r $file) {
+ local *F;
+ open F, "/modules/modules.cgz" or die "error opening /modules/modules.cgz";
+
+ $tmpname = "/tmp/" . basename($file);
+
+ installCpioFile(\*F, $file, $tmpname, 0) or die "error extracting file";
+ }
+
+ my $rc = insmod_main($tmpname || $file, @_);
+
+ unlink($tmpname);
+
+ return $rc;
+}
+sub modprobe { &insmod }
diff --git a/perl-install/unused/scsi.pm b/perl-install/unused/scsi.pm
new file mode 100644
index 000000000..77fe8fe44
--- /dev/null
+++ b/perl-install/unused/scsi.pm
@@ -0,0 +1,104 @@
+use diagnostics;
+use strict;
+
+my $scsiDeviceAvailable;
+my $CSADeviceAvailable;
+
+1;
+
+sub scsiDeviceAvailable {
+ defined $scsiDeviceAvailable and return $scsiDeviceAvailable;
+ local *F;
+ open F, "/proc/scsi/scsi" or log::l("failed to open /proc/scsi/scsi: $!"), return 0;
+ foreach (<F>) {
+ /devices: none/ and log::l("no scsi devices are available"), return $scsiDeviceAvailable = 0;
+ }
+ log::l("scsi devices are available");
+ $scsiDeviceAvailable = 1;
+}
+
+sub CompaqSmartArrayDeviceAvailable {
+ defined $CSADeviceAvailable and return $CSADeviceAvailable;
+ -r "/proc/array/ida0" or log::l("failed to open /proc/array/ida0: $!"), return $CSADeviceAvailable = 0;
+ log::l("Compaq Smart Array controllers available");
+ $CSADeviceAvailable = 1;
+}
+
+sub scsiGetDevices {
+ my @drives;
+ my ($driveNum, $cdromNum, $tapeNum) = qw(0 0 0);
+ my $err = sub { chop; log::l("unexpected line in /proc/scsi/scsi: $_"); error() };
+ local $_;
+
+ local *F;
+ open F, "/proc/scsi/scsi" or return &$err();
+ $_ = <F>; /^Attached devices:/ or return &$err();
+ while ($_ = <F>) {
+ my ($id) = /^Host:.*?Id: (\d+)/ or return &$err();
+ $_ = <F>; my ($vendor, $model) = /^\s*Vendor:\s*(.*?)\s+Model:\s*(.*?)\s+Rev:/ or return &$err();
+ $_ = <F>; my ($type) = /^\s*Type:\s*(.*)/ or &$err();
+ my $device;
+ if ($type =~ /Direct-Access/) {
+ $type = 'hd';
+ $device = "sd" . chr($driveNum++ + ord('a'));
+ } elsif ($type =~ /Sequential-Access/) {
+ $type = 'tape';
+ $device = "st" . $tapeNum++;
+ } elsif ($type =~ /CD-ROM/) {
+ $type = 'cdrom';
+ $device = "scd" . $cdromNum++;
+ }
+ $device and push @drives, { device => $device, type => $type, info => "$vendor $model", id => $id, bus => 0 };
+ }
+ [ @drives ];
+}
+
+sub ideGetDevices {
+ my @idi;
+
+ -r "/proc/ide" or die "sorry, /proc/ide not available, seems like you have a pre-2.2 kernel\n => not handled yet :(";
+
+ # Great. 2.2 kernel, things are much easier and less error prone.
+ foreach my $d (glob_('/proc/ide/hd*')) {
+ my ($t) = chop_(cat_("$d/media"));
+ my $type = $ {{disk => 'hd', cdrom => 'cdrom', tape => 'tape', floppy => 'fd'}}{$t} or next;
+ my ($info) = chop_(cat_("$d/model")); $info ||= "(none)";
+
+ my $num = ord (($d =~ /(.)$/)[0]) - ord 'a';
+ push @idi, { type => $type, device => basename($d), info => $info, bus => $num/2, id => $num%2 };
+ }
+ [ @idi ];
+}
+
+
+sub CompaqSmartArrayGetDevices {
+ my @idi;
+ my $f;
+
+ for (my $i = 0; -r ($f = "/proc/array/ida$i"); $i++) {
+ local *F;
+ open F, $f or die;
+ local $_ = <F>;
+ my ($name) = m|ida/(.*?):| or next;
+ push @idi, { device => $name, info => "Compaq RAID logical disk", type => 'hd' };
+ }
+ [ @idi ];
+}
+
+sub dac960GetDevices {
+ my @idi;
+ my $file = "/var/log/dmesg";
+ -r $file or $file = "/tmp/syslog";
+
+ local *F;
+ open F, $file or die "Failed to open $file: $!";
+
+ # We are looking for lines of this format:DAC960#0:
+ # /dev/rd/c0d0: RAID-7, Online, 17928192 blocks, Write Thru0123456790123456789012
+ foreach (<F>) {
+ my ($devicename, $info) = m|/dev/rd/(.*?): (.*?),| or next;
+ push @idi, { info => $info, type => 'hd', devicename => $devicename };
+ log::l("DAC960: $devicename: $info");
+ }
+ [ @idi ];
+}