Moduloviny II.

Petr Snajdr snajdr na pvt.net
Pondělí Květen 4 16:45:47 CEST 1998


Dobry den,
	rozdisambloval jsem si jeden modul a ted se snazim
z nej neco ziskat. Zjistil jsem ovsem, ze mi chybi 
nektere zakladni znalosti a nebo si nejspise
 nektere veci vysvetluji nespravne. Rad bych se zeptal
na nekolik veci.

Netusite, kde najit nejaky uceleny popis AT&T syntaxe asm.
a instrukci i386 az Pentia?

Pokud jsem to dobre pochopil, je text modulu rozdelen do nekolika
sekci jako je treba init_module a cleanup_modul. Zajimalo by me, ktere
z nich jsou standardni tj. zda pouze tyto dve nebo jeste nejake dalsi?


Dalsi vec je pouziti instrukce "call". Napr. takto:

00000220 <DevIoctl>:

220:       83 ec 6c        subl   $0x6c,%esp
223:       55              pushl  %ebp
224:       57              pushl  %edi

[....]

294:       6a 14           pushl  $0x14
296:       55              pushl  %ebp
297:       6a 01           pushl  $0x1
299:       e8 fc ff ff ff  call   29a <DevIoctl+7a>
29e:       89 c1           movl   %eax,%ecx
2a0:       83 c4 0c        addl   $0xc,%esp
2a3:       85 c9           testl  %ecx,%ecx

Kam ten call bude smerovat?

No a posledni vec je PCI. Snazil jsem se to pochopit
ze zdrojaku jadra, ale nekam se mi nedari. Jak komunikuji
moduly primo s HW pres PCI? Mam v tom porad trochu zmatek.
Ten modul evidentne nepristupuje na zadny port a nejspis
vypouziva nejakeho mapovani primo do pameti. co mohou
znamenat adresy 0xfffffffa, 0xfffff000, 0xfffffffc apod.
Myslite, ze by to mohlo byt ono?

Dekuji za pomoc a jakekoliv pripominky

S pozdravem
    Petr Snajdr


Další informace o konferenci Linux