Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME III. Les librairies utilitaires

6. Le groupe s_swap

Ce groupe permet d'utiliser en DOS la mémoire étendue de type EMM. En cas d'absence ou de remplissage de l'EMM, un fichier temporaire est créé, permettant de "swapper" les données sur fichier. En Unix, seule cette dernière possibilité a du sens.

La fonction SW_init() est appelée automatiquement lors de la première utilisation du SWAP dans le programme. Par contre, la fonction SW_end() doit être appelée par l'utilisateur en fin de programme.

Le seul cas où SW_init() est requis est celui où l'EMS ne doit pas être utilisé, bien que disponible (SW_init(0)).

Le processus est simple : une allocation (ou une réallocation) fournit en retour un "Handle" de type SWHDL. Pour obtenir le pointeur réel, il suffit d'appeler la fonction SW_getptr() qui retourne un pointeur vers un char.

Par le principe même du swap, les pointeurs obtenus ne sont valables que pendant une durée limitée, leur valeur pouvant être swappée en EMS ou sur disque. Il faut donc prendre garde à appeler SW_getptr() chaque fois qu'on désire utiler une valeur allouée via les fonctions de swapping.

Les fonctions sont subdivisées ci-dessous en groupes fonctionnels.

Dans la version actuelle, seuls 30000 éléments peuvent être alloués. Chacun de ces éléments ne peut excéder 16000 bytes. De plus, la mémoire conventionnelle étant utilisée pour stocker les adresses de stockage et la taille des objets alloués, celle-ci peut faire défaut et provoquer un "swap panic".

Fonctions de base

Fonctions utilitaires

Fonctions d'allocation de mémoire conventionnelle

Fonction redéfinissable

Fonctions de gestion EMS

Variables et structures

6.1 SW_init (file s_swmisc.c:27)

6.2 SW_end (file s_swmisc.c:96)

6.3 SW_alloc (file s_swallc.c:54)

6.4 SW_realloc (file s_swallc.c:249)

6.5 SW_free (file s_swallc.c:206)

6.6 SW_getptr (file s_swallc.c:316)

6.7 SW_coreleft (file s_swmisc.c:226)

6.8 SW_status (file s_swmisc.c:244)

6.9 SW_nalloc

6.10 SW_nrealloc

6.11 SW_nfree (file s_swallc.c:461)

6.12 SW_abort (file s_swab.c:41)

6.13 EMS_init (file s_swems.c:24)

6.14 EMS_end (file s_swems.c:67)

6.15 EMS_map (file s_swems.c:87)

6.16 EMS_error_text (file s_swems.c:132)

6.17 EMS_inst (file s_swems.c:164)

6.18 La variable SW_FILE

6.19 La variable SW_MIN_MEM

6.20 La structure SWSTAT

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be