Hi Ho Leute,
hab seit Längerem ein durchgehendes Problem in C, dass ich nicht gelöst bekomme.
Folgende Situation. Ich möchte eine eigene Struktur in einen Treiber einpflegen. Habe eine .h Datei und dort folgende Struktur eingetragen:
nun habe ich eine globale Struct-Variable in einer .c Datei erstellt mit:
Hab dort Stück für Stück über Malloc Speicher reserviert etc. Alles lief einwandfrei.
Nun brauche ich die gleiche globale Struct-Variable in einer anderen .c Datei. Jetzt habe ich gelesen das geht über das Schlüsselwort "extern"
Habs ausprobiert mit:
Kompiliert wird es problemlos. Auch der Treiber läuft, jedoch wenn ich in dieser 2. Datei auf den add_info Zeiger bspw. auf den Counter zugreifen will, um ihn zu inkrementieren. Dann wird es auch problemlos kompiliert, aber beim Laden des Modules kommt folgende Fehlermeldung in demsg:
oder das System hängt sich komplett auf. Wieso passiert sowas? Wie kann ich diese Fehlermeldung beheben?
Greetz
Euer HCWD
hab seit Längerem ein durchgehendes Problem in C, dass ich nicht gelöst bekomme.

Folgende Situation. Ich möchte eine eigene Struktur in einen Treiber einpflegen. Habe eine .h Datei und dort folgende Struktur eingetragen:
Code:
struct beacon_additional{
u_int8_t *info;
u_int8_t counter;
int info_len;
struct net_device * dev_add;
}
nun habe ich eine globale Struct-Variable in einer .c Datei erstellt mit:
Code:
struct beacon_additional *add_info;
Nun brauche ich die gleiche globale Struct-Variable in einer anderen .c Datei. Jetzt habe ich gelesen das geht über das Schlüsselwort "extern"
Habs ausprobiert mit:
Code:
extern struct beacon_additional *add_info;
Kompiliert wird es problemlos. Auch der Treiber läuft, jedoch wenn ich in dieser 2. Datei auf den add_info Zeiger bspw. auf den Counter zugreifen will, um ihn zu inkrementieren. Dann wird es auch problemlos kompiliert, aber beim Laden des Modules kommt folgende Fehlermeldung in demsg:
Code:
Unknown symbol add_info
oder das System hängt sich komplett auf. Wieso passiert sowas? Wie kann ich diese Fehlermeldung beheben?
Greetz
Euer HCWD