|
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.
|