File Coverage

blib/lib/Linux/Perl/aio/bits64.pm
Criterion Covered Total %
statement 34 34 100.0
branch n/a
condition n/a
subroutine 16 16 100.0
pod 0 3 0.0
total 50 53 94.3


line stmt bran cond sub pod time code
1             package Linux::Perl::aio::bits64;
2              
3 2     2   903 use strict;
  2         4  
  2         54  
4 2     2   8 use warnings;
  2         5  
  2         40  
5              
6 2     2   16 use parent 'Linux::Perl::aio';
  2         7  
  2         23  
7              
8 2     2   849 use Linux::Perl::EasyPack;
  2         4  
  2         55  
9              
10             use constant {
11 2         230 _context_template => 'Q',
12 2     2   8 };
  2         4  
13              
14 6     6 0 31 sub unpack_context { unpack _context_template(), $_[1] }
15              
16             my ($keys_ar, $pack);
17 10     10 0 51 sub io_event_pack { $pack }
18 10     10 0 47 sub io_event_keys { @$keys_ar }
19              
20             BEGIN {
21 2     2   9 my @_io_event_src = (
22             data => 'Q',
23             obj => 'Q',
24             res => 'q',
25             res2 => 'q',
26             );
27              
28 2         6 ($keys_ar, $pack) = Linux::Perl::EasyPack::split_pack_list(@_io_event_src);
29             }
30              
31             #----------------------------------------------------------------------
32              
33             package Linux::Perl::aio::Control::bits64;
34              
35 2     2   11 use parent -norequire => 'Linux::Perl::aio::Control';
  2         2  
  2         10  
36              
37 2     2   89 use Linux::Perl::EasyPack;
  2         2  
  2         35  
38 2     2   779 use Linux::Perl::Endian;
  2         5  
  2         175  
39              
40             my ($iocb_keys_ar, $iocb_pack);
41 10     10   25 sub iocb_pack { $iocb_pack }
42 20     20   290 sub iocb_keys { @$iocb_keys_ar }
43              
44             BEGIN {
45 2     2   26 my @_iocb_src = (
46             data => 'Q', #aio_data
47              
48             (
49             Linux::Perl::Endian::SYSTEM_IS_BIG_ENDIAN()
50             ? (
51             rw_flags => 'L',
52             key => 'L',
53             )
54             : (
55             key => 'L',
56             rw_flags => 'L',
57             )
58             ),
59              
60             lio_opcode => 'S',
61             reqprio => 's',
62             fildes => 'L',
63              
64             #Would be a P, but we grab the P and do some byte arithmetic on it
65             #for the case of a buffer_offset.
66             buf => 'Q',
67              
68             nbytes => 'Q',
69              
70             offset => 'q',
71              
72             reserved2 => 'x8',
73              
74             flags => 'L',
75             resfd => 'L',
76             );
77              
78 2         9 ($iocb_keys_ar, $iocb_pack) = Linux::Perl::EasyPack::split_pack_list(@_iocb_src);
79             }
80              
81 20     20   92 sub unpack_pointer { unpack 'Q', $_[1] }
82              
83             1;