Provided by: manpages-it_2.80-3_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)