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_NTP LOG_PID LOG_RAS */
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 'N':
64    if (memEQ(name, "LOG_NTP", 7)) {
65    /*                   ^        */
66#ifdef LOG_NTP
67      *iv_return = LOG_NTP;
68      return PERL_constant_ISIV;
69#else
70      *iv_return = LOG_DAEMON;
71      return PERL_constant_ISIV;
72#endif
73    }
74    break;
75  case 'P':
76    if (memEQ(name, "LOG_PID", 7)) {
77    /*                   ^        */
78#ifdef LOG_PID
79      *iv_return = LOG_PID;
80      return PERL_constant_ISIV;
81#else
82      return PERL_constant_NOTDEF;
83#endif
84    }
85    break;
86  case 'R':
87    if (memEQ(name, "LOG_RAS", 7)) {
88    /*                   ^        */
89#ifdef LOG_RAS
90      *iv_return = LOG_RAS;
91      return PERL_constant_ISIV;
92#else
93      *iv_return = LOG_AUTH;
94      return PERL_constant_ISIV;
95#endif
96    }
97    break;
98  }
99  return PERL_constant_NOTFOUND;
100}
101
102static int
103constant_8 (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     LOG_AUTH LOG_CONS LOG_CRIT LOG_CRON LOG_INFO LOG_KERN LOG_LFMT LOG_MAIL
107     LOG_NEWS LOG_USER LOG_UUCP */
108  /* Offset 6 gives the best switch position.  */
109  switch (name[6]) {
110  case 'C':
111    if (memEQ(name, "LOG_UUCP", 8)) {
112    /*                     ^       */
113#ifdef LOG_UUCP
114      *iv_return = LOG_UUCP;
115      return PERL_constant_ISIV;
116#else
117      return PERL_constant_NOTDEF;
118#endif
119    }
120    break;
121  case 'E':
122    if (memEQ(name, "LOG_USER", 8)) {
123    /*                     ^       */
124#ifdef LOG_USER
125      *iv_return = LOG_USER;
126      return PERL_constant_ISIV;
127#else
128      return PERL_constant_NOTDEF;
129#endif
130    }
131    break;
132  case 'F':
133    if (memEQ(name, "LOG_INFO", 8)) {
134    /*                     ^       */
135#ifdef LOG_INFO
136      *iv_return = LOG_INFO;
137      return PERL_constant_ISIV;
138#else
139      return PERL_constant_NOTDEF;
140#endif
141    }
142    break;
143  case 'I':
144    if (memEQ(name, "LOG_CRIT", 8)) {
145    /*                     ^       */
146#ifdef LOG_CRIT
147      *iv_return = LOG_CRIT;
148      return PERL_constant_ISIV;
149#else
150      return PERL_constant_NOTDEF;
151#endif
152    }
153    if (memEQ(name, "LOG_MAIL", 8)) {
154    /*                     ^       */
155#ifdef LOG_MAIL
156      *iv_return = LOG_MAIL;
157      return PERL_constant_ISIV;
158#else
159      return PERL_constant_NOTDEF;
160#endif
161    }
162    break;
163  case 'M':
164    if (memEQ(name, "LOG_LFMT", 8)) {
165    /*                     ^       */
166#ifdef LOG_LFMT
167      *iv_return = LOG_LFMT;
168      return PERL_constant_ISIV;
169#else
170      *iv_return = LOG_USER;
171      return PERL_constant_ISIV;
172#endif
173    }
174    break;
175  case 'N':
176    if (memEQ(name, "LOG_CONS", 8)) {
177    /*                     ^       */
178#ifdef LOG_CONS
179      *iv_return = LOG_CONS;
180      return PERL_constant_ISIV;
181#else
182      return PERL_constant_NOTDEF;
183#endif
184    }
185    break;
186  case 'O':
187    if (memEQ(name, "LOG_CRON", 8)) {
188    /*                     ^       */
189#ifdef LOG_CRON
190      *iv_return = LOG_CRON;
191      return PERL_constant_ISIV;
192#else
193      return PERL_constant_NOTDEF;
194#endif
195    }
196    break;
197  case 'R':
198    if (memEQ(name, "LOG_KERN", 8)) {
199    /*                     ^       */
200#ifdef LOG_KERN
201      *iv_return = LOG_KERN;
202      return PERL_constant_ISIV;
203#else
204      return PERL_constant_NOTDEF;
205#endif
206    }
207    break;
208  case 'T':
209    if (memEQ(name, "LOG_AUTH", 8)) {
210    /*                     ^       */
211#ifdef LOG_AUTH
212      *iv_return = LOG_AUTH;
213      return PERL_constant_ISIV;
214#else
215      return PERL_constant_NOTDEF;
216#endif
217    }
218    break;
219  case 'W':
220    if (memEQ(name, "LOG_NEWS", 8)) {
221    /*                     ^       */
222#ifdef LOG_NEWS
223      *iv_return = LOG_NEWS;
224      return PERL_constant_ISIV;
225#else
226      return PERL_constant_NOTDEF;
227#endif
228    }
229    break;
230  }
231  return PERL_constant_NOTFOUND;
232}
233
234static int
235constant_9 (pTHX_ const char *name, IV *iv_return, const char **pv_return) {
236  /* When generated this function returned values for the list of names given
237     here.  However, subsequent manual editing may have added or removed some.
238     LOG_ALERT LOG_AUDIT LOG_DEBUG LOG_EMERG _PATH_LOG */
239  /* Offset 5 gives the best switch position.  */
240  switch (name[5]) {
241  case 'E':
242    if (memEQ(name, "LOG_DEBUG", 9)) {
243    /*                    ^         */
244#ifdef LOG_DEBUG
245      *iv_return = LOG_DEBUG;
246      return PERL_constant_ISIV;
247#else
248      return PERL_constant_NOTDEF;
249#endif
250    }
251    break;
252  case 'L':
253    if (memEQ(name, "LOG_ALERT", 9)) {
254    /*                    ^         */
255#ifdef LOG_ALERT
256      *iv_return = LOG_ALERT;
257      return PERL_constant_ISIV;
258#else
259      return PERL_constant_NOTDEF;
260#endif
261    }
262    break;
263  case 'M':
264    if (memEQ(name, "LOG_EMERG", 9)) {
265    /*                    ^         */
266#ifdef LOG_EMERG
267      *iv_return = LOG_EMERG;
268      return PERL_constant_ISIV;
269#else
270      return PERL_constant_NOTDEF;
271#endif
272    }
273    break;
274  case 'U':
275    if (memEQ(name, "LOG_AUDIT", 9)) {
276    /*                    ^         */
277#ifdef LOG_AUDIT
278      *iv_return = LOG_AUDIT;
279      return PERL_constant_ISIV;
280#else
281      *iv_return = LOG_AUTH;
282      return PERL_constant_ISIV;
283#endif
284    }
285    break;
286  case '_':
287    if (memEQ(name, "_PATH_LOG", 9)) {
288    /*                    ^         */
289#ifdef _PATH_LOG
290      *pv_return = _PATH_LOG;
291      return PERL_constant_ISPV;
292#else
293      *pv_return = "/var/run/syslog";
294      return PERL_constant_ISPV;
295#endif
296    }
297    break;
298  }
299  return PERL_constant_NOTFOUND;
300}
301
302static int
303constant_10 (pTHX_ const char *name, IV *iv_return) {
304  /* When generated this function returned values for the list of names given
305     here.  However, subsequent manual editing may have added or removed some.
306     LOG_DAEMON LOG_LOCAL0 LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4
307     LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_NDELAY LOG_NOTICE LOG_NOWAIT
308     LOG_ODELAY LOG_PERROR LOG_SYSLOG */
309  /* Offset 9 gives the best switch position.  */
310  switch (name[9]) {
311  case '0':
312    if (memEQ(name, "LOG_LOCAL", 9)) {
313    /*                        0     */
314#ifdef LOG_LOCAL0
315      *iv_return = LOG_LOCAL0;
316      return PERL_constant_ISIV;
317#else
318      return PERL_constant_NOTDEF;
319#endif
320    }
321    break;
322  case '1':
323    if (memEQ(name, "LOG_LOCAL", 9)) {
324    /*                        1     */
325#ifdef LOG_LOCAL1
326      *iv_return = LOG_LOCAL1;
327      return PERL_constant_ISIV;
328#else
329      return PERL_constant_NOTDEF;
330#endif
331    }
332    break;
333  case '2':
334    if (memEQ(name, "LOG_LOCAL", 9)) {
335    /*                        2     */
336#ifdef LOG_LOCAL2
337      *iv_return = LOG_LOCAL2;
338      return PERL_constant_ISIV;
339#else
340      return PERL_constant_NOTDEF;
341#endif
342    }
343    break;
344  case '3':
345    if (memEQ(name, "LOG_LOCAL", 9)) {
346    /*                        3     */
347#ifdef LOG_LOCAL3
348      *iv_return = LOG_LOCAL3;
349      return PERL_constant_ISIV;
350#else
351      return PERL_constant_NOTDEF;
352#endif
353    }
354    break;
355  case '4':
356    if (memEQ(name, "LOG_LOCAL", 9)) {
357    /*                        4     */
358#ifdef LOG_LOCAL4
359      *iv_return = LOG_LOCAL4;
360      return PERL_constant_ISIV;
361#else
362      return PERL_constant_NOTDEF;
363#endif
364    }
365    break;
366  case '5':
367    if (memEQ(name, "LOG_LOCAL", 9)) {
368    /*                        5     */
369#ifdef LOG_LOCAL5
370      *iv_return = LOG_LOCAL5;
371      return PERL_constant_ISIV;
372#else
373      return PERL_constant_NOTDEF;
374#endif
375    }
376    break;
377  case '6':
378    if (memEQ(name, "LOG_LOCAL", 9)) {
379    /*                        6     */
380#ifdef LOG_LOCAL6
381      *iv_return = LOG_LOCAL6;
382      return PERL_constant_ISIV;
383#else
384      return PERL_constant_NOTDEF;
385#endif
386    }
387    break;
388  case '7':
389    if (memEQ(name, "LOG_LOCAL", 9)) {
390    /*                        7     */
391#ifdef LOG_LOCAL7
392      *iv_return = LOG_LOCAL7;
393      return PERL_constant_ISIV;
394#else
395      return PERL_constant_NOTDEF;
396#endif
397    }
398    break;
399  case 'E':
400    if (memEQ(name, "LOG_NOTIC", 9)) {
401    /*                        E     */
402#ifdef LOG_NOTICE
403      *iv_return = LOG_NOTICE;
404      return PERL_constant_ISIV;
405#else
406      return PERL_constant_NOTDEF;
407#endif
408    }
409    break;
410  case 'G':
411    if (memEQ(name, "LOG_SYSLO", 9)) {
412    /*                        G     */
413#ifdef LOG_SYSLOG
414      *iv_return = LOG_SYSLOG;
415      return PERL_constant_ISIV;
416#else
417      return PERL_constant_NOTDEF;
418#endif
419    }
420    break;
421  case 'N':
422    if (memEQ(name, "LOG_DAEMO", 9)) {
423    /*                        N     */
424#ifdef LOG_DAEMON
425      *iv_return = LOG_DAEMON;
426      return PERL_constant_ISIV;
427#else
428      return PERL_constant_NOTDEF;
429#endif
430    }
431    break;
432  case 'R':
433    if (memEQ(name, "LOG_PERRO", 9)) {
434    /*                        R     */
435#ifdef LOG_PERROR
436      *iv_return = LOG_PERROR;
437      return PERL_constant_ISIV;
438#else
439      return PERL_constant_NOTDEF;
440#endif
441    }
442    break;
443  case 'T':
444    if (memEQ(name, "LOG_NOWAI", 9)) {
445    /*                        T     */
446#ifdef LOG_NOWAIT
447      *iv_return = LOG_NOWAIT;
448      return PERL_constant_ISIV;
449#else
450      return PERL_constant_NOTDEF;
451#endif
452    }
453    break;
454  case 'Y':
455    if (memEQ(name, "LOG_NDELA", 9)) {
456    /*                        Y     */
457#ifdef LOG_NDELAY
458      *iv_return = LOG_NDELAY;
459      return PERL_constant_ISIV;
460#else
461      return PERL_constant_NOTDEF;
462#endif
463    }
464    if (memEQ(name, "LOG_ODELA", 9)) {
465    /*                        Y     */
466#ifdef LOG_ODELAY
467      *iv_return = LOG_ODELAY;
468      return PERL_constant_ISIV;
469#else
470      return PERL_constant_NOTDEF;
471#endif
472    }
473    break;
474  }
475  return PERL_constant_NOTFOUND;
476}
477
478static int
479constant_11 (pTHX_ const char *name, IV *iv_return) {
480  /* When generated this function returned values for the list of names given
481     here.  However, subsequent manual editing may have added or removed some.
482     LOG_CONSOLE LOG_FACMASK LOG_INSTALL LOG_LAUNCHD LOG_NETINFO LOG_PRIMASK
483     LOG_WARNING */
484  /* Offset 6 gives the best switch position.  */
485  switch (name[6]) {
486  case 'C':
487    if (memEQ(name, "LOG_FACMASK", 11)) {
488    /*                     ^           */
489#ifdef LOG_FACMASK
490      *iv_return = LOG_FACMASK;
491      return PERL_constant_ISIV;
492#else
493      return PERL_constant_NOTDEF;
494#endif
495    }
496    break;
497  case 'I':
498    if (memEQ(name, "LOG_PRIMASK", 11)) {
499    /*                     ^           */
500#ifdef LOG_PRIMASK
501      *iv_return = LOG_PRIMASK;
502      return PERL_constant_ISIV;
503#else
504      *iv_return = 7;
505      return PERL_constant_ISIV;
506#endif
507    }
508    break;
509  case 'N':
510    if (memEQ(name, "LOG_CONSOLE", 11)) {
511    /*                     ^           */
512#ifdef LOG_CONSOLE
513      *iv_return = LOG_CONSOLE;
514      return PERL_constant_ISIV;
515#else
516      *iv_return = LOG_USER;
517      return PERL_constant_ISIV;
518#endif
519    }
520    break;
521  case 'R':
522    if (memEQ(name, "LOG_WARNING", 11)) {
523    /*                     ^           */
524#ifdef LOG_WARNING
525      *iv_return = LOG_WARNING;
526      return PERL_constant_ISIV;
527#else
528      return PERL_constant_NOTDEF;
529#endif
530    }
531    break;
532  case 'S':
533    if (memEQ(name, "LOG_INSTALL", 11)) {
534    /*                     ^           */
535#ifdef LOG_INSTALL
536      *iv_return = LOG_INSTALL;
537      return PERL_constant_ISIV;
538#else
539      *iv_return = LOG_USER;
540      return PERL_constant_ISIV;
541#endif
542    }
543    break;
544  case 'T':
545    if (memEQ(name, "LOG_NETINFO", 11)) {
546    /*                     ^           */
547#ifdef LOG_NETINFO
548      *iv_return = LOG_NETINFO;
549      return PERL_constant_ISIV;
550#else
551      *iv_return = LOG_DAEMON;
552      return PERL_constant_ISIV;
553#endif
554    }
555    break;
556  case 'U':
557    if (memEQ(name, "LOG_LAUNCHD", 11)) {
558    /*                     ^           */
559#ifdef LOG_LAUNCHD
560      *iv_return = LOG_LAUNCHD;
561      return PERL_constant_ISIV;
562#else
563      *iv_return = LOG_DAEMON;
564      return PERL_constant_ISIV;
565#endif
566    }
567    break;
568  }
569  return PERL_constant_NOTFOUND;
570}
571
572static int
573constant (pTHX_ const char *name, STRLEN len, IV *iv_return, const char **pv_return) {
574  /* Initially switch on the length of the name.  */
575  /* When generated this function returned values for the list of names given
576     in this section of perl code.  Rather than manually editing these functions
577     to add or remove constants, which would result in this comment and section
578     of code becoming inaccurate, we recommend that you edit this section of
579     code, and use it to regenerate a new set of constant functions which you
580     then use to replace the originals.
581
582     Regenerate these constant functions by feeding this entire source file to
583     perl -x
584
585#!perl -w
586use ExtUtils::Constant qw (constant_types C_constant XS_constant);
587
588my $types = {map {($_, 1)} qw(IV PV)};
589my @names = (qw(LOG_ALERT LOG_AUTH LOG_AUTHPRIV LOG_CONS LOG_CRIT LOG_CRON
590	       LOG_DAEMON LOG_DEBUG LOG_EMERG LOG_ERR LOG_FACMASK LOG_FTP
591	       LOG_INFO LOG_KERN LOG_LOCAL0 LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3
592	       LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_LPR LOG_MAIL
593	       LOG_NDELAY LOG_NEWS LOG_NOTICE LOG_NOWAIT LOG_ODELAY LOG_PERROR
594	       LOG_PID LOG_SYSLOG LOG_USER LOG_UUCP LOG_WARNING),
595            {name=>"LOG_AUDIT", type=>"IV", default=>["IV", "LOG_AUTH"]},
596            {name=>"LOG_CONSOLE", type=>"IV", default=>["IV", "LOG_USER"]},
597            {name=>"LOG_INSTALL", type=>"IV", default=>["IV", "LOG_USER"]},
598            {name=>"LOG_LAUNCHD", type=>"IV", default=>["IV", "LOG_DAEMON"]},
599            {name=>"LOG_LFMT", type=>"IV", default=>["IV", "LOG_USER"]},
600            {name=>"LOG_NETINFO", type=>"IV", default=>["IV", "LOG_DAEMON"]},
601            {name=>"LOG_NFACILITIES", type=>"IV", default=>["IV", "30"]},
602            {name=>"LOG_NTP", type=>"IV", default=>["IV", "LOG_DAEMON"]},
603            {name=>"LOG_PRIMASK", type=>"IV", default=>["IV", "7"]},
604            {name=>"LOG_RAS", type=>"IV", default=>["IV", "LOG_AUTH"]},
605            {name=>"LOG_REMOTEAUTH", type=>"IV", default=>["IV", "LOG_AUTH"]},
606            {name=>"LOG_SECURITY", type=>"IV", default=>["IV", "LOG_AUTH"]},
607            {name=>"_PATH_LOG", type=>"PV", default=>["PV", "\"/var/run/syslog\""]});
608
609print constant_types(); # macro defs
610foreach (C_constant ("Sys::Syslog", 'constant', 'IV', $types, undef, 3, @names) ) {
611    print $_, "\n"; # C constant subs
612}
613print "#### XS Section:\n";
614print XS_constant ("Sys::Syslog", $types);
615__END__
616   */
617
618  switch (len) {
619  case 7:
620    return constant_7 (aTHX_ name, iv_return);
621    break;
622  case 8:
623    return constant_8 (aTHX_ name, iv_return);
624    break;
625  case 9:
626    return constant_9 (aTHX_ name, iv_return, pv_return);
627    break;
628  case 10:
629    return constant_10 (aTHX_ name, iv_return);
630    break;
631  case 11:
632    return constant_11 (aTHX_ name, iv_return);
633    break;
634  case 12:
635    /* Names all of length 12.  */
636    /* LOG_AUTHPRIV LOG_SECURITY */
637    /* Offset 8 gives the best switch position.  */
638    switch (name[8]) {
639    case 'P':
640      if (memEQ(name, "LOG_AUTHPRIV", 12)) {
641      /*                       ^          */
642#ifdef LOG_AUTHPRIV
643        *iv_return = LOG_AUTHPRIV;
644        return PERL_constant_ISIV;
645#else
646        return PERL_constant_NOTDEF;
647#endif
648      }
649      break;
650    case 'R':
651      if (memEQ(name, "LOG_SECURITY", 12)) {
652      /*                       ^          */
653#ifdef LOG_SECURITY
654        *iv_return = LOG_SECURITY;
655        return PERL_constant_ISIV;
656#else
657        *iv_return = LOG_AUTH;
658        return PERL_constant_ISIV;
659#endif
660      }
661      break;
662    }
663    break;
664  case 14:
665    if (memEQ(name, "LOG_REMOTEAUTH", 14)) {
666#ifdef LOG_REMOTEAUTH
667      *iv_return = LOG_REMOTEAUTH;
668      return PERL_constant_ISIV;
669#else
670      *iv_return = LOG_AUTH;
671      return PERL_constant_ISIV;
672#endif
673    }
674    break;
675  case 15:
676    if (memEQ(name, "LOG_NFACILITIES", 15)) {
677#ifdef LOG_NFACILITIES
678      *iv_return = LOG_NFACILITIES;
679      return PERL_constant_ISIV;
680#else
681      *iv_return = 30;
682      return PERL_constant_ISIV;
683#endif
684    }
685    break;
686  }
687  return PERL_constant_NOTFOUND;
688}
689
690