Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Description

Sets 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 20Chapter 20, “Thread Safety of the Compiler’s Run-Time Library” on page 419 for details on TLS. Anchor10780401078040 Arguments Anchor10780411078041 p_tcb Anchor10780421078042

Files

os.h/os_tls.c

Prototype

Code Block
void  OS_TLS_SetValue (OS_TCB     *p_tcb,
                       OS_TLS_ID   id,
                       OS_TLS      value,
                       OS_ERR     *p_err)

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].

...

1078043id Anchor10780441078044

is the TLS ID of the entry you are setting.

...

value Anchor10780461078046

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

Anchor10780471078047p_err Anchor10780481078048

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

...

...

OS_ERR_NONE

...

classWebWorks_Indent_2

...

If the call was successful and the caller was returned the value.

...

classWebWorks_Indent_1

...

OS_ERR_OS_NOT_RUNNING

...

classWebWorks_Indent_2

...

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.

...

classWebWorks_Indent_1

...

...

OS_ERR_TLS_ID_INVALID

...

classWebWorks_Indent_2

...

If you called OS_TLS_GetValue() and specified a TLS ID that has not been assigned. See OS_TLS_GetID() about assigning TLS IDs.

...

classWebWorks_Indent_1

...

...

OS_ERR_TLS_NOT_EN

...

classWebWorks_Indent_2

...

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

anchorNone10780581078058 None Anchor10780591078059

Required Configuration

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

Callers

Application.

Notes/Warnings

...

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

...

...

Example Usage

...

Code Block

...

    void MyTask (void *p_arg) { OS_ERR err; OS_TLS p_tls;     : : while (DEF_TRUE) { p_tls =

           
           
          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” */ : : } }
HTML Table
summary
classCode_Listing
Table Row (tr)
Table Cell (td)
rowspan13
Anchor
10831511083151
titleOS_TLS_SetValue() example usage
          OS_TLS_ID   MyTLS_ID;
Anchor
10831521083152
Anchor
10831531083153
Anchor
10831541083154
Anchor
10831551083155
Anchor
10831561083156
Anchor
10831571083157
Anchor
10831581083158
Anchor
10831591083159
Anchor
10831601083160
Anchor
10831611083161
Anchor
10831621083162
Anchor
10831631083163
Anchor
10831641083164
Anchor
10831651083165
Anchor
10831661083166
Anchor
10831671083167
Anchor
10831681083168
Anchor
10831691083169
Anchor
10831701083170
Table Row (tr)
Table Row (tr)
Table Row (tr)
Table Row (tr)
Table Row (tr)
Table Row (tr)
Table Row (tr)
Table Row (tr)
Table Row (tr)
Table Row (tr)
Table Row (tr)
Table Row (tr)

...


                  /* Check "err" */
                  :
                  :
              }
          }