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