Egyszeru kernel -modul (2.4.x)

Fórumok

Egyszeru kernel -modul (2.4.x)

Hozzászólások

Hello!
A kovetkezo temaban szeretnem a segitsegeteket kerni:
Egy egyszeru kernel modul fejlesztese kozben akadt nemi problema:
A modul a system -reboot(v. shut down) -t kesleltetne megadott itotartamig.

a 23. sorban levo fuggvenyhivas nem kesleltet megadott idotartamot.Miert?
Az egesz kodot az atlathatosag kedveert nem szurtam be,sztem igy is ertheto ...
OP : UHU Linux 1.1

[code:1:7accc1dfaa]
10 int sec;
14 asmlinkage int (*nanosleep_call)(struct timespec*, struct timespec* );
.....................................

16 asmlinkage long new_sys_reboot(int magic1, int magic2, unsigned int cmd, void * arg)
17 {
18 struct timespec req;
19 req.tv_sec = sec;
20 req.tv_nsec= 0;
21
22 printk("<1>""sec: %d\n", sec);//OK
23 nanosleep_call(&req, NULL);
24
25 printk("<1>""%s", "Bye bye...!\n");
26 original_sys_reboot(magic1, magic2, cmd, arg);
27 return 0;
28 }
.................................
34 int __init p() { nanosleep_call = sys_call_table[__NR_nanosleep]; return 0; }
.................................
49 MODULE_PARM(sec, "i");
......

[/code:1:7accc1dfaa]

Minden hozzaszolast es segitseget elore is koszonok!

elmagyarazod, miert kell ehhez kernel modul?

Nem a kernel modulban van a lenyeg,hanem a nanosleep() -ben!
Tudom,hogy siman meglehet oldani,pl: bash,de en arra vagyok kivancsi hogy miert nem mukodik a nanosleep().