- Main Page
- Modules
- Data Structures
- Files

# Mutex Functions
[Abstracted Functions]

## Typedefs
typedef POSMUTEX_t | NOSMUTEX_t
## Functions
NANOEXT NOSMUTEX_t | nosMutexCreate (UVAR_t options, const char *name)
NANOEXT void | nosMutexDestroy (NOSMUTEX_t mutex)
NANOEXT VAR_t | nosMutexTryLock (NOSMUTEX_t mutex)
NANOEXT VAR_t | nosMutexLock (NOSMUTEX_t mutex)
NANOEXT VAR_t | nosMutexUnlock (NOSMUTEX_t mutex)

## Detailed Description

For detailed information about using mutexes please see detailed description of mutexes

## Typedef Documentation

typedef POSMUTEX_t NOSMUTEX_t

| Handle to a nano layer semaphore object.

## Function Documentation

NANOEXT NOSMUTEX_t nosMutexCreate | ( | UVAR_t | options,
|  | const char * | name
| ) |

  | Mutex function. Allocates a new mutex object. Parameters:
  | options | Currently unused. Please set this parameter to 0 (zero).
  | name | Name of the new mutex object to create. If the last character in the name is an asteriks (*), the operating system automatically assigns the mutex a unique name (the registry feature must be enabled for this automatism). This parameter can be NULL if the nano layer registry feature is not used and will not be used in future.
Returns: the pointer to the new mutex object. NULL is returned on error. Note: NOSCFG_FEATURE_MUTEXES must be defined to 1 to have mutex support compiled in. Even if the function posMutexDestroy would work also, it is required to call nosMutexDestroy. Only this function removes the mutex from the registry. Dependent of your configuration, this function can be defined as macro to decrease code size. See also: nosMutexDestroy, nosMutexLock, nosMutexTryLock, nosMutexUnlock

NANOEXT void nosMutexDestroy | ( | NOSMUTEX_t | mutex | ) |

  | Mutex function. Frees a no more needed mutex object. Parameters:
  | mutex | handle to the mutex object.
Note: NOSCFG_FEATURE_MUTEXES must be defined to 1 to have mutex support compiled in. POSCFG_FEATURE_MUTEXDESTROY must be defined to 1 to have this function compiled in. Dependent of your configuration, this function can be defined as macro to decrease code size. See also: nosMutexCreate

NANOEXT VAR_t nosMutexLock | ( | NOSMUTEX_t | mutex | ) |

  | Mutex function. This function locks a code section so that only one task can execute the code at a time. If an other task already has the lock, the task requesting the lock will be blocked until the mutex is unlocked again. Note that a nosMutexLock appears always in a pair with nosMutexUnlock. Parameters:
  | mutex | handle to the mutex object.
Returns: zero on success. Note: NOSCFG_FEATURE_MUTEXES must be defined to 1 to have mutex support compiled in. Dependent of your configuration, this function can be defined as macro to decrease code size. See also: nosMutexTryLock, nosMutexUnlock, nosMutexCreate

NANOEXT VAR_t nosMutexTryLock | ( | NOSMUTEX_t | mutex | ) |

  | Mutex function. Tries to get the mutex lock. This function does not block when the mutex is not available, instead it returns a value showing that the mutex could not be locked. Parameters:
  | mutex | handle to the mutex object.
Returns: zero when the mutex lock could be set. Otherwise, when the mutex lock is yet helt by an other task, the function returns 1. A negative value is returned on error. Note: NOSCFG_FEATURE_MUTEXES must be defined to 1 to have mutex support compiled in. POSCFG_FEATURE_MUTEXTRYLOCK must be defined to 1 to have this function compiled in. Dependent of your configuration, this function can be defined as macro to decrease code size. See also: nosMutexLock, nosMutexUnlock, nosMutexCreate

NANOEXT VAR_t nosMutexUnlock | ( | NOSMUTEX_t | mutex | ) |

  | Mutex function. This function unlocks a section of code so that other tasks are able to execute it. Parameters:
  | mutex | handle to the mutex object.
Returns: zero on success. Note: NOSCFG_FEATURE_MUTEXES must be defined to 1 to have mutex support compiled in. Dependent of your configuration, this function can be defined as macro to decrease code size. See also: nosMutexLock, nosMutexTryLock, nosMutexCreate