NOMBRE¶
swapon, swapoff - arranca/para el intercambio al fichero/dispositivo
SINOPSIS¶
#include <unistd.h>
#include <asm/page.h> /* para encontrar PAGE_SIZE */
#include <sys/swap.h>
int swapon(const char *camino, int
swapflags);
int swapoff(const char *camino);
DESCRIPCIÓN¶
swapon establece como área de trasiego el fichero o dispositivo de
bloques especificado por
camino.
swapoff para el trasiego al
fichero o dispositivo de bloque especificado por
camino.
swapon toma un argumento
swapflags. Si
swapflags tiene el
bit
SWAP_FLAG_PREFER activado, la nueva área de trasiego
tendrá una prioridad más alta que la predeterminada. La prioridad se
codifica como:
(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
Estas funciones sólo pueden ser empleadas por el súper-usuario.
PRIORIDAD¶
Cada área de trasiego tiene una prioridad, alta o baja. La prioridad
predeterminada es la baja. Dentro de las áreas de baja prioridad, las
áreas nuevas tienen prioridad aún más baja que las áreas
antiguas.
Todas las prioridades puestas con
swapflags son de alta prioridad,
más alta que la predeterminada. Peden tener cualquier valor no negativo
escogido por el que llama a la función. Números más altos
significan prioridades mayores.
Las páginas de trasiego se cogen de las áreas en orden de prioridad,
primero las de mayor prioridad. Para áreas con prioridades diferentes, un
área de prioridad más alta se gasta por completo antes de emplear
una de prioridad más baja. Si dos o más áreas tienen la misma
prioridad, y es la más alta disponible, las páginas se asignan
según un algoritmo de asignación en rueda entre ellas.
En Linux 1.3.6, el núcleo seguía usualmente estas reglas, pero
había excepciones.
VALOR DEVUELTO¶
En caso de éxito, se devuelve 0. En caso de error, se devuelve -1 y se pone
en
errno un valor apropiado.
ERRORES¶
Muchos otros errores pueden ocurrir si
camino no es válido.
- EPERM
- El usuario no es el súper-usuario, o están en uso
más de MAX_SWAPFILES (definido como 8 en Linux 1.3.6)
áreas de trasiego.
- EINVAL
- se devuelve si camino existe, pero no es ni un
camino de fichero regular ni un dispositivo de bloques.
- ENOENT
- se devuelve si camino no existe.
- ENOMEM
- se devuelve si no hay bastante memoria como para iniciar el
trasiego.
Estas funciones son específicas de Linux y no deberían emplearse en
programas supuestamente transportables. El segundo argumento, `swapflags', fue
introducido en Linux 1.3.2.
OBSERVACIONES¶
La partición o camino debe ser preparada con
mkswap(8).
VÉASE TAMBIÉN¶
mkswap(8),
swapon(8),
swapoff(8)