linux-l: modules und kernelvariablen
Martin Grimsehl
grimsehl at cs.tu-berlin.de
Mo Mai 4 23:09:57 CEST 1998
> > ich moechte von einem kernelmodul auf
> > die datenstruktur struct proto tcp_prot zugreifen,
> > die im kernel global definiert ist.
> >
> > kernelhacker: wie macht man sowas?
>
> Vielleicht net/tcp.h in Deinem Modul includieren? In der
> Header Datei ist extern struct proto tcp_prot; deklariert.
das kann aber insmod nicht resolvieren, da "tcp_prot" nicht
in den /proc/ksyms zu finden ist (da stehen nur funktionen-
warum eigendlich?)
also: das sollte doch zumindest mit trix moeglich sein...
(z.B. mit komplizierten (?) berechnungen mit System.map)
#include <...>
extern struct proto tcp_prot;
int init_module(void) {
printk(KERN_INFO "%p\n", tcp_prot.sklist_next);
return -EIO;
}
void cleanup_module(void) {
printk(KERN_INFO "tschau\n");
}
# cc -Wall -D__KERNEL__ -DLINUX -DMODULE -I/usr/src/linux/include
-c test_tcp.c -o test_tcp.o
# insmod test_tcp.o
test_tcp.o: unresolved symbol tcp_prot
Mehr Informationen über die Mailingliste linux-l