File Coverage

ext/Fcntl/const-c.inc
Criterion Covered Total %
statement 21 23 91.3
branch n/a
condition n/a
subroutine n/a
total 21 23 91.3


line stmt bran cond sub time code
1           #define PERL_constant_NOTFOUND 1
2           #define PERL_constant_NOTDEF 2
3           #define PERL_constant_ISIV 3
4           #define PERL_constant_ISNO 4
5           #define PERL_constant_ISNV 5
6           #define PERL_constant_ISPV 6
7           #define PERL_constant_ISPVN 7
8           #define PERL_constant_ISSV 8
9           #define PERL_constant_ISUNDEF 9
10           #define PERL_constant_ISUV 10
11           #define PERL_constant_ISYES 11
12            
13           #ifndef NVTYPE
14           typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */
15           #endif
16           #ifndef aTHX_
17           #define aTHX_ /* 5.6 or later define this for threading support. */
18           #endif
19           #ifndef pTHX_
20           #define pTHX_ /* 5.6 or later define this for threading support. */
21           #endif
22            
23           /* This allows slightly more efficient code on !USE_ITHREADS: */
24           #ifdef USE_ITHREADS
25           # define COP_FILE(c) CopFILE(c)
26           # define COP_FILE_F "s"
27           #else
28           # define COP_FILE(c) CopFILESV(c)
29           # define COP_FILE_F SVf
30           #endif
31            
32           static void
33 488800         constant_add_symbol(pTHX_ HV *hash, const char *name, I32 namelen, SV *value) {
34 488800         HE *he = (HE*) hv_common_key_len(hash, name, namelen, HV_FETCH_LVALUE, NULL,
35           0);
36           SV *sv;
37            
38 488800         if (!he) {
39 0         Perl_croak(aTHX_ "Couldn't add key '%s' to %%Fcntl::",
40           name);
41           }
42 488800         sv = HeVAL(he);
43 977600         if (SvOK(sv) || SvTYPE(sv) == SVt_PVGV) {
44           /* Someone has been here before us - have to make a real sub. */
45 0         newCONSTSUB(hash, name, value);
46           } else {
47 977600         SvUPGRADE(sv, SVt_RV);
48 488800         SvRV_set(sv, value);
49 488800         SvROK_on(sv);
50 488800         SvREADONLY_on(value);
51           }
52 488800         }
53            
54            
55            
56           #ifndef SYMBIAN
57            
58           /* Store a hash of all symbols missing from the package. To avoid trampling on
59           the package namespace (uninvited) put each package's hash in our namespace.
60           To avoid creating lots of typeblogs and symbol tables for sub-packages, put
61           each package's hash into one hash in our namespace. */
62            
63           static HV *
64 12730         get_missing_hash(pTHX) {
65 7530         HV *const parent
66           = get_hv("ExtUtils::Constant::ProxySubs::Missing", GVf_MULTI);
67           /* We could make a hash of hashes directly, but this would confuse anything
68           at Perl space that looks at us, and as we're visible in Perl space,
69           best to play nice. */
70 7530         SV *const *const ref
71           = hv_fetch(parent, "Fcntl", 5, TRUE);
72           HV *new_hv;
73            
74 7530         if (!ref)
75           return NULL;
76            
77 7530         if (SvROK(*ref))
78 2330         return (HV*) SvRV(*ref);
79            
80 5200         new_hv = newHV();
81 10400         SvUPGRADE(*ref, SVt_RV);
82 5200         SvRV_set(*ref, (SV *)new_hv);
83 5200         SvROK_on(*ref);
84 5200         return new_hv;
85           }
86            
87           #endif
88            
89           struct notfound_s {const char *name; I32 namelen;} ;
90            
91           static const struct notfound_s values_for_notfound[] =
92           {
93           #ifndef DN_ACCESS
94           { "DN_ACCESS", 9 },
95           #endif
96           #ifndef DN_MODIFY
97           { "DN_MODIFY", 9 },
98           #endif
99           #ifndef DN_CREATE
100           { "DN_CREATE", 9 },
101           #endif
102           #ifndef DN_DELETE
103           { "DN_DELETE", 9 },
104           #endif
105           #ifndef DN_RENAME
106           { "DN_RENAME", 9 },
107           #endif
108           #ifndef DN_ATTRIB
109           { "DN_ATTRIB", 9 },
110           #endif
111           #ifndef DN_MULTISHOT
112           { "DN_MULTISHOT", 12 },
113           #endif
114           #ifndef FAPPEND
115           { "FAPPEND", 7 },
116           #endif
117           #ifndef FASYNC
118           { "FASYNC", 6 },
119           #endif
120           #ifndef FCREAT
121           { "FCREAT", 6 },
122           #endif
123           #ifndef FDEFER
124           { "FDEFER", 6 },
125           #endif
126           #ifndef FDSYNC
127           { "FDSYNC", 6 },
128           #endif
129           #ifndef FD_CLOEXEC
130           { "FD_CLOEXEC", 10 },
131           #endif
132           #ifndef FEXCL
133           { "FEXCL", 5 },
134           #endif
135           #ifndef FLARGEFILE
136           { "FLARGEFILE", 10 },
137           #endif
138           #ifndef FNDELAY
139           { "FNDELAY", 7 },
140           #endif
141           #ifndef FNONBLOCK
142           { "FNONBLOCK", 9 },
143           #endif
144           #ifndef FRSYNC
145           { "FRSYNC", 6 },
146           #endif
147           #ifndef FSYNC
148           { "FSYNC", 5 },
149           #endif
150           #ifndef FTRUNC
151           { "FTRUNC", 6 },
152           #endif
153           #ifndef F_ALLOCSP
154           { "F_ALLOCSP", 9 },
155           #endif
156           #ifndef F_ALLOCSP64
157           { "F_ALLOCSP64", 11 },
158           #endif
159           #ifndef F_COMPAT
160           { "F_COMPAT", 8 },
161           #endif
162           #ifndef F_DUP2FD
163           { "F_DUP2FD", 8 },
164           #endif
165           #ifndef F_DUPFD
166           { "F_DUPFD", 7 },
167           #endif
168           #ifndef F_EXLCK
169           { "F_EXLCK", 7 },
170           #endif
171           #ifndef F_FREESP
172           { "F_FREESP", 8 },
173           #endif
174           #ifndef F_FREESP64
175           { "F_FREESP64", 10 },
176           #endif
177           #ifndef F_FSYNC
178           { "F_FSYNC", 7 },
179           #endif
180           #ifndef F_FSYNC64
181           { "F_FSYNC64", 9 },
182           #endif
183           #ifndef F_GETFD
184           { "F_GETFD", 7 },
185           #endif
186           #ifndef F_GETFL
187           { "F_GETFL", 7 },
188           #endif
189           #ifndef F_GETLEASE
190           { "F_GETLEASE", 10 },
191           #endif
192           #ifndef F_GETLK
193           { "F_GETLK", 7 },
194           #endif
195           #ifndef F_GETLK64
196           { "F_GETLK64", 9 },
197           #endif
198           #ifndef F_GETOWN
199           { "F_GETOWN", 8 },
200           #endif
201           #ifndef F_GETSIG
202           { "F_GETSIG", 8 },
203           #endif
204           #ifndef F_NODNY
205           { "F_NODNY", 7 },
206           #endif
207           #ifndef F_NOTIFY
208           { "F_NOTIFY", 8 },
209           #endif
210           #ifndef F_POSIX
211           { "F_POSIX", 7 },
212           #endif
213           #ifndef F_RDACC
214           { "F_RDACC", 7 },
215           #endif
216           #ifndef F_RDDNY
217           { "F_RDDNY", 7 },
218           #endif
219           #ifndef F_RDLCK
220           { "F_RDLCK", 7 },
221           #endif
222           #ifndef F_RWACC
223           { "F_RWACC", 7 },
224           #endif
225           #ifndef F_RWDNY
226           { "F_RWDNY", 7 },
227           #endif
228           #ifndef F_SETFD
229           { "F_SETFD", 7 },
230           #endif
231           #ifndef F_SETFL
232           { "F_SETFL", 7 },
233           #endif
234           #ifndef F_SETLEASE
235           { "F_SETLEASE", 10 },
236           #endif
237           #ifndef F_SETLK
238           { "F_SETLK", 7 },
239           #endif
240           #ifndef F_SETLK64
241           { "F_SETLK64", 9 },
242           #endif
243           #ifndef F_SETLKW
244           { "F_SETLKW", 8 },
245           #endif
246           #ifndef F_SETLKW64
247           { "F_SETLKW64", 10 },
248           #endif
249           #ifndef F_SETOWN
250           { "F_SETOWN", 8 },
251           #endif
252           #ifndef F_SETSIG
253           { "F_SETSIG", 8 },
254           #endif
255           #ifndef F_SHARE
256           { "F_SHARE", 7 },
257           #endif
258           #ifndef F_SHLCK
259           { "F_SHLCK", 7 },
260           #endif
261           #ifndef F_UNLCK
262           { "F_UNLCK", 7 },
263           #endif
264           #ifndef F_UNSHARE
265           { "F_UNSHARE", 9 },
266           #endif
267           #ifndef F_WRACC
268           { "F_WRACC", 7 },
269           #endif
270           #ifndef F_WRDNY
271           { "F_WRDNY", 7 },
272           #endif
273           #ifndef F_WRLCK
274           { "F_WRLCK", 7 },
275           #endif
276           #ifndef LOCK_MAND
277           { "LOCK_MAND", 9 },
278           #endif
279           #ifndef LOCK_READ
280           { "LOCK_READ", 9 },
281           #endif
282           #ifndef LOCK_WRITE
283           { "LOCK_WRITE", 10 },
284           #endif
285           #ifndef LOCK_RW
286           { "LOCK_RW", 7 },
287           #endif
288           #ifndef O_ACCMODE
289           { "O_ACCMODE", 9 },
290           #endif
291           #ifndef O_ALIAS
292           { "O_ALIAS", 7 },
293           #endif
294           #ifndef O_APPEND
295           { "O_APPEND", 8 },
296           #endif
297           #ifndef O_ASYNC
298           { "O_ASYNC", 7 },
299           #endif
300           #ifndef O_BINARY
301           { "O_BINARY", 8 },
302           #endif
303           #ifndef O_CREAT
304           { "O_CREAT", 7 },
305           #endif
306           #ifndef O_DEFER
307           { "O_DEFER", 7 },
308           #endif
309           #ifndef O_DIRECT
310           { "O_DIRECT", 8 },
311           #endif
312           #ifndef O_DIRECTORY
313           { "O_DIRECTORY", 11 },
314           #endif
315           #ifndef O_DSYNC
316           { "O_DSYNC", 7 },
317           #endif
318           #ifndef O_EXCL
319           { "O_EXCL", 6 },
320           #endif
321           #ifndef O_EXLOCK
322           { "O_EXLOCK", 8 },
323           #endif
324           #ifndef O_IGNORE_CTTY
325           { "O_IGNORE_CTTY", 13 },
326           #endif
327           #ifndef O_LARGEFILE
328           { "O_LARGEFILE", 11 },
329           #endif
330           #ifndef O_NDELAY
331           { "O_NDELAY", 8 },
332           #endif
333           #ifndef O_NOATIME
334           { "O_NOATIME", 9 },
335           #endif
336           #ifndef O_NOCTTY
337           { "O_NOCTTY", 8 },
338           #endif
339           #ifndef O_NOFOLLOW
340           { "O_NOFOLLOW", 10 },
341           #endif
342           #ifndef O_NOINHERIT
343           { "O_NOINHERIT", 11 },
344           #endif
345           #ifndef O_NOLINK
346           { "O_NOLINK", 8 },
347           #endif
348           #ifndef O_NONBLOCK
349           { "O_NONBLOCK", 10 },
350           #endif
351           #ifndef O_NOTRANS
352           { "O_NOTRANS", 9 },
353           #endif
354           #ifndef O_RANDOM
355           { "O_RANDOM", 8 },
356           #endif
357           #ifndef O_RAW
358           { "O_RAW", 5 },
359           #endif
360           #ifndef O_RDONLY
361           { "O_RDONLY", 8 },
362           #endif
363           #ifndef O_RDWR
364           { "O_RDWR", 6 },
365           #endif
366           #ifndef O_RSRC
367           { "O_RSRC", 6 },
368           #endif
369           #ifndef O_RSYNC
370           { "O_RSYNC", 7 },
371           #endif
372           #ifndef O_SEQUENTIAL
373           { "O_SEQUENTIAL", 12 },
374           #endif
375           #ifndef O_SHLOCK
376           { "O_SHLOCK", 8 },
377           #endif
378           #ifndef O_SYNC
379           { "O_SYNC", 6 },
380           #endif
381           #ifndef O_TEMPORARY
382           { "O_TEMPORARY", 11 },
383           #endif
384           #ifndef O_TEXT
385           { "O_TEXT", 6 },
386           #endif
387           #ifndef O_TRUNC
388           { "O_TRUNC", 7 },
389           #endif
390           #ifndef O_WRONLY
391           { "O_WRONLY", 8 },
392           #endif
393           #ifndef S_ENFMT
394           { "S_ENFMT", 7 },
395           #endif
396           #ifndef S_IEXEC
397           { "S_IEXEC", 7 },
398           #endif
399           #ifndef S_IFBLK
400           { "S_IFBLK", 7 },
401           #endif
402           #ifndef S_IFCHR
403           { "S_IFCHR", 7 },
404           #endif
405           #ifndef S_IFDIR
406           { "S_IFDIR", 7 },
407           #endif
408           #ifndef S_IFIFO
409           { "S_IFIFO", 7 },
410           #endif
411           #ifndef S_IFLNK
412           { "S_IFLNK", 7 },
413           #endif
414           #ifndef S_IFREG
415           { "S_IFREG", 7 },
416           #endif
417           #ifndef S_IFSOCK
418           { "S_IFSOCK", 8 },
419           #endif
420           #ifndef S_IFWHT
421           { "S_IFWHT", 7 },
422           #endif
423           #ifndef S_IREAD
424           { "S_IREAD", 7 },
425           #endif
426           #ifndef S_IRGRP
427           { "S_IRGRP", 7 },
428           #endif
429           #ifndef S_IROTH
430           { "S_IROTH", 7 },
431           #endif
432           #ifndef S_IRUSR
433           { "S_IRUSR", 7 },
434           #endif
435           #ifndef S_IRWXG
436           { "S_IRWXG", 7 },
437           #endif
438           #ifndef S_IRWXO
439           { "S_IRWXO", 7 },
440           #endif
441           #ifndef S_IRWXU
442           { "S_IRWXU", 7 },
443           #endif
444           #ifndef S_ISGID
445           { "S_ISGID", 7 },
446           #endif
447           #ifndef S_ISTXT
448           { "S_ISTXT", 7 },
449           #endif
450           #ifndef S_ISUID
451           { "S_ISUID", 7 },
452           #endif
453           #ifndef S_ISVTX
454           { "S_ISVTX", 7 },
455           #endif
456           #ifndef S_IWGRP
457           { "S_IWGRP", 7 },
458           #endif
459           #ifndef S_IWOTH
460           { "S_IWOTH", 7 },
461           #endif
462           #ifndef S_IWRITE
463           { "S_IWRITE", 8 },
464           #endif
465           #ifndef S_IWUSR
466           { "S_IWUSR", 7 },
467           #endif
468           #ifndef S_IXGRP
469           { "S_IXGRP", 7 },
470           #endif
471           #ifndef S_IXOTH
472           { "S_IXOTH", 7 },
473           #endif
474           #ifndef S_IXUSR
475           { "S_IXUSR", 7 },
476           #endif
477           #ifndef S_IFMT
478           { "_S_IFMT", 7 },
479           #endif
480           { NULL, 0 } };
481           struct iv_s {const char *name; I32 namelen; IV value;};