•  Back 
  •  Kernelfunktionen für ein XFS 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File11.21.5.15  mxk_evnt_mIO                                           TOS

 Name:         »evnt_mIO«

 Parameter:

                d0 =  long ticks_50hz
                a0 =  void *unsel
                d1 =  int cnt

               bzw.

                a0 =  APPL *ap

 Beschreibung: evnt_mIO() ermöglicht es, auf MEHRERE externe 
               Ereignisse zu warten, z.B. wird diese Funktion von 
               Fselect verwendet (mehrere Dateien!).

               Vorgehensweise:

                 1. Für n Ereignisse eine Langwort-Tabelle der Länge 
                    2*n anlegen.
                 2. Für jedes Ereignis die Aufräumroutine (unselect- 
                    Routine) eintragen, (dahinter folgt ein optionaler 
                    Langwortparameter) und den Interrupt aufsetzen. 
                    Die Reihenfolge ist wichtig, es muß verhindert 
                    werden, daß die unselect-Adresse den Rückgabewert 
                    des bereits eingetroffenen Interrupts 
                    überschreibt, ggf. Interrupts sperren.
                 3. evnt_mIO aufrufen. Die Parameter sind wie bei 
                    evnt_IO, in d1.w wird aber die Anzahl der 
                    Ereignisse übergeben, a0 ist der Tabellenanfang.
                 4. evnt_mIO() liefert keinen Rückgabewert. Die 
                    Tabelle muß durchsucht und die Interrupts 
                    deinstalliert werden (z.B. die unselect-Routinen 
                    aufrufen), dabei kann überprüft werden, welche 
                    Interrupts bereits eingetroffen sind.
                 5. evnt_emIO mit der aktuellen Applikation aufrufen. 
                    Dieser Aufruf stellt sicher, daß nach 
                    Deinstallieren aller Interrupts deren jetzt 
                    nutzlose Nachrichten an die Applikation gelöscht 
                    werden.

               Auf die Ereignisse evnt_(m)IO wartende Applikationen 
               erscheinen im Programm-Manager als wartend auf "io" 
               (Input/Output) oder "io ti" (Input/Output mit Timeout).

 Gruppe:       Kernelfunktionen

 Querverweis:  -