Re: Linux mmap(90)/FBIOWAITRETRACE



Stefan Reuther schrieb:
> Dirk Wolfgang Glomp <dirk@xxxxxxxxxxxxxxxxxxx> wrote:
[syscalls]
>>>Woher eigentlich? Dort[tm] sollte dann auch beschrieben sein, wo der
>>>Unterschied ist.
>>
>>http://members.bsn1.net/jko@xxxxxxxxxxxx/asm/
>
> Das ist eine Seite mit massig Links, die selbst nichts aussagt,
> was ich auf die Schnelle finden kann.

AsmIDE-0.9.12.tar.gz.tar->AsmIDE-0.9.12.tar->asmide/doc/

>>Wie viele verschiedene Aufrufvarianten gibt es denn da,
>>unter den verschiedenen Unixen, mal so grob geschätzt?
>
> Keine Ahnung. Die *BSDs dürften untereinander ähnlich sein, aber
> dann gibt's ja noch Solaris, Xenix, Minix, und demnächst Darwin.
> Minix scheint z.B. int 21h oder 20h zu nehmen (selbstverständlich
> *nicht* so belegt wie in DOS).

Also eine Hand voll.

>>Unterscheiden sich auch hierbei einige Windows(32-Bit),
>>bei diesen Kerneintritten?
>
> Selbstverständlich. Schon, weil Win95 keine ntdll hat. Und Win32s
> hat nichtmal eine native kernel32.

Ah, aber ab 2K ist dann alles gleich.

> Das Hauptargument für mich wäre, dass ich mit der libc ein
> dokumentiertes Interface habe, und mir nicht die Funktionsnummern
> und Parameter aus Kernelheadern klauben muss.

mhm

>>So habe ich z.B. auch schon auf spezielle GraKa-Register(ET4000)
>>direckt zugegriffen, auch wenn die betreffende Anwendung
>>halt nur mit so einer ET4000-GraKa Sinn macht.
>>Aber nur weil andere GraKas hier andere Ports haben,
>>mache ich doch diese Anwendung nicht künstlich langsamer,
>>um mit diesen GraKas kompatibel zu sein.
>
> Der Vergleich hinkt.
> # * The few instructions added by the libc can be a ridiculously small
> # speed overhead as compared to the cost of a system call. If speed
> # is a concern, your main problem is in your usage of system calls,
> # not in their wrapper's implementation.
> (Linux-Assembly-HOWTO)

Aber nur ein bischen,
denn soviel overhead hat das GraKa-Bios nun auch nicht überall,
wenn man mal den Pixelsetzer ausser Betracht läßt.

>>[Linux-Framebuffer und Rasterstrahl]
>>Momentan suche ich mir gerade alles zusammen,
>>um den Rasterstahl abzufragen, denn es flimmert mir zu arg.
>>Eine direckte Port-Abfrage(3DAh) geht wohl unter Linux nicht.
>
> man ioperm
> man iopl

Oh, hier darf man ja doch auf Ports zugreifen,
leider nur als root.

mov eax, 101 ; ioperm
mov ebx, 3DAh
mov ecx, 1
mov edx, turn_on
int 80h

Lange gesucht und nicht gefunden:
Welchen Wert hat nun wieder "turn_on"?

> ...wenn's denn direkt sein muss.

....wäre schon nicht schlecht.

>>Aber welchen ioctl nehme ich nun:
>>
>>%define FBIOGET_VBLANK ?? ; ermitteln der aktullen Rasterstrahl-Position
>
> Man schaut in seine üppige Bibliothek an C-Quellen und findet dort
> die libSDL.

Finde ich nicht.

Der Framebuffer-Treiber liegt in src/video/fbcon.

....finde ich.


> static void FB_WaitVBL(_THIS)
> {
> #ifdef FBIOWAITRETRACE /* Heheh, this didn't make it into the main kernel */
> ioctl(console_fd, FBIOWAITRETRACE, 0);
> #endif
> return;
> }

Konnte ich auch nicht finden.

> Offenbar hat nicht jeder Kernel FBIOWAITRETRACE (meiner hats nicht).

mhm

> Die svgalib pollt in dem Fall ganz einfach die üblichen
> VGA-Register.

/src/linux.../drivers/video/vga.h

/* VGA data register ports */
....
#define VGA_IS1_RC 0x3DA /* Input Status Register */
....

> [ioctl]
>
>>Was muß nach ecx(request) rein und was nach argp?
>>
>>Und wie schaut der Rückgabewert aus?
>
> Wenn du weder Doku, noch Beispielcode hast, bleibt nur Kernelquellen
> lesen. Das ist leider typisch für ioctl.

....grausam.

>>Verzögert so ein ioctl-syscall nicht,
>>das hiermit eine Rasterstrahl-Abfrage noch Sinn macht?
>
> Wenn dein Rechner Mühe hat, 75 ioctl-Aufrufe pro Sekunde durchführen
> zu können,

....keine Ahnung.

Wieso 75?

> solltest du über ein Prozessorupgrade nachdenken :-)

Das betreffende ASUS-Socket7-MoBo(ALI-Chipsatz),
hat schon den K6-2@550mhz drin.
Ich schätze das dürfte doch reichen.

Dirk
.



Relevant Pages

  • Re: Mit Windows98 sicher im Internet?
    ... > Selbstverständlich habe ich alle siecherheitsrelevanten Windows-Updates ... Wenn keine Listening Ports mehr auf sind, ... Prev by Date: ... Next by Date: ...
    (de.comp.security.misc)
  • Re: Frage zu apf-Firewal
    ... habe ich installiert und per default sind da alle Ports zu. ... Bei Outbound anscheinend. ... Prev by Date: ... Next by Date: ...
    (de.comp.security.firewall)
  • Re: [FreeBSD] Darf ich bei RELENG_5 bleiben?
    ... Für Server taugt's noch, für Desktops nicht mehr so, weil die ... >> diese Problem mit diesen Ports? ... Prev by Date: ... Next by Date: ...
    (de.comp.os.unix.bsd)
  • Re: FreeBSD: Kompilierfehler bei kdebase-3.4.2
    ... Wenn ich CVSUP anschubse, gehts aber durch alle ports (na gut, ... Prev by Date: ... Next by Date: ...
    (de.comp.os.unix.bsd)
  • Re: Linux mmap(90)
    ... >> Zumindest solange du noch mehr mit den Syscalls kämpfst, ... > um den Rasterstahl abzufragen, denn es flimmert mir zu arg. ... Prev by Date: ... Next by Date: ...
    (de.comp.lang.assembler.x86)