🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #178

int 80h w modułach jądra 2.4

#178
From: Bogdan (bogdro)
Date: Sun, 02 Apr 2006 14:34
51 lines
2578 bytes
 Witam.

 Zabrałem się właśnie za zabawę z modułami jądra Linuksa. Na pierwszy
ogień poszło jądro 2.4, bo łatwe :). Poza tym, że NASMowe moduły nie
chcą się ładować, mam gorszy problem. Mianowicie, chcę w czasie
ładowania modułu wywołać sys_mknod do utworzenia urządzenia znakowego:

S_IFCHR		= 20000o
sys_mknod	= 14


	makedev24	[major], 0
	mov	eax, sys_mknod
	mov	ebx, sciezka
	mov	ecx, S_IFCHR or 666o
	int	80h

[major] zawiera numer główny urządzenia (przydzielony przez
register_chrdev), numer poboczny biorę 0. Makro makedev działa tak:

macro	makedev24	maj, min
{
	xor	esi, esi
	mov	edx, maj
	shl	edx, 8
	or	edx, min
}

Rzecz w tym, że kod ten w osobnym normalnym programie, uruchamianym
jako root, działa. Urządzenie się tworzy (tylko prawa ma 644, ale to
pewnie kwestia umask) i ma podane przeze mnie numer główny i poboczny.
Natomiast w module mknod() ciągle zwraca -14 (EFAULT, zły adres). Zmienna

sciezka		db	"/dev/test00", 0

jest w sekcji zapisywalnych danych, przenoszenie do sekcji kodu nie
pomaga.

 Cały kod to żadna tajemnica (oba w składni FASM):
Moduł: http://rudy.mif.pg.gda.pl/~bogdro/modul_dev_fasm.asm
Tester (działa): http://rudy.mif.pg.gda.pl/~bogdro/test_mknod24.asm

 Jeśli to skończę, to wyląduje w moim kursie, bo po to (i dla siebie)
to robię. Tylko właśnie ten "drobiazg" mi nie działa. Spotkał się ktoś
z czymś takim?

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Prawdziwy, bezpieczny komunikator:                   www.JabberPL.org
Technical Details
Message-ID: <e0ondi$iu6$1@atlantis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: "Bogdan (bogdro)" <bogdan@bogdan.pl>
Newsgroups: pl.comp.lang.asm
Subject: int 80h w modułach jądra 2.4
Date: Sun, 02 Apr 2006 16:34:02 +0200
Organization: tp.internet - http://www.tpi.pl/
Lines: 51
Message-ID: <e0ondi$iu6$1@atlantis.news.tpi.pl>
NNTP-Posting-Host: acsy205.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1143988466 19398 83.11.52.205 (2 Apr 2006 14:34:26 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Sun, 2 Apr 2006 14:34:26 +0000 (UTC)
User-Agent: Thunderbird 1.5 (X11/20051201)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit