1b8851fccSafresh1package Amiga::Exec; 2b8851fccSafresh1 3b8851fccSafresh1use 5.016000; 4b8851fccSafresh1use strict; 5b8851fccSafresh1use warnings; 6b8851fccSafresh1use Carp; 7b8851fccSafresh1 8*256a93a4Safresh1use Exporter 'import'; 9b8851fccSafresh1 10b8851fccSafresh1# Items to export into callers namespace by default. Note: do not export 11b8851fccSafresh1# names by default without a very good reason. Use EXPORT_OK instead. 12b8851fccSafresh1# Do not simply export all your public functions/methods/constants. 13b8851fccSafresh1 14b8851fccSafresh1# This allows declaration use Amiga::Exec ':all'; 15b8851fccSafresh1# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK 16b8851fccSafresh1# will save memory. 17b8851fccSafresh1our %EXPORT_TAGS = ( 'all' => [ qw( 18b8851fccSafresh1Wait 19b8851fccSafresh1) ] ); 20b8851fccSafresh1 21b8851fccSafresh1our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); 22b8851fccSafresh1 23b8851fccSafresh1our @EXPORT = qw( 24b8851fccSafresh1); 25b8851fccSafresh1 26*256a93a4Safresh1our $VERSION = '0.04'; 27b8851fccSafresh1 28b8851fccSafresh1require XSLoader; 29b8851fccSafresh1XSLoader::load('Amiga::Exec', $VERSION); 30b8851fccSafresh1 31b8851fccSafresh1 32b8851fccSafresh1sub Wait 33b8851fccSafresh1{ 34b8851fccSafresh1 my %params = @_; 35b8851fccSafresh1 my $signalmask = 0; 36b8851fccSafresh1 my $timeout = 0; 37b8851fccSafresh1 38b8851fccSafresh1 if(exists $params{'SignalMask'}) 39b8851fccSafresh1 { 40b8851fccSafresh1 $signalmask = $params{'SignalMask'}; 41b8851fccSafresh1 } 42b8851fccSafresh1 if(exists $params{'TimeOut'}) 43b8851fccSafresh1 { 44b8851fccSafresh1 $timeout = $params{'TimeOut'}; 45b8851fccSafresh1 } 46b8851fccSafresh1 47b8851fccSafresh1 my $result = Amiga::Exec::_Wait($signalmask,$timeout); 48b8851fccSafresh1 return $result; 49b8851fccSafresh1} 50b8851fccSafresh1 51b8851fccSafresh1 52b8851fccSafresh1 53b8851fccSafresh1# Preloaded methods go here. 54b8851fccSafresh1 55b8851fccSafresh1# Autoload methods go after =cut, and are processed by the autosplit program. 56b8851fccSafresh1 57b8851fccSafresh11; 58b8851fccSafresh1__END__ 59b8851fccSafresh1# Below is stub documentation for your module. You'd better edit it! 60b8851fccSafresh1 61b8851fccSafresh1=head1 NAME 62b8851fccSafresh1 63b8851fccSafresh1Amiga::Exec - Perl extension for low level amiga support 64b8851fccSafresh1 65b8851fccSafresh1=head1 ABSTRACT 66b8851fccSafresh1 67b8851fccSafresh1This a perl class / module to enables you to use various low level Amiga features such as waiting on an Exec signal 68b8851fccSafresh1 69b8851fccSafresh1=head1 SYNOPSIS 70b8851fccSafresh1 71b8851fccSafresh1 # Wait for signla 72b8851fccSafresh1 73b8851fccSafresh1 use Amiga::Exec; 74*256a93a4Safresh1 my $result = Amiga::ARexx->Wait('SignalMask' => $signalmask, 75*256a93a4Safresh1 'TimeOut' => $timeoutinusecs); 76b8851fccSafresh1 77b8851fccSafresh1=head1 DESCRIPTION 78b8851fccSafresh1 79b8851fccSafresh1The interface to Exec in entirely encapsulated within the perl class, there 80b8851fccSafresh1is no need to access the low level methods directly and they are not exported by default. 81b8851fccSafresh1 82b8851fccSafresh1=head1 Amiga::ARexx METHODS 83b8851fccSafresh1 84b8851fccSafresh1=head2 Wait 85b8851fccSafresh1 86b8851fccSafresh1 $signals = Amiga::Exec->Wait('SignalMask' => $signalmask, 87b8851fccSafresh1 'TimeOut' => $timeoutinusecs ); 88b8851fccSafresh1 89b8851fccSafresh1Wait on a signal set with optional timeout. The result ($signals) should be checked to 90b8851fccSafresh1determine which signal was raised. It will be 0 for timeout. 91b8851fccSafresh1 92b8851fccSafresh1=head3 Signal 93b8851fccSafresh1 94b8851fccSafresh1The signal Exec signal mask 95b8851fccSafresh1 96b8851fccSafresh1=head3 TimeOut 97b8851fccSafresh1 98b8851fccSafresh1optional time out in microseconds. 99b8851fccSafresh1 100b8851fccSafresh1=head2 EXPORT 101b8851fccSafresh1 102b8851fccSafresh1None by default. 103b8851fccSafresh1 104b8851fccSafresh1=head2 Exportable constants 105b8851fccSafresh1 106b8851fccSafresh1None 107b8851fccSafresh1 108b8851fccSafresh1=head1 AUTHOR 109b8851fccSafresh1 110b8851fccSafresh1Andy Broad <andy@broad.ology.org.uk> 111b8851fccSafresh1 112b8851fccSafresh1=head1 COPYRIGHT AND LICENSE 113b8851fccSafresh1 114b8851fccSafresh1Copyright (C) 2013 by Andy Broad. 115b8851fccSafresh1 116b8851fccSafresh1 117b8851fccSafresh1=cut 118b8851fccSafresh1 119b8851fccSafresh1 120b8851fccSafresh1 121