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
22
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.
27     ITIMER_PROF ITIMER_REAL d_getitimer d_nanosleep d_setitimer d_utimensat */
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    /*                      ^          */
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;
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;
143  }
144  return PERL_constant_NOTFOUND;
145}
146
147static int
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.
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      */
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':
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      */
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;
187  case 'e':
188    if (memEQ(name, "d_hires_utim", 12)) {
189    /*                           e      */
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
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.
207     CLOCKS_PER_SEC CLOCK_BOOTTIME CLOCK_REALTIME CLOCK_SOFTTIME ITIMER_VIRTUAL
208     d_clock_getres d_gettimeofday */
209  /* Offset 8 gives the best switch position.  */
210  switch (name[8]) {
211  case 'A':
212    if (memEQ(name, "CLOCK_REALTIME", 14)) {
213    /*                       ^            */
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;
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':
245    if (memEQ(name, "ITIMER_VIRTUAL", 14)) {
246    /*                       ^            */
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;
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;
266  case 'e':
267    if (memEQ(name, "d_gettimeofday", 14)) {
268    /*                       ^            */
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;
278  case 'g':
279    if (memEQ(name, "d_clock_getres", 14)) {
280    /*                       ^            */
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
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
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
364      *iv_return = 0;
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
376      *iv_return = 0;
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
388      *iv_return = 0;
389      return PERL_constant_NOTDEF;
390#endif
391    }
392    break;
393  }
394  return PERL_constant_NOTFOUND;
395}
396
397static int
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
410#!/opt/local/perl-5.25.6/bin/perl -w
411use ExtUtils::Constant qw (constant_types C_constant XS_constant);
412
413my $types = {map {($_, 1)} qw(IV)};
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
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),
424            {name=>"d_clock", type=>"IV", macro=>"TIME_HIRES_CLOCK", value=>"1", default=>["IV", "0"]},
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"]},
427            {name=>"d_clock_nanosleep", type=>"IV", macro=>"TIME_HIRES_CLOCK_NANOSLEEP", value=>"1", default=>["IV", "0"]},
428            {name=>"d_futimens", type=>"IV", macro=>"HAS_FUTIMENS", value=>"1", default=>["IV", "0"]},
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"]},
431            {name=>"d_hires_stat", type=>"IV", macro=>"TIME_HIRES_STAT", value=>"1", default=>["IV", "0"]},
432            {name=>"d_hires_utime", type=>"IV", macro=>"TIME_HIRES_UTIME", value=>"1", default=>["IV", "0"]},
433            {name=>"d_nanosleep", type=>"IV", macro=>"TIME_HIRES_NANOSLEEP", value=>"1", default=>["IV", "0"]},
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"]},
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"]});
438
439print constant_types(), "\n"; # macro defs
440foreach (C_constant ("Time::HiRes", 'constant', 'IV', $types, undef, 3, @names) ) {
441    print $_, "\n"; # C constant subs
442}
443print "\n#### XS Section:\n";
444print XS_constant ("Time::HiRes", $types);
445__END__
446   */
447
448  switch (len) {
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;
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':
466      if (memEQ(name, "d_ualar", 7)) {
467      /*                      m     */
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':
478      if (memEQ(name, "d_uslee", 7)) {
479      /*                      p     */
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;
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;
521  case 11:
522    return constant_11 (aTHX_ name, iv_return);
523    break;
524  case 12:
525    return constant_12 (aTHX_ name, iv_return);
526    break;
527  case 13:
528    return constant_13 (aTHX_ name, iv_return);
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;
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;
546  case 17:
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      /*                    ^                  */
565#ifdef TIME_HIRES_CLOCK_NANOSLEEP
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;
580      return PERL_constant_ISIV;
581#else
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;
622      return PERL_constant_ISIV;
623#else
624      return PERL_constant_NOTDEF;
625#endif
626    }
627    break;
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;
657  case 23:
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    }
685    break;
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;
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
700