Re: segmentierte Addressierung

From: Marc Santhoff <M.Santhoff(at)t-online.de>
Date: Mon, 14 Feb 2005 18:18:28 +0100

Am Mo, den 14.02.2005 schrieb Oliver Fromme um 15:14:
[...]
>
> Nö, syscall und sysctl sind verschiedene Dinge. In Deinem
> Fall ist beides möglich; insgesamt dürfte der Aufwand in
> etwa der gleiche sein. Mit einem sysctl bist Du aber etwas
> flexibler.
>
> Bei einem syscall müßtest Du in der Tat einen Eintrag in
> syscalls.master machen; daraus werden dann verschiedene
> andere Dinge generiert. Außerdem brauchst Du dann eine
> Stub-Funktion in der libc, über die Du den syscall vom
> Userland aus aufrufen kannst. Wie das genau geht, guckst
> Du Dir einfach bei einem bestehenden syscall ab, der einen
> String ins Userland zurückliefert, z.B. readlink(2) oder
> getlogin_r(2). Anschließend kannst Du ein kleines User-
> land-Programm schreiben, das Deinen neuen syscall aufruft
> und den String nach stdout ausgibt.
>
> Wenn Du es dagegen per sysctl machen willst, brauchst Du
> keinen neuen syscall. Du brauchst auch nicht unbedingt ein
> Userland-Programm, weil man den String bereits mit dem vor-
> handenen sysctl(8)-Tool abfragen kann.

Ich hab' mir diese Lösung angesehen und gebe Dir recht: so hat man
wirklich den geringsten Aufwand.

> Für die Definition von sysctls gibt es schon eine Reihe von
> fertigen Makros. Du müßtest mit SYSCTL_OID einen readonly-
> sysctl definieren und einen eigenen String-Handler schreiben
> (bei sysctl_handle_string() abgucken). Dieser Handler würde
> dann Deine BIOS-Funktion aufrufen.

Flott geschrieben ist es auch, nur wie bringe ich dem Build-Mechanismus
bei, die neue Quelltextdatei auch zu berücksichtigen? Will sagen, in
welches Makefile muß ich es eintragen?

Gruß,
Marc

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 14 Feb 2005 - 18:19:09 CET

search this site