← Index
Performance Profile   « block view • line view • sub view »
For /wise/base/deliv/dev/bin/getfix
  Run on Thu May 20 15:30:03 2010
Reported on Thu May 20 16:25:34 2010

File/opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Fcntl.pm
Statements Executed20
Total Time0.001154 seconds

Subroutines — ordered by exclusive time
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
00000Fcntl::AUTOLOAD
00000Fcntl::BEGIN
00000Fcntl::S_IFMT
00000Fcntl::S_IMODE
00000Fcntl::S_ISBLK
00000Fcntl::S_ISCHR
00000Fcntl::S_ISDIR
00000Fcntl::S_ISENFMT
00000Fcntl::S_ISFIFO
00000Fcntl::S_ISLNK
00000Fcntl::S_ISREG
00000Fcntl::S_ISSOCK
00000Fcntl::S_ISWHT
00000Fcntl::__ANON__[:240]

LineStmts.Exclusive
Time
Avg.Code
1package Fcntl;
2
3=head1 NAME
4
5Fcntl - load the C Fcntl.h defines
6
7=head1 SYNOPSIS
8
9 use Fcntl;
10 use Fcntl qw(:DEFAULT :flock);
11
12=head1 DESCRIPTION
13
14This module is just a translation of the C F<fcntl.h> file.
15Unlike the old mechanism of requiring a translated F<fcntl.ph>
16file, this uses the B<h2xs> program (see the Perl source distribution)
17and your native C compiler. This means that it has a
18far more likely chance of getting the numbers right.
19
20=head1 NOTE
21
22Only C<#define> symbols get translated; you must still correctly
23pack up your own arguments to pass as args for locking functions, etc.
24
25=head1 EXPORTED SYMBOLS
26
27By default your system's F_* and O_* constants (eg, F_DUPFD and
28O_CREAT) and the FD_CLOEXEC constant are exported into your namespace.
29
30You can request that the flock() constants (LOCK_SH, LOCK_EX, LOCK_NB
31and LOCK_UN) be provided by using the tag C<:flock>. See L<Exporter>.
32
33You can request that the old constants (FAPPEND, FASYNC, FCREAT,
34FDEFER, FEXCL, FNDELAY, FNONBLOCK, FSYNC, FTRUNC) be provided for
35compatibility reasons by using the tag C<:Fcompat>. For new
36applications the newer versions of these constants are suggested
37(O_APPEND, O_ASYNC, O_CREAT, O_DEFER, O_EXCL, O_NDELAY, O_NONBLOCK,
38O_SYNC, O_TRUNC).
39
40For ease of use also the SEEK_* constants (for seek() and sysseek(),
41e.g. SEEK_END) and the S_I* constants (for chmod() and stat()) are
42available for import. They can be imported either separately or using
43the tags C<:seek> and C<:mode>.
44
45Please refer to your native fcntl(2), open(2), fseek(3), lseek(2)
46(equal to Perl's seek() and sysseek(), respectively), and chmod(2)
47documentation to see what constants are implemented in your system.
48
49See L<perlopentut> to learn about the uses of the O_* constants
50with sysopen().
51
52See L<perlfunc/seek> and L<perlfunc/sysseek> about the SEEK_* constants.
53
54See L<perlfunc/stat> about the S_I* constants.
55
56=cut
57
5836.4e-52.1e-5use strict;
# spent 9µs making 1 call to strict::import
5911.0e-61.0e-6our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $AUTOLOAD);
60
6111.0e-61.0e-6require Exporter;
6233.2e-51.1e-5use XSLoader ();
6316.0e-66.0e-6@ISA = qw(Exporter);
64BEGIN {
6511.0e-61.0e-6 $VERSION = "1.06";
6610.000180.00018}
67
68# Items to export into callers namespace by default
69# (move infrequently used names to @EXPORT_OK below)
7011.3e-51.3e-5@EXPORT =
71 qw(
72 FD_CLOEXEC
73 F_ALLOCSP
74 F_ALLOCSP64
75 F_COMPAT
76 F_DUP2FD
77 F_DUPFD
78 F_EXLCK
79 F_FREESP
80 F_FREESP64
81 F_FSYNC
82 F_FSYNC64
83 F_GETFD
84 F_GETFL
85 F_GETLK
86 F_GETLK64
87 F_GETOWN
88 F_NODNY
89 F_POSIX
90 F_RDACC
91 F_RDDNY
92 F_RDLCK
93 F_RWACC
94 F_RWDNY
95 F_SETFD
96 F_SETFL
97 F_SETLK
98 F_SETLK64
99 F_SETLKW
100 F_SETLKW64
101 F_SETOWN
102 F_SHARE
103 F_SHLCK
104 F_UNLCK
105 F_UNSHARE
106 F_WRACC
107 F_WRDNY
108 F_WRLCK
109 O_ACCMODE
110 O_ALIAS
111 O_APPEND
112 O_ASYNC
113 O_BINARY
114 O_CREAT
115 O_DEFER
116 O_DIRECT
117 O_DIRECTORY
118 O_DSYNC
119 O_EXCL
120 O_EXLOCK
121 O_LARGEFILE
122 O_NDELAY
123 O_NOCTTY
124 O_NOFOLLOW
125 O_NOINHERIT
126 O_NONBLOCK
127 O_RANDOM
128 O_RAW
129 O_RDONLY
130 O_RDWR
131 O_RSRC
132 O_RSYNC
133 O_SEQUENTIAL
134 O_SHLOCK
135 O_SYNC
136 O_TEMPORARY
137 O_TEXT
138 O_TRUNC
139 O_WRONLY
140 );
141
142# Other items we are prepared to export if requested
14312.3e-52.3e-5@EXPORT_OK = qw(
144 DN_ACCESS
145 DN_ATTRIB
146 DN_CREATE
147 DN_DELETE
148 DN_MODIFY
149 DN_MULTISHOT
150 DN_RENAME
151 FAPPEND
152 FASYNC
153 FCREAT
154 FDEFER
155 FDSYNC
156 FEXCL
157 FLARGEFILE
158 FNDELAY
159 FNONBLOCK
160 FRSYNC
161 FSYNC
162 FTRUNC
163 F_GETLEASE
164 F_GETSIG
165 F_NOTIFY
166 F_SETLEASE
167 F_SETSIG
168 LOCK_EX
169 LOCK_MAND
170 LOCK_NB
171 LOCK_READ
172 LOCK_RW
173 LOCK_SH
174 LOCK_UN
175 LOCK_WRITE
176 O_IGNORE_CTTY
177 O_NOATIME
178 O_NOLINK
179 O_NOTRANS
180 SEEK_CUR
181 SEEK_END
182 SEEK_SET
183 S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
184 S_IREAD S_IWRITE S_IEXEC
185 S_IRGRP S_IWGRP S_IXGRP S_IRWXG
186 S_IROTH S_IWOTH S_IXOTH S_IRWXO
187 S_IRUSR S_IWUSR S_IXUSR S_IRWXU
188 S_ISUID S_ISGID S_ISVTX S_ISTXT
189 _S_IFMT S_IFREG S_IFDIR S_IFLNK
190 &S_ISREG &S_ISDIR &S_ISLNK &S_ISSOCK &S_ISBLK &S_ISCHR &S_ISFIFO
191 &S_ISWHT &S_ISENFMT &S_IFMT &S_IMODE
192);
193# Named groups of exports
19411.6e-51.6e-5%EXPORT_TAGS = (
195 'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)],
196 'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE
197 FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)],
198 'seek' => [qw(SEEK_SET SEEK_CUR SEEK_END)],
199 'mode' => [qw(S_ISUID S_ISGID S_ISVTX S_ISTXT
200 _S_IFMT S_IFREG S_IFDIR S_IFLNK
201 S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT
202 S_IRUSR S_IWUSR S_IXUSR S_IRWXU
203 S_IRGRP S_IWGRP S_IXGRP S_IRWXG
204 S_IROTH S_IWOTH S_IXOTH S_IRWXO
205 S_IREAD S_IWRITE S_IEXEC
206 S_ISREG S_ISDIR S_ISLNK S_ISSOCK
207 S_ISBLK S_ISCHR S_ISFIFO
208 S_ISWHT S_ISENFMT
209 S_IFMT S_IMODE
210 )],
211);
212
213# Force the constants to become inlined
214BEGIN {
21510.000290.00029 XSLoader::load 'Fcntl', $VERSION;
# spent 291µs making 1 call to XSLoader::load
21610.000400.00040}
217
218sub S_IFMT { @_ ? ( $_[0] & _S_IFMT() ) : _S_IFMT() }
219sub S_IMODE { $_[0] & 07777 }
220
221sub S_ISREG { ( $_[0] & _S_IFMT() ) == S_IFREG() }
222sub S_ISDIR { ( $_[0] & _S_IFMT() ) == S_IFDIR() }
223sub S_ISLNK { ( $_[0] & _S_IFMT() ) == S_IFLNK() }
224sub S_ISSOCK { ( $_[0] & _S_IFMT() ) == S_IFSOCK() }
225sub S_ISBLK { ( $_[0] & _S_IFMT() ) == S_IFBLK() }
226sub S_ISCHR { ( $_[0] & _S_IFMT() ) == S_IFCHR() }
227sub S_ISFIFO { ( $_[0] & _S_IFMT() ) == S_IFIFO() }
228sub S_ISWHT { ( $_[0] & _S_IFMT() ) == S_IFWHT() }
229sub S_ISENFMT { ( $_[0] & _S_IFMT() ) == S_IFENFMT() }
230
231sub AUTOLOAD {
232 (my $constname = $AUTOLOAD) =~ s/.*:://;
233 die "&Fcntl::constant not defined" if $constname eq 'constant';
234 my ($error, $val) = constant($constname);
235 if ($error) {
236 my (undef,$file,$line) = caller;
237 die "$error at $file line $line.\n";
238 }
23939.2e-53.1e-5 no strict 'refs';
# spent 23µs making 1 call to strict::unimport
240 *$AUTOLOAD = sub { $val };
241 goto &$AUTOLOAD;
242}
243
24413.0e-53.0e-51;