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

Gestion des sémaphores. Plus de détails...

#include <ksem.h>
#include <kprocess.h>
#include <kmalloc.h>
#include <scheduler.h>
Graphe des dépendances par inclusion de ksem.c:

Structures de données

struct  _sem_fifo_cell
 
struct  sem_fifo
 
struct  sem_t
 

Macros

#define FIFO_MAX_SIZE   32
 
#define MAX_SEM   255
 
#define KSEM_GET   1
 
#define KSEM_CREATE   2
 
#define KSEM_DEL   3
 
#define KSEM_P   4
 
#define KSEM_V   5
 
#define SYS_SEMCTL   8
 

Définitions de type

typedef struct _sem_fifo_cell sem_fifo_cell
 

Fonctions

int init_semaphores ()
 Initialisation du système des sémaphores. 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...
 
 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...
 

Description détaillée

Auteur
TacOS developers

LICENSE

Copyright (C) 2010-2014 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 définitions de type

typedef struct _sem_fifo_cell sem_fifo_cell

Cellule d'une fifo.

Documentation des fonctions

int init_semaphores ( )
Renvoie
0
int ksemget ( uint8_t  key,
int  flags 
)
Renvoie
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 :