sem.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. /* --- Structures --- */
  8. typedef struct{
  9. /* Id retourner par semget */
  10. int id;
  11. /* Clef d'acces au semaphores */
  12. key_t key;
  13. /* Nombre de semaphore */
  14. int nb;
  15. }semaphore;
  16. /* --- Fonctions --- */
  17. /**
  18. * Creation d'un tableau de semaphores
  19. * @param semaphore* Le tableau de semaphore
  20. * @param int La clef
  21. * @param int Le nombre semaphores
  22. * @param int* Valeur à initialiser
  23. * @return boolean Reussite
  24. */
  25. boolean create_sem(semaphore*, int, int, int*);
  26. /**
  27. * Récuperation d'un tableau de semaphores
  28. * @param semaphore* Le tableau de semaphore
  29. * @param int La clef
  30. * @return boolean Reussite
  31. */
  32. boolean get_sem(semaphore*, int);
  33. /**
  34. * Demande l'acces et decremente le semaphore (Puis je)
  35. * @param semaphore* Le tableau de semaphore
  36. * @param int Le numero de la semaphore
  37. * @return boolean Reussite
  38. */
  39. boolean P(semaphore*, int);
  40. /**
  41. * Augmente le compteur d'une semaphore (Vas y)
  42. * @param semaphore* Le tableau de semaphore
  43. * @param int Le numero de la semaphore
  44. * @return boolean Reussite
  45. */
  46. boolean V(semaphore*, int);
  47. /**
  48. * Supprime un tableau de semaphores
  49. * @param semaphore* Le tableau de semaphore
  50. * @return boolean Reussite
  51. */
  52. boolean delete_sem(semaphore*);
  53. /**
  54. * Récupère la valeur d'un semaphore
  55. * @param semaphore* Le tableau de semaphore
  56. * @param int Le numero du semaphore dans le tableau
  57. * @return int La valeur actuel du semaphore
  58. */
  59. int get_sem_value(semaphore*, int);
  60. #endif