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