SWAPON(2) Manuel du programmeur Linux SWAPON(2)
NOM
swapon, swapoff - Activer / désactiver un fichier ou un
péripherique de swap.
SYNOPSIS
#include <unistd.h>
#include <asm/page.h> /* pour avoir PAGE_SIZE */
#include <sys/swap.h>
int swapon(const char *path, int swapflags);
int swapoff(const char *path);
DESCRIPTION
swapon active le swap sur le fichier ou le périphérique en
mode bloc indiqué dans path. swapoff arrête le swap sur
le fichier ou le périphérique en mode bloc indiqué dans
path.
swapon utilise un argument swapflags. Si cet argument a
son bit SWAP_FLAG_PREFER à 1, la nouvelle zone de swap
disposera d'une priorité plus élevée que la zone de swap
par défaut.
La priorité est codée ainsi :
(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
Cette fonction ne peut être appelée que par le Super-User.
PRIORITÉ
Chaque zone de swap a une priorité, haute ou basse. La
priorité par defaut est basse. Parmi les zones de basses
priorités, les nouvelles zones sont toujours affectées
d'une priorité inférieure à celle des zones précédentes.
Toutes les priorités fixées avec l'argument swapflags sont
plus élevées que la priorité par défaut. Elles peuvent
prendre n'importe quelle valeur positive ou nulle choisie
par l'appelant. Plus la valeur est haute, plus la pri
orité est élevée.
Les pages de swap sont allouées dans les zones par ordre
décroissant de priorité. Pour des zones de priorité
différentes, la plus haute sera toujours remplie
entièrement avant d'utiliser la zone de priorité plus
faible. Si deux ou plus de zones ont la même priorite, et
qu'il s'agit de la plus haute priorité disponible, les
pages sont allouées en utilisant un algorithme Round-Robin
entre elles.
Sur linux 1.3.6, le noyau suit généralement ces règles,
mais il y a parfois des exceptions.
Linux 9 Avril 1999 1
SWAPON(2) Manuel du programmeur Linux SWAPON(2)
VALEUR RENVOYÉE
En cas de réussite 0 est renvoyé, sinon -1 est renvoyé et
errno contient le code d'erreur.
ERREURS
De nombreuses erreurs peuvent survenir si path n'est pas
valide.
EPERM L'utilisateur n'est pas Super-User ou il y a plus
de MAX_SWAPFILES zones de swap actives (8 sous
Linux 1.3.6).
EINVAL path existe mais n'est ni un chemin régulier, ni
un périphérique bloc.
ENOENT path n'existe pas.
ENOMEM Pas assez de mémoire pour démarrer le swapping.
CONFORMITÉ
Ces fonctions sont spécifiques à Linux et ne doivent pas
être employées dans des programmes destinés à être porta
bles.
NOTES
La partition ou le fichier doivent être préparés par
mkswap(8).
VOIR AUSSI
mkswap(8), swapon(8), swapoff(8)
TRADUCTION
Christophe Blaess, 1997.
Linux 9 Avril 1999 2