File Coverage

blib/lib/Solaris/Sysconf.pm
Criterion Covered Total %
statement 32 38 84.2
branch 4 10 40.0
condition 0 3 0.0
subroutine 9 10 90.0
pod n/a
total 45 61 73.7


line stmt bran cond sub pod time code
1             package Solaris::Sysconf;
2              
3 1     1   836156 use 5.006;
  1         5  
  1         55  
4 1     1   8 use strict;
  1         3  
  1         43  
5 1     1   6 use warnings;
  1         2  
  1         50  
6 1     1   7 use Carp;
  1         2  
  1         104  
7              
8             require Exporter;
9             require DynaLoader;
10 1     1   1069 use AutoLoader;
  1         1836  
  1         6  
11              
12             our @ISA = qw(Exporter DynaLoader);
13              
14             # Items to export into callers namespace by default. Note: do not export
15             # names by default without a very good reason. Use EXPORT_OK instead.
16             # Do not simply export all your public functions/methods/constants.
17              
18             # This allows declaration use Solaris::Sysconf ':all';
19             # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
20             # will save memory.
21             our %EXPORT_TAGS = ( 'all' => [ qw(
22             sysconf
23             _CS_LFS64_CFLAGS
24             _CS_LFS64_LDFLAGS
25             _CS_LFS64_LIBS
26             _CS_LFS64_LINTFLAGS
27             _CS_LFS_CFLAGS
28             _CS_LFS_LDFLAGS
29             _CS_LFS_LIBS
30             _CS_LFS_LINTFLAGS
31             _CS_PATH
32             _CS_XBS5_ILP32_OFF32_CFLAGS
33             _CS_XBS5_ILP32_OFF32_LDFLAGS
34             _CS_XBS5_ILP32_OFF32_LIBS
35             _CS_XBS5_ILP32_OFF32_LINTFLAGS
36             _CS_XBS5_ILP32_OFFBIG_CFLAGS
37             _CS_XBS5_ILP32_OFFBIG_LDFLAGS
38             _CS_XBS5_ILP32_OFFBIG_LIBS
39             _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
40             _CS_XBS5_LP64_OFF64_CFLAGS
41             _CS_XBS5_LP64_OFF64_LDFLAGS
42             _CS_XBS5_LP64_OFF64_LIBS
43             _CS_XBS5_LP64_OFF64_LINTFLAGS
44             _CS_XBS5_LPBIG_OFFBIG_CFLAGS
45             _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
46             _CS_XBS5_LPBIG_OFFBIG_LIBS
47             _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
48             _PC_ASYNC_IO
49             _PC_CHOWN_RESTRICTED
50             _PC_FILESIZEBITS
51             _PC_LAST
52             _PC_LINK_MAX
53             _PC_MAX_CANON
54             _PC_MAX_INPUT
55             _PC_NAME_MAX
56             _PC_NO_TRUNC
57             _PC_PATH_MAX
58             _PC_PIPE_BUF
59             _PC_PRIO_IO
60             _PC_SYNC_IO
61             _PC_VDISABLE
62             _POSIX2_CHAR_TERM
63             _POSIX2_C_BIND
64             _POSIX2_C_DEV
65             _POSIX2_C_VERSION
66             _POSIX2_LOCALEDEF
67             _POSIX2_SW_DEV
68             _POSIX2_UPE
69             _POSIX2_VERSION
70             _POSIX_VERSION
71             _SC_2_CHAR_TERM
72             _SC_2_C_BIND
73             _SC_2_C_DEV
74             _SC_2_C_VERSION
75             _SC_2_FORT_DEV
76             _SC_2_FORT_RUN
77             _SC_2_LOCALEDEF
78             _SC_2_SW_DEV
79             _SC_2_UPE
80             _SC_2_VERSION
81             _SC_AIO_LISTIO_MAX
82             _SC_AIO_MAX
83             _SC_AIO_PRIO_DELTA_MAX
84             _SC_ARG_MAX
85             _SC_ASYNCHRONOUS_IO
86             _SC_ATEXIT_MAX
87             _SC_AVPHYS_PAGES
88             _SC_BC_BASE_MAX
89             _SC_BC_DIM_MAX
90             _SC_BC_SCALE_MAX
91             _SC_BC_STRING_MAX
92             _SC_CHILD_MAX
93             _SC_CLK_TCK
94             _SC_COHER_BLKSZ
95             _SC_COLL_WEIGHTS_MAX
96             _SC_DCACHE_ASSOC
97             _SC_DCACHE_BLKSZ
98             _SC_DCACHE_LINESZ
99             _SC_DCACHE_SZ
100             _SC_DCACHE_TBLKSZ
101             _SC_DELAYTIMER_MAX
102             _SC_EXPR_NEST_MAX
103             _SC_FSYNC
104             _SC_GETGR_R_SIZE_MAX
105             _SC_GETPW_R_SIZE_MAX
106             _SC_ICACHE_ASSOC
107             _SC_ICACHE_BLKSZ
108             _SC_ICACHE_LINESZ
109             _SC_ICACHE_SZ
110             _SC_IOV_MAX
111             _SC_JOB_CONTROL
112             _SC_LINE_MAX
113             _SC_LOGIN_NAME_MAX
114             _SC_LOGNAME_MAX
115             _SC_MAPPED_FILES
116             _SC_MAXPID
117             _SC_MEMLOCK
118             _SC_MEMLOCK_RANGE
119             _SC_MEMORY_PROTECTION
120             _SC_MESSAGE_PASSING
121             _SC_MQ_OPEN_MAX
122             _SC_MQ_PRIO_MAX
123             _SC_NGROUPS_MAX
124             _SC_NPROCESSORS_CONF
125             _SC_NPROCESSORS_ONLN
126             _SC_OPEN_MAX
127             _SC_PAGESIZE
128             _SC_PAGE_SIZE
129             _SC_PASS_MAX
130             _SC_PHYS_PAGES
131             _SC_PRIORITIZED_IO
132             _SC_PRIORITY_SCHEDULING
133             _SC_REALTIME_SIGNALS
134             _SC_RE_DUP_MAX
135             _SC_RTSIG_MAX
136             _SC_SAVED_IDS
137             _SC_SEMAPHORES
138             _SC_SEM_NSEMS_MAX
139             _SC_SEM_VALUE_MAX
140             _SC_SHARED_MEMORY_OBJECTS
141             _SC_SIGQUEUE_MAX
142             _SC_SIGRT_MAX
143             _SC_SIGRT_MIN
144             _SC_SPLIT_CACHE
145             _SC_STACK_PROT
146             _SC_STREAM_MAX
147             _SC_SYNCHRONIZED_IO
148             _SC_THREADS
149             _SC_THREAD_ATTR_STACKADDR
150             _SC_THREAD_ATTR_STACKSIZE
151             _SC_THREAD_DESTRUCTOR_ITERATIONS
152             _SC_THREAD_KEYS_MAX
153             _SC_THREAD_PRIORITY_SCHEDULING
154             _SC_THREAD_PRIO_INHERIT
155             _SC_THREAD_PRIO_PROTECT
156             _SC_THREAD_PROCESS_SHARED
157             _SC_THREAD_SAFE_FUNCTIONS
158             _SC_THREAD_STACK_MIN
159             _SC_THREAD_THREADS_MAX
160             _SC_TIMERS
161             _SC_TIMER_MAX
162             _SC_TTY_NAME_MAX
163             _SC_TZNAME_MAX
164             _SC_T_IOV_MAX
165             _SC_VERSION
166             _SC_XBS5_ILP32_OFF32
167             _SC_XBS5_ILP32_OFFBIG
168             _SC_XBS5_LP64_OFF64
169             _SC_XBS5_LPBIG_OFFBIG
170             _SC_XOPEN_CRYPT
171             _SC_XOPEN_ENH_I18N
172             _SC_XOPEN_LEGACY
173             _SC_XOPEN_REALTIME
174             _SC_XOPEN_REALTIME_THREADS
175             _SC_XOPEN_SHM
176             _SC_XOPEN_UNIX
177             _SC_XOPEN_VERSION
178             _SC_XOPEN_XCU_VERSION
179             _XOPEN_ENH_I18N
180             _XOPEN_REALTIME
181             _XOPEN_SHM
182             _XOPEN_UNIX
183             _XOPEN_XCU_VERSION
184             _XOPEN_XPG3
185             _XOPEN_XPG4
186             ) ] );
187              
188             our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
189              
190             our @EXPORT = qw(
191             sysconf
192             _CS_LFS64_CFLAGS
193             _CS_LFS64_LDFLAGS
194             _CS_LFS64_LIBS
195             _CS_LFS64_LINTFLAGS
196             _CS_LFS_CFLAGS
197             _CS_LFS_LDFLAGS
198             _CS_LFS_LIBS
199             _CS_LFS_LINTFLAGS
200             _CS_PATH
201             _CS_XBS5_ILP32_OFF32_CFLAGS
202             _CS_XBS5_ILP32_OFF32_LDFLAGS
203             _CS_XBS5_ILP32_OFF32_LIBS
204             _CS_XBS5_ILP32_OFF32_LINTFLAGS
205             _CS_XBS5_ILP32_OFFBIG_CFLAGS
206             _CS_XBS5_ILP32_OFFBIG_LDFLAGS
207             _CS_XBS5_ILP32_OFFBIG_LIBS
208             _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
209             _CS_XBS5_LP64_OFF64_CFLAGS
210             _CS_XBS5_LP64_OFF64_LDFLAGS
211             _CS_XBS5_LP64_OFF64_LIBS
212             _CS_XBS5_LP64_OFF64_LINTFLAGS
213             _CS_XBS5_LPBIG_OFFBIG_CFLAGS
214             _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
215             _CS_XBS5_LPBIG_OFFBIG_LIBS
216             _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
217             _PC_ASYNC_IO
218             _PC_CHOWN_RESTRICTED
219             _PC_FILESIZEBITS
220             _PC_LAST
221             _PC_LINK_MAX
222             _PC_MAX_CANON
223             _PC_MAX_INPUT
224             _PC_NAME_MAX
225             _PC_NO_TRUNC
226             _PC_PATH_MAX
227             _PC_PIPE_BUF
228             _PC_PRIO_IO
229             _PC_SYNC_IO
230             _PC_VDISABLE
231             _POSIX2_CHAR_TERM
232             _POSIX2_C_BIND
233             _POSIX2_C_DEV
234             _POSIX2_C_VERSION
235             _POSIX2_LOCALEDEF
236             _POSIX2_SW_DEV
237             _POSIX2_UPE
238             _POSIX2_VERSION
239             _POSIX_VERSION
240             _SC_2_CHAR_TERM
241             _SC_2_C_BIND
242             _SC_2_C_DEV
243             _SC_2_C_VERSION
244             _SC_2_FORT_DEV
245             _SC_2_FORT_RUN
246             _SC_2_LOCALEDEF
247             _SC_2_SW_DEV
248             _SC_2_UPE
249             _SC_2_VERSION
250             _SC_AIO_LISTIO_MAX
251             _SC_AIO_MAX
252             _SC_AIO_PRIO_DELTA_MAX
253             _SC_ARG_MAX
254             _SC_ASYNCHRONOUS_IO
255             _SC_ATEXIT_MAX
256             _SC_AVPHYS_PAGES
257             _SC_BC_BASE_MAX
258             _SC_BC_DIM_MAX
259             _SC_BC_SCALE_MAX
260             _SC_BC_STRING_MAX
261             _SC_CHILD_MAX
262             _SC_CLK_TCK
263             _SC_COHER_BLKSZ
264             _SC_COLL_WEIGHTS_MAX
265             _SC_DCACHE_ASSOC
266             _SC_DCACHE_BLKSZ
267             _SC_DCACHE_LINESZ
268             _SC_DCACHE_SZ
269             _SC_DCACHE_TBLKSZ
270             _SC_DELAYTIMER_MAX
271             _SC_EXPR_NEST_MAX
272             _SC_FSYNC
273             _SC_GETGR_R_SIZE_MAX
274             _SC_GETPW_R_SIZE_MAX
275             _SC_ICACHE_ASSOC
276             _SC_ICACHE_BLKSZ
277             _SC_ICACHE_LINESZ
278             _SC_ICACHE_SZ
279             _SC_IOV_MAX
280             _SC_JOB_CONTROL
281             _SC_LINE_MAX
282             _SC_LOGIN_NAME_MAX
283             _SC_LOGNAME_MAX
284             _SC_MAPPED_FILES
285             _SC_MAXPID
286             _SC_MEMLOCK
287             _SC_MEMLOCK_RANGE
288             _SC_MEMORY_PROTECTION
289             _SC_MESSAGE_PASSING
290             _SC_MQ_OPEN_MAX
291             _SC_MQ_PRIO_MAX
292             _SC_NGROUPS_MAX
293             _SC_NPROCESSORS_CONF
294             _SC_NPROCESSORS_ONLN
295             _SC_OPEN_MAX
296             _SC_PAGESIZE
297             _SC_PAGE_SIZE
298             _SC_PASS_MAX
299             _SC_PHYS_PAGES
300             _SC_PRIORITIZED_IO
301             _SC_PRIORITY_SCHEDULING
302             _SC_REALTIME_SIGNALS
303             _SC_RE_DUP_MAX
304             _SC_RTSIG_MAX
305             _SC_SAVED_IDS
306             _SC_SEMAPHORES
307             _SC_SEM_NSEMS_MAX
308             _SC_SEM_VALUE_MAX
309             _SC_SHARED_MEMORY_OBJECTS
310             _SC_SIGQUEUE_MAX
311             _SC_SIGRT_MAX
312             _SC_SIGRT_MIN
313             _SC_SPLIT_CACHE
314             _SC_STACK_PROT
315             _SC_STREAM_MAX
316             _SC_SYNCHRONIZED_IO
317             _SC_THREADS
318             _SC_THREAD_ATTR_STACKADDR
319             _SC_THREAD_ATTR_STACKSIZE
320             _SC_THREAD_DESTRUCTOR_ITERATIONS
321             _SC_THREAD_KEYS_MAX
322             _SC_THREAD_PRIORITY_SCHEDULING
323             _SC_THREAD_PRIO_INHERIT
324             _SC_THREAD_PRIO_PROTECT
325             _SC_THREAD_PROCESS_SHARED
326             _SC_THREAD_SAFE_FUNCTIONS
327             _SC_THREAD_STACK_MIN
328             _SC_THREAD_THREADS_MAX
329             _SC_TIMERS
330             _SC_TIMER_MAX
331             _SC_TTY_NAME_MAX
332             _SC_TZNAME_MAX
333             _SC_T_IOV_MAX
334             _SC_VERSION
335             _SC_XBS5_ILP32_OFF32
336             _SC_XBS5_ILP32_OFFBIG
337             _SC_XBS5_LP64_OFF64
338             _SC_XBS5_LPBIG_OFFBIG
339             _SC_XOPEN_CRYPT
340             _SC_XOPEN_ENH_I18N
341             _SC_XOPEN_LEGACY
342             _SC_XOPEN_REALTIME
343             _SC_XOPEN_REALTIME_THREADS
344             _SC_XOPEN_SHM
345             _SC_XOPEN_UNIX
346             _SC_XOPEN_VERSION
347             _SC_XOPEN_XCU_VERSION
348             _XOPEN_ENH_I18N
349             _XOPEN_REALTIME
350             _XOPEN_SHM
351             _XOPEN_UNIX
352             _XOPEN_XCU_VERSION
353             _XOPEN_XPG3
354             _XOPEN_XPG4
355             );
356             our $VERSION = '0.01';
357              
358             sub AUTOLOAD {
359             # This AUTOLOAD is used to 'autoload' constants from the constant()
360             # XS function. If a constant is not found then control is passed
361             # to the AUTOLOAD in AutoLoader.
362              
363 2     2   118 my $constname;
364 2         3 our $AUTOLOAD;
365 2         15 ($constname = $AUTOLOAD) =~ s/.*:://;
366 2 50       8 croak "& not defined" if $constname eq 'constant';
367 2 50       44 my $val = constant($constname, @_ ? $_[0] : 0);
368 2 50       8 if ($! != 0) {
369 1 0 0 1   1454 if ($! =~ /Invalid/ || $!{EINVAL}) {
  1         1594  
  1         73  
  0         0  
370 0         0 $AutoLoader::AUTOLOAD = $AUTOLOAD;
371 0         0 goto &AutoLoader::AUTOLOAD;
372             }
373             else {
374 0         0 croak "Your vendor has not defined Solaris::Sysconf macro $constname";
375             }
376             }
377             {
378 1     1   8 no strict 'refs';
  1         2  
  1         164  
  2         3  
379             # Fixed between 5.005_53 and 5.005_61
380 2 50       7 if ($] >= 5.00561) {
381 2     2   15 *$AUTOLOAD = sub { $val };
  2         12  
382             }
383             else {
384 0     0   0 *$AUTOLOAD = sub { $val };
  0         0  
385             }
386             }
387 2         8 goto &$AUTOLOAD;
388             }
389              
390             bootstrap Solaris::Sysconf $VERSION;
391              
392             # Preloaded methods go here.
393              
394             # Autoload methods go after =cut, and are processed by the autosplit program.
395              
396             1;
397             __END__