•  Back 
  •  Speicherverwaltung 
  •  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-File5.12.5  Mxalloc                                                    TOS

 Name:         »Allocate memory (with preference)« - Speicherplatz 
               reservieren.

 Gemdosnummer: 68

 Deklaration:  void *Mxalloc ( int32_t amount, int16_t mode );

 Beschreibung: Die GEMDOS-Routine Mxalloc reserviert einen 
               Speicherbereich der Größe amount. Über die Bits des 
               Parameters mode kann die gewünschte Speicherart 
               spezifiziert werden; es gilt:

                Bits  Bedeutung

                0-2   Behandlung des TT-RAMs
                       0 =  nur ST-RAM
                       1 =  nur TT-RAM
                       2 =  egal, ST-RAM bevorzugt
                       3 =  egal, TT-RAM bevorzugt
                3     reserviert
                4-7   Speicherschutz-Modus
                       0 =  Abhängig von den Programmflags
                       1 =  Privat
                       2 =  Global
                       3 =  Super
                       4 =  nur lesbar
                      Alle anderen Werte sind undefiniert, und für 
                      zukünftige Zwecke reserviert.
                14    No-Free-Modus
                      Wenn dieses Bit gesetzt ist und der Besitzer 
                      dieses Speichers terminiert, wird der 
                      Speicherbereich nicht freigegeben, sondern an 
                      das Betriebssystem vererbt. Dieser Modus ist nur 
                      für das Betriebssystem interessant, und steht 
                      normalen Anwenderprogrammen nicht zur Verfügung.

               Alle weiteren Bits sind für zukünftige Zwecke 
               reserviert. Mit dem Wert -1 für amount kann man die 
               Länge des größten zusammenhängend verfügbaren 
               Speicherblocks (abhängig von mode) erfragen.

               Unter MagiC werden alle Speicherallozierungen 
               mitprotokolliert. Wenn die mit LIMITMEM vorgegebene 
               Beschränkung überschritten wird, wird ein Nullzeiger 
               zurückgegeben. Im Fall amount = -1 wird das Minimum von 
               freiem Speicher und noch nicht ausgeschöpfter 
               LIMITMEM-Beschränkung zurückgegeben. Ausnahmen sind 
               Aufrufe des Bildschirm-Managers (SCRENMGR), der die 
               Menüs kontrolliert. Dadurch wird sichergestellt, daß 
               auch per LIMITMEM beschränkte Programme keine Probleme 
               mit dem Redraw bei Menüs haben.

               Hinweis: Ein Problem besteht darin, festzustellen, wann 
               die erweiterten Modi (Bits 3 und folgende) benutzt 
               werden dürfen. Einige ältere Versionen des GEMDOS 
               kommen nämlich nicht mit diesen Modi zurecht, und 
               sorgen z.T. für den Absturz der Applikation bzw. des 
               ganzen Systems. Aus diesem Grund testen viele 
               Programmierer explizit auf das Vorhandensein von 
               MiNT/MultiTOS oder Versionen von MagiC >= 2.0. 
               Alternativ kann auch die Funktion Mxmask benutzt 
               werden.

 Ergebnis:     Die Funktion liefert als Ergebnis die Anfangsadresse 
               des reservierten Bereichs als typenlosen Zeiger. 
               Mxalloc liefert als Ergebnis eine 0, wenn nicht mehr 
               genügend Speicher vorhanden ist.

 Verfügbar:    Diese Funktion existiert erst ab GEMDOS-Version 0.19.

 Gruppe:       Speicherverwaltung

 Querverweis:  Binding   Mfree   Malloc   Maddalt   Programmflags