#include "types.h"

//Inizializza un semaforo utilizzando la funzione
//semctl con parametro "SETVAL"
void initsem(int,int);

//Restituisce il valore corrente di un semaforo utilizzando
//la funzione semctl con parametro "GETVAL"
void valsem(int);

//Disalloca dalle risorse IPC un semaforo utilizzando
//la funzione semctl con parametro "IPC_RMID"
void delsem(int);

//Esegue una wait sul semaforo utilizzando
//la funzione semop
void down(int,int,int);

//Esegue una signal sul semaforo utilizzando
//la funzione semop
void up(int,int,int);

//Restituisce il numero di processi in attesa sul semaforo
//semctl con parametro GETNCNT
void ncntsem(int);

//Crea un semaforo utilizzando la funzione semget con parametro
//"IPC_CREAT | PERMESSI": in questo modo se il semaforo e' gia'
//presente restituisce semplicemente il suo id
int creasem(int,int);