•  Back 
  •  AES-Strukturen 
  •  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-File8.22.51  XAESMSG                                                   TOS

Diese Struktur ist wie folgt definiert:

typedef struct
{
   int16_t  dst_apid;       /* ID der Ziel-Applikation    */
   int16_t  unique_flg;     /* Nachrichten überschreiben? */
   void     *attached_mem;  /* Zeiger auf Speicherblock   */
   int16_t  *msgbuf;        /* Nachrichenpuffer           */
} XAESMSG;

Hinweis: Die Komponente unique_flg gibt an, ob gleichartige 
Nachrichten (d.h. solche mit gleichem Nachrichtentyp msgbuf[0]) von 
der neuen Nachricht überschrieben werden sollen.

Wenn attached_mem nicht NULL ist, wird damit ein per Malloc 
allozierter Speicherblock angegeben, der die erweiterten Nachrichten- 
Informationen enthält. Die Länge dieses Blocks ist beliebig und für 
das System uninteressant, sie könnte z.B. als erstes Langwort des 
Blocks oder in msgbuf [4,5] übergeben werden. Das System weist den 
Speicherblock der Zielapplikation zu und übermittelt dessen Adresse in 
msgbuf[6,7].

Wichtig: Die aufrufende Applikation muß davon ausgehen, daß 
msgbuf[6,7] nach dem Aufruf von appl_write zerstört sind. Das System 
behält sich vor, den Inhalt des Speicherblocks umzukopieren und den 
übergebenen Block freizugeben. Der Aufrufer darf nach dem appl_write 
nicht mehr auf den Block zugreifen und ihn auf gar keinen Fall 
freigeben!

Gibt appl_write einen Fehlercode zurück, so ist der Block nicht 
übergeben worden und gehört nach wie vor der aufrufenden Applikation. 
Ein Fehler tritt dann auf, wenn:

   ∙ die Zielapplikation ungültig (nicht existent oder eingefroren) 
     ist

   ∙ der Nachrichtenpuffer der Zielapplikation voll ist

   ∙ die Zielapplikation kein Prozeß ist (z.B. der SCRENMGR) und ein 
     attached memory block angegeben worden ist.

Querverweis: AES   appl_write   GEM