SOURCES (AC-branch): swapd-meminfo_2.6.patch (NEW) - initial, from...

undefine undefine at pld-linux.org
Mon Jan 1 22:23:18 CET 2007


Author: undefine                     Date: Mon Jan  1 21:23:18 2007 GMT
Module: SOURCES                       Tag: AC-branch
---- Log message:
- initial, from debian

---- Files affected:
SOURCES:
   swapd-meminfo_2.6.patch (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/swapd-meminfo_2.6.patch
diff -u /dev/null SOURCES/swapd-meminfo_2.6.patch:1.1.2.1
--- /dev/null	Mon Jan  1 22:23:18 2007
+++ SOURCES/swapd-meminfo_2.6.patch	Mon Jan  1 22:23:13 2007
@@ -0,0 +1,98 @@
+--- swapd-0.2.orig/meminfo.c
++++ swapd-0.2/meminfo.c
+@@ -1,4 +1,7 @@
+ /* meminfo.c, copyright Neven Lovric <nlovric at linux.hr> */
++/* Integrated patches from Nick Holloway <Nick.Holloway at alfie.demon.co.uk>
++   by Aigars Mahinovs <aigarius at debian.org> 
++*/
+ 
+ #include <stdio.h>
+ #include <sys/types.h>
+@@ -11,6 +14,7 @@
+ #include <sys/mman.h>
+ #include "meminfo.h"
+ 
++/* Old version (bad for 2.5 kernels
+ unsigned long freemem(int fd)
+ {
+    unsigned long mem, swap;
+@@ -20,7 +24,78 @@
+       return(UINT_MAX);
+    if (read(fd, buf, 1024) == -1)
+       return(UINT_MAX);
++      
++   
++
+    if (sscanf(buf, "%*s%*s%*s%*s%*s%*s%*s%*s%*s%lu%*s%*s%*s%*s%*s%*s%lu", &mem, &swap) != 2)
+       return(UINT_MAX);
+    return(mem + swap);
+ }
++*/
++
++unsigned long freemem(int fd)
++{
++/*    static  int     fd	= -1;*/		/* fd to read meminfo from */
++    static  char    buffer [ 10240 ];	/* enough to slurp meminfo into */
++    char   *cp;
++    long    memfree, buffers, cached, swapfree;
++    int     n;
++
++    if ( fd < 0 ) {
++        fd = open ( "/proc/meminfo", O_RDONLY );
++        if ( fd < 0 ) {
++        /*syslog ( LOG_ERR, "can't open \"/proc/meminfo\": %m" );*/
++            exit ( UINT_MAX );
++    }
++    }
++
++    if ( lseek ( fd, 0, SEEK_SET ) == EOF ) {
++        /*syslog ( LOG_ERR, "lseek failed on \"/proc/meminfo\": %m" );*/
++        exit ( UINT_MAX );
++    }
++    if ( ( n = read ( fd, buffer, sizeof(buffer)-1 ) ) < 0 ) {
++    /*syslog ( LOG_ERR, "read failed on \"/proc/meminfo\": %m" );*/
++    exit ( UINT_MAX );
++    }
++    buffer[n] = '\0';				/* null terminate */
++
++    memfree = -1;
++    buffers = 0;
++    cached  = 0;
++    swapfree = 0;
++
++    cp = buffer;
++    while ( cp )
++    {
++    if ( strncmp( cp, "MemFree:", 8 ) == 0 )
++    {
++        memfree = atol( cp+9 ) * 1024;
++        /*printf( "MemFree: %ld\n", memfree );*/
++    }
++    else if ( strncmp( cp, "Buffers:", 8 ) == 0 )
++    {
++        buffers = atol( cp+9 ) * 1024;
++        /*printf( "Buffers: %ld\n", buffers );*/
++    }
++    else if ( strncmp( cp, "Cached:", 7 ) == 0 )
++    {
++        cached = atol( cp+8 ) * 1024;
++        /*printf( "Cached: %ld\n", cached );*/
++    }
++    else if ( strncmp( cp, "SwapFree:", 9 ) == 0 )
++    {
++        swapfree = atol( cp+10 ) * 1024;
++	/*printf( "SwapFree: %ld\n", swapfree );*/
++    }
++
++    /* move onto next line */
++    cp = strchr( cp, '\n' );
++    if ( cp )
++    {
++        cp++;
++    }
++    }
++
++    return ( memfree + swapfree + ( buffers + cached ) / 2 );
++}
++																																																				
+\ No newline at end of file
================================================================


More information about the pld-cvs-commit mailing list