El asm es más que nada para la prueba de concepto.
/*--------------------------------------------
Autor: NvK
Descripción: Conseguir las paginas físicas disponibles.
Fecha: 4-1-2014
----------------------------------------------*/
static unsigned long get_available_ram_pages()
{
typeof(totalram_pages) *av_ram;
asm __volatile__ (
"mov %%eax, %0;"
:"=r"(av_ram)
:"r"(totalram_pages)
);
return (av_ram);
}
Ejemplo:
#include <linux/swap.h>
...
printk(KERN_ALERT"memoria ram disponible : %lu\n", get_available_ram_pages() );
NOTA:véase como incluyo swap.h en el header (necesario para ésta información)