Service de noyau lockl
Objectif
Verrouillage d'un verrou de processus classique.
Syntaxe
Paramètres
| Article | Descriptif |
|---|---|
| Mot verrou | Indique l'adresse du mot de verrouillage. |
| Flags | Indique les indicateurs qui contrôlent l'attente d'un verrou. Le paramètre Indicateurs est utilisé pour contrôler la façon dont les signaux affectent l'attente d'un verrou. Les quatre indicateurs sont les suivants:
Remarque: L'indicateur LOCK_SIGRET remplace l'indicateur LOCK_SIGWAKE .
|
Descriptif
Le service de noyau lockl verrouille un verrou classique
Le mot de verrouillage peut se trouver dans la mémoire partagée. Il doit se trouver dans l'espace adresse du processus lorsque les services lockl ou unlockl sont appelés. Le noyau accède au mot de verrouillage uniquement lors de l'exécution sous le processus de l'appelant.
Le paramètre Mot clé lock_word fait généralement partie de la structure de données qui décrit la ressource gérée par le verrou. Ce paramètre doit être initialisé avec la valeur LOCK_AVAIL avant le premier appel au service lockl . Seuls les services lockl et unlockl peuvent modifier ce paramètre lorsque le verrou est en cours d'utilisation.
Le service lockl peut être imbriquée. L'appelant doit utiliser la valeur LOCK_SUCC pour déterminer quand appeler le service unlockl afin de déverrouiller le verrou conventionnel.
Le service lockl affecte temporairement au propriétaire la priorité de processus de l'unité en attente la plus favorisée pour le verrouillage.
Un processus doit libérer tous les verrous avant de terminer ou de quitter le mode noyau. Les signaux ne sont pas livrés aux processus du noyau pendant que ces processus possèdent un verrou. Présentation de l'exécution des appels système dans Kernel Extensions and Device Support Programming Concepts explique comment les appels système peuvent utiliser le service lockl lors de l'accès à des données globales.
Environnement d'exécution
Le service de noyau lockl ne peut être appelé qu'à partir de l' environnement de processus .
Valeurs renvoyées
| Article | Descriptif |
|---|---|
| LOCK_SUCC | Indique que le processus ne possède pas déjà le verrou ou que ce dernier n'appartient pas à un autre processus lorsque le paramètre flags est défini sur LOCK_NDELAY. |
| CLASSE_VERROUILLAGE | Indique que le processus possède déjà le verrou ou que le verrou n'est pas détenu par un autre processus lorsque le paramètre Indicateurs est défini sur LOCK_NDELAY. |
| ECHEC DE LOCK_FAIL | Indique que le verrou appartient à un autre processus lorsque le paramètre Indicateurs est défini sur LOCK_NDELAY. |
| SIG. LOCK_SIG | Indique que l'attente est arrêtée par un signal lorsque le paramètre Indicateurs est défini sur LOCK_SIGRET. |