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_9 (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     EVFILT_FS EV_DELETE EV_ENABLE NOTE_EXEC NOTE_EXIT NOTE_FORK NOTE_LINK */
28  /* Offset 7 gives the best switch position.  */
29  switch (name[7]) {
30  case 'E':
31    if (memEQ(name, "NOTE_EXEC", 9)) {
32    /*                      ^       */
33#ifdef NOTE_EXEC
34      *iv_return = NOTE_EXEC;
35      return PERL_constant_ISIV;
36#else
37      return PERL_constant_NOTDEF;
38#endif
39    }
40    break;
41  case 'F':
42    if (memEQ(name, "EVFILT_FS", 9)) {
43    /*                      ^       */
44#ifdef EVFILT_FS
45      *iv_return = EVFILT_FS;
46      return PERL_constant_ISIV;
47#else
48      return PERL_constant_NOTDEF;
49#endif
50    }
51    break;
52  case 'I':
53    if (memEQ(name, "NOTE_EXIT", 9)) {
54    /*                      ^       */
55#ifdef NOTE_EXIT
56      *iv_return = NOTE_EXIT;
57      return PERL_constant_ISIV;
58#else
59      return PERL_constant_NOTDEF;
60#endif
61    }
62    break;
63  case 'L':
64    if (memEQ(name, "EV_ENABLE", 9)) {
65    /*                      ^       */
66#ifdef EV_ENABLE
67      *iv_return = EV_ENABLE;
68      return PERL_constant_ISIV;
69#else
70      return PERL_constant_NOTDEF;
71#endif
72    }
73    break;
74  case 'N':
75    if (memEQ(name, "NOTE_LINK", 9)) {
76    /*                      ^       */
77#ifdef NOTE_LINK
78      *iv_return = NOTE_LINK;
79      return PERL_constant_ISIV;
80#else
81      return PERL_constant_NOTDEF;
82#endif
83    }
84    break;
85  case 'R':
86    if (memEQ(name, "NOTE_FORK", 9)) {
87    /*                      ^       */
88#ifdef NOTE_FORK
89      *iv_return = NOTE_FORK;
90      return PERL_constant_ISIV;
91#else
92      return PERL_constant_NOTDEF;
93#endif
94    }
95    break;
96  case 'T':
97    if (memEQ(name, "EV_DELETE", 9)) {
98    /*                      ^       */
99#ifdef EV_DELETE
100      *iv_return = EV_DELETE;
101      return PERL_constant_ISIV;
102#else
103      return PERL_constant_NOTDEF;
104#endif
105    }
106    break;
107  }
108  return PERL_constant_NOTFOUND;
109}
110
111static int
112constant_10 (pTHX_ const char *name, IV *iv_return) {
113  /* When generated this function returned values for the list of names given
114     here.  However, subsequent manual editing may have added or removed some.
115     EV_DISABLE EV_ONESHOT NOTE_CHILD NOTE_LOWAT NOTE_TRACK NOTE_WRITE */
116  /* Offset 5 gives the best switch position.  */
117  switch (name[5]) {
118  case 'C':
119    if (memEQ(name, "NOTE_CHILD", 10)) {
120    /*                    ^           */
121#ifdef NOTE_CHILD
122      *iv_return = NOTE_CHILD;
123      return PERL_constant_ISIV;
124#else
125      return PERL_constant_NOTDEF;
126#endif
127    }
128    break;
129  case 'E':
130    if (memEQ(name, "EV_ONESHOT", 10)) {
131    /*                    ^           */
132#ifdef EV_ONESHOT
133      *iv_return = EV_ONESHOT;
134      return PERL_constant_ISIV;
135#else
136      return PERL_constant_NOTDEF;
137#endif
138    }
139    break;
140  case 'L':
141    if (memEQ(name, "NOTE_LOWAT", 10)) {
142    /*                    ^           */
143#ifdef NOTE_LOWAT
144      *iv_return = NOTE_LOWAT;
145      return PERL_constant_ISIV;
146#else
147      return PERL_constant_NOTDEF;
148#endif
149    }
150    break;
151  case 'S':
152    if (memEQ(name, "EV_DISABLE", 10)) {
153    /*                    ^           */
154#ifdef EV_DISABLE
155      *iv_return = EV_DISABLE;
156      return PERL_constant_ISIV;
157#else
158      return PERL_constant_NOTDEF;
159#endif
160    }
161    break;
162  case 'T':
163    if (memEQ(name, "NOTE_TRACK", 10)) {
164    /*                    ^           */
165#ifdef NOTE_TRACK
166      *iv_return = NOTE_TRACK;
167      return PERL_constant_ISIV;
168#else
169      return PERL_constant_NOTDEF;
170#endif
171    }
172    break;
173  case 'W':
174    if (memEQ(name, "NOTE_WRITE", 10)) {
175    /*                    ^           */
176#ifdef NOTE_WRITE
177      *iv_return = NOTE_WRITE;
178      return PERL_constant_ISIV;
179#else
180      return PERL_constant_NOTDEF;
181#endif
182    }
183    break;
184  }
185  return PERL_constant_NOTFOUND;
186}
187
188static int
189constant_11 (pTHX_ const char *name, IV *iv_return) {
190  /* When generated this function returned values for the list of names given
191     here.  However, subsequent manual editing may have added or removed some.
192     EVFILT_PROC EVFILT_READ NOTE_ATTRIB NOTE_DELETE NOTE_EXTEND NOTE_RENAME
193     NOTE_REVOKE */
194  /* Offset 9 gives the best switch position.  */
195  switch (name[9]) {
196  case 'A':
197    if (memEQ(name, "EVFILT_READ", 11)) {
198    /*                        ^        */
199#ifdef EVFILT_READ
200      *iv_return = EVFILT_READ;
201      return PERL_constant_ISIV;
202#else
203      return PERL_constant_NOTDEF;
204#endif
205    }
206    break;
207  case 'I':
208    if (memEQ(name, "NOTE_ATTRIB", 11)) {
209    /*                        ^        */
210#ifdef NOTE_ATTRIB
211      *iv_return = NOTE_ATTRIB;
212      return PERL_constant_ISIV;
213#else
214      return PERL_constant_NOTDEF;
215#endif
216    }
217    break;
218  case 'K':
219    if (memEQ(name, "NOTE_REVOKE", 11)) {
220    /*                        ^        */
221#ifdef NOTE_REVOKE
222      *iv_return = NOTE_REVOKE;
223      return PERL_constant_ISIV;
224#else
225      return PERL_constant_NOTDEF;
226#endif
227    }
228    break;
229  case 'M':
230    if (memEQ(name, "NOTE_RENAME", 11)) {
231    /*                        ^        */
232#ifdef NOTE_RENAME
233      *iv_return = NOTE_RENAME;
234      return PERL_constant_ISIV;
235#else
236      return PERL_constant_NOTDEF;
237#endif
238    }
239    break;
240  case 'N':
241    if (memEQ(name, "NOTE_EXTEND", 11)) {
242    /*                        ^        */
243#ifdef NOTE_EXTEND
244      *iv_return = NOTE_EXTEND;
245      return PERL_constant_ISIV;
246#else
247      return PERL_constant_NOTDEF;
248#endif
249    }
250    break;
251  case 'O':
252    if (memEQ(name, "EVFILT_PROC", 11)) {
253    /*                        ^        */
254#ifdef EVFILT_PROC
255      *iv_return = EVFILT_PROC;
256      return PERL_constant_ISIV;
257#else
258      return PERL_constant_NOTDEF;
259#endif
260    }
261    break;
262  case 'T':
263    if (memEQ(name, "NOTE_DELETE", 11)) {
264    /*                        ^        */
265#ifdef NOTE_DELETE
266      *iv_return = NOTE_DELETE;
267      return PERL_constant_ISIV;
268#else
269      return PERL_constant_NOTDEF;
270#endif
271    }
272    break;
273  }
274  return PERL_constant_NOTFOUND;
275}
276
277static int
278constant_12 (pTHX_ const char *name, IV *iv_return) {
279  /* When generated this function returned values for the list of names given
280     here.  However, subsequent manual editing may have added or removed some.
281     EVFILT_TIMER EVFILT_VNODE EVFILT_WRITE */
282  /* Offset 7 gives the best switch position.  */
283  switch (name[7]) {
284  case 'T':
285    if (memEQ(name, "EVFILT_TIMER", 12)) {
286    /*                      ^           */
287#ifdef EVFILT_TIMER
288      *iv_return = EVFILT_TIMER;
289      return PERL_constant_ISIV;
290#else
291      return PERL_constant_NOTDEF;
292#endif
293    }
294    break;
295  case 'V':
296    if (memEQ(name, "EVFILT_VNODE", 12)) {
297    /*                      ^           */
298#ifdef EVFILT_VNODE
299      *iv_return = EVFILT_VNODE;
300      return PERL_constant_ISIV;
301#else
302      return PERL_constant_NOTDEF;
303#endif
304    }
305    break;
306  case 'W':
307    if (memEQ(name, "EVFILT_WRITE", 12)) {
308    /*                      ^           */
309#ifdef EVFILT_WRITE
310      *iv_return = EVFILT_WRITE;
311      return PERL_constant_ISIV;
312#else
313      return PERL_constant_NOTDEF;
314#endif
315    }
316    break;
317  }
318  return PERL_constant_NOTFOUND;
319}
320
321static int
322constant (pTHX_ const char *name, STRLEN len, IV *iv_return) {
323  /* Initially switch on the length of the name.  */
324  /* When generated this function returned values for the list of names given
325     in this section of perl code.  Rather than manually editing these functions
326     to add or remove constants, which would result in this comment and section
327     of code becoming inaccurate, we recommend that you edit this section of
328     code, and use it to regenerate a new set of constant functions which you
329     then use to replace the originals.
330
331     Regenerate these constant functions by feeding this entire source file to
332     perl -x
333
334#!perl -w
335use ExtUtils::Constant qw (constant_types C_constant XS_constant);
336
337my $types = {map {($_, 1)} qw(IV)};
338my @names = (qw(EVFILT_FS EVFILT_PROC EVFILT_READ EVFILT_SIGNAL EVFILT_TIMER
339	       EVFILT_VNODE EVFILT_WRITE EV_ADD EV_CLEAR EV_DELETE EV_DISABLE
340	       EV_ENABLE EV_EOF EV_ERROR EV_ONESHOT NOTE_ATTRIB NOTE_CHILD
341	       NOTE_DELETE NOTE_EXEC NOTE_EXIT NOTE_EXTEND NOTE_FORK NOTE_LINK
342	       NOTE_LOWAT NOTE_PCTRLMASK NOTE_PDATAMASK NOTE_RENAME NOTE_REVOKE
343	       NOTE_TRACK NOTE_TRACKERR NOTE_WRITE));
344
345print constant_types(), "\n"; # macro defs
346foreach (C_constant ("IO::KQueue", 'constant', 'IV', $types, undef, 3, @names) ) {
347    print $_, "\n"; # C constant subs
348}
349print "\n#### XS Section:\n";
350print XS_constant ("IO::KQueue", $types);
351__END__
352   */
353
354  switch (len) {
355  case 6:
356    /* Names all of length 6.  */
357    /* EV_ADD EV_EOF */
358    /* Offset 5 gives the best switch position.  */
359    switch (name[5]) {
360    case 'D':
361      if (memEQ(name, "EV_AD", 5)) {
362      /*                    D     */
363#ifdef EV_ADD
364        *iv_return = EV_ADD;
365        return PERL_constant_ISIV;
366#else
367        return PERL_constant_NOTDEF;
368#endif
369      }
370      break;
371    case 'F':
372      if (memEQ(name, "EV_EO", 5)) {
373      /*                    F     */
374#ifdef EV_EOF
375        *iv_return = EV_EOF;
376        return PERL_constant_ISIV;
377#else
378        return PERL_constant_NOTDEF;
379#endif
380      }
381      break;
382    }
383    break;
384  case 8:
385    /* Names all of length 8.  */
386    /* EV_CLEAR EV_ERROR */
387    /* Offset 3 gives the best switch position.  */
388    switch (name[3]) {
389    case 'C':
390      if (memEQ(name, "EV_CLEAR", 8)) {
391      /*                  ^          */
392#ifdef EV_CLEAR
393        *iv_return = EV_CLEAR;
394        return PERL_constant_ISIV;
395#else
396        return PERL_constant_NOTDEF;
397#endif
398      }
399      break;
400    case 'E':
401      if (memEQ(name, "EV_ERROR", 8)) {
402      /*                  ^          */
403#ifdef EV_ERROR
404        *iv_return = EV_ERROR;
405        return PERL_constant_ISIV;
406#else
407        return PERL_constant_NOTDEF;
408#endif
409      }
410      break;
411    }
412    break;
413  case 9:
414    return constant_9 (aTHX_ name, iv_return);
415    break;
416  case 10:
417    return constant_10 (aTHX_ name, iv_return);
418    break;
419  case 11:
420    return constant_11 (aTHX_ name, iv_return);
421    break;
422  case 12:
423    return constant_12 (aTHX_ name, iv_return);
424    break;
425  case 13:
426    /* Names all of length 13.  */
427    /* EVFILT_SIGNAL NOTE_TRACKERR */
428    /* Offset 3 gives the best switch position.  */
429    switch (name[3]) {
430    case 'E':
431      if (memEQ(name, "NOTE_TRACKERR", 13)) {
432      /*                  ^                */
433#ifdef NOTE_TRACKERR
434        *iv_return = NOTE_TRACKERR;
435        return PERL_constant_ISIV;
436#else
437        return PERL_constant_NOTDEF;
438#endif
439      }
440      break;
441    case 'I':
442      if (memEQ(name, "EVFILT_SIGNAL", 13)) {
443      /*                  ^                */
444#ifdef EVFILT_SIGNAL
445        *iv_return = EVFILT_SIGNAL;
446        return PERL_constant_ISIV;
447#else
448        return PERL_constant_NOTDEF;
449#endif
450      }
451      break;
452    }
453    break;
454  case 14:
455    /* Names all of length 14.  */
456    /* NOTE_PCTRLMASK NOTE_PDATAMASK */
457    /* Offset 6 gives the best switch position.  */
458    switch (name[6]) {
459    case 'C':
460      if (memEQ(name, "NOTE_PCTRLMASK", 14)) {
461      /*                     ^              */
462#ifdef NOTE_PCTRLMASK
463        *iv_return = NOTE_PCTRLMASK;
464        return PERL_constant_ISIV;
465#else
466        return PERL_constant_NOTDEF;
467#endif
468      }
469      break;
470    case 'D':
471      if (memEQ(name, "NOTE_PDATAMASK", 14)) {
472      /*                     ^              */
473#ifdef NOTE_PDATAMASK
474        *iv_return = NOTE_PDATAMASK;
475        return PERL_constant_ISIV;
476#else
477        return PERL_constant_NOTDEF;
478#endif
479      }
480      break;
481    }
482    break;
483  }
484  return PERL_constant_NOTFOUND;
485}
486
487