LONG Mxalloc(LONG amount, WORD mode)

Description:  Allocation dynamique de mémoire

Opcode:  68  (0x0044)

Availability:  GEMDOS >= 0.19

Parameters:  
    amount : nombre d'octets à allouer, spécifier -1L retourne le bloc libre le plus gros
    mode : bits de description du type de mémoire désiré
     bit 0  et 1: 0 -> Alloue uniquement en STRam
                  1 -> Alloue seulement en TTRam
                  2 -> Alloue préférentiellement en STRam
                  3 -> Alloue préférentiellement en TTRam
    Les bits suivants ne sont valides que sur systèmes multitaches
     bit 2 : non utilisé mettre à 0
     bit 3 : si a 1 se référerer aux bits 4 à 7 pour la protection mémoire sinon
    protection par défaut défini dans le header du programme
     bits 4 à 7 : ces bits sont uniquements consultés si bit 3 a 1
        0 : se référer au header programme pour la protection
        1<<4 : Mémoire privée (MX_PRIVATE)
        2<<4 : Mémoire globale (MX_GLOBAL)
        3<<4 : Acces en superviseur seulement (MX_SUPERVISOR)
        4<<4 : Accès en lecture seule (MX_READABLE)
     bit 14 : si 1 la mémoire n'est plus considérée comme alloué par l'application mais par le système, a la fermeture du programme, si la mémoire n'a pas été éffacée elle restera valide


Binding:  
    move.w mode,-(sp)
    move.l amount,-(sp)
    move.w #$44,-(sp)
    trap #1
    addq.l #8,sp
Return value:  retourne NULL si erreur sinon le pointeur sur le bloc alloué

Definition:
    Cette fonction est cause de nombreux dysfonctionnements différents d'un système à  l'autre. Il est absolument nécessaire de maitriser ses subtilité pour fonctionner dans tous les cas:
    1: vérifier si gemdos >=0.19 sinon utiliser Malloc()
    2: n'utiliser que les bits 0 et 1 du mode pour un système monotache (par exemple sur TT en TOS standard), les autres bits doivent être impérativement à 0 sous peine de non validité du bloc alloué.
    3: de toute façon les bits inutilisés doivent être à 0


mailto: Raider
HTTP: http://olivier.landemarre.free.fr


See Also:   Malloc()  Mfree()


Merci de votre visite sur GEMTOS!!!

(C) 2000 Gemtos.free.fr. All rights reserved by the authors.