trim
extract_param
file_copy
+get_host_arch
O_PATH
O_TMPFILE
);
use constant {O_PATH => 0x00200000,
O_TMPFILE => 0x00410000}; # This includes O_DIRECTORY
+use constant {AT_EMPTY_PATH => 0x1000};
+
sub run_with_timeout {
my ($timeout, $code, @param) = @_;
return syscall(PVE::Syscall::mkdirat, $dirfd, $name, $mode) == 0;
}
+sub fchownat($$$$$) {
+ my ($dirfd, $pathname, $owner, $group, $flags) = @_;
+ return syscall(PVE::Syscall::fchownat, $dirfd, $pathname, $owner, $group, $flags) == 0;
+}
+
my $salt_starter = time();
sub encrypt_pw {
return $line;
}
-sub get_host_arch {
-
- my @uname = POSIX::uname();
- my $machine = $uname[4];
-
- if ($machine eq 'x86_64') {
- return 'amd64';
- } elsif ($machine eq 'aarch64') {
- return 'arm64';
- } else {
- die "unsupported host architecture '$machine'\n";
- }
+my $host_arch;
+sub get_host_arch() {
+ $host_arch = (POSIX::uname())[4] if !$host_arch;
+ return $host_arch;
}
# Devices are: [ (12 bits minor) (12 bits major) (8 bits minor) ]
sub array_intersect {
my ($arrays) = @_;
+ if (!ref($arrays->[0])) {
+ $arrays = [ grep { ref($_) eq 'ARRAY' } @_ ];
+ }
+
return [] if scalar(@$arrays) == 0;
return $arrays->[0] if scalar(@$arrays) == 1;