1 #define PERL_NO_GET_CONTEXT
9 #if defined(__GNUC__) && defined(__cplusplus) && defined(WIN32)
13 #if defined(__GNUC__) && defined(__cplusplus) && defined(WIN32)
22 /* This comment is a kludge to get metaconfig to see the symbols
27 and include the appropriate metaconfig unit
28 so that Configure will test how to turn on non-blocking I/O
29 for a file descriptor. See config.h for how to use these
32 While I'm at it, I'll have metaconfig look for HAS_POLL too.
36 #define PERL_constant_NOTFOUND 1
37 #define PERL_constant_NOTDEF 2
38 #define PERL_constant_ISIV 3
39 #define PERL_constant_ISNV 4
40 #define PERL_constant_ISPV 5
41 #define PERL_constant_ISPVN 6
42 #define PERL_constant_ISUV 7
45 typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */
49 constant_5 (const char *name, IV *iv_return) {
50 /* Names all of length 5. */
51 /* When generated this function returned values for the list of names given
52 here. However, subsequent manual editing may have added or removed some.
54 /* Offset 2 gives the best switch position. */
57 if (memEQ(name, "O_RAW", 5)) {
61 return PERL_constant_ISIV;
63 return PERL_constant_NOTDEF;
68 if (memEQ(name, "FEXCL", 5)) {
72 return PERL_constant_ISIV;
74 return PERL_constant_NOTDEF;
79 if (memEQ(name, "FSYNC", 5)) {
83 return PERL_constant_ISIV;
85 return PERL_constant_NOTDEF;
90 return PERL_constant_NOTFOUND;
94 constant_6 (const char *name, IV *iv_return) {
95 /* Names all of length 6. */
96 /* When generated this function returned values for the list of names given
97 here. However, subsequent manual editing may have added or removed some.
98 FASYNC FCREAT FDEFER FDSYNC FRSYNC FTRUNC O_EXCL O_RDWR O_RSRC O_SYNC
100 /* Offset 3 gives the best switch position. */
103 if (memEQ(name, "O_RDWR", 6)) {
107 return PERL_constant_ISIV;
109 return PERL_constant_NOTDEF;
114 if (memEQ(name, "FCREAT", 6)) {
118 return PERL_constant_ISIV;
120 return PERL_constant_NOTDEF;
123 if (memEQ(name, "O_TEXT", 6)) {
127 return PERL_constant_ISIV;
129 return PERL_constant_NOTDEF;
134 if (memEQ(name, "FDEFER", 6)) {
138 return PERL_constant_ISIV;
140 return PERL_constant_NOTDEF;
145 if (memEQ(name, "O_RSRC", 6)) {
149 return PERL_constant_ISIV;
151 return PERL_constant_NOTDEF;
156 if (memEQ(name, "FTRUNC", 6)) {
160 return PERL_constant_ISIV;
162 return PERL_constant_NOTDEF;
167 if (memEQ(name, "O_EXCL", 6)) {
171 return PERL_constant_ISIV;
173 return PERL_constant_NOTDEF;
178 if (memEQ(name, "FASYNC", 6)) {
182 return PERL_constant_ISIV;
184 return PERL_constant_NOTDEF;
187 if (memEQ(name, "FDSYNC", 6)) {
191 return PERL_constant_ISIV;
193 return PERL_constant_NOTDEF;
196 if (memEQ(name, "FRSYNC", 6)) {
200 return PERL_constant_ISIV;
202 return PERL_constant_NOTDEF;
205 if (memEQ(name, "O_SYNC", 6)) {
209 return PERL_constant_ISIV;
211 return PERL_constant_NOTDEF;
216 return PERL_constant_NOTFOUND;
220 constant_7 (const char *name, IV *iv_return) {
221 /* Names all of length 7. */
222 /* When generated this function returned values for the list of names given
223 here. However, subsequent manual editing may have added or removed some.
224 FAPPEND FNDELAY F_DUPFD F_EXLCK F_FSYNC F_GETFD F_GETFL F_GETLK F_NODNY
225 F_POSIX F_RDACC F_RDDNY F_RDLCK F_RWACC F_RWDNY F_SETFD F_SETFL F_SETLK
226 F_SHARE F_SHLCK F_UNLCK F_WRACC F_WRDNY F_WRLCK LOCK_EX LOCK_NB LOCK_SH
227 LOCK_UN O_ALIAS O_ASYNC O_CREAT O_DEFER O_DSYNC O_RSYNC O_TRUNC S_ENFMT
228 S_IEXEC S_IFBLK S_IFCHR S_IFDIR S_IFIFO S_IFLNK S_IFREG S_IFWHT S_IREAD
229 S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISTXT S_ISUID
230 S_ISVTX S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR _S_IFMT */
231 /* Offset 4 gives the best switch position. */
234 if (memEQ(name, "F_RDACC", 7)) {
237 *iv_return = F_RDACC;
238 return PERL_constant_ISIV;
240 return PERL_constant_NOTDEF;
243 if (memEQ(name, "F_RWACC", 7)) {
246 *iv_return = F_RWACC;
247 return PERL_constant_ISIV;
249 return PERL_constant_NOTDEF;
252 if (memEQ(name, "F_SHARE", 7)) {
255 *iv_return = F_SHARE;
256 return PERL_constant_ISIV;
258 return PERL_constant_NOTDEF;
261 if (memEQ(name, "F_WRACC", 7)) {
264 *iv_return = F_WRACC;
265 return PERL_constant_ISIV;
267 return PERL_constant_NOTDEF;
272 if (memEQ(name, "S_IFBLK", 7)) {
275 *iv_return = S_IFBLK;
276 return PERL_constant_ISIV;
278 return PERL_constant_NOTDEF;
283 if (memEQ(name, "S_IFCHR", 7)) {
286 *iv_return = S_IFCHR;
287 return PERL_constant_ISIV;
289 return PERL_constant_NOTDEF;
294 if (memEQ(name, "F_NODNY", 7)) {
297 *iv_return = F_NODNY;
298 return PERL_constant_ISIV;
300 return PERL_constant_NOTDEF;
303 if (memEQ(name, "F_RDDNY", 7)) {
306 *iv_return = F_RDDNY;
307 return PERL_constant_ISIV;
309 return PERL_constant_NOTDEF;
312 if (memEQ(name, "F_RWDNY", 7)) {
315 *iv_return = F_RWDNY;
316 return PERL_constant_ISIV;
318 return PERL_constant_NOTDEF;
321 if (memEQ(name, "F_WRDNY", 7)) {
324 *iv_return = F_WRDNY;
325 return PERL_constant_ISIV;
327 return PERL_constant_NOTDEF;
330 if (memEQ(name, "S_IFDIR", 7)) {
333 *iv_return = S_IFDIR;
334 return PERL_constant_ISIV;
336 return PERL_constant_NOTDEF;
341 if (memEQ(name, "FAPPEND", 7)) {
344 *iv_return = FAPPEND;
345 return PERL_constant_ISIV;
347 return PERL_constant_NOTDEF;
350 if (memEQ(name, "O_CREAT", 7)) {
353 *iv_return = O_CREAT;
354 return PERL_constant_ISIV;
356 return PERL_constant_NOTDEF;
359 if (memEQ(name, "S_IREAD", 7)) {
362 *iv_return = S_IREAD;
363 return PERL_constant_ISIV;
365 return PERL_constant_NOTDEF;
370 if (memEQ(name, "O_DEFER", 7)) {
373 *iv_return = O_DEFER;
374 return PERL_constant_ISIV;
376 return PERL_constant_NOTDEF;
379 if (memEQ(name, "S_ENFMT", 7)) {
382 *iv_return = S_ENFMT;
383 return PERL_constant_ISIV;
385 return PERL_constant_NOTDEF;
388 if (memEQ(name, "_S_IFMT", 7)) {
392 return PERL_constant_ISIV;
394 return PERL_constant_NOTDEF;
399 if (memEQ(name, "S_IRGRP", 7)) {
402 *iv_return = S_IRGRP;
403 return PERL_constant_ISIV;
405 return PERL_constant_NOTDEF;
408 if (memEQ(name, "S_ISGID", 7)) {
411 *iv_return = S_ISGID;
412 return PERL_constant_ISIV;
414 return PERL_constant_NOTDEF;
417 if (memEQ(name, "S_IWGRP", 7)) {
420 *iv_return = S_IWGRP;
421 return PERL_constant_ISIV;
423 return PERL_constant_NOTDEF;
426 if (memEQ(name, "S_IXGRP", 7)) {
429 *iv_return = S_IXGRP;
430 return PERL_constant_ISIV;
432 return PERL_constant_NOTDEF;
437 if (memEQ(name, "O_ALIAS", 7)) {
440 *iv_return = O_ALIAS;
441 return PERL_constant_ISIV;
443 return PERL_constant_NOTDEF;
446 if (memEQ(name, "S_IFIFO", 7)) {
449 *iv_return = S_IFIFO;
450 return PERL_constant_ISIV;
452 return PERL_constant_NOTDEF;
457 if (memEQ(name, "FNDELAY", 7)) {
460 *iv_return = FNDELAY;
461 return PERL_constant_ISIV;
463 return PERL_constant_NOTDEF;
466 if (memEQ(name, "F_EXLCK", 7)) {
469 *iv_return = F_EXLCK;
470 return PERL_constant_ISIV;
472 return PERL_constant_NOTDEF;
475 if (memEQ(name, "F_RDLCK", 7)) {
478 *iv_return = F_RDLCK;
479 return PERL_constant_ISIV;
481 return PERL_constant_NOTDEF;
484 if (memEQ(name, "F_SHLCK", 7)) {
487 *iv_return = F_SHLCK;
488 return PERL_constant_ISIV;
490 return PERL_constant_NOTDEF;
493 if (memEQ(name, "F_UNLCK", 7)) {
496 *iv_return = F_UNLCK;
497 return PERL_constant_ISIV;
499 return PERL_constant_NOTDEF;
502 if (memEQ(name, "F_WRLCK", 7)) {
505 *iv_return = F_WRLCK;
506 return PERL_constant_ISIV;
508 return PERL_constant_NOTDEF;
511 if (memEQ(name, "S_IFLNK", 7)) {
514 *iv_return = S_IFLNK;
515 return PERL_constant_ISIV;
517 return PERL_constant_NOTDEF;
522 if (memEQ(name, "S_IROTH", 7)) {
525 *iv_return = S_IROTH;
526 return PERL_constant_ISIV;
528 return PERL_constant_NOTDEF;
531 if (memEQ(name, "S_IWOTH", 7)) {
534 *iv_return = S_IWOTH;
535 return PERL_constant_ISIV;
537 return PERL_constant_NOTDEF;
540 if (memEQ(name, "S_IXOTH", 7)) {
543 *iv_return = S_IXOTH;
544 return PERL_constant_ISIV;
546 return PERL_constant_NOTDEF;
551 if (memEQ(name, "F_DUPFD", 7)) {
554 *iv_return = F_DUPFD;
555 return PERL_constant_ISIV;
557 return PERL_constant_NOTDEF;
562 if (memEQ(name, "S_IFREG", 7)) {
565 *iv_return = S_IFREG;
566 return PERL_constant_ISIV;
568 return PERL_constant_NOTDEF;
573 if (memEQ(name, "F_POSIX", 7)) {
576 *iv_return = F_POSIX;
577 return PERL_constant_ISIV;
579 return PERL_constant_NOTDEF;
584 if (memEQ(name, "F_GETFD", 7)) {
587 *iv_return = F_GETFD;
588 return PERL_constant_ISIV;
590 return PERL_constant_NOTDEF;
593 if (memEQ(name, "F_GETFL", 7)) {
596 *iv_return = F_GETFL;
597 return PERL_constant_ISIV;
599 return PERL_constant_NOTDEF;
602 if (memEQ(name, "F_GETLK", 7)) {
605 *iv_return = F_GETLK;
606 return PERL_constant_ISIV;
608 return PERL_constant_NOTDEF;
611 if (memEQ(name, "F_SETFD", 7)) {
614 *iv_return = F_SETFD;
615 return PERL_constant_ISIV;
617 return PERL_constant_NOTDEF;
620 if (memEQ(name, "F_SETFL", 7)) {
623 *iv_return = F_SETFL;
624 return PERL_constant_ISIV;
626 return PERL_constant_NOTDEF;
629 if (memEQ(name, "F_SETLK", 7)) {
632 *iv_return = F_SETLK;
633 return PERL_constant_ISIV;
635 return PERL_constant_NOTDEF;
638 if (memEQ(name, "S_ISTXT", 7)) {
641 *iv_return = S_ISTXT;
642 return PERL_constant_ISIV;
644 return PERL_constant_NOTDEF;
649 if (memEQ(name, "O_TRUNC", 7)) {
652 *iv_return = O_TRUNC;
653 return PERL_constant_ISIV;
655 return PERL_constant_NOTDEF;
658 if (memEQ(name, "S_IRUSR", 7)) {
661 *iv_return = S_IRUSR;
662 return PERL_constant_ISIV;
664 return PERL_constant_NOTDEF;
667 if (memEQ(name, "S_ISUID", 7)) {
670 *iv_return = S_ISUID;
671 return PERL_constant_ISIV;
673 return PERL_constant_NOTDEF;
676 if (memEQ(name, "S_IWUSR", 7)) {
679 *iv_return = S_IWUSR;
680 return PERL_constant_ISIV;
682 return PERL_constant_NOTDEF;
685 if (memEQ(name, "S_IXUSR", 7)) {
688 *iv_return = S_IXUSR;
689 return PERL_constant_ISIV;
691 return PERL_constant_NOTDEF;
696 if (memEQ(name, "S_ISVTX", 7)) {
699 *iv_return = S_ISVTX;
700 return PERL_constant_ISIV;
702 return PERL_constant_NOTDEF;
707 if (memEQ(name, "S_IFWHT", 7)) {
710 *iv_return = S_IFWHT;
711 return PERL_constant_ISIV;
713 return PERL_constant_NOTDEF;
716 if (memEQ(name, "S_IRWXG", 7)) {
719 *iv_return = S_IRWXG;
720 return PERL_constant_ISIV;
722 return PERL_constant_NOTDEF;
725 if (memEQ(name, "S_IRWXO", 7)) {
728 *iv_return = S_IRWXO;
729 return PERL_constant_ISIV;
731 return PERL_constant_NOTDEF;
734 if (memEQ(name, "S_IRWXU", 7)) {
737 *iv_return = S_IRWXU;
738 return PERL_constant_ISIV;
740 return PERL_constant_NOTDEF;
745 if (memEQ(name, "S_IEXEC", 7)) {
748 *iv_return = S_IEXEC;
749 return PERL_constant_ISIV;
751 return PERL_constant_NOTDEF;
756 if (memEQ(name, "F_FSYNC", 7)) {
759 *iv_return = F_FSYNC;
760 return PERL_constant_ISIV;
762 return PERL_constant_NOTDEF;
765 if (memEQ(name, "O_ASYNC", 7)) {
768 *iv_return = O_ASYNC;
769 return PERL_constant_ISIV;
771 return PERL_constant_NOTDEF;
774 if (memEQ(name, "O_DSYNC", 7)) {
777 *iv_return = O_DSYNC;
778 return PERL_constant_ISIV;
780 return PERL_constant_NOTDEF;
783 if (memEQ(name, "O_RSYNC", 7)) {
786 *iv_return = O_RSYNC;
787 return PERL_constant_ISIV;
789 return PERL_constant_NOTDEF;
794 if (memEQ(name, "LOCK_EX", 7)) {
797 *iv_return = LOCK_EX;
798 return PERL_constant_ISIV;
801 return PERL_constant_ISIV;
804 if (memEQ(name, "LOCK_NB", 7)) {
807 *iv_return = LOCK_NB;
808 return PERL_constant_ISIV;
811 return PERL_constant_ISIV;
814 if (memEQ(name, "LOCK_SH", 7)) {
817 *iv_return = LOCK_SH;
818 return PERL_constant_ISIV;
821 return PERL_constant_ISIV;
824 if (memEQ(name, "LOCK_UN", 7)) {
827 *iv_return = LOCK_UN;
828 return PERL_constant_ISIV;
831 return PERL_constant_ISIV;
836 return PERL_constant_NOTFOUND;
840 constant_8 (const char *name, IV *iv_return) {
841 /* Names all of length 8. */
842 /* When generated this function returned values for the list of names given
843 here. However, subsequent manual editing may have added or removed some.
844 F_COMPAT F_DUP2FD F_FREESP F_GETOWN F_SETLKW F_SETOWN O_APPEND O_BINARY
845 O_DIRECT O_EXLOCK O_NDELAY O_NOCTTY O_RANDOM O_RDONLY O_SHLOCK O_WRONLY
846 SEEK_CUR SEEK_END SEEK_SET S_IFSOCK S_IWRITE */
847 /* Offset 3 gives the best switch position. */
850 if (memEQ(name, "O_RANDOM", 8)) {
853 *iv_return = O_RANDOM;
854 return PERL_constant_ISIV;
856 return PERL_constant_NOTDEF;
861 if (memEQ(name, "O_NDELAY", 8)) {
864 *iv_return = O_NDELAY;
865 return PERL_constant_ISIV;
867 return PERL_constant_NOTDEF;
870 if (memEQ(name, "O_RDONLY", 8)) {
873 *iv_return = O_RDONLY;
874 return PERL_constant_ISIV;
876 return PERL_constant_NOTDEF;
881 if (memEQ(name, "F_GETOWN", 8)) {
884 *iv_return = F_GETOWN;
885 return PERL_constant_ISIV;
887 return PERL_constant_NOTDEF;
890 if (memEQ(name, "F_SETLKW", 8)) {
893 *iv_return = F_SETLKW;
894 return PERL_constant_ISIV;
896 return PERL_constant_NOTDEF;
899 if (memEQ(name, "F_SETOWN", 8)) {
902 *iv_return = F_SETOWN;
903 return PERL_constant_ISIV;
905 return PERL_constant_NOTDEF;
910 if (memEQ(name, "S_IFSOCK", 8)) {
913 *iv_return = S_IFSOCK;
914 return PERL_constant_ISIV;
916 return PERL_constant_NOTDEF;
921 if (memEQ(name, "O_SHLOCK", 8)) {
924 *iv_return = O_SHLOCK;
925 return PERL_constant_ISIV;
927 return PERL_constant_NOTDEF;
932 if (memEQ(name, "O_BINARY", 8)) {
935 *iv_return = O_BINARY;
936 return PERL_constant_ISIV;
938 return PERL_constant_NOTDEF;
941 if (memEQ(name, "O_DIRECT", 8)) {
944 *iv_return = O_DIRECT;
945 return PERL_constant_ISIV;
947 return PERL_constant_NOTDEF;
952 if (memEQ(name, "SEEK_CUR", 8)) {
955 *iv_return = SEEK_CUR;
956 return PERL_constant_ISIV;
959 return PERL_constant_ISIV;
962 if (memEQ(name, "SEEK_END", 8)) {
965 *iv_return = SEEK_END;
966 return PERL_constant_ISIV;
969 return PERL_constant_ISIV;
972 if (memEQ(name, "SEEK_SET", 8)) {
975 *iv_return = SEEK_SET;
976 return PERL_constant_ISIV;
979 return PERL_constant_ISIV;
984 if (memEQ(name, "F_COMPAT", 8)) {
987 *iv_return = F_COMPAT;
988 return PERL_constant_ISIV;
990 return PERL_constant_NOTDEF;
993 if (memEQ(name, "O_NOCTTY", 8)) {
996 *iv_return = O_NOCTTY;
997 return PERL_constant_ISIV;
999 return PERL_constant_NOTDEF;
1004 if (memEQ(name, "O_APPEND", 8)) {
1007 *iv_return = O_APPEND;
1008 return PERL_constant_ISIV;
1010 return PERL_constant_NOTDEF;
1015 if (memEQ(name, "F_FREESP", 8)) {
1018 *iv_return = F_FREESP;
1019 return PERL_constant_ISIV;
1021 return PERL_constant_NOTDEF;
1024 if (memEQ(name, "O_WRONLY", 8)) {
1027 *iv_return = O_WRONLY;
1028 return PERL_constant_ISIV;
1030 return PERL_constant_NOTDEF;
1035 if (memEQ(name, "F_DUP2FD", 8)) {
1038 *iv_return = F_DUP2FD;
1039 return PERL_constant_ISIV;
1041 return PERL_constant_NOTDEF;
1046 if (memEQ(name, "S_IWRITE", 8)) {
1049 *iv_return = S_IWRITE;
1050 return PERL_constant_ISIV;
1052 return PERL_constant_NOTDEF;
1057 if (memEQ(name, "O_EXLOCK", 8)) {
1060 *iv_return = O_EXLOCK;
1061 return PERL_constant_ISIV;
1063 return PERL_constant_NOTDEF;
1068 return PERL_constant_NOTFOUND;
1072 constant_9 (const char *name, IV *iv_return) {
1073 /* Names all of length 9. */
1074 /* When generated this function returned values for the list of names given
1075 here. However, subsequent manual editing may have added or removed some.
1076 FNONBLOCK F_ALLOCSP F_FSYNC64 F_GETLK64 F_SETLK64 F_UNSHARE O_ACCMODE */
1077 /* Offset 2 gives the best switch position. */
1080 if (memEQ(name, "F_ALLOCSP", 9)) {
1083 *iv_return = F_ALLOCSP;
1084 return PERL_constant_ISIV;
1086 return PERL_constant_NOTDEF;
1089 if (memEQ(name, "O_ACCMODE", 9)) {
1092 *iv_return = O_ACCMODE;
1093 return PERL_constant_ISIV;
1095 return PERL_constant_NOTDEF;
1100 if (memEQ(name, "F_FSYNC64", 9)) {
1103 *iv_return = F_FSYNC64;
1104 return PERL_constant_ISIV;
1106 return PERL_constant_NOTDEF;
1111 if (memEQ(name, "F_GETLK64", 9)) {
1114 *iv_return = F_GETLK64;
1115 return PERL_constant_ISIV;
1117 return PERL_constant_NOTDEF;
1122 if (memEQ(name, "FNONBLOCK", 9)) {
1125 *iv_return = FNONBLOCK;
1126 return PERL_constant_ISIV;
1128 return PERL_constant_NOTDEF;
1133 if (memEQ(name, "F_SETLK64", 9)) {
1136 *iv_return = F_SETLK64;
1137 return PERL_constant_ISIV;
1139 return PERL_constant_NOTDEF;
1144 if (memEQ(name, "F_UNSHARE", 9)) {
1147 *iv_return = F_UNSHARE;
1148 return PERL_constant_ISIV;
1150 return PERL_constant_NOTDEF;
1155 return PERL_constant_NOTFOUND;
1159 constant_10 (const char *name, IV *iv_return) {
1160 /* Names all of length 10. */
1161 /* When generated this function returned values for the list of names given
1162 here. However, subsequent manual editing may have added or removed some.
1163 FD_CLOEXEC FLARGEFILE F_FREESP64 F_SETLKW64 O_NOFOLLOW O_NONBLOCK */
1164 /* Offset 4 gives the best switch position. */
1167 if (memEQ(name, "F_FREESP64", 10)) {
1170 *iv_return = F_FREESP64;
1171 return PERL_constant_ISIV;
1173 return PERL_constant_NOTDEF;
1178 if (memEQ(name, "O_NOFOLLOW", 10)) {
1181 *iv_return = O_NOFOLLOW;
1182 return PERL_constant_ISIV;
1184 return PERL_constant_NOTDEF;
1189 if (memEQ(name, "FLARGEFILE", 10)) {
1192 *iv_return = FLARGEFILE;
1193 return PERL_constant_ISIV;
1195 return PERL_constant_NOTDEF;
1200 if (memEQ(name, "FD_CLOEXEC", 10)) {
1203 *iv_return = FD_CLOEXEC;
1204 return PERL_constant_ISIV;
1206 return PERL_constant_NOTDEF;
1211 if (memEQ(name, "O_NONBLOCK", 10)) {
1214 *iv_return = O_NONBLOCK;
1215 return PERL_constant_ISIV;
1217 return PERL_constant_NOTDEF;
1222 if (memEQ(name, "F_SETLKW64", 10)) {
1225 *iv_return = F_SETLKW64;
1226 return PERL_constant_ISIV;
1228 return PERL_constant_NOTDEF;
1233 return PERL_constant_NOTFOUND;
1237 constant_11 (const char *name, IV *iv_return) {
1238 /* Names all of length 11. */
1239 /* When generated this function returned values for the list of names given
1240 here. However, subsequent manual editing may have added or removed some.
1241 F_ALLOCSP64 O_DIRECTORY O_LARGEFILE O_NOINHERIT O_TEMPORARY */
1242 /* Offset 5 gives the best switch position. */
1245 if (memEQ(name, "O_DIRECTORY", 11)) {
1248 *iv_return = O_DIRECTORY;
1249 return PERL_constant_ISIV;
1251 return PERL_constant_NOTDEF;
1256 if (memEQ(name, "O_LARGEFILE", 11)) {
1259 *iv_return = O_LARGEFILE;
1260 return PERL_constant_ISIV;
1262 return PERL_constant_NOTDEF;
1267 if (memEQ(name, "O_NOINHERIT", 11)) {
1270 *iv_return = O_NOINHERIT;
1271 return PERL_constant_ISIV;
1273 return PERL_constant_NOTDEF;
1278 if (memEQ(name, "F_ALLOCSP64", 11)) {
1281 *iv_return = F_ALLOCSP64;
1282 return PERL_constant_ISIV;
1284 return PERL_constant_NOTDEF;
1289 if (memEQ(name, "O_TEMPORARY", 11)) {
1292 *iv_return = O_TEMPORARY;
1293 return PERL_constant_ISIV;
1295 return PERL_constant_NOTDEF;
1300 return PERL_constant_NOTFOUND;
1304 constant (const char *name, STRLEN len, IV *iv_return) {
1305 /* Initially switch on the length of the name. */
1306 /* When generated this function returned values for the list of names given
1307 in this section of perl code. Rather than manually editing these functions
1308 to add or remove constants, which would result in this comment and section
1309 of code becoming inaccurate, we recommend that you edit this section of
1310 code, and use it to regenerate a new set of constant functions which you
1311 then use to replace the originals.
1313 Regenerate these constant functions by feeding this entire source file to
1317 use ExtUtils::Constant qw (constant_types C_constant XS_constant);
1319 my $types = {IV => 1};
1320 my @names = (qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FD_CLOEXEC FEXCL FLARGEFILE
1321 FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC F_ALLOCSP F_ALLOCSP64
1322 F_COMPAT F_DUP2FD F_DUPFD F_EXLCK F_FREESP F_FREESP64 F_FSYNC
1323 F_FSYNC64 F_GETFD F_GETFL F_GETLK F_GETLK64 F_GETOWN F_NODNY
1324 F_POSIX F_RDACC F_RDDNY F_RDLCK F_RWACC F_RWDNY F_SETFD F_SETFL
1325 F_SETLK F_SETLK64 F_SETLKW F_SETLKW64 F_SETOWN F_SHARE F_SHLCK
1326 F_UNLCK F_UNSHARE F_WRACC F_WRDNY F_WRLCK O_ACCMODE O_ALIAS
1327 O_APPEND O_ASYNC O_BINARY O_CREAT O_DEFER O_DIRECT O_DIRECTORY
1328 O_DSYNC O_EXCL O_EXLOCK O_LARGEFILE O_NDELAY O_NOCTTY O_NOFOLLOW
1329 O_NOINHERIT O_NONBLOCK O_RANDOM O_RAW O_RDONLY O_RDWR O_RSRC
1330 O_RSYNC O_SEQUENTIAL O_SHLOCK O_SYNC O_TEMPORARY O_TEXT O_TRUNC
1331 O_WRONLY S_ENFMT S_IEXEC S_IFBLK S_IFCHR S_IFDIR S_IFIFO S_IFLNK
1332 S_IFREG S_IFSOCK S_IFWHT S_IREAD S_IRGRP S_IROTH S_IRUSR S_IRWXG
1333 S_IRWXO S_IRWXU S_ISGID S_ISTXT S_ISUID S_ISVTX S_IWGRP S_IWOTH
1334 S_IWRITE S_IWUSR S_IXGRP S_IXOTH S_IXUSR),
1335 {name=>"LOCK_EX", type=>"IV", default=>["IV", "2"]},
1336 {name=>"LOCK_NB", type=>"IV", default=>["IV", "4"]},
1337 {name=>"LOCK_SH", type=>"IV", default=>["IV", "1"]},
1338 {name=>"LOCK_UN", type=>"IV", default=>["IV", "8"]},
1339 {name=>"SEEK_CUR", type=>"IV", default=>["IV", "1"]},
1340 {name=>"SEEK_END", type=>"IV", default=>["IV", "2"]},
1341 {name=>"SEEK_SET", type=>"IV", default=>["IV", "0"]},
1342 {name=>"_S_IFMT", type=>"IV", macro=>"S_IFMT", value=>"S_IFMT"});
1344 print constant_types(); # macro defs
1345 foreach (C_constant ("Fcntl", 'constant', 'IV', $types, undef, undef, @names) ) {
1346 print $_, "\n"; # C constant subs
1348 print "#### XS Section:\n";
1349 print XS_constant ("Fcntl", $types);
1355 return constant_5 (name, iv_return);
1358 return constant_6 (name, iv_return);
1361 return constant_7 (name, iv_return);
1364 return constant_8 (name, iv_return);
1367 return constant_9 (name, iv_return);
1370 return constant_10 (name, iv_return);
1373 return constant_11 (name, iv_return);
1376 if (memEQ(name, "O_SEQUENTIAL", 12)) {
1378 *iv_return = O_SEQUENTIAL;
1379 return PERL_constant_ISIV;
1381 return PERL_constant_NOTDEF;
1386 return PERL_constant_NOTFOUND;
1389 MODULE = Fcntl PACKAGE = Fcntl
1395 dXSTARG; /* Faster if we have it. */
1402 /* NV nv; Uncomment this if you need to return NVs */
1403 /* const char *pv; Uncomment this if you need to return PVs */
1406 const char * s = SvPV(sv, len);
1408 /* Change this to constant(s, len, &iv, &nv);
1409 if you need to return both NVs and IVs */
1410 type = constant(s, len, &iv);
1411 /* Return 1 or 2 items. First is error message, or undef if no error.
1412 Second, if present, is found value */
1414 case PERL_constant_NOTFOUND:
1415 sv = sv_2mortal(newSVpvf("%s is not a valid Fcntl macro", s));
1418 case PERL_constant_NOTDEF:
1419 sv = sv_2mortal(newSVpvf(
1420 "Your vendor has not defined Fcntl macro %s, used", s));
1423 case PERL_constant_ISIV:
1425 PUSHs(&PL_sv_undef);
1428 /* Uncomment this if you need to return UVs
1429 case PERL_constant_ISUV:
1431 PUSHs(&PL_sv_undef);
1435 sv = sv_2mortal(newSVpvf(
1436 "Unexpected return type %d while processing Fcntl macro %s used",