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)