> 2.2.18 si e definita la linia 374 - dar din cite am reusit sa-mi dau
> seama e folosita pentru toate variabilele din interfata sysctl. deci
> daca as umbla la ea as face rw si alte variabile care ar trebui sa ramina
> batute in cuie sau modificabile numai de catre kernel. oricum, nu-s eu
> expertul in surse de kernel asa ca mai astept sugestii.
> multumesc oricum.
Hai sa nu ne dam batuti chiar asa usor.
Deci procedura e cam urmatoarea (e ptr 2.4.1 da cred ca merge si ptr ale
kernele):
1. Inregistrezi 2 variabile (de tip int, `hack_uptime' si `hack_idle')
ptr /proc/sys/kernel:
- in ``linux/include/linux/sysctl.h'' adaugi numerele de inregistrare
KERN_HACK_UPTIME=50, /* int uptime hack */
KERN_HACK_IDLE=51 /* int idle hack */
(te uiti si tu sa vezi pe unde incepe struct aia cu KERN_blabla)
- in ``linux/kernel/sysctl.c'' adaugi efectiv
{KERN_HACK_UPTIME, "hack_uptime", &hack_uptime, sizeof (int),
0644, NULL, &proc_dointvec},
{KERN_HACK_IDLE, "hack_idle", &hack_idle, sizeof (int),
0644, NULL, &proc_dointvec},
(iar te uiti si tu p`acolo si ai sa`ti dai seama unde sa le adaugi,
mai mult ca sigur)
Aceasta iti va crea 2 fisiere rw : ``/proc/sys/kernel/hack_uptime'' si
``/proc/sys/kernel/hack_idle'' care corespund in kernel-space la
``hack_uptime'' si ``hack_idle'' variabile de tip int pe care trebuie sa
le declari ptr compilator. Deci pune in
``linux/kernel/sysctl.c'' la inceput si declaratiile
extern int hack_uptime;
extern int hack_idle;
2. Bun acuma nu mai ramane decat sa hack`uim functia care furnizeaza
`/proc/uptime'' pe baza acestor variabile. Aceasta se afla in
``linux/fs/proc/proc_misc.c'' static int uptime_read_proc(bla, bla, ...)
ideea e sa modifici variabila ``page'' deci hack`uieste linia aia cu
sprintf
De ex:
len = sprintf (page, "%lu.%02lu %lu.%02lu\n",
hack_uptime / HZ,
hack_uptime % HZ,
hack_idle / HZ,
hack_idle % HZ);
A! Si nu uita sa declari/creezi variabilele folosite. Pune la
inceputul fis
int hack_uptime = 1000;
int hack_idle = 1000;
Gata. Compileaza, bla, bla si
si da apoi niste
echo "$MY_UPTIME" > /proc/sys/kernel/hack_uptime
echo "$MY_IDLE" > /proc/sys/kernel/hack_idle
si apoi uita`te in /proc/uptime.
Bine, ca sta n`ar fi de ajuns. Programul ``/usr/bin/uptime''
foloseste si /proc/loadavg deci trebuie sa mai hack`uiesti cate ceva si
p`aici, dc te intereseaza ... Asta se face analog [functia ``static int
loadavg_read_proc(bla...)'' din acelasi ``linux/fs/proc/proc_misc.c'']
PS. Daca vrei un patch ptr 2.4.1 ti`l pot trimite pe personala.
Happy hacking!
Bogdan M.
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
unsubscribe from this list.