VSF Documented
vsf_os.h File Reference
#include "kernel/vsf_kernel_cfg.h"
#include "./vsf_evtq.h"
#include "./task/vsf_task.h"
#include "hal/arch/vsf_arch.h"

Go to the source code of this file.

Data Structures

struct  __vsf_eda_frame_buffer_t
 
struct  vsf_kernel_resource_t
 

Macros

#define VSF_USER_ENTRY   user_main
 
#define VSF_SCHED_SAFE_CODE_REGION   DEFAULT_CODE_REGION_NONE
 
#define vsf_sched_lock()
 
#define vsf_sched_unlock(__level)
 
#define vsf_sched_safe()
 
#define __vsf_sched_safe(__code)
 
#define vsf_sched_safe_exit()
 
#define vsf_protect_scheduler()
 
#define vsf_unprotect_scheduler(__state)
 
#define vsf_protect_sched()
 
#define vsf_unprotect_sched(__prot)
 
#define __vsf_kernel_host_request_init(__req)
 
#define __vsf_kernel_host_request_fini(__req)
 
#define __vsf_kernel_host_request_send(__req)
 
#define __vsf_kernel_host_request_pend(__req)
 
#define __vsf_kernel_host_thread_init(__thread, __name, __entry, __prio, __stack, __stacksize)
 
#define __vsf_kernel_host_thread_restart(__thread, __request_pending)
 
#define __vsf_kernel_host_thread_exit(__thread)
 
#define vsf_sleep(...)
 
#define vsf_protect_region_sched   vsf_protect_region_none
 

Typedefs

typedef vsf_arch_prio_t vsf_sched_lock_status_t
 
typedef vsf_evt_node_t struct __vsf_eda_frame_buffer_t __vsf_eda_frame_buffer_t
 
typedef __vsf_eda_frame_buffer_t struct vsf_kernel_resource_t vsf_kernel_resource_t
 

Functions

 dcl_vsf_pool (vsf_evt_node_pool) def_vsf_pool(vsf_evt_node_pool
 
 dcl_vsf_pool (vsf_eda_frame_pool) def_vsf_pool(vsf_eda_frame_pool
 
void __vsf_kernel_os_start (void)
 __vsf_kernel_os_start and __vsf_kernel_os_run_priority are ONLY used when embedded weak vsf_main_entry is not used
 
void __vsf_kernel_os_run_priority (vsf_prio_t priority)
 
void vsf_kernel_err_report (enum vsf_kernel_error_t err)
 
void vsf_cpu_usage_start (vsf_cpu_usage_ctx_t *ctx)
 
void vsf_cpu_usage_stop (void)
 
void __vsf_sleep (int level)
 

Macro Definition Documentation

◆ VSF_USER_ENTRY

#define VSF_USER_ENTRY   user_main

◆ VSF_SCHED_SAFE_CODE_REGION

#define VSF_SCHED_SAFE_CODE_REGION   DEFAULT_CODE_REGION_NONE

◆ vsf_sched_lock

#define vsf_sched_lock ( )
Value:
0

◆ vsf_sched_unlock

#define vsf_sched_unlock ( __level)
Value:
#define VSF_UNUSED_PARAM(__VAL)
Definition __type.h:190

◆ vsf_sched_safe

#define vsf_sched_safe ( )
Value:
if (1)

◆ __vsf_sched_safe

#define __vsf_sched_safe ( __code)
Value:
__code

◆ vsf_sched_safe_exit

#define vsf_sched_safe_exit ( )

◆ vsf_protect_scheduler

#define vsf_protect_scheduler ( )
Value:
#define vsf_sched_lock()
Definition vsf_os.h:59

◆ vsf_unprotect_scheduler

#define vsf_unprotect_scheduler ( __state)
Value:
vsf_sched_unlock((__state))
#define vsf_sched_unlock(__level)
Definition vsf_os.h:60

◆ vsf_protect_sched

#define vsf_protect_sched ( )
Value:
uintalu_t vsf_protect_t
Definition vsf_arch_abstraction.h:60
#define vsf_protect_scheduler()
Definition vsf_os.h:71

◆ vsf_unprotect_sched

#define vsf_unprotect_sched ( __prot)
Value:
#define vsf_unprotect_scheduler(__state)
Definition vsf_os.h:72

◆ __vsf_kernel_host_request_init

#define __vsf_kernel_host_request_init ( __req)
Value:
void __vsf_arch_irq_request_init(vsf_arch_irq_request_t *request)
Definition linux_generic.c:167

◆ __vsf_kernel_host_request_fini

#define __vsf_kernel_host_request_fini ( __req)
Value:
void __vsf_arch_irq_request_fini(vsf_arch_irq_request_t *request)
Definition linux_generic.c:188

◆ __vsf_kernel_host_request_send

#define __vsf_kernel_host_request_send ( __req)
Value:
void __vsf_arch_irq_request_send(vsf_arch_irq_request_t *request)
Definition linux_generic.c:228

◆ __vsf_kernel_host_request_pend

#define __vsf_kernel_host_request_pend ( __req)
Value:
void __vsf_arch_irq_request_pend(vsf_arch_irq_request_t *request)
Definition linux_generic.c:205

◆ __vsf_kernel_host_thread_init

#define __vsf_kernel_host_thread_init ( __thread,
__name,
__entry,
__prio,
__stack,
__stacksize )
Value:
__vsf_arch_irq_init(__thread, __name, __entry, __prio)
#define __name
Definition hci_transport_aic8800.c:555
void __vsf_arch_irq_init(vsf_arch_irq_thread_t *irq_thread, char *name, vsf_arch_irq_entry_t entry, vsf_arch_prio_t priority)
Definition win_generic.c:693

◆ __vsf_kernel_host_thread_restart

#define __vsf_kernel_host_thread_restart ( __thread,
__request_pending )
Value:
__vsf_arch_irq_restart((__thread), (__request_pending))
vsf_err_t __vsf_arch_irq_restart(vsf_arch_irq_thread_t *irq_thread, vsf_arch_irq_request_t *request_pending)
Definition linux_generic.c:309

◆ __vsf_kernel_host_thread_exit

#define __vsf_kernel_host_thread_exit ( __thread)
Value:
void __vsf_arch_irq_exit(vsf_arch_irq_thread_t *irq_thread)
Definition linux_generic.c:303

◆ vsf_sleep

#define vsf_sleep ( ...)
Value:
__vsf_sleep((0, ##__VA_ARGS__))
void __vsf_sleep(int level)
Definition vsf_os.c:484

◆ vsf_protect_region_sched

#define vsf_protect_region_sched   vsf_protect_region_none

Typedef Documentation

◆ vsf_sched_lock_status_t

◆ __vsf_eda_frame_buffer_t

typedef vsf_evt_node_t struct __vsf_eda_frame_buffer_t __vsf_eda_frame_buffer_t

◆ vsf_kernel_resource_t

typedef __vsf_eda_frame_buffer_t struct vsf_kernel_resource_t vsf_kernel_resource_t

Function Documentation

◆ dcl_vsf_pool() [1/2]

dcl_vsf_pool ( vsf_evt_node_pool )

◆ dcl_vsf_pool() [2/2]

dcl_vsf_pool ( vsf_eda_frame_pool )

◆ __vsf_kernel_os_start()

void __vsf_kernel_os_start ( void )
extern

__vsf_kernel_os_start and __vsf_kernel_os_run_priority are ONLY used when embedded weak vsf_main_entry is not used

◆ __vsf_kernel_os_run_priority()

void __vsf_kernel_os_run_priority ( vsf_prio_t priority)
extern

◆ vsf_kernel_err_report()

void vsf_kernel_err_report ( enum vsf_kernel_error_t err)
extern
Note
This should not happen. Two possible reasons could be:
  1. Forgeting to set VSF_OS_CFG_MAIN_MODE to VSF_OS_CFG_MAIN_MODE_THREAD and using vsf kernel APIs, e.g. vsf_delay_ms, vsf_sem_pend and etc.
  2. When VSF_OS_CFG_MAIN_MODE is not VSF_OS_CFG_MAIN_MODE_THREAD, using any vsf_eda_xxxx APIs.
  3. call APIs depends on eda context in non-eda context
This should not happen. One possible reason is:

‍You start task, e.g. eda, vsf_task, vsf_pt or vsf_thread in the idle task. Please use vsf_prio_0 when you do this in idle task.

◆ vsf_cpu_usage_start()

void vsf_cpu_usage_start ( vsf_cpu_usage_ctx_t * ctx)
extern

◆ vsf_cpu_usage_stop()

void vsf_cpu_usage_stop ( void )
extern

◆ __vsf_sleep()

void __vsf_sleep ( int level)
extern
Generated from commit: vsfteam/vsf@606aeaf