VSF Documented
macos_generic.c File Reference
#include "hal/arch/vsf_arch_abstraction.h"
#include "hal/arch/__vsf_arch_interface.h"
#include <unistd.h>
#include <signal.h>
#include <time.h>
#include <pthread.h>
#include <setjmp.h>
#include <mach/clock.h>
#include <mach/mach.h>
#include <dispatch/dispatch.h>
#include "hal/arch/common/arch_without_thread_suspend/vsf_arch_without_thread_suspend_template.inc"

Data Structures

struct  vsf_arch_systimer_ctx_t
 
struct  vsf_arch_t
 

Macros

#define __VSF_ARCH_MACOS_IMPLEMENT
 
#define VSF_ARCH_CFG_THREAD_NUM   32
 
#define VSF_ARCH_CFG_IRQ_REQUEST_NUM   (VSF_ARCH_CFG_THREAD_NUM + 32)
 
#define VSF_ARCH_CFG_TRACE_FUNC   printf
 
#define VSF_ARCH_CFG_IRQ_TRACE_EN   DISABLED
 
#define VSF_ARCH_CFG_REQUEST_TRACE_EN   DISABLED
 
#define vsf_arch_irq_trace(...)
 
#define vsf_arch_request_trace(__request, __event)
 
#define __vsf_arch_crit_init(__crit)
 
#define __vsf_arch_crit_enter(__crit)
 
#define __vsf_arch_crit_leave(__crit)
 
#define __VSF_ARCH_WITHOUT_THREAD_SUSPEND_TEMPLATE__
 

Typedefs

typedef struct vsf_arch_systimer_ctx_t vsf_arch_systimer_ctx_t
 
typedef struct vsf_arch_t vsf_arch_t
 

Functions

 dcl_vsf_bitmap (vsf_arch_thread_bitmap, VSF_ARCH_CFG_THREAD_NUM)
 
 dcl_vsf_bitmap (vsf_arch_irq_request_bitmap, VSF_ARCH_CFG_IRQ_REQUEST_NUM)
 
void __vsf_arch_irq_request_init (vsf_arch_irq_request_t *request)
 
void __vsf_arch_irq_request_fini (vsf_arch_irq_request_t *request)
 
void __vsf_arch_irq_request_pend (vsf_arch_irq_request_t *request)
 
void __vsf_arch_irq_request_send (vsf_arch_irq_request_t *request)
 
void __vsf_arch_irq_exit (vsf_arch_irq_thread_t *irq_thread)
 
vsf_err_t __vsf_arch_irq_restart (vsf_arch_irq_thread_t *irq_thread, vsf_arch_irq_request_t *request_pending)
 
void __vsf_arch_irq_sleep (uint32_t ms)
 
vsf_err_t vsf_systimer_init (void)
 initialise SysTick to generate a system timer !
 
vsf_err_t vsf_systimer_start (void)
 
void vsf_systimer_set_idle (void)
 
vsf_systimer_tick_t vsf_systimer_get (void)
 
bool vsf_systimer_set (vsf_systimer_tick_t due)
 
bool vsf_systimer_is_due (vsf_systimer_tick_t due)
 
vsf_systimer_tick_t vsf_systimer_us_to_tick (uint_fast32_t time_us)
 
vsf_systimer_tick_t vsf_systimer_ms_to_tick (uint_fast32_t time_ms)
 
vsf_systimer_tick_t vsf_systimer_tick_to_us (vsf_systimer_tick_t tick)
 
vsf_systimer_tick_t vsf_systimer_tick_to_ms (vsf_systimer_tick_t tick)
 
void vsf_systimer_prio_set (vsf_arch_prio_t priority)
 
bool vsf_arch_low_level_init (void)
 

Variables

 vsf_arch_thread_t
 
 vsf_arch_irq_request_priv_t
 

Macro Definition Documentation

◆ __VSF_ARCH_MACOS_IMPLEMENT

#define __VSF_ARCH_MACOS_IMPLEMENT

◆ VSF_ARCH_CFG_THREAD_NUM

#define VSF_ARCH_CFG_THREAD_NUM   32

◆ VSF_ARCH_CFG_IRQ_REQUEST_NUM

#define VSF_ARCH_CFG_IRQ_REQUEST_NUM   (VSF_ARCH_CFG_THREAD_NUM + 32)

◆ VSF_ARCH_CFG_TRACE_FUNC

#define VSF_ARCH_CFG_TRACE_FUNC   printf

◆ VSF_ARCH_CFG_IRQ_TRACE_EN

#define VSF_ARCH_CFG_IRQ_TRACE_EN   DISABLED

◆ VSF_ARCH_CFG_REQUEST_TRACE_EN

#define VSF_ARCH_CFG_REQUEST_TRACE_EN   DISABLED

◆ vsf_arch_irq_trace

#define vsf_arch_irq_trace ( ...)
Value:
#define VSF_ARCH_CFG_TRACE_FUNC
Definition macos_generic.c:53

◆ vsf_arch_request_trace

#define vsf_arch_request_trace ( __request,
__event )
Value:
do { \
int idx = __vsf_arch_get_thread_idx((__request)->arch_thread); \
if (idx >= 0) { \
VSF_ARCH_CFG_TRACE_FUNC("irq_request%d %p " __event "\n", idx, (__request));\
} else { \
VSF_ARCH_CFG_TRACE_FUNC("irq_request %p " __event "\n", (__request));\
} \
} while (false)

◆ __vsf_arch_crit_init

#define __vsf_arch_crit_init ( __crit)
Value:
#define NULL
Definition lvgl.h:26
#define pthread_mutex_init
Definition pthread.h:66

◆ __vsf_arch_crit_enter

#define __vsf_arch_crit_enter ( __crit)
Value:
#define pthread_mutex_lock
Definition pthread.h:68

◆ __vsf_arch_crit_leave

#define __vsf_arch_crit_leave ( __crit)
Value:
#define pthread_mutex_unlock
Definition pthread.h:71

◆ __VSF_ARCH_WITHOUT_THREAD_SUSPEND_TEMPLATE__

#define __VSF_ARCH_WITHOUT_THREAD_SUSPEND_TEMPLATE__

Typedef Documentation

◆ vsf_arch_systimer_ctx_t

typedef struct vsf_arch_systimer_ctx_t vsf_arch_systimer_ctx_t

◆ vsf_arch_t

typedef struct vsf_arch_t vsf_arch_t

Function Documentation

◆ dcl_vsf_bitmap() [1/2]

dcl_vsf_bitmap ( vsf_arch_thread_bitmap ,
VSF_ARCH_CFG_THREAD_NUM  )

◆ dcl_vsf_bitmap() [2/2]

dcl_vsf_bitmap ( vsf_arch_irq_request_bitmap ,
VSF_ARCH_CFG_IRQ_REQUEST_NUM  )

◆ __vsf_arch_irq_request_init()

void __vsf_arch_irq_request_init ( vsf_arch_irq_request_t * request)

◆ __vsf_arch_irq_request_fini()

void __vsf_arch_irq_request_fini ( vsf_arch_irq_request_t * request)

◆ __vsf_arch_irq_request_pend()

void __vsf_arch_irq_request_pend ( vsf_arch_irq_request_t * request)

◆ __vsf_arch_irq_request_send()

void __vsf_arch_irq_request_send ( vsf_arch_irq_request_t * request)

◆ __vsf_arch_irq_exit()

void __vsf_arch_irq_exit ( vsf_arch_irq_thread_t * irq_thread)

◆ __vsf_arch_irq_restart()

vsf_err_t __vsf_arch_irq_restart ( vsf_arch_irq_thread_t * irq_thread,
vsf_arch_irq_request_t * request_pending )

◆ __vsf_arch_irq_sleep()

void __vsf_arch_irq_sleep ( uint32_t ms)

◆ vsf_systimer_init()

vsf_err_t vsf_systimer_init ( void )

initialise SysTick to generate a system timer !

Parameters
frequencythe target tick frequency in Hz !
Returns
initialization result in vsf_err_t

◆ vsf_systimer_start()

vsf_err_t vsf_systimer_start ( void )

◆ vsf_systimer_set_idle()

void vsf_systimer_set_idle ( void )

◆ vsf_systimer_get()

vsf_systimer_tick_t vsf_systimer_get ( void )

◆ vsf_systimer_set()

bool vsf_systimer_set ( vsf_systimer_tick_t due)

◆ vsf_systimer_is_due()

bool vsf_systimer_is_due ( vsf_systimer_tick_t due)

◆ vsf_systimer_us_to_tick()

vsf_systimer_tick_t vsf_systimer_us_to_tick ( uint_fast32_t time_us)

◆ vsf_systimer_ms_to_tick()

vsf_systimer_tick_t vsf_systimer_ms_to_tick ( uint_fast32_t time_ms)

◆ vsf_systimer_tick_to_us()

vsf_systimer_tick_t vsf_systimer_tick_to_us ( vsf_systimer_tick_t tick)

◆ vsf_systimer_tick_to_ms()

vsf_systimer_tick_t vsf_systimer_tick_to_ms ( vsf_systimer_tick_t tick)

◆ vsf_systimer_prio_set()

void vsf_systimer_prio_set ( vsf_arch_prio_t priority)

◆ vsf_arch_low_level_init()

bool vsf_arch_low_level_init ( void )
Note
initialize architecture specific service
Parameters
none
Return values
trueinitialization succeeded.
falseinitialization failed

Variable Documentation

◆ vsf_arch_thread_t

vsf_arch_thread_t

◆ vsf_arch_irq_request_priv_t

vsf_arch_irq_request_priv_t
Generated from commit: vsfteam/vsf@ceb53fd