OS_TLS_GetID

Description

Called by the application to assign a TLS (thread-local storage) ID for a specific purpose. See Thread Safety of the Compiler’s Run-Time Library for details on TLS. TLS IDs are assigned dynamically as needed by the application. Once assigned, TLS IDs cannot be un-assigned.

Files

os.h/os_tls.c

Prototype

OS_TLS_ID  OS_TLS_GetID (OS_ERR  *p_err)

Arguments

p_err

is a pointer to a variable that contains an error code returned by this function. Possible values are:

OS_ERR_NONE

If the call was successful and the caller was returned a TLS ID.

OS_ERR_TLS_NO_MORE_AVAIL

If you called OS_TLS_GetID() more than OS_CFG_TLS_TBL_SIZE times.

Returned Value

The next available TLS ID or OS_CFG_TLS_TBL_SIZE if there are no more TLS IDs available.

Required Configuration

OS_CFG_TLS_TBL_SIZE must be greater than 0 in os_cfg.h. Refer to µC-OS-III Configuration Manual.

Callers

Application.

Notes/Warnings

None

Example Usage

OS_TLS_GetID() example usage
          OS_TLS_ID   MyTLS_ID;
           
           
          void  main (void)
          {
              OS_ERR   err;
           
           
              :
              OSInit(&err);
              :
              :
              MyTLS_ID = OS_TLS_GetID(&err);  /* Obtain the next available TLS ID       */
              /* Check "err" */
              :
              :
          }