Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
threads_arch.c File Reference
#include "modules/core/threads.h"
#include "modules/core/threads_arch.h"
#include "stdbool.h"
#include <semaphore.h>
#include <stdlib.h>
+ Include dependency graph for threads_arch.c:

Go to the source code of this file.

Data Structures

struct  stub_arg
 

Functions

int pprz_mtx_init (pprz_mutex_t *mtx)
 
int pprz_mtx_lock (pprz_mutex_t *mtx)
 
int pprz_mtx_trylock (pprz_mutex_t *mtx)
 Performs a nonblocking lock on the mutex.
 
int pprz_mtx_unlock (pprz_mutex_t *mtx)
 
void pprz_bsem_init (pprz_bsem_t *bsem, bool taken)
 
void pprz_bsem_wait (pprz_bsem_t *bsem)
 
void pprz_bsem_signal (pprz_bsem_t *bsem)
 
static voidstub (void *arg)
 
int pprz_thread_create (pprz_thread_t *thread, size_t size, const char *name, uint8_t prio, void(*func)(void *), void *arg)
 Creates a new thread whose stack is dynamically allocated.
 
void pprz_thread_exit (void *retval)
 Exit the current thread.
 
int pprz_thread_join (pprz_thread_t *thread, void **retval)
 Wait for the thread to terminate.
 
int pprz_thread_tryjoin (pprz_thread_t *thread, void **retval)
 Performs a nonblocking join with the thread.
 

Function Documentation

◆ pprz_bsem_init()

void pprz_bsem_init ( pprz_bsem_t bsem,
bool  taken 
)

Definition at line 38 of file threads_arch.c.

References bsem, foo, pprzBSem::mtx, and pprzBSem::sem.

◆ pprz_bsem_signal()

void pprz_bsem_signal ( pprz_bsem_t bsem)

Definition at line 47 of file threads_arch.c.

References bsem, foo, pprzBSem::mtx, pprzBSem::sem, and val.

◆ pprz_bsem_wait()

void pprz_bsem_wait ( pprz_bsem_t bsem)

Definition at line 43 of file threads_arch.c.

References bsem, foo, and pprzBSem::sem.

◆ pprz_mtx_init()

int pprz_mtx_init ( pprz_mutex_t mtx)

Definition at line 20 of file threads_arch.c.

References foo, pprzMutex::mtx, and mtx.

◆ pprz_mtx_lock()

int pprz_mtx_lock ( pprz_mutex_t mtx)

Definition at line 24 of file threads_arch.c.

References foo, pprzMutex::mtx, and mtx.

◆ pprz_mtx_trylock()

int pprz_mtx_trylock ( pprz_mutex_t mtx)

Performs a nonblocking lock on the mutex.

Returns
0 if successful

Definition at line 28 of file threads_arch.c.

References foo, pprzMutex::mtx, and mtx.

◆ pprz_mtx_unlock()

int pprz_mtx_unlock ( pprz_mutex_t mtx)

Definition at line 32 of file threads_arch.c.

References foo, pprzMutex::mtx, and mtx.

◆ pprz_thread_create()

int pprz_thread_create ( pprz_thread_t thread,
size_t  size,
const char name,
uint8_t  prio,
void(*)(void *)  func,
void arg 
)

Creates a new thread whose stack is dynamically allocated.

Parameters
[in]sizesize of the stack. Unused on linux at the moment.
[in]priothe priority level for the new thread. Unused on linux at the moment. NORMALPRIO
[in]pfthe thread function
[in]argan argument passed to the thread function. It can be NULL.
[out]threadpointer to a pprz_thread_t that will be writen with the handle to the thread
Returns
Return 0 on success, or a platform dependant error code.

@api

Definition at line 75 of file threads_arch.c.

References stub_arg::arg, foo, stub_arg::func, and stub().

+ Here is the call graph for this function:

◆ pprz_thread_exit()

void pprz_thread_exit ( void retval)

Exit the current thread.

Parameters
[out]retvalThe thread's return value

Definition at line 86 of file threads_arch.c.

References foo.

◆ pprz_thread_join()

int pprz_thread_join ( pprz_thread_t thread,
void **  retval 
)

Wait for the thread to terminate.

Note
Warning ! This is a blocking function, do not use it in the main AP thread !
Parameters
[in]threadThe thread to be joined
[out]retvalThe thread's return value will be written to the variable pointed by retval

Definition at line 90 of file threads_arch.c.

References foo.

◆ pprz_thread_tryjoin()

int pprz_thread_tryjoin ( pprz_thread_t thread,
void **  retval 
)

Performs a nonblocking join with the thread.

Parameters
[in]threadThe thread to be joined
[out]retvalThe thread's return value will be written to the variable pointed by retval. must not be used if this fuction did not returned 0.
Returns
0 if the thread successfully joined.

Definition at line 94 of file threads_arch.c.

References foo.

◆ stub()

static void * stub ( void arg)
static

Definition at line 68 of file threads_arch.c.

References stub_arg::arg, foo, and stub_arg::func.