Provided by: manpages-it_2.80-5_all bug

NOME

       swapon, swapoff - start/stop swapping sul file/dispositivo

SINTASSI

       #include <unistd.h>
       #include <asm/page.h> /* to find PAGE_SIZE */
       #include <sys/swap.h>

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

DESCRIZIONE

       swapon()  imposta  lo  swap  sul  dispositivo  a  blocchi  o sul file specificato in path.
       swapoff() ferma lo swap sul device a blocchi o sul file specificato in path.

       swapon() prende l'argomento swapflags.  Se swapflags ha il bit  SWAP_FLAG_PREFER  attivato
       la nuova area di swap avrà una priorità maggiore del default.  La priorità è codificata in
       swapflags come:

           (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

       Queste funzioni possono essere usate solo da un  processo  privilegiato  (uno  che  ha  le
       funzionalità CAP_SYS_ADMIN).

PRIORITÁ

       Ogni  area di swap ha una sua priorità, sia essa alta o bassa.  Quella di default è bassa.
       Tra le aree a bassa priorità le aree più nuove hanno sempre una priorità più  bassa  delle
       aree più vecchie.

       Tutte  le  priorità  impostate  attraverso  swapflags  sono  maggiori rispetto a quella di
       default.  Esse possono avere qualunque valore non negativo scelto dal chiamante.  A numero
       maggiore corrisponde priorità maggiore.

       Le  pagine  di swap sono allocate in aree in ordine di priorità, prima quelle con priorità
       maggiore. Prima di usare un'area con una certa priorità tutte quelle con priorità maggiore
       sono  state utilizzate.  Se vi sono due o più aree con la stessa priorità, ed è la massima
       priorità disponibile, le pagine sono allocate secondo uno schema a "round-robin".

       Fino al kernel 1.3.6, si seguivano queste regole, ma  con alcune eccezioni ( ?!?! ndt )

VALORI RESTITUITI

       In caso di successo viene restituito 0, altrimenti  -1  ed  errno  contine  il  codice  di
       errore.

ERRORI

       EBUSY  (per swapon()) Il percorso specificato è già stato usato come area di swap.

       EINVAL Il  percorso  del file esiste, ma non fa riferimento nè a un file regolare, nè a un
              dispositivo a blocchi; o, per swapon(), il percorso indicato non contiene una firma
              di swap valida o risiede in un file system in memoria come tmpfs; o, per swapoff(),
              il percorso attualmente non è un'area di swap.

       ENFILE È stato raggiunto il limite del sistema sul numero totale di file aperti.

       ENOENT Il percorso del file non esiste.

       ENOMEM Il sistema ha memoria insufficiente per iniziare lo swapping.

       EPERM  Il chiamante non ha la funzionalità CAP_SYS_ADMIN .

              In alternativa, il numero massimo di file di swap è già  in  uso;  vedere  le  NOTE
              sotto.

CONFORME A

       Queste  funzioni  sono  specifiche di Linux e non devono essere usate in programmi pensati
       per essere portabili.  Il secondo argomento swapflags è stato introdotto in Linux 1.3.2.

NOTE

       La partizione o percorso devono essere preparati con mkswap(8).

       C'è un limite superiore al numero di file di swap che si  possono  usare,  definito  dalla
       costante  del  kernel  MAX_SWAPFILES.  Prima del kernel 2.6.10, il valore di MAX_SWAPFILES
       era 8; dal kernel 2.6.10 il valore è 32.  A partire dal kernel 2.6.18 il limite è sceso di
       due  unità  (quindi: 30) se nel kernel è integrata l'opzione CONFIG_MIGRATION (che riserva
       due voci nella tabella di swap per le funzionalità di migrazione  di  pagina  del  comando
       mbind(2) e migrate_pages(2)).

VEDERE ANCHE

       mkswap(8), swapoff(8), swapon(8)