Re: Linux mmap(90)/FBIOWAITRETRACE
- From: Dirk Wolfgang Glomp <dirk@xxxxxxxxxxxxxxxxxxx>
- Date: Tue, 20 Dec 2005 12:32:02 +0100
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
.
- Follow-Ups:
- Re:IOPERM
- From: Dirk Wolfgang Glomp
- Re: Linux mmap(90)/FBIOWAITRETRACE
- From: Stefan Reuther
- Re:IOPERM
- References:
- Linux mmap(90)
- From: Dirk Wolfgang Glomp
- Re: Linux mmap(90)
- From: Stefan Reuther
- Re: Linux mmap(90)
- From: Dirk Wolfgang Glomp
- Re: Linux mmap(90)
- From: Stefan Reuther
- Re: Linux mmap(90)
- From: Dirk Wolfgang Glomp
- Re: Linux mmap(90)
- From: Stefan Reuther
- Re: Linux mmap(90)
- From: Dirk Wolfgang Glomp
- Re: Linux mmap(90)
- From: Stefan Reuther
- Re: Linux mmap(90)
- From: Dirk Wolfgang Glomp
- Re: Linux mmap(90)
- From: Stefan Reuther
- Linux mmap(90)
- Prev by Date: Re: Stack Frame i386
- Next by Date: Re: Linux mmap(90)/FBIOWAITRETRACE
- Previous by thread: Re: Linux mmap(90)
- Next by thread: Re: Linux mmap(90)/FBIOWAITRETRACE
- Index(es):
Relevant Pages
|