xref: /openbsd-src/gnu/usr.bin/perl/ext/Amiga-Exec/Exec.pm (revision 256a93a44f36679bee503f12e49566c2183f6181)
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