Re: Software Interrupt aufrufen

From: Marc Santhoff <M.Santhoff(at)t-online.de>
Date: Thu, 10 Feb 2005 23:50:56 +0100

Am Do, den 10.02.2005 schrieb Bernd Walter um 14:51:
> On Thu, Feb 10, 2005 at 02:13:06PM +0100, Marc Santhoff wrote:
> > Am Do, den 10.02.2005 schrieb Bernd Walter um 12:28:
> > > On Thu, Feb 10, 2005 at 09:08:11AM +0100, Marc Santhoff wrote:
> > > > Hi,
> > > >
> > > > gibt es unter FreeBSD die Möglichkeit, einen Software-Interrupt
> > > > auszulösen?
> > >
> > > Jeder syscall macht das.
> >
> > Schau an. Irgendwo in sys/sys/kern nehme ich an?
>
> Nichts ganz - ist ja i386 spezifisch - andere CPUs haben leicht andere
> Arten.
> Es gibt eines syscalls.master aus denen dann der Platform spezifische
> Kram gebaut wird.
> Und in der libc ist dann das Gegenstück zum aufrufen.
>
> > > > Ich habe hier ein Beipielprogramm für DOS (ja, wirklich ;) von dem ich
> > > > Teile gern portieren würde. Benutzt wird der Kram dazu, eine
> > > > BIOS-Erweiterung auf einem CPU-Board anzusteuern.
> > >
> > > Das ist was anderes, da erst mal alles fürs BIOS passend umgebogen
> > > werden muss.
> > > Das BIOS darf auch nichts böses machen.
> >
> > Nee, ist 'ne BIOS-Erweiterung des Herstellers, die Hardwareinfo
> > zurückgibt (z.B. die Seriennummer ;).
>
> OK - sollte wenig Ärger machen.
> Wobei sich die Frage stellt, ob man nicht auch anders dran kommt.
> Letzlich ist das BIOS auch nur Software die einen Hardwarezugriff
> macht.

Versuche ich gerade rauszufinden, es gibt sonst nur noch eine Linux-lib
mit vorkompiliern .o's ... im höchstens Fall könnte man dageben linken,
so wie es im Treiber für die OnBoard-Netzwerkkarte des nVidia-Chipsatzes
gemacht wird (müßte port/net/nvnet sein).

Aber wo ich das hier schreibe fällt mir ein: lohnt sich ein Versuch,
einfach ein Linux-binary gegen diese lib zu linken und im "Emulator"
laufen zu lassen? Der Treiber ist immer noch für den kernel, das könnte
Probleme geben ...

> > > Im Kernel gibt es dafür die vm86_intcall() Funktion und im Userland
> > > die i386_vm86().
> >
> > Die Userlandfunktion habe ich gefunden (reicht auch, soll so gemacht
> > werden), die andere hat ausnahmsweise keine manpage.
> >
> > Aber nun ist mir natürlich erstmal unklar, wie ich die benutze. Gibt es
> > eine beispielhafte Quelle, die ich mir anschauen kann (auch im kernel,
> > wenn's ähnlich genug ist)?
>
> Leider nicht - bislang noch nicht gebraucht.
> Das vesa Modul nutzt wohl die Kernel Variante, aber ob man das
> übertragen kann...

Das ist schade. Weißt Du, wen man danach fragen kann? Meine Kenntnisse
den FreeBSD-kernel betreffend sind leider nicht ausreichend.

Die Quelle sagt: "Copyright (c) 1998 Jonathan Lemon" und die manpage ist
auch von ihm ... ach ja:

$FreeBSD: src/lib/libc/i386/sys/i386_vm86.c,v 1.3 1999/09/02 21:03:32
luoqi Exp $

Nur 'ne E-Mail Adresse fehlt dann noch.

Grüße und Danke,
Marc

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 10 Feb 2005 - 23:55:29 CET

search this site