mbed TLS v3.1.0
Data Structures | Macros | Typedefs | Functions | Variables
threading.h File Reference

Threading abstraction layer. More...

#include "mbedtls/private_access.h"
#include "mbedtls/build_info.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_BAD_INPUT_DATA   -0x001C
 
#define MBEDTLS_ERR_THREADING_MUTEX_ERROR   -0x001E
 

Typedefs

typedef struct
mbedtls_threading_mutex_t 
mbedtls_threading_mutex_t
 

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

Definition in file threading.h.

Macro Definition Documentation

#define MBEDTLS_ERR_THREADING_BAD_INPUT_DATA   -0x001C

Bad input parameters to function.

Definition at line 35 of file threading.h.

#define MBEDTLS_ERR_THREADING_MUTEX_ERROR   -0x001E

Locking / unlocking / free failed with error code.

Definition at line 37 of file threading.h.

Typedef Documentation

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_initthe init function implementation
mutex_freethe free function implementation
mutex_lockthe lock function implementation
mutex_unlockthe 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