This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Data::Dumper doesn't need ppport.h in core
[perl5.git] / ext / Sys / Syslog / Syslog.xs
CommitLineData
8ce86de8
GS
1#include "EXTERN.h"
2#include "perl.h"
3#include "XSUB.h"
89c3c464 4#include "ppport.h"
8ce86de8 5
d76d5647
JH
6#ifdef I_SYSLOG
7#include <syslog.h>
8#endif
8ce86de8 9
89c3c464
AT
10static SV *ident_svptr;
11
1cb0fb50 12#include "const-c.inc"
8ce86de8 13
8ce86de8
GS
14MODULE = Sys::Syslog PACKAGE = Sys::Syslog
15
1cb0fb50 16INCLUDE: const-xs.inc
8ce86de8
GS
17
18int
19LOG_FAC(p)
20 INPUT:
21 int p
22 CODE:
23#ifdef LOG_FAC
24 RETVAL = LOG_FAC(p);
25#else
26 croak("Your vendor has not defined the Sys::Syslog macro LOG_FAC");
b621ec8a 27 RETVAL = -1;
8ce86de8
GS
28#endif
29 OUTPUT:
30 RETVAL
31
32int
33LOG_PRI(p)
34 INPUT:
35 int p
36 CODE:
37#ifdef LOG_PRI
38 RETVAL = LOG_PRI(p);
39#else
40 croak("Your vendor has not defined the Sys::Syslog macro LOG_PRI");
b621ec8a 41 RETVAL = -1;
8ce86de8
GS
42#endif
43 OUTPUT:
44 RETVAL
45
46int
47LOG_MAKEPRI(fac,pri)
48 INPUT:
49 int fac
50 int pri
51 CODE:
52#ifdef LOG_MAKEPRI
53 RETVAL = LOG_MAKEPRI(fac,pri);
54#else
55 croak("Your vendor has not defined the Sys::Syslog macro LOG_MAKEPRI");
b621ec8a 56 RETVAL = -1;
8ce86de8
GS
57#endif
58 OUTPUT:
59 RETVAL
60
61int
62LOG_MASK(pri)
63 INPUT:
64 int pri
65 CODE:
66#ifdef LOG_MASK
67 RETVAL = LOG_MASK(pri);
68#else
69 croak("Your vendor has not defined the Sys::Syslog macro LOG_MASK");
b621ec8a 70 RETVAL = -1;
8ce86de8
GS
71#endif
72 OUTPUT:
73 RETVAL
74
75int
76LOG_UPTO(pri)
77 INPUT:
78 int pri
79 CODE:
80#ifdef LOG_UPTO
81 RETVAL = LOG_UPTO(pri);
82#else
83 croak("Your vendor has not defined the Sys::Syslog macro LOG_UPTO");
b621ec8a 84 RETVAL = -1;
8ce86de8
GS
85#endif
86 OUTPUT:
87 RETVAL
89c3c464
AT
88
89
90void
91openlog_xs(ident, option, facility)
92 INPUT:
93 SV* ident
94 int option
95 int facility
96 PREINIT:
97 STRLEN len;
98 char* ident_pv;
99 CODE:
100 ident_svptr = newSVsv(ident);
101 ident_pv = SvPV(ident_svptr, len);
102 openlog(ident_pv, option, facility);
103
104void
105syslog_xs(priority, message)
106 INPUT:
107 int priority
108 const char * message
109 CODE:
110 syslog(priority, "%s", message);
111
112int
113setlogmask_xs(mask)
114 INPUT:
115 int mask
116 CODE:
117 setlogmask(mask);
118
119void
120closelog_xs()
121 CODE:
122 closelog();
123 if (SvREFCNT(ident_svptr))
124 SvREFCNT_dec(ident_svptr);
125