TacOS  0.2
 Tout Structures de données Fichiers Fonctions Variables Définitions de type Énumérations Macros
Macros | Fonctions
Référence du fichier ksem.h

Coté noyau de la gestion des sémaphores. Plus de détails...

#include <ksyscall.h>
#include <types.h>
Graphe des dépendances par inclusion de ksem.h:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Macros

#define SEM_NEW   255
 
#define SEM_CREATE   1
 
#define SEM_GETVAL   1
 
#define SEM_DEL   2
 
#define SEM_ZCNT   3
 
#define SEM_SET   4
 

Fonctions

int init_semaphores ()
 Initialisation du système des sémaphores. Plus de détails...
 
 SYSCALL_HANDLER3 (sys_ksem, uint32_t op, uint32_t param, int *ret)
 Handler de l'appel système SYS_SEM Dans la pratique, sys_ksem ne fait qu'exécuter la fonction correspondant à l'opération demandée. Plus de détails...
 
int ksemget (uint8_t key, int flags)
 Obtenir ou créer un sémaphore. ksemget retourne un semid propre au processus, associé au sémaphore désigné par key. Plus de détails...
 
int ksemctl (uint8_t key, int cmd, void *res)
 Manipulation d'un sémaphore. ksemctl permet de manipuler un sémaphore (suppression, libération, valeur, etc.)
 
int ksemP (uint8_t key)
 Opération P sur un sémaphore Réalise l'opération P sur le sémaphore. Le processus essaye donc de prendre le sémaphore si il est libre (ie Sa valeur des supérieur à 0). Si ce n'est pas le cas, il met son pid dans la fifo du sémaphore pour pouvoir être réveillé en temps voulu, et se met en état d'attente. Plus de détails...
 
int ksemV (uint8_t key)
 Opération V sur un sémaphore Réalise l'opération V sur le sémaphore. Le processus libère le sémaphore. Si la fifo est vide, il incrémente la valeur du sémaphore. Si un processus est présent dans la fifo, il le réveille. Plus de détails...
 

Description détaillée

Auteur
TacOS developers

LICENSE

Copyright (C) 2010, 2011, 2012 - TacOS developers.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details at http://www.gnu.org/copyleft/gpl.html

You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/licenses.

DESCRIPTION

Documentation des macros

#define SEM_CREATE   1

create the semaphore.

#define SEM_DEL   2

Delete semaphore.

#define SEM_GETVAL   1

Get Value.

#define SEM_NEW   255

key for a new semaphore.

#define SEM_SET   4

Set value.

#define SEM_ZCNT   3

Get size.

Documentation des fonctions

int init_semaphores ( )
Renvoie
0
int ksemget ( uint8_t  key,
int  flags 
)
Paramètres
keyclé identifiant le sémaphore
Renvoie
semid associé au sémaphore identifié par key -1 en cas d'erreur
key en cas de succès, -1 sinon.

Voici le graphe des appelants de cette fonction :

int ksemP ( uint8_t  key)
Paramètres
keyIdentifiant du sémaphore sur lequel l'opération doit être réalisée
Renvoie
0 en cas de succès, -1 sinon

Voici le graphe d'appel pour cette fonction :

Voici le graphe des appelants de cette fonction :

int ksemV ( uint8_t  key)
Paramètres
keyIdentifiant du sémaphore sur lequel l'opération doit être réalisée
Renvoie
0 en cas de succès, -1 sinon

Voici le graphe d'appel pour cette fonction :

Voici le graphe des appelants de cette fonction :

SYSCALL_HANDLER3 ( sys_ksem  ,
uint32_t  op,
uint32_t  param,
int *  ret 
)
Paramètres
opType d'opération à exécuter
paramDépend du type d'opération
retAdresse pour la valeur de retour

Voici le graphe d'appel pour cette fonction :