This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
new perldelta
[perl5.git] / dist / Time-HiRes / fallback / const-c.inc
CommitLineData
98b50af3
JH
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
14typedef 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
c4a535af 22
98b50af3
JH
23static int
24constant_11 (pTHX_ const char *name, IV *iv_return) {
25 /* When generated this function returned values for the list of names given
26 here. However, subsequent manual editing may have added or removed some.
de3293c0 27 ITIMER_PROF ITIMER_REAL d_getitimer d_nanosleep d_setitimer d_utimensat */
98b50af3
JH
28 /* Offset 7 gives the best switch position. */
29 switch (name[7]) {
30 case 'P':
31 if (memEQ(name, "ITIMER_PROF", 11)) {
32 /* ^ */
33#ifdef ITIMER_PROF
34 *iv_return = ITIMER_PROF;
35 return PERL_constant_ISIV;
36#else
37 return PERL_constant_NOTDEF;
38#endif
39 }
40 break;
41 case 'R':
42 if (memEQ(name, "ITIMER_REAL", 11)) {
43 /* ^ */
44#ifdef ITIMER_REAL
45 *iv_return = ITIMER_REAL;
46 return PERL_constant_ISIV;
47#else
48 return PERL_constant_NOTDEF;
49#endif
50 }
51 break;
52 case 'i':
53 if (memEQ(name, "d_getitimer", 11)) {
54 /* ^ */
55#ifdef HAS_GETITIMER
56 *iv_return = 1;
57 return PERL_constant_ISIV;
58#else
59 *iv_return = 0;
60 return PERL_constant_ISIV;
61#endif
62 }
63 if (memEQ(name, "d_setitimer", 11)) {
64 /* ^ */
65#ifdef HAS_SETITIMER
66 *iv_return = 1;
67 return PERL_constant_ISIV;
68#else
69 *iv_return = 0;
70 return PERL_constant_ISIV;
71#endif
72 }
73 break;
74 case 'l':
75 if (memEQ(name, "d_nanosleep", 11)) {
76 /* ^ */
ced84e60
SP
77#ifdef TIME_HIRES_NANOSLEEP
78 *iv_return = 1;
79 return PERL_constant_ISIV;
80#else
81 *iv_return = 0;
82 return PERL_constant_ISIV;
83#endif
84 }
85 break;
de3293c0
CBW
86 case 'n':
87 if (memEQ(name, "d_utimensat", 11)) {
88 /* ^ */
89#ifdef HAS_UTIMENSAT
90 *iv_return = 1;
91 return PERL_constant_ISIV;
92#else
93 *iv_return = 0;
94 return PERL_constant_ISIV;
95#endif
96 }
97 break;
98 }
99 return PERL_constant_NOTFOUND;
100}
101
102static int
103constant_12 (pTHX_ const char *name, IV *iv_return) {
104 /* When generated this function returned values for the list of names given
105 here. However, subsequent manual editing may have added or removed some.
106 CLOCK_SECOND CLOCK_UPTIME d_hires_stat */
107 /* Offset 10 gives the best switch position. */
108 switch (name[10]) {
109 case 'M':
110 if (memEQ(name, "CLOCK_UPTIME", 12)) {
111 /* ^ */
112#ifdef CLOCK_UPTIME
113 *iv_return = CLOCK_UPTIME;
114 return PERL_constant_ISIV;
115#else
116 return PERL_constant_NOTDEF;
117#endif
118 }
119 break;
120 case 'N':
121 if (memEQ(name, "CLOCK_SECOND", 12)) {
122 /* ^ */
123#ifdef CLOCK_SECOND
124 *iv_return = CLOCK_SECOND;
125 return PERL_constant_ISIV;
126#else
127 return PERL_constant_NOTDEF;
128#endif
129 }
130 break;
131 case 'a':
132 if (memEQ(name, "d_hires_stat", 12)) {
133 /* ^ */
134#ifdef TIME_HIRES_STAT
135 *iv_return = 1;
136 return PERL_constant_ISIV;
137#else
138 *iv_return = 0;
139 return PERL_constant_ISIV;
140#endif
141 }
142 break;
ced84e60
SP
143 }
144 return PERL_constant_NOTFOUND;
145}
146
147static int
c4a535af
SH
148constant_13 (pTHX_ const char *name, IV *iv_return) {
149 /* When generated this function returned values for the list of names given
150 here. However, subsequent manual editing may have added or removed some.
de3293c0
CBW
151 CLOCK_HIGHRES CLOCK_VIRTUAL TIMER_ABSTIME d_hires_utime */
152 /* Offset 12 gives the best switch position. */
153 switch (name[12]) {
154 case 'E':
155 if (memEQ(name, "TIMER_ABSTIM", 12)) {
156 /* E */
c4a535af
SH
157#ifdef TIMER_ABSTIME
158 *iv_return = TIMER_ABSTIME;
159 return PERL_constant_ISIV;
160#else
161 return PERL_constant_NOTDEF;
162#endif
163 }
164 break;
165 case 'L':
de3293c0
CBW
166 if (memEQ(name, "CLOCK_VIRTUA", 12)) {
167 /* L */
168#ifdef CLOCK_VIRTUAL
169 *iv_return = CLOCK_VIRTUAL;
170 return PERL_constant_ISIV;
171#else
172 return PERL_constant_NOTDEF;
173#endif
174 }
175 break;
176 case 'S':
177 if (memEQ(name, "CLOCK_HIGHRE", 12)) {
178 /* S */
c4a535af
SH
179#ifdef CLOCK_HIGHRES
180 *iv_return = CLOCK_HIGHRES;
181 return PERL_constant_ISIV;
182#else
183 return PERL_constant_NOTDEF;
184#endif
185 }
186 break;
de3293c0
CBW
187 case 'e':
188 if (memEQ(name, "d_hires_utim", 12)) {
189 /* e */
c4a535af
SH
190#ifdef TIME_HIRES_UTIME
191 *iv_return = 1;
192 return PERL_constant_ISIV;
193#else
194 *iv_return = 0;
195 return PERL_constant_ISIV;
196#endif
197 }
198 break;
199 }
200 return PERL_constant_NOTFOUND;
201}
202
203static int
ced84e60
SP
204constant_14 (pTHX_ const char *name, IV *iv_return) {
205 /* When generated this function returned values for the list of names given
206 here. However, subsequent manual editing may have added or removed some.
de3293c0
CBW
207 CLOCKS_PER_SEC CLOCK_BOOTTIME CLOCK_REALTIME CLOCK_SOFTTIME ITIMER_VIRTUAL
208 d_clock_getres d_gettimeofday */
170c5524
SP
209 /* Offset 8 gives the best switch position. */
210 switch (name[8]) {
211 case 'A':
ced84e60 212 if (memEQ(name, "CLOCK_REALTIME", 14)) {
170c5524 213 /* ^ */
ced84e60
SP
214#ifdef CLOCK_REALTIME
215 *iv_return = CLOCK_REALTIME;
216 return PERL_constant_ISIV;
217#else
218 return PERL_constant_NOTDEF;
219#endif
220 }
221 break;
170c5524
SP
222 case 'E':
223 if (memEQ(name, "CLOCKS_PER_SEC", 14)) {
224 /* ^ */
225#ifdef CLOCKS_PER_SEC
226 *iv_return = CLOCKS_PER_SEC;
227 return PERL_constant_ISIV;
228#else
229 return PERL_constant_NOTDEF;
230#endif
231 }
232 break;
233 case 'F':
234 if (memEQ(name, "CLOCK_SOFTTIME", 14)) {
235 /* ^ */
236#ifdef CLOCK_SOFTTIME
237 *iv_return = CLOCK_SOFTTIME;
238 return PERL_constant_ISIV;
239#else
240 return PERL_constant_NOTDEF;
241#endif
242 }
243 break;
244 case 'I':
ced84e60 245 if (memEQ(name, "ITIMER_VIRTUAL", 14)) {
170c5524 246 /* ^ */
ced84e60
SP
247#ifdef ITIMER_VIRTUAL
248 *iv_return = ITIMER_VIRTUAL;
249 return PERL_constant_ISIV;
250#else
251 return PERL_constant_NOTDEF;
252#endif
253 }
254 break;
de3293c0
CBW
255 case 'O':
256 if (memEQ(name, "CLOCK_BOOTTIME", 14)) {
257 /* ^ */
258#ifdef CLOCK_BOOTTIME
259 *iv_return = CLOCK_BOOTTIME;
260 return PERL_constant_ISIV;
261#else
262 return PERL_constant_NOTDEF;
263#endif
264 }
265 break;
170c5524 266 case 'e':
ced84e60 267 if (memEQ(name, "d_gettimeofday", 14)) {
170c5524 268 /* ^ */
ced84e60
SP
269#ifdef HAS_GETTIMEOFDAY
270 *iv_return = 1;
271 return PERL_constant_ISIV;
272#else
273 *iv_return = 0;
274 return PERL_constant_ISIV;
275#endif
276 }
277 break;
170c5524 278 case 'g':
ced84e60 279 if (memEQ(name, "d_clock_getres", 14)) {
170c5524 280 /* ^ */
ced84e60
SP
281#ifdef TIME_HIRES_CLOCK_GETRES
282 *iv_return = 1;
283 return PERL_constant_ISIV;
284#else
285 *iv_return = 0;
286 return PERL_constant_ISIV;
287#endif
288 }
289 break;
290 }
291 return PERL_constant_NOTFOUND;
292}
293
294static int
295constant_15 (pTHX_ const char *name, IV *iv_return) {
296 /* When generated this function returned values for the list of names given
297 here. However, subsequent manual editing may have added or removed some.
298 CLOCK_MONOTONIC CLOCK_TIMEOFDAY ITIMER_REALPROF d_clock_gettime */
299 /* Offset 7 gives the best switch position. */
300 switch (name[7]) {
301 case 'I':
302 if (memEQ(name, "CLOCK_TIMEOFDAY", 15)) {
303 /* ^ */
304#ifdef CLOCK_TIMEOFDAY
305 *iv_return = CLOCK_TIMEOFDAY;
306 return PERL_constant_ISIV;
307#else
308 return PERL_constant_NOTDEF;
309#endif
310 }
311 break;
312 case 'O':
313 if (memEQ(name, "CLOCK_MONOTONIC", 15)) {
314 /* ^ */
315#ifdef CLOCK_MONOTONIC
316 *iv_return = CLOCK_MONOTONIC;
317 return PERL_constant_ISIV;
318#else
319 return PERL_constant_NOTDEF;
320#endif
321 }
322 break;
323 case 'R':
324 if (memEQ(name, "ITIMER_REALPROF", 15)) {
325 /* ^ */
326#ifdef ITIMER_REALPROF
327 *iv_return = ITIMER_REALPROF;
328 return PERL_constant_ISIV;
329#else
330 return PERL_constant_NOTDEF;
331#endif
332 }
333 break;
334 case '_':
335 if (memEQ(name, "d_clock_gettime", 15)) {
336 /* ^ */
337#ifdef TIME_HIRES_CLOCK_GETTIME
98b50af3
JH
338 *iv_return = 1;
339 return PERL_constant_ISIV;
340#else
341 *iv_return = 0;
342 return PERL_constant_ISIV;
343#endif
344 }
345 break;
346 }
347 return PERL_constant_NOTFOUND;
348}
349
350static int
de3293c0
CBW
351constant_19 (pTHX_ const char *name, IV *iv_return) {
352 /* When generated this function returned values for the list of names given
353 here. However, subsequent manual editing may have added or removed some.
354 CLOCK_MONOTONIC_RAW CLOCK_REALTIME_FAST CLOCK_UPTIME_COARSE */
355 /* Offset 9 gives the best switch position. */
356 switch (name[9]) {
357 case 'I':
358 if (memEQ(name, "CLOCK_UPTIME_COARSE", 19)) {
359 /* ^ */
360#ifdef CLOCK_UPTIME_COARSE
361 *iv_return = CLOCK_UPTIME_COARSE;
362 return PERL_constant_ISIV;
363#else
cf8375d1 364 *iv_return = 0;
de3293c0
CBW
365 return PERL_constant_NOTDEF;
366#endif
367 }
368 break;
369 case 'L':
370 if (memEQ(name, "CLOCK_REALTIME_FAST", 19)) {
371 /* ^ */
372#ifdef CLOCK_REALTIME_FAST
373 *iv_return = CLOCK_REALTIME_FAST;
374 return PERL_constant_ISIV;
375#else
cf8375d1 376 *iv_return = 0;
de3293c0
CBW
377 return PERL_constant_NOTDEF;
378#endif
379 }
380 break;
381 case 'O':
382 if (memEQ(name, "CLOCK_MONOTONIC_RAW", 19)) {
383 /* ^ */
384#ifdef CLOCK_MONOTONIC_RAW
385 *iv_return = CLOCK_MONOTONIC_RAW;
386 return PERL_constant_ISIV;
387#else
cf8375d1 388 *iv_return = 0;
de3293c0
CBW
389 return PERL_constant_NOTDEF;
390#endif
391 }
392 break;
393 }
394 return PERL_constant_NOTFOUND;
395}
396
397static int
98b50af3
JH
398constant (pTHX_ const char *name, STRLEN len, IV *iv_return) {
399 /* Initially switch on the length of the name. */
400 /* When generated this function returned values for the list of names given
401 in this section of perl code. Rather than manually editing these functions
402 to add or remove constants, which would result in this comment and section
403 of code becoming inaccurate, we recommend that you edit this section of
404 code, and use it to regenerate a new set of constant functions which you
405 then use to replace the originals.
406
407 Regenerate these constant functions by feeding this entire source file to
408 perl -x
409
727404d0 410#!/opt/local/perl-5.25.6/bin/perl -w
98b50af3
JH
411use ExtUtils::Constant qw (constant_types C_constant XS_constant);
412
413my $types = {map {($_, 1)} qw(IV)};
de3293c0
CBW
414my @names = (qw(CLOCKS_PER_SEC CLOCK_BOOTTIME CLOCK_HIGHRES CLOCK_MONOTONIC
415 CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC_FAST
416 CLOCK_MONOTONIC_PRECISE CLOCK_MONOTONIC_RAW
727404d0
TR
417 CLOCK_PROCESS_CPUTIME_ID CLOCK_PROF CLOCK_REALTIME
418 CLOCK_REALTIME_COARSE CLOCK_REALTIME_FAST CLOCK_REALTIME_PRECISE
419 CLOCK_REALTIME_RAW CLOCK_SECOND CLOCK_SOFTTIME
420 CLOCK_THREAD_CPUTIME_ID CLOCK_TIMEOFDAY CLOCK_UPTIME
421 CLOCK_UPTIME_COARSE CLOCK_UPTIME_FAST CLOCK_UPTIME_PRECISE
422 CLOCK_UPTIME_RAW CLOCK_VIRTUAL ITIMER_PROF ITIMER_REAL
423 ITIMER_REALPROF ITIMER_VIRTUAL TIMER_ABSTIME),
170c5524 424 {name=>"d_clock", type=>"IV", macro=>"TIME_HIRES_CLOCK", value=>"1", default=>["IV", "0"]},
ced84e60
SP
425 {name=>"d_clock_getres", type=>"IV", macro=>"TIME_HIRES_CLOCK_GETRES", value=>"1", default=>["IV", "0"]},
426 {name=>"d_clock_gettime", type=>"IV", macro=>"TIME_HIRES_CLOCK_GETTIME", value=>"1", default=>["IV", "0"]},
170c5524 427 {name=>"d_clock_nanosleep", type=>"IV", macro=>"TIME_HIRES_CLOCK_NANOSLEEP", value=>"1", default=>["IV", "0"]},
de3293c0 428 {name=>"d_futimens", type=>"IV", macro=>"HAS_FUTIMENS", value=>"1", default=>["IV", "0"]},
98b50af3
JH
429 {name=>"d_getitimer", type=>"IV", macro=>"HAS_GETITIMER", value=>"1", default=>["IV", "0"]},
430 {name=>"d_gettimeofday", type=>"IV", macro=>"HAS_GETTIMEOFDAY", value=>"1", default=>["IV", "0"]},
7b9ffbef 431 {name=>"d_hires_stat", type=>"IV", macro=>"TIME_HIRES_STAT", value=>"1", default=>["IV", "0"]},
c4a535af 432 {name=>"d_hires_utime", type=>"IV", macro=>"TIME_HIRES_UTIME", value=>"1", default=>["IV", "0"]},
ced84e60 433 {name=>"d_nanosleep", type=>"IV", macro=>"TIME_HIRES_NANOSLEEP", value=>"1", default=>["IV", "0"]},
98b50af3
JH
434 {name=>"d_setitimer", type=>"IV", macro=>"HAS_SETITIMER", value=>"1", default=>["IV", "0"]},
435 {name=>"d_ualarm", type=>"IV", macro=>"HAS_UALARM", value=>"1", default=>["IV", "0"]},
de3293c0
CBW
436 {name=>"d_usleep", type=>"IV", macro=>"HAS_USLEEP", value=>"1", default=>["IV", "0"]},
437 {name=>"d_utimensat", type=>"IV", macro=>"HAS_UTIMENSAT", value=>"1", default=>["IV", "0"]});
98b50af3 438
c4a535af 439print constant_types(), "\n"; # macro defs
98b50af3
JH
440foreach (C_constant ("Time::HiRes", 'constant', 'IV', $types, undef, 3, @names) ) {
441 print $_, "\n"; # C constant subs
442}
c4a535af 443print "\n#### XS Section:\n";
98b50af3
JH
444print XS_constant ("Time::HiRes", $types);
445__END__
446 */
447
448 switch (len) {
170c5524
SP
449 case 7:
450 if (memEQ(name, "d_clock", 7)) {
451#ifdef TIME_HIRES_CLOCK
452 *iv_return = 1;
453 return PERL_constant_ISIV;
454#else
455 *iv_return = 0;
456 return PERL_constant_ISIV;
457#endif
458 }
459 break;
98b50af3
JH
460 case 8:
461 /* Names all of length 8. */
462 /* d_ualarm d_usleep */
463 /* Offset 7 gives the best switch position. */
464 switch (name[7]) {
465 case 'm':
ced84e60
SP
466 if (memEQ(name, "d_ualar", 7)) {
467 /* m */
98b50af3
JH
468#ifdef HAS_UALARM
469 *iv_return = 1;
470 return PERL_constant_ISIV;
471#else
472 *iv_return = 0;
473 return PERL_constant_ISIV;
474#endif
475 }
476 break;
477 case 'p':
ced84e60
SP
478 if (memEQ(name, "d_uslee", 7)) {
479 /* p */
98b50af3
JH
480#ifdef HAS_USLEEP
481 *iv_return = 1;
482 return PERL_constant_ISIV;
483#else
484 *iv_return = 0;
485 return PERL_constant_ISIV;
486#endif
487 }
488 break;
489 }
490 break;
de3293c0
CBW
491 case 10:
492 /* Names all of length 10. */
493 /* CLOCK_PROF d_futimens */
494 /* Offset 5 gives the best switch position. */
495 switch (name[5]) {
496 case '_':
497 if (memEQ(name, "CLOCK_PROF", 10)) {
498 /* ^ */
499#ifdef CLOCK_PROF
500 *iv_return = CLOCK_PROF;
501 return PERL_constant_ISIV;
502#else
503 return PERL_constant_NOTDEF;
504#endif
505 }
506 break;
507 case 'i':
508 if (memEQ(name, "d_futimens", 10)) {
509 /* ^ */
510#ifdef HAS_FUTIMENS
511 *iv_return = 1;
512 return PERL_constant_ISIV;
513#else
514 *iv_return = 0;
515 return PERL_constant_ISIV;
516#endif
517 }
518 break;
519 }
520 break;
98b50af3
JH
521 case 11:
522 return constant_11 (aTHX_ name, iv_return);
523 break;
7b9ffbef 524 case 12:
de3293c0 525 return constant_12 (aTHX_ name, iv_return);
7b9ffbef 526 break;
ced84e60 527 case 13:
c4a535af 528 return constant_13 (aTHX_ name, iv_return);
ced84e60
SP
529 break;
530 case 14:
531 return constant_14 (aTHX_ name, iv_return);
532 break;
533 case 15:
534 return constant_15 (aTHX_ name, iv_return);
535 break;
de3293c0
CBW
536 case 16:
537 if (memEQ(name, "CLOCK_UPTIME_RAW", 16)) {
538#ifdef CLOCK_UPTIME_RAW
539 *iv_return = CLOCK_UPTIME_RAW;
540 return PERL_constant_ISIV;
541#else
542 return PERL_constant_NOTDEF;
543#endif
544 }
545 break;
170c5524 546 case 17:
de3293c0
CBW
547 /* Names all of length 17. */
548 /* CLOCK_UPTIME_FAST d_clock_nanosleep */
549 /* Offset 5 gives the best switch position. */
550 switch (name[5]) {
551 case '_':
552 if (memEQ(name, "CLOCK_UPTIME_FAST", 17)) {
553 /* ^ */
554#ifdef CLOCK_UPTIME_FAST
555 *iv_return = CLOCK_UPTIME_FAST;
556 return PERL_constant_ISIV;
557#else
558 return PERL_constant_NOTDEF;
559#endif
560 }
561 break;
562 case 'c':
563 if (memEQ(name, "d_clock_nanosleep", 17)) {
564 /* ^ */
170c5524 565#ifdef TIME_HIRES_CLOCK_NANOSLEEP
de3293c0
CBW
566 *iv_return = 1;
567 return PERL_constant_ISIV;
568#else
569 *iv_return = 0;
570 return PERL_constant_ISIV;
571#endif
572 }
573 break;
574 }
575 break;
576 case 18:
577 if (memEQ(name, "CLOCK_REALTIME_RAW", 18)) {
578#ifdef CLOCK_REALTIME_RAW
579 *iv_return = CLOCK_REALTIME_RAW;
170c5524
SP
580 return PERL_constant_ISIV;
581#else
de3293c0
CBW
582 return PERL_constant_NOTDEF;
583#endif
584 }
585 break;
586 case 19:
587 return constant_19 (aTHX_ name, iv_return);
588 break;
589 case 20:
590 /* Names all of length 20. */
591 /* CLOCK_MONOTONIC_FAST CLOCK_UPTIME_PRECISE */
592 /* Offset 7 gives the best switch position. */
593 switch (name[7]) {
594 case 'O':
595 if (memEQ(name, "CLOCK_MONOTONIC_FAST", 20)) {
596 /* ^ */
597#ifdef CLOCK_MONOTONIC_FAST
598 *iv_return = CLOCK_MONOTONIC_FAST;
599 return PERL_constant_ISIV;
600#else
601 return PERL_constant_NOTDEF;
602#endif
603 }
604 break;
605 case 'P':
606 if (memEQ(name, "CLOCK_UPTIME_PRECISE", 20)) {
607 /* ^ */
608#ifdef CLOCK_UPTIME_PRECISE
609 *iv_return = CLOCK_UPTIME_PRECISE;
610 return PERL_constant_ISIV;
611#else
612 return PERL_constant_NOTDEF;
613#endif
614 }
615 break;
616 }
617 break;
618 case 21:
619 if (memEQ(name, "CLOCK_REALTIME_COARSE", 21)) {
620#ifdef CLOCK_REALTIME_COARSE
621 *iv_return = CLOCK_REALTIME_COARSE;
170c5524 622 return PERL_constant_ISIV;
de3293c0
CBW
623#else
624 return PERL_constant_NOTDEF;
170c5524
SP
625#endif
626 }
627 break;
de3293c0
CBW
628 case 22:
629 /* Names all of length 22. */
630 /* CLOCK_MONOTONIC_COARSE CLOCK_REALTIME_PRECISE */
631 /* Offset 12 gives the best switch position. */
632 switch (name[12]) {
633 case 'M':
634 if (memEQ(name, "CLOCK_REALTIME_PRECISE", 22)) {
635 /* ^ */
636#ifdef CLOCK_REALTIME_PRECISE
637 *iv_return = CLOCK_REALTIME_PRECISE;
638 return PERL_constant_ISIV;
639#else
640 return PERL_constant_NOTDEF;
641#endif
642 }
643 break;
644 case 'N':
645 if (memEQ(name, "CLOCK_MONOTONIC_COARSE", 22)) {
646 /* ^ */
647#ifdef CLOCK_MONOTONIC_COARSE
648 *iv_return = CLOCK_MONOTONIC_COARSE;
649 return PERL_constant_ISIV;
650#else
651 return PERL_constant_NOTDEF;
652#endif
653 }
654 break;
655 }
656 break;
ced84e60 657 case 23:
727404d0
TR
658 /* Names all of length 23. */
659 /* CLOCK_MONOTONIC_PRECISE CLOCK_THREAD_CPUTIME_ID */
660 /* Offset 22 gives the best switch position. */
661 switch (name[22]) {
662 case 'D':
663 if (memEQ(name, "CLOCK_THREAD_CPUTIME_I", 22)) {
664 /* D */
665#ifdef CLOCK_THREAD_CPUTIME_ID
666 *iv_return = CLOCK_THREAD_CPUTIME_ID;
667 return PERL_constant_ISIV;
668#else
669 return PERL_constant_NOTDEF;
670#endif
671 }
672 break;
673 case 'E':
674 if (memEQ(name, "CLOCK_MONOTONIC_PRECIS", 22)) {
675 /* E */
676#ifdef CLOCK_MONOTONIC_PRECISE
677 *iv_return = CLOCK_MONOTONIC_PRECISE;
678 return PERL_constant_ISIV;
679#else
680 return PERL_constant_NOTDEF;
681#endif
682 }
683 break;
684 }
98b50af3 685 break;
ced84e60
SP
686 case 24:
687 if (memEQ(name, "CLOCK_PROCESS_CPUTIME_ID", 24)) {
688#ifdef CLOCK_PROCESS_CPUTIME_ID
689 *iv_return = CLOCK_PROCESS_CPUTIME_ID;
98b50af3
JH
690 return PERL_constant_ISIV;
691#else
692 return PERL_constant_NOTDEF;
693#endif
694 }
695 break;
696 }
697 return PERL_constant_NOTFOUND;
698}
699