SWAPON(2)

NOM
swapon, swapoff - Activer / desactiver un fichier ou un peripherique de swap.

SYNOPSIS
#include <unistd.h>
#include <linux/swap.h>

int swapon(const char *path, int swapflags);
int swapoff(const char *path);

DESCRIPTION
swapon active le swap sur le fichier ou le peripherique en mode bloc indique dans path. swapoff arrete le swap sur le fichier ou le peripherique en mode bloc indique dans path.

swapon utilise un argument swapflags. Si cet argument a son bit SWAP_FLAG_PREFER a 1, la nouvelle zone de swap disposera d'une priorite plus elevee que la zone de swap par defaut. La priorite est codee ainsi :

(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

Cette fonction ne peut etre appelee que par le Super-User.

PRIORITE
Chaque zone de swap a une priorite, haute ou basse. La priorite par defaut est basse. Parmi les zones de basses priorites, les nouvelles zones sont toujours affectees d'une priorite inferieure a celle des zones precedente.

Toutes les priorites fixees avec l'argument swapflags sont plus elevees que la priorite par defaut. Elles peuvent prendre n'importe quelle valeur positive ou nulle choisie par l'appelant. Plus la valeur est haute, plus la priorite est elevee.

Les pages de swap sont allouees dans les zones par ordre decroissant de priorite. Pour des zones de priorite differentes, la plus haute sera toujours remplie entierement avant d'utiliser la zone de priorite plus faible. Si deux ou plus de zones ont la meme priorite, et qu'il s'agit de la plus haute priorite disponible, les pages sont allouees en utilisant un algorithme Round-Robin entre elles.

Sur linux 1.3.6, le noyau suit generalement ces regles, mais il y a parfois des exceptions.

VALEUR RENVOYEE
En cas de reussite 0 est renvoye, sinon -1 est renvoye 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 regulier, ni un peripherique bloc.

ENOENT
    path n'existe pas.

ENOMEM
    Pas assez de memoire pour demarrer le swapping.

CONFORMITE
Ces fonctions sont specifiques a Linux et ne doivent pas etre employees dans des programmes destines a etre portables.

NOTES
La partition ou le fichier doivent etre prepares par mkswap(8).

VOIR AUSSI
mkswap(8), swapon(8), swapoff(8)