//------------------------------------------------------------------- // jiffies.c // // Este móludo sencillo crea un 'pseudo' archivo (denominado 'jiffies') // en el directorio del sistema '/proc'. Entonces un usuario puede mirar // el valor actual de la variable global del kernel 'jiffies' // sólo tecleando el comando: // // #cat /proc/jiffies // // 'jiffies' es una variable global del kernel (utilizada por el scheduler). // Se inicializa a cero (0), cuando el sistema se arranca (reboota). // Almacena el número de TICKS (clock-ticks) transcurridos desde que el sistema // se arrancó. // Se incrementa cuando ocurre una interrupción timer (cada 10 milisegundos). // Ya que (unsigned long int jiffies;) es una variable entera de 32 bits // => 0..497 días. // 'tick-frecuency' depende de la arquitectura. //------------------------------------------------------------------- #include // for init_module() #include // for create_proc_info_entry() static char modname[] = "jiffies"; static int my_get_info( char *buf, char **start, off_t off, int count ) { int len; len = 0; len += sprintf( buf+len, " jiffies = %lu ", jiffies ); len += sprintf( buf+len, "\n" ); return len; } int init_module( void ) { printk( "<1>\nInstalling \'%s\' module\n", modname ); create_proc_info_entry( modname, 0, NULL, my_get_info ); return 0; //SUCCESS } void cleanup_module( void ) { remove_proc_entry( modname, NULL ); printk( "<1>Removing \'%s\' module\n", modname ); } MODULE_LICENSE("GPL");