threading.h File Reference

Threading abstraction layer. More...

`#include "config.h"`
`#include <stdlib.h>`
`#include <pthread.h>`
`#include "threading_alt.h"`
Include dependency graph for threading.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

struct | mbedtls_threading_mutex_t

## Macros

#define | MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE -0x001A
| The selected feature is not available. More...
#define | MBEDTLS_ERR_THREADING_BAD_INPUT_DATA -0x001C
| Bad input parameters to function. More...
#define | MBEDTLS_ERR_THREADING_MUTEX_ERROR -0x001E
| Locking / unlocking / free failed with error code. More...

## Functions

void | mbedtls_threading_set_alt (void(*mutex_init)(mbedtls_threading_mutex_t *), void(*mutex_free)(mbedtls_threading_mutex_t *), int(*mutex_lock)(mbedtls_threading_mutex_t *), int(*mutex_unlock)(mbedtls_threading_mutex_t *))
| Set your alternate threading implementation function pointers and initialize global mutexes. More...
void | mbedtls_threading_free_alt (void)
| Free global mutexes. More...

## Variables

void(* | mbedtls_mutex_init )(mbedtls_threading_mutex_t *mutex)
void(* | mbedtls_mutex_free )(mbedtls_threading_mutex_t *mutex)
int(* | mbedtls_mutex_lock )(mbedtls_threading_mutex_t *mutex)
int(* | mbedtls_mutex_unlock )(mbedtls_threading_mutex_t *mutex)
mbedtls_threading_mutex_t | mbedtls_threading_readdir_mutex
mbedtls_threading_mutex_t | mbedtls_threading_gmtime_mutex

## Detailed Description

Threading abstraction layer.

Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

This file is part of mbed TLS (https://tls.mbed.org)

Definition in file threading.h.

## Macro Definition Documentation

#define MBEDTLS_ERR_THREADING_BAD_INPUT_DATA -0x001C

Bad input parameters to function.

Definition at line 39 of file threading.h.

#define MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE -0x001A

The selected feature is not available.

Definition at line 38 of file threading.h.

#define MBEDTLS_ERR_THREADING_MUTEX_ERROR -0x001E

Locking / unlocking / free failed with error code.

Definition at line 40 of file threading.h.

## Function Documentation

void mbedtls_threading_free_alt | ( | void |  | ) |

Free global mutexes.

void mbedtls_threading_set_alt | ( | void(*)(mbedtls_threading_mutex_t *) | mutex_init,
|  | void(*)(mbedtls_threading_mutex_t *) | mutex_free,
|  | int(*)(mbedtls_threading_mutex_t *) | mutex_lock,
|  | int(*)(mbedtls_threading_mutex_t *) | mutex_unlock
| ) |  |

Set your alternate threading implementation function pointers and initialize global mutexes.

If used, this function must be called once in the main thread before any other mbed TLS function is called, and mbedtls_threading_free_alt() must be called once in the main thread after all other mbed TLS functions.

Note
  mutex_init() and mutex_free() don't return a status code. If mutex_init() fails, it should leave its argument (the mutex) in a state such that mutex_lock() will fail when called with this argument.

Parameters

  mutex_init | the init function implementation
  mutex_free | the free function implementation
  mutex_lock | the lock function implementation
  mutex_unlock | the unlock function implementation

## Variable Documentation

void(* mbedtls_mutex_free) (mbedtls_threading_mutex_t *mutex)

void(* mbedtls_mutex_init) (mbedtls_threading_mutex_t *mutex)

int(* mbedtls_mutex_lock) (mbedtls_threading_mutex_t *mutex)

int(* mbedtls_mutex_unlock) (mbedtls_threading_mutex_t *mutex)

mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex

mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex