/usr/share/perl5/System/Info/BSD.pm is in libsystem-info-perl 0.057-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | package System::Info::BSD;
use strict;
use warnings;
use base "System::Info::Base";
our $VERSION = "0.050";
=head1 NAME
System::Info::BSD - Object for specific BSD info.
=head1 DESCRIPTION
=head2 $si->prepare_sysinfo()
Use os-specific tools to find out more about the system.
=cut
sub prepare_sysinfo {
my $self = shift;
$self->SUPER::prepare_sysinfo;
my $sysctl = __get_sysctl ();
my $cpu = $sysctl->{model};
if (exists $sysctl->{cpuspeed}) {
$cpu .= sprintf " (%.0f MHz)", $sysctl->{cpuspeed};
}
elsif (exists $sysctl->{cpufrequency}) {
$cpu .= sprintf " (%.0f MHz)", $sysctl->{cpufrequency}/1_000_000;
}
$self->{__cpu_type} = $sysctl->{machine} if $sysctl->{machine};
$self->{__cpu} = $cpu if $cpu;
$self->{__cpu_count} = $sysctl->{ncpu};
return $self;
} # prepare_sysinfo
sub __get_sysctl {
my %sysctl;
my $sysctl_cmd = -x "/sbin/sysctl" ? "/sbin/sysctl" : "sysctl";
my %extra = (cpufrequency => undef, cpuspeed => undef);
my @e_args = map {
m/^hw\.(\w+)\s*[:=]/; $1
} grep m/^hw\.(\w+)/ && exists $extra{$1} => `$sysctl_cmd -a hw`;
foreach my $name (qw( model machine ncpu ), @e_args) {
chomp ($sysctl{$name} = `$sysctl_cmd hw.$name`);
$sysctl{$name} =~ s/^hw\.$name\s*[:=]\s*//;
}
$sysctl{machine} and $sysctl{machine} =~ s/Power Macintosh/macppc/;
return \%sysctl;
} # __get_sysctl
1;
__END__
=head1 COPYRIGHT AND LICENSE
(c) 2016-2018, Abe Timmerman & H.Merijn Brand, All rights reserved.
With contributions from Jarkko Hietaniemi, Campo Weijerman, Alan Burlison,
Allen Smith, Alain Barbet, Dominic Dunlop, Rich Rauenzahn, David Cantrell.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
See:
=over 4
=item * L<http://www.perl.com/perl/misc/Artistic.html>
=item * L<http://www.gnu.org/copyleft/gpl.html>
=back
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
=cut
|