sem.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef SEM_H
  2. #define SEM_H
  3. #include <sys/types.h>
  4. #include <sys/ipc.h>
  5. #include <sys/sem.h>
  6. #include "constante.h"
  7. typedef struct{
  8. /* Id retourner par semget */
  9. int id;
  10. /* Clef d'acces au semaphores */
  11. key_t key;
  12. /* Nombre de semaphore */
  13. int nb;
  14. }semaphore;
  15. /**
  16. * Creation d'un tableau de semaphores
  17. * @param semaphore* Le tableau de semaphore
  18. * @param int La clef
  19. * @param int Le nombre semaphores
  20. * @return boolean Reussite
  21. */
  22. boolean create_sem(semaphore*, int, int);
  23. /**
  24. * Récuperation d'un tableau de semaphores
  25. * @param semaphore* Le tableau de semaphore
  26. * @param int La clef
  27. * @return boolean Reussite
  28. */
  29. boolean get_sem(semaphore*, int);
  30. /**
  31. * Initialise les semaphores
  32. * @param semaphore* Le tableau de semaphore
  33. * @param int* Valeur à initialiser
  34. * @return boolean Reussite
  35. */
  36. boolean ini_sem(semaphore*, int*);
  37. /**
  38. * Demande l'acces et decremente le semaphore (Puis je)
  39. * @param semaphore* Le tableau de semaphore
  40. * @param int Le numero de la semaphore
  41. * @return boolean Reussite
  42. */
  43. boolean P(semaphore*, int);
  44. /**
  45. * Augmente le compteur d'une semaphore (Vas y)
  46. * @param semaphore* Le tableau de semaphore
  47. * @param int Le numero de la semaphore
  48. * @return boolean Reussite
  49. */
  50. boolean V(semaphore*, int);
  51. /**
  52. * Supprime un tableau de semaphores
  53. * @param semaphore* Le tableau de semaphore
  54. * @return boolean Reussite
  55. */
  56. boolean delete_sem(semaphore*);
  57. #endif