Skip to content
Syscall BSD#203

svc · unix #203

mlock

Verrouille une plage de mémoire virtuelle en RAM physique pour empêcher la pagination.

Prototype

int mlock(caddr_ut addr, size_ut len);

Retour: int

Arguments

NameTypeDirDescription
addrcaddr_ut-
lensize_ut-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard203
xnu-1699.24.8macOS 10.7 Lion203
xnu-2050.18.24macOS 10.8 Mountain Lion203
xnu-2422.115.4macOS 10.9 Mavericks203
xnu-2782.40.9macOS 10.10 Yosemite203
xnu-3247.1.106macOS 10.11 El Capitan203
xnu-3789.1.32macOS 10.12 Sierra203
xnu-4570.1.46macOS 10.13 High Sierra203
xnu-4903.221.2macOS 10.14 Mojave203
xnu-6153.11.26macOS 10.15 Catalina203
xnu-7195.50.7.100.1macOS 11.0 Big Sur203
xnu-8019.41.5macOS 12.0 Monterey203
xnu-8792.41.9macOS 13.0 Ventura203
xnu-10002.1.13macOS 14.0 Sonoma203
xnu-11215.1.10macOS 15.0 Sequoia203
xnu-11417.101.15macOS 15.4 Sequoia203
xnu-12377.1.9macOS 26.0 Tahoe203
xnu-10002.41.9—203
xnu-10002.61.3—203
xnu-10002.81.5—203
xnu-10063.101.15—203
xnu-10063.121.3—203
xnu-10063.141.1—203
xnu-11215.41.3—203
xnu-11215.61.5—203
xnu-11215.81.4—203
xnu-11417.121.6—203
xnu-11417.140.69—203
xnu-12377.101.15—203
xnu-12377.41.6—203
xnu-12377.61.12—203
xnu-12377.81.4—203
xnu-1486.2.11—203
xnu-1504.15.3—203
xnu-1504.3.12—203
xnu-1504.7.4—203
xnu-1504.9.17—203
xnu-1504.9.26—203
xnu-1504.9.37—203
xnu-1699.22.73—203
xnu-1699.22.81—203
xnu-1699.24.23—203
xnu-1699.26.8—203
xnu-1699.32.7—203
xnu-2050.22.13—203
xnu-2050.24.15—203
xnu-2050.48.11—203
xnu-2050.7.9—203
xnu-2050.9.2—203
xnu-2422.1.72—203
xnu-2422.100.13—203
xnu-2422.110.17—203
xnu-2422.90.20—203
xnu-2782.1.97—203
xnu-2782.10.72—203
xnu-2782.20.48—203
xnu-2782.30.5—203
xnu-3247.10.11—203
xnu-3248.20.55—203
xnu-3248.30.4—203
xnu-3248.40.184—203
xnu-3248.50.21—203
xnu-3248.60.10—203
xnu-3789.21.4—203
xnu-3789.31.2—203
xnu-3789.41.3—203
xnu-3789.51.2—203
xnu-3789.60.24—203
xnu-3789.70.16—203
xnu-4570.20.62—203
xnu-4570.31.3—203
xnu-4570.41.2—203
xnu-4570.51.1—203
xnu-4570.61.1—203
xnu-4570.71.2—203
xnu-4903.231.4—203
xnu-4903.241.1—203
xnu-4903.270.47—203
xnu-6153.101.6—203
xnu-6153.121.1—203
xnu-6153.141.1—203
xnu-6153.41.3—203
xnu-6153.61.1—203
xnu-6153.81.5—203
xnu-7195.101.1—203
xnu-7195.121.3—203
xnu-7195.141.2—203
xnu-7195.60.75—203
xnu-7195.81.3—203
xnu-8019.61.5—203
xnu-8019.80.24—203
xnu-8020.101.4—203
xnu-8020.121.3—203
xnu-8020.140.41—203
xnu-8792.61.2—203
xnu-8792.81.2—203
xnu-8796.101.5—203
xnu-8796.121.2—203
xnu-8796.141.3—203

Exemples

C — pin a key buffer

if (mlock(key, sizeof key) != 0) {
    perror("mlock");
}

Notes

mlock(2) appelle vm_map_wire() sur le vm_map de la tâche. Le caller doit posséder les pages et la somme verrouillée est plafonnée par vm.global_user_wire_limit (par tâche et global). Utilisé par les bibliothèques crypto (CommonCrypto, CoreCrypto) pour garder le matériel de clé hors swap, et par le code audio temps réel pour éviter le jitter.

API associées

munlockmlockallmmapmadvisevm_wire