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
| Name | Type | Dir | Description |
|---|---|---|---|
| addr | caddr_ut | - | |
| len | size_ut | - |
Historique des versions
| XNU tag | macOS | # |
|---|---|---|
| xnu-1456.1.26 | macOS 10.6 Snow Leopard | 203 |
| xnu-1699.24.8 | macOS 10.7 Lion | 203 |
| xnu-2050.18.24 | macOS 10.8 Mountain Lion | 203 |
| xnu-2422.115.4 | macOS 10.9 Mavericks | 203 |
| xnu-2782.40.9 | macOS 10.10 Yosemite | 203 |
| xnu-3247.1.106 | macOS 10.11 El Capitan | 203 |
| xnu-3789.1.32 | macOS 10.12 Sierra | 203 |
| xnu-4570.1.46 | macOS 10.13 High Sierra | 203 |
| xnu-4903.221.2 | macOS 10.14 Mojave | 203 |
| xnu-6153.11.26 | macOS 10.15 Catalina | 203 |
| xnu-7195.50.7.100.1 | macOS 11.0 Big Sur | 203 |
| xnu-8019.41.5 | macOS 12.0 Monterey | 203 |
| xnu-8792.41.9 | macOS 13.0 Ventura | 203 |
| xnu-10002.1.13 | macOS 14.0 Sonoma | 203 |
| xnu-11215.1.10 | macOS 15.0 Sequoia | 203 |
| xnu-11417.101.15 | macOS 15.4 Sequoia | 203 |
| xnu-12377.1.9 | macOS 26.0 Tahoe | 203 |
| 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