Ravenports generated: 06 Jan 2024 17:04
[ravenports.git] / bucket_FD / perl-Sys-MemInfo
1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
2
3 NAMEBASE=               perl-Sys-MemInfo
4 VERSION=                0.99
5 KEYWORDS=               perl
6 VARIANTS=               536 538
7 SDESC[536]=             Returns free and used physical memory (5.36)
8 SDESC[538]=             Returns free and used physical memory (5.38)
9 HOMEPAGE=               none
10 CONTACT=                Perl_Automaton[perl@ironwolf.systems]
11
12 DOWNLOAD_GROUPS=        main
13 SITES[main]=            CPAN/ID:S/SC/SCRESTO
14 DISTFILE[1]=            Sys-MemInfo-0.99.tar.gz:main
15 DF_INDEX=               1
16 SPKGS[536]=             single
17 SPKGS[538]=             single
18
19 OPTIONS_AVAILABLE=      PERL_536 PERL_538
20 OPTIONS_STANDARD=       none
21 VOPTS[536]=             PERL_536=ON PERL_538=OFF
22 VOPTS[538]=             PERL_536=OFF PERL_538=ON
23
24 DISTNAME=               Sys-MemInfo-0.99
25
26 GENERATED=              yes
27
28 SINGLE_JOB=             yes
29
30 [PERL_536].USES_ON=                     perl:536,configure
31
32 [PERL_538].USES_ON=                     perl:538,configure
33
34 [FILE:351:descriptions/desc.single]
35 This module return the total amount of free and used physical memory
36 in bytes in totalmem and freemem variables.
37
38 This module has been tested on Linux 3.13.0, UnixWare 7.1.2, AIX5,
39 OpenBSD 3.8, NetBSD 2.0.2, FreBSD 5.4, HPUX11, Solaris 9, Tru64 5.1,
40 Irix 6.5, MacOS X 10.2 and Windows XP.
41
42 It should work on FreeBSD 4 and Windows 9X/ME/NT/200X/Vista.
43
44
45 [FILE:102:distinfo]
46 0786319d3a3a8bae5d727939244bf17e140b714f52734d5e9f627203e4cf3e3b        13276 Sys-MemInfo-0.99.tar.gz
47
48
49 [FILE:749:patches/patch-Makefile.PL]
50 --- Makefile.PL.orig    2016-10-14 00:11:59 UTC
51 +++ Makefile.PL
52 @@ -26,6 +26,10 @@ for ($^O) {
53    } elsif (/solaris/) {
54      copy ('arch/solaris.xs', 'MemInfo.xs');
55      print "Sys::MemInfo for Solaris\n";
56 +  } elsif (/midnight/) {
57 +    copy ('arch/freebsd.xs', 'MemInfo.xs');
58 +    $define = '-DFREEBSD5';
59 +    print "Sys::MemInfo for MidnightBSD\n";
60    } elsif (/freebsd/) {
61      copy ('arch/freebsd.xs', 'MemInfo.xs');
62      $kver = `uname -r`;
63 @@ -36,6 +40,9 @@ for ($^O) {
64      } else {
65        print "Sys::MemInfo for FreeBSD 4 and lower\n";
66      }
67 +  } elsif (/dragonfly/) {
68 +    copy ('arch/dragonfly.xs', 'MemInfo.xs');
69 +    print "Sys::MemInfo for DragonFly\n";
70    } elsif (/bsd/) {
71      copy ('arch/bsd.xs', 'MemInfo.xs');
72      if (/netbsd/) {
73
74
75 [FILE:372:patches/patch-arch_bsd.xs]
76 $NetBSD: patch-arch_bsd.xs,v 1.1 2021/12/18 15:07:01 prlw1 Exp $
77
78 UVM appeared since NetBSD 2.0.2.
79
80 --- arch/bsd.xs.orig    2006-09-16 14:32:56.000000000 +0000
81 +++ arch/bsd.xs
82 @@ -8,6 +8,9 @@ MODULE = Sys::MemInfo PACKAGE = Sys::Mem
83  #include <stdio.h>
84  #include <sys/param.h>
85  #include <sys/sysctl.h>
86 +#ifdef NETBSD
87 +#include <uvm/uvm_extern.h>
88 +#endif
89  
90  void
91  availkeys()
92
93
94 [FILE:2422:patches/patch-arch_dragonfly.xs]
95 --- /dev/null   2015-12-12 12:33:16.341252360 +0200
96 +++ arch/dragonfly.xs
97 @@ -0,0 +1,110 @@
98 +#include "EXTERN.h"
99 +#include "perl.h"
100 +#include "XSUB.h"
101 +
102 +MODULE = Sys::MemInfo PACKAGE = Sys::MemInfo
103 +
104 +#include "arch/functions.h"
105 +#include <stdio.h>
106 +#include <unistd.h>
107 +#include <sys/param.h>
108 +#include <sys/sysctl.h>
109 +#include <vm/vm_param.h>
110 +
111 +void
112 +availkeys()
113 +       PREINIT:
114 +       PPCODE:
115 +                XPUSHs(sv_2mortal(newSVpv(_totalmem, strlen(_totalmem))));
116 +                XPUSHs(sv_2mortal(newSVpv(_freemem, strlen(_freemem))));
117 +                XPUSHs(sv_2mortal(newSVpv(_totalswap, strlen(_totalswap))));
118 +                XPUSHs(sv_2mortal(newSVpv(_freeswap, strlen(_freeswap))));
119 +
120 +double
121 +totalmem()
122 +       PROTOTYPE: DISABLE
123 +       CODE:
124 +               unsigned long long ret = 0;
125 +               size_t len = sizeof (ret);
126 +               static int mib[2] = { CTL_HW, HW_PHYSMEM };
127 +
128 +               if (sysctl (mib, 2, &ret, &len, NULL, 0) != -1) {
129 +                       RETVAL = (double) (ret);
130 +               } else {
131 +                       RETVAL = 0;
132 +               }
133 +       OUTPUT:
134 +               RETVAL
135 +               
136 +
137 +double
138 +freemem()
139 +       PROTOTYPE: DISABLE
140 +       CODE:
141 +               double ret= 0;
142 +               u_int fmem = 0;
143 +               size_t len = sizeof (fmem);
144 +               static int pagesize = 0;
145 +
146 +               if (!pagesize) pagesize = getpagesize();
147 +
148 +               if (sysctlbyname("vm.stats.vm.v_free_count", &fmem, &len, NULL, 0) != -1) {
149 +                       ret = (double) (fmem);
150 +                       ret *= pagesize;
151 +               }
152 +
153 +               RETVAL = ret;
154 +       OUTPUT:
155 +               RETVAL
156 +
157 +double
158 +totalswap()
159 +       PROTOTYPE: DISABLE
160 +       CODE:
161 +               double ret= 0;
162 +               int free_swap = 0;
163 +               int sused_anon = 0;
164 +               int sused_cache = 0;
165 +               size_t len = sizeof (free_swap);
166 +               static int pagesize = 0;
167 +
168 +               if (!pagesize) pagesize = getpagesize();
169 +
170 +               if (sysctlbyname("vm.swap_size", &free_swap, &len, NULL, 0) != -1) {
171 +                       ret = (double) (free_swap);
172 +               }
173 +               if (sysctlbyname("vm.swap_anon_use", &sused_anon, &len, NULL, 0) != -1) {
174 +                       ret += (double) (sused_anon);
175 +               }
176 +               if (sysctlbyname("vm.swap_cache_use", &sused_cache, &len, NULL, 0) != -1) {
177 +                       ret += (double) (sused_cache);
178 +               }
179 +
180 +               ret *= pagesize;
181 +
182 +               RETVAL = ret;
183 +       OUTPUT:
184 +               RETVAL
185 +
186 +double
187 +freeswap()
188 +       PROTOTYPE: DISABLE
189 +       CODE:
190 +               double ret= 0;
191 +               int free_swap = 0;
192 +               size_t len = sizeof (free_swap);
193 +               static int pagesize = 0;
194 +
195 +               if (!pagesize) pagesize = getpagesize();
196 +
197 +               if (sysctlbyname("vm.swap_size", &free_swap, &len, NULL, 0) != -1) {
198 +                       ret = (double) (free_swap);
199 +               }
200 +
201 +               ret *= pagesize;
202 +
203 +               RETVAL = ret;
204 +       OUTPUT:
205 +               RETVAL
206 +
207 +# vim:et:ts=2:sts=2:sw=2
208