Kernel Module mit newbus - wie geht's?

From: Alexander Langer <alex(at)big.endian.de>
Date: Wed, 16 Feb 2000 19:36:20 +0100

Hallo!

In Anbetracht der Tatsache, dass dieses eine -hackers ist, und doch
viele Leute mitlesen, die Ahnung haben:

Wenn man einen Device-Treiber schreiben moechte?
Wie laeuft das ab?

Ich hab mir mal einige Kernel-Module angesehn, und was ich da so
gesehen habe, sieht es so aus, als ob man kernel-module neu kompileren
und laden/unladen, und bei jedem laden wird die Hardware neu erkannt.

So z.B. mit den bktr-Modulen.

Nehmen wir an, das moechte ich auch, schon aus dem Grund, es
ersteinmal zu testen, bevor ich den Kernel damit zumuelle :)

Also. Leider finde ich fast keine Infos dazu. www.freebsd.org ist
natuelrich momentan bei der Suchmachine kaputt :-(

Also habe ich mal gedacht, siehst Du Dir ein paar andere Module an.
z.b. mal das xl-Modul oder das bktr Modul.

Was ich so rausgefunden habe:

Man muss so etwas wie:

static device_method_t zivads_methods[] = {
    /* interface */
    DEVMETHOD(device_identify, zivads_identify),
    DEVMETHOD(device_probe, zivads_probe),
    DEVMETHOD(device_attach, zivads_attach),
    { 0, 0 }
};

machen, und dann die Funktionen dafuer bereitlegen.

Leider weiss ich nicht, wie DEVMETHOD richtig anzuwenden ist.
Es scheitert schon an den Headerfiles, denn DEVMETHOD scheint zu
'device_identify_desc' zu expanden, was ich nirgendwo finden kann.

Und hier stehe ich schon am Ende.

Kann mir mal jemand erzaehlen, wie so etwas wohl geht?
Oder ne schoene Doku zeigen, wo das steht?
Oder einen extra-super-simpel device-treiber, der das macht, und der
auch ioctl's behandelt?

Das Problem ist einfach, dass ich ein leeres Modul machen kann, das
wunderbar geladen wird (touch modulname.c), aber danach ist das Modul
geladen und macht nix mehr.

Das gefaellt mir nicht, so eine Ahnungslosigkeit :)

Wenn ich die bloede Karte erstmal erkannt habe (uebrigens PCI), dann
ist das ganze nicht mehr schwer, denn es gibt bereits einen
Linux-Treiber, an dem man abgucken kann.

Danke schonmal,

Alex (zu dumm)

-- 
I need a new ~/.sig.
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-hackers" in the body of the message
Received on Wed 16 Feb 2000 - 19:34:17 CET

search this site