Add all commments
This commit is contained in:
+48
-46
@@ -10,73 +10,75 @@
|
||||
#include "time.h"
|
||||
#include "ipc.h"
|
||||
|
||||
#define SEM_UNDO 0x1000 ///< Undo the operation on exit.
|
||||
|
||||
/// @defgroup SemaphoreCommands semctl commands
|
||||
/// @brief List of commands for semctl function.
|
||||
/// @{
|
||||
|
||||
#define GETPID 11 ///< Get sempid.
|
||||
#define GETVAL 12 ///< Get semval.
|
||||
#define GETALL 13 ///< Get all semval's.
|
||||
#define GETNCNT 14 ///< Get semncnt.
|
||||
#define GETZCNT 15 ///< Get semzcnt.
|
||||
#define SETVAL 16 ///< Set semval.
|
||||
#define SETALL 17 ///< Set all semval's.
|
||||
#define OPERATION_NOT_ALLOWED -18 ///< Return value for blocking operations on semaphores.
|
||||
|
||||
|
||||
|
||||
/// @brief flags for semop
|
||||
#define SEM_UNDO 0x1000 /* undo the operation on exit */
|
||||
|
||||
|
||||
/// @brief Commands for semctl
|
||||
#define GETPID 11 /* get sempid */
|
||||
#define GETVAL 12 /* get semval */
|
||||
#define GETALL 13 /* get all semval's */
|
||||
#define GETNCNT 14 /* get semncnt */
|
||||
#define GETZCNT 15 /* get semzcnt */
|
||||
#define SETVAL 16 /* set semval */
|
||||
#define SETALL 17 /* set all semval's */
|
||||
#define OPERATION_NOT_ALLOWED -18 /*return value for blocking operations on semaphores*/
|
||||
|
||||
|
||||
|
||||
|
||||
/// }@
|
||||
|
||||
/// @brief Optional argument for semctl() function
|
||||
union semun {
|
||||
int val; /* value for SETVAL */
|
||||
struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */
|
||||
unsigned short *array; /* array for GETALL & SETALL */
|
||||
struct seminfo *__buf; /* buffer for IPC_INFO */
|
||||
/// @brief Value for SETVAL.
|
||||
int val;
|
||||
/// @brief Buffer for IPC_STAT & IPC_SET.
|
||||
struct semid_ds *buf;
|
||||
/// @brief Array for GETALL & SETALL.
|
||||
unsigned short *array;
|
||||
/// @brief Buffer for IPC_INFO.
|
||||
struct seminfo *__buf;
|
||||
};
|
||||
|
||||
/// @brief Single Semaphore
|
||||
struct sem{
|
||||
unsigned short sem_val; /*Semaphore Value*/
|
||||
pid_t sem_pid; /*Process ID of the last operation*/
|
||||
//unsigned short semncnt; /*Number of processes waiting of semaphore*/
|
||||
unsigned short sem_zcnt; /*Number of processes waiting for the value to become 0*/
|
||||
/// @brief Single Semaphore.
|
||||
struct sem {
|
||||
/// @brief Semaphore Value.
|
||||
unsigned short sem_val;
|
||||
/// @brief Process ID of the last operation.
|
||||
pid_t sem_pid;
|
||||
/// @brief Number of processes waiting of semaphore.
|
||||
//unsigned short semncnt;
|
||||
/// @brief Number of processes waiting for the value to become 0
|
||||
unsigned short sem_zcnt;
|
||||
};
|
||||
|
||||
/// @brief Semaphore set
|
||||
struct semid_ds {
|
||||
pid_t owner; /* Ownership and permissions */
|
||||
key_t key; /*IPC_KEY associated to the semaphore set*/
|
||||
int semid; /*semid associated to the semaphore set*/
|
||||
time_t sem_otime; /* Last semop time */
|
||||
time_t sem_ctime; /* Last change time */
|
||||
unsigned long sem_nsems; /* No. of semaphores in set */
|
||||
struct sem *sems; /*all the semaphores*/
|
||||
/// @brief Ownership and permissions.
|
||||
pid_t owner;
|
||||
/// @brief IPC_KEY associated to the semaphore set.
|
||||
key_t key;
|
||||
/// @brief Semaphore ID associated to the semaphore set.
|
||||
int semid;
|
||||
/// @brief Last semop time.
|
||||
time_t sem_otime;
|
||||
/// @brief Last change time.
|
||||
time_t sem_ctime;
|
||||
/// @brief Number of semaphores in set.
|
||||
unsigned long sem_nsems;
|
||||
/// @brief List of all the semaphores.
|
||||
struct sem *sems;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/// @brief Buffer to use with the semaphore IPC.
|
||||
struct sembuf {
|
||||
/// Semaphore index in array.
|
||||
/// @brief Semaphore index in array.
|
||||
unsigned short sem_num;
|
||||
/// Semaphore operation.
|
||||
/// @brief Semaphore operation.
|
||||
short sem_op;
|
||||
/// Operation flags.
|
||||
/// @brief Operation flags.
|
||||
short sem_flg;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/// @brief Get a System V semaphore set identifier.
|
||||
|
||||
Reference in New Issue
Block a user