Kann sich das jemand erklären?

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Torsten
Beiträge: 384
Registriert: 24.09.2002 22:51:07
Kontaktdaten:

Kann sich das jemand erklären?

Beitrag von Torsten » 29.11.2003 02:20:51

Moinsen Leute,

ist eventuell eine etwas spezielle Frage, doch ich stelle jene einfach mal.

Und zwar habe ich einen Treiber für eine digitale I/O Karte geschrieben, welcher Signale via MessageQueue an ein mögliches user-Programm übergibt (also nicht der übliche Weg via "signal").
Dazu besteht die Notwendigkeit, dass das user-Programm dem Modul selbst einen Pointer aus dem userspace übergibt, an dessen Stelle dann das Modul über die MessageQueue die jeweilige Nachricht schreiben kann. Dies geschieht über ioctl.
OK, alles kein Thema - klappt bestens.
Aus Langeweile habe ich mir nun mal die Adressen des Pointers im userspace und im kernelspace ausgeben lassen (printf/printk). Und siehe da - die Adressen unterscheiden sich immer um genau 30h.
WIESO zum Henker? Ist das ein Fehler von printf(), respektive printk()?
Ich kann es mir nicht erklären. Zumal eine Ausgabe eines übergebenen Characters in beiden Fällen absolut identsich ist. Das bedeutet also, dass beide Adressen eigentlich gleich sind. Jedoch sagt die Ausgabe der Adressen was anderes.

Grüße

Torsten

Torsten
Beiträge: 384
Registriert: 24.09.2002 22:51:07
Kontaktdaten:

Beitrag von Torsten » 02.01.2004 21:13:42

OK, ich beantworte meine Frage mal selbst.

Scheiss drauf - nimm Dir lieber noch ein Bier aus dem Kühlschrank.

OK, besten Dank für die Antwort.

Klar, kein Ding. Gerne doch.

;-)

Antworten