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_7 (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     LOG_ERR LOG_FTP LOG_LPR LOG_PID */
28  /* Offset 4 gives the best switch position.  */
29  switch (name[4]) {
30  case 'E':
31    if (memEQ(name, "LOG_ERR", 7)) {
32    /*                   ^        */
33#ifdef LOG_ERR
34      *iv_return = LOG_ERR;
35      return PERL_constant_ISIV;
36#else
37      return PERL_constant_NOTDEF;
38#endif
39    }
40    break;
41  case 'F':
42    if (memEQ(name, "LOG_FTP", 7)) {
43    /*                   ^        */
44#ifdef LOG_FTP
45      *iv_return = LOG_FTP;
46      return PERL_constant_ISIV;
47#else
48      return PERL_constant_NOTDEF;
49#endif
50    }
51    break;
52  case 'L':
53    if (memEQ(name, "LOG_LPR", 7)) {
54    /*                   ^        */
55#ifdef LOG_LPR
56      *iv_return = LOG_LPR;
57      return PERL_constant_ISIV;
58#else
59      return PERL_constant_NOTDEF;
60#endif
61    }
62    break;
63  case 'P':
64    if (memEQ(name, "LOG_PID", 7)) {
65    /*                   ^        */
66#ifdef LOG_PID
67      *iv_return = LOG_PID;
68      return PERL_constant_ISIV;
69#else
70      return PERL_constant_NOTDEF;
71#endif
72    }
73    break;
74  }
75  return PERL_constant_NOTFOUND;
76}
77
78static int
79constant_8 (pTHX_ const char *name, IV *iv_return) {
80  /* When generated this function returned values for the list of names given
81     here.  However, subsequent manual editing may have added or removed some.
82     LOG_AUTH LOG_CONS LOG_CRIT LOG_CRON LOG_INFO LOG_KERN LOG_LFMT LOG_MAIL
83     LOG_NEWS LOG_USER LOG_UUCP */
84  /* Offset 6 gives the best switch position.  */
85  switch (name[6]) {
86  case 'C':
87    if (memEQ(name, "LOG_UUCP", 8)) {
88    /*                     ^       */
89#ifdef LOG_UUCP
90      *iv_return = LOG_UUCP;
91      return PERL_constant_ISIV;
92#else
93      return PERL_constant_NOTDEF;
94#endif
95    }
96    break;
97  case 'E':
98    if (memEQ(name, "LOG_USER", 8)) {
99    /*                     ^       */
100#ifdef LOG_USER
101      *iv_return = LOG_USER;
102      return PERL_constant_ISIV;
103#else
104      return PERL_constant_NOTDEF;
105#endif
106    }
107    break;
108  case 'F':
109    if (memEQ(name, "LOG_INFO", 8)) {
110    /*                     ^       */
111#ifdef LOG_INFO
112      *iv_return = LOG_INFO;
113      return PERL_constant_ISIV;
114#else
115      return PERL_constant_NOTDEF;
116#endif
117    }
118    break;
119  case 'I':
120    if (memEQ(name, "LOG_CRIT", 8)) {
121    /*                     ^       */
122#ifdef LOG_CRIT
123      *iv_return = LOG_CRIT;
124      return PERL_constant_ISIV;
125#else
126      return PERL_constant_NOTDEF;
127#endif
128    }
129    if (memEQ(name, "LOG_MAIL", 8)) {
130    /*                     ^       */
131#ifdef LOG_MAIL
132      *iv_return = LOG_MAIL;
133      return PERL_constant_ISIV;
134#else
135      return PERL_constant_NOTDEF;
136#endif
137    }
138    break;
139  case 'M':
140    if (memEQ(name, "LOG_LFMT", 8)) {
141    /*                     ^       */
142#ifdef LOG_LFMT
143      *iv_return = LOG_LFMT;
144      return PERL_constant_ISIV;
145#else
146      return PERL_constant_NOTDEF;
147#endif
148    }
149    break;
150  case 'N':
151    if (memEQ(name, "LOG_CONS", 8)) {
152    /*                     ^       */
153#ifdef LOG_CONS
154      *iv_return = LOG_CONS;
155      return PERL_constant_ISIV;
156#else
157      return PERL_constant_NOTDEF;
158#endif
159    }
160    break;
161  case 'O':
162    if (memEQ(name, "LOG_CRON", 8)) {
163    /*                     ^       */
164#ifdef LOG_CRON
165      *iv_return = LOG_CRON;
166      return PERL_constant_ISIV;
167#else
168      return PERL_constant_NOTDEF;
169#endif
170    }
171    break;
172  case 'R':
173    if (memEQ(name, "LOG_KERN", 8)) {
174    /*                     ^       */
175#ifdef LOG_KERN
176      *iv_return = LOG_KERN;
177      return PERL_constant_ISIV;
178#else
179      return PERL_constant_NOTDEF;
180#endif
181    }
182    break;
183  case 'T':
184    if (memEQ(name, "LOG_AUTH", 8)) {
185    /*                     ^       */
186#ifdef LOG_AUTH
187      *iv_return = LOG_AUTH;
188      return PERL_constant_ISIV;
189#else
190      return PERL_constant_NOTDEF;
191#endif
192    }
193    break;
194  case 'W':
195    if (memEQ(name, "LOG_NEWS", 8)) {
196    /*                     ^       */
197#ifdef LOG_NEWS
198      *iv_return = LOG_NEWS;
199      return PERL_constant_ISIV;
200#else
201      return PERL_constant_NOTDEF;
202#endif
203    }
204    break;
205  }
206  return PERL_constant_NOTFOUND;
207}
208
209static int
210constant_9 (pTHX_ const char *name, IV *iv_return, const char **pv_return) {
211  /* When generated this function returned values for the list of names given
212     here.  However, subsequent manual editing may have added or removed some.
213     LOG_ALERT LOG_DEBUG LOG_EMERG _PATH_LOG */
214  /* Offset 4 gives the best switch position.  */
215  switch (name[4]) {
216  case 'A':
217    if (memEQ(name, "LOG_ALERT", 9)) {
218    /*                   ^          */
219#ifdef LOG_ALERT
220      *iv_return = LOG_ALERT;
221      return PERL_constant_ISIV;
222#else
223      return PERL_constant_NOTDEF;
224#endif
225    }
226    break;
227  case 'D':
228    if (memEQ(name, "LOG_DEBUG", 9)) {
229    /*                   ^          */
230#ifdef LOG_DEBUG
231      *iv_return = LOG_DEBUG;
232      return PERL_constant_ISIV;
233#else
234      return PERL_constant_NOTDEF;
235#endif
236    }
237    break;
238  case 'E':
239    if (memEQ(name, "LOG_EMERG", 9)) {
240    /*                   ^          */
241#ifdef LOG_EMERG
242      *iv_return = LOG_EMERG;
243      return PERL_constant_ISIV;
244#else
245      return PERL_constant_NOTDEF;
246#endif
247    }
248    break;
249  case 'H':
250    if (memEQ(name, "_PATH_LOG", 9)) {
251    /*                   ^          */
252#ifdef _PATH_LOG
253      *pv_return = _PATH_LOG;
254      return PERL_constant_ISPV;
255#else
256      *pv_return = "/dev/log";
257      return PERL_constant_ISPV;
258#endif
259    }
260    break;
261  }
262  return PERL_constant_NOTFOUND;
263}
264
265static int
266constant_10 (pTHX_ const char *name, IV *iv_return) {
267  /* When generated this function returned values for the list of names given
268     here.  However, subsequent manual editing may have added or removed some.
269     LOG_DAEMON LOG_LOCAL0 LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4
270     LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_NDELAY LOG_NOTICE LOG_NOWAIT
271     LOG_ODELAY LOG_PERROR LOG_SYSLOG */
272  /* Offset 9 gives the best switch position.  */
273  switch (name[9]) {
274  case '0':
275    if (memEQ(name, "LOG_LOCAL", 9)) {
276    /*                        0     */
277#ifdef LOG_LOCAL0
278      *iv_return = LOG_LOCAL0;
279      return PERL_constant_ISIV;
280#else
281      return PERL_constant_NOTDEF;
282#endif
283    }
284    break;
285  case '1':
286    if (memEQ(name, "LOG_LOCAL", 9)) {
287    /*                        1     */
288#ifdef LOG_LOCAL1
289      *iv_return = LOG_LOCAL1;
290      return PERL_constant_ISIV;
291#else
292      return PERL_constant_NOTDEF;
293#endif
294    }
295    break;
296  case '2':
297    if (memEQ(name, "LOG_LOCAL", 9)) {
298    /*                        2     */
299#ifdef LOG_LOCAL2
300      *iv_return = LOG_LOCAL2;
301      return PERL_constant_ISIV;
302#else
303      return PERL_constant_NOTDEF;
304#endif
305    }
306    break;
307  case '3':
308    if (memEQ(name, "LOG_LOCAL", 9)) {
309    /*                        3     */
310#ifdef LOG_LOCAL3
311      *iv_return = LOG_LOCAL3;
312      return PERL_constant_ISIV;
313#else
314      return PERL_constant_NOTDEF;
315#endif
316    }
317    break;
318  case '4':
319    if (memEQ(name, "LOG_LOCAL", 9)) {
320    /*                        4     */
321#ifdef LOG_LOCAL4
322      *iv_return = LOG_LOCAL4;
323      return PERL_constant_ISIV;
324#else
325      return PERL_constant_NOTDEF;
326#endif
327    }
328    break;
329  case '5':
330    if (memEQ(name, "LOG_LOCAL", 9)) {
331    /*                        5     */
332#ifdef LOG_LOCAL5
333      *iv_return = LOG_LOCAL5;
334      return PERL_constant_ISIV;
335#else
336      return PERL_constant_NOTDEF;
337#endif
338    }
339    break;
340  case '6':
341    if (memEQ(name, "LOG_LOCAL", 9)) {
342    /*                        6     */
343#ifdef LOG_LOCAL6
344      *iv_return = LOG_LOCAL6;
345      return PERL_constant_ISIV;
346#else
347      return PERL_constant_NOTDEF;
348#endif
349    }
350    break;
351  case '7':
352    if (memEQ(name, "LOG_LOCAL", 9)) {
353    /*                        7     */
354#ifdef LOG_LOCAL7
355      *iv_return = LOG_LOCAL7;
356      return PERL_constant_ISIV;
357#else
358      return PERL_constant_NOTDEF;
359#endif
360    }
361    break;
362  case 'E':
363    if (memEQ(name, "LOG_NOTIC", 9)) {
364    /*                        E     */
365#ifdef LOG_NOTICE
366      *iv_return = LOG_NOTICE;
367      return PERL_constant_ISIV;
368#else
369      return PERL_constant_NOTDEF;
370#endif
371    }
372    break;
373  case 'G':
374    if (memEQ(name, "LOG_SYSLO", 9)) {
375    /*                        G     */
376#ifdef LOG_SYSLOG
377      *iv_return = LOG_SYSLOG;
378      return PERL_constant_ISIV;
379#else
380      return PERL_constant_NOTDEF;
381#endif
382    }
383    break;
384  case 'N':
385    if (memEQ(name, "LOG_DAEMO", 9)) {
386    /*                        N     */
387#ifdef LOG_DAEMON
388      *iv_return = LOG_DAEMON;
389      return PERL_constant_ISIV;
390#else
391      return PERL_constant_NOTDEF;
392#endif
393    }
394    break;
395  case 'R':
396    if (memEQ(name, "LOG_PERRO", 9)) {
397    /*                        R     */
398#ifdef LOG_PERROR
399      *iv_return = LOG_PERROR;
400      return PERL_constant_ISIV;
401#else
402      return PERL_constant_NOTDEF;
403#endif
404    }
405    break;
406  case 'T':
407    if (memEQ(name, "LOG_NOWAI", 9)) {
408    /*                        T     */
409#ifdef LOG_NOWAIT
410      *iv_return = LOG_NOWAIT;
411      return PERL_constant_ISIV;
412#else
413      return PERL_constant_NOTDEF;
414#endif
415    }
416    break;
417  case 'Y':
418    if (memEQ(name, "LOG_NDELA", 9)) {
419    /*                        Y     */
420#ifdef LOG_NDELAY
421      *iv_return = LOG_NDELAY;
422      return PERL_constant_ISIV;
423#else
424      return PERL_constant_NOTDEF;
425#endif
426    }
427    if (memEQ(name, "LOG_ODELA", 9)) {
428    /*                        Y     */
429#ifdef LOG_ODELAY
430      *iv_return = LOG_ODELAY;
431      return PERL_constant_ISIV;
432#else
433      return PERL_constant_NOTDEF;
434#endif
435    }
436    break;
437  }
438  return PERL_constant_NOTFOUND;
439}
440
441static int
442constant_11 (pTHX_ const char *name, IV *iv_return) {
443  /* When generated this function returned values for the list of names given
444     here.  However, subsequent manual editing may have added or removed some.
445     LOG_FACMASK LOG_PRIMASK LOG_WARNING */
446  /* Offset 6 gives the best switch position.  */
447  switch (name[6]) {
448  case 'C':
449    if (memEQ(name, "LOG_FACMASK", 11)) {
450    /*                     ^           */
451#ifdef LOG_FACMASK
452      *iv_return = LOG_FACMASK;
453      return PERL_constant_ISIV;
454#else
455      return PERL_constant_NOTDEF;
456#endif
457    }
458    break;
459  case 'I':
460    if (memEQ(name, "LOG_PRIMASK", 11)) {
461    /*                     ^           */
462#ifdef LOG_PRIMASK
463      *iv_return = LOG_PRIMASK;
464      return PERL_constant_ISIV;
465#else
466      return PERL_constant_NOTDEF;
467#endif
468    }
469    break;
470  case 'R':
471    if (memEQ(name, "LOG_WARNING", 11)) {
472    /*                     ^           */
473#ifdef LOG_WARNING
474      *iv_return = LOG_WARNING;
475      return PERL_constant_ISIV;
476#else
477      return PERL_constant_NOTDEF;
478#endif
479    }
480    break;
481  }
482  return PERL_constant_NOTFOUND;
483}
484
485static int
486constant (pTHX_ const char *name, STRLEN len, IV *iv_return, const char **pv_return) {
487  /* Initially switch on the length of the name.  */
488  /* When generated this function returned values for the list of names given
489     in this section of perl code.  Rather than manually editing these functions
490     to add or remove constants, which would result in this comment and section
491     of code becoming inaccurate, we recommend that you edit this section of
492     code, and use it to regenerate a new set of constant functions which you
493     then use to replace the originals.
494
495     Regenerate these constant functions by feeding this entire source file to
496     perl -x
497
498#!/usr/bin/perl5.8.5 -w
499use ExtUtils::Constant qw (constant_types C_constant XS_constant);
500
501my $types = {map {($_, 1)} qw(IV PV)};
502my @names = (qw(LOG_ALERT LOG_AUTH LOG_AUTHPRIV LOG_CONS LOG_CRIT LOG_CRON
503	       LOG_DAEMON LOG_DEBUG LOG_EMERG LOG_ERR LOG_FACMASK LOG_FTP
504	       LOG_INFO LOG_KERN LOG_LFMT LOG_LOCAL0 LOG_LOCAL1 LOG_LOCAL2
505	       LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_LPR
506	       LOG_MAIL LOG_NDELAY LOG_NEWS LOG_NFACILITIES LOG_NOTICE
507	       LOG_NOWAIT LOG_ODELAY LOG_PERROR LOG_PID LOG_PRIMASK LOG_SYSLOG
508	       LOG_USER LOG_UUCP LOG_WARNING),
509            {name=>"_PATH_LOG", type=>"PV", default=>["PV", "\"/dev/log\""]});
510
511print constant_types(); # macro defs
512foreach (C_constant ("Sys::Syslog", 'constant', 'IV', $types, undef, 3, @names) ) {
513    print $_, "\n"; # C constant subs
514}
515print "#### XS Section:\n";
516print XS_constant ("Sys::Syslog", $types);
517__END__
518   */
519
520  switch (len) {
521  case 7:
522    return constant_7 (aTHX_ name, iv_return);
523    break;
524  case 8:
525    return constant_8 (aTHX_ name, iv_return);
526    break;
527  case 9:
528    return constant_9 (aTHX_ name, iv_return, pv_return);
529    break;
530  case 10:
531    return constant_10 (aTHX_ name, iv_return);
532    break;
533  case 11:
534    return constant_11 (aTHX_ name, iv_return);
535    break;
536  case 12:
537    if (memEQ(name, "LOG_AUTHPRIV", 12)) {
538#ifdef LOG_AUTHPRIV
539      *iv_return = LOG_AUTHPRIV;
540      return PERL_constant_ISIV;
541#else
542      return PERL_constant_NOTDEF;
543#endif
544    }
545    break;
546  case 15:
547    if (memEQ(name, "LOG_NFACILITIES", 15)) {
548#ifdef LOG_NFACILITIES
549      *iv_return = LOG_NFACILITIES;
550      return PERL_constant_ISIV;
551#else
552      return PERL_constant_NOTDEF;
553#endif
554    }
555    break;
556  }
557  return PERL_constant_NOTFOUND;
558}
559
560