Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Unable to render {include} The included page could not be found.
Unable to render {include} The included page could not be found.

OS_TLS_SetValue()

void OS_TLS_SetValue (OS_TCB *p_tcb,

OS_TLS_ID id,

OS_TLS value,

OS_ERR *p_err);

 

File

Called from

Code enabled by

os_tls.c

Task

OS_CFG_TLS_TBL_SIZE

OS_TLS_SetValue() allows your application to set the value of a TLS (thread-local storage) entry in the specified task’s OS_TCB. Specifically, this function assigns value to p_tcb->TLS_Tbl[id]. See Chapter 20, “Thread Safety of the Compiler’s Run-Time Library” on page 419 for details on TLS.

Arguments

p_tcb

is a pointer to the OS_TCB of the task you wish to assign the TLS value to. value will thus be assigned to p_tcb->TLS_Tbl[id].

id

is the TLS ID of the entry you are setting.

value

is the value to store at p_tcb->TLS_Tbl[id].

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 the value.
OS_ERR_OS_NOT_RUNNING
if you called OS_TLS_SetValue() and the kernel has not started yet. However, it’s acceptable to call this function prior to starting multitasking but in this case, you must specify a non-NULL pointer for p_tcb.
OS_ERR_TLS_ID_INVALID
if you called OS_TLS_GetValue() and specified a TLS ID that has not been assigned. See OS_TLS_GetID() about assigning TLS IDs.
OS_ERR_TLS_NOT_EN
if you called OS_TLS_SetValue() but the task was created with the option OS_OPT_TASK_NO_TLS indicating that the task does not need TLS support.

Returned Value

None

Notes/Warnings

You cannot call OS_TLS_SetValue() for a task until that task gets created.

Example

 

OS_TLS_ID MyTLS_ID;

 

 

void MyTask (void *p_arg)

{

OS_ERR err;

OS_TLS p_tls;

 

 

:

:

while (DEF_TRUE) {

p_tls = OSTLS_GetValue((OS_TCB *)0,

(OS_TLS_ID)MyTLS_ID,

(OS_ERR *)&err);

/* Check “err” */

:

:

}

}

 

  • No labels