VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions
win_generic.h File Reference
#include "hal/vsf_hal_cfg.h"
#include "utilities/vsf_utilities.h"
#include "utilities/ooc_class.h"

Go to the source code of this file.

Data Structures

class  vsf_arch_irq_request_t
 
class  vsf_arch_irq_thread_t
 

Macros

#define PUBLIC_CONST   const
 
#define __LITTLE_ENDIAN   1
 
#define __BIG_ENDIAN   0
 
#define __BYTE_ORDER   __LITTLE_ENDIAN
 
#define VSF_SYSTIMER_CFG_IMPL_MODE   VSF_SYSTIMER_IMPL_REQUEST_RESPONSE
 
#define VSF_ARCH_STACK_PAGE_SIZE   4096
 
#define VSF_ARCH_STACK_GUARDIAN_SIZE   4096
 
#define VSF_ARCH_PROVIDE_HEAP   ENABLED
 
#define VSF_ARCH_PROVIDE_ARGU   ENABLED
 
#define VSF_ARCH_PROVIDE_EXE   ENABLED
 
#define VSF_ARCH_SWI_NUM   32
 
#define VSF_ARCH_PRI_NUM   64
 
#define VSF_ARCH_SYSTIMER_FREQ   (10 * 1000 * 1000)
 GetSystemTimeAsFileTime has 100ns resolution, which is 10MHz.
 
#define FAR
 
#define NEAR
 
#define VSF_ARCH_TRACE_FUNC(...)   __vsf_arch_trace(0, __VA_ARGS__)
 
#define vsf_arch_trace(__header, __color, ...)
 
#define __VSF_ARCH_PRI(__N, __UNUSED)
 
#define vsf_arch_wakeup()
 
#define VSF_ARCH_SYSTIMER_TICK_T   uint64_t
 
#define VSF_ARCH_NO_DISABLE_INTERRUPT_BEFORE_SLEEP
 

Typedefs

typedef void * VSF_WIN_HANDLE
 
typedef unsigned long VSF_WIN_DWORD
 
typedef unsigned int VSF_WIN_UINT
 
typedef unsigned char VSF_WIN_BYTE
 
typedef char * VSF_WIN_LPSTR
 
typedef unsigned long VSF_WIN_ULONG_PTR
 
typedef unsigned long * VSF_WIN_PULONG_PTR
 
typedef VSF_WIN_ULONG_PTR VSF_WIN_DWORD_PTR
 
typedef VSF_WIN_ULONG_PTRVSF_WIN_PDWORD_PTR
 
typedef VSF_ARCH_SYSTIMER_TICK_T vsf_systimer_tick_t
 
typedef enum vsf_arch_prio_t vsf_arch_prio_t
 
typedef void(* vsf_arch_irq_entry_t) (void *)
 
typedef volatile bool vsf_gint_state_t
 
typedef enum vsf_arch_irq_state_t vsf_arch_irq_state_t
 

Enumerations

enum  vsf_arch_prio_t {
  VSF_ARCH_PRIO_INVALID = -1 ,
  vsf_arch_prio_invalid = -1 ,
  vsf_arch_prio_highest = VSF_ARCH_PRI_NUM - 1
}
 
enum  vsf_arch_irq_state_t {
  VSF_ARCH_IRQ_STATE_IDLE ,
  VSF_ARCH_IRQ_STATE_ACTIVE ,
  VSF_ARCH_IRQ_STATE_FOREGROUND ,
  VSF_ARCH_IRQ_STATE_BACKGROUND
}
 

Functions

int __vsf_arch_trace (int level, const char *format,...)
 
void __vsf_arch_irq_sleep (uint_fast32_t ms)
 
int vsf_arch_argu (char ***argv)
 
void * vsf_arch_alloc_exe (uint_fast32_t size)
 
void vsf_arch_free_exe (void *ptr)
 
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)
 
vsf_arch_irq_thread_t__vsf_arch_irq_get_cur (void)
 
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)
 
void __vsf_arch_irq_fini (vsf_arch_irq_thread_t *irq_thread)
 
void __vsf_arch_irq_set_background (vsf_arch_irq_thread_t *irq_thread)
 
void __vsf_arch_irq_start (vsf_arch_irq_thread_t *irq_thread)
 
void __vsf_arch_irq_end (vsf_arch_irq_thread_t *irq_thread, bool is_terminate)
 
vsf_systimer_tick_t __vsf_systimer_get (void)
 

Macro Definition Documentation

◆ PUBLIC_CONST

#define PUBLIC_CONST   const

◆ __LITTLE_ENDIAN

#define __LITTLE_ENDIAN   1

◆ __BIG_ENDIAN

#define __BIG_ENDIAN   0

◆ __BYTE_ORDER

#define __BYTE_ORDER   __LITTLE_ENDIAN

◆ VSF_SYSTIMER_CFG_IMPL_MODE

#define VSF_SYSTIMER_CFG_IMPL_MODE   VSF_SYSTIMER_IMPL_REQUEST_RESPONSE

◆ VSF_ARCH_STACK_PAGE_SIZE

#define VSF_ARCH_STACK_PAGE_SIZE   4096

◆ VSF_ARCH_STACK_GUARDIAN_SIZE

#define VSF_ARCH_STACK_GUARDIAN_SIZE   4096

◆ VSF_ARCH_PROVIDE_HEAP

#define VSF_ARCH_PROVIDE_HEAP   ENABLED

◆ VSF_ARCH_PROVIDE_ARGU

#define VSF_ARCH_PROVIDE_ARGU   ENABLED

◆ VSF_ARCH_PROVIDE_EXE

#define VSF_ARCH_PROVIDE_EXE   ENABLED

◆ VSF_ARCH_SWI_NUM

#define VSF_ARCH_SWI_NUM   32

◆ VSF_ARCH_PRI_NUM

#define VSF_ARCH_PRI_NUM   64

◆ VSF_ARCH_SYSTIMER_FREQ

#define VSF_ARCH_SYSTIMER_FREQ   (10 * 1000 * 1000)

GetSystemTimeAsFileTime has 100ns resolution, which is 10MHz.

◆ FAR

#define FAR

◆ NEAR

#define NEAR

◆ VSF_ARCH_TRACE_FUNC

#define VSF_ARCH_TRACE_FUNC (   ...)    __vsf_arch_trace(0, __VA_ARGS__)

◆ vsf_arch_trace

#define vsf_arch_trace (   __header,
  __color,
  ... 
)
Value:
do { \
vsf_arch_irq_thread_t *__irq_thread = \
__vsf_arch_get_cur_irq_thread(); \
__vsf_arch_trace_lock(); \
VSF_ARCH_TRACE_FUNC("%s[%s]: ", (__color), (__header)); \
if (__irq_thread != NULL) { \
VSF_ARCH_TRACE_FUNC("%s(%d) %lld ", \
__irq_thread->name, (int)__irq_thread->thread_id, \
} else { \
} \
VSF_ARCH_TRACE_FUNC(__VA_ARGS__); \
__vsf_arch_trace_unlock(); \
} while (0)
Definition linux_generic.h:122
PUBLIC_CONST VSF_WIN_DWORD thread_id
Definition win_generic.h:213
const char * name
Definition freertos_generic.h:83
#define NULL
Definition stddef.h:52
vsf_systimer_tick_t __vsf_systimer_get(void)
Definition win_generic.c:1067

◆ __VSF_ARCH_PRI

#define __VSF_ARCH_PRI (   __N,
  __UNUSED 
)
Value:
VSF_ARCH_PRIO_##__N = (__N), \
vsf_arch_prio_##__N = (__N),

◆ vsf_arch_wakeup

#define vsf_arch_wakeup (   void)

◆ VSF_ARCH_SYSTIMER_TICK_T

#define VSF_ARCH_SYSTIMER_TICK_T   uint64_t

◆ VSF_ARCH_NO_DISABLE_INTERRUPT_BEFORE_SLEEP

#define VSF_ARCH_NO_DISABLE_INTERRUPT_BEFORE_SLEEP

Typedef Documentation

◆ VSF_WIN_HANDLE

typedef void* VSF_WIN_HANDLE

◆ VSF_WIN_DWORD

typedef unsigned long VSF_WIN_DWORD

◆ VSF_WIN_UINT

typedef unsigned int VSF_WIN_UINT

◆ VSF_WIN_BYTE

typedef unsigned char VSF_WIN_BYTE

◆ VSF_WIN_LPSTR

typedef char* VSF_WIN_LPSTR

◆ VSF_WIN_ULONG_PTR

typedef unsigned long VSF_WIN_ULONG_PTR

◆ VSF_WIN_PULONG_PTR

typedef unsigned long * VSF_WIN_PULONG_PTR

◆ VSF_WIN_DWORD_PTR

◆ VSF_WIN_PDWORD_PTR

◆ vsf_systimer_tick_t

◆ vsf_arch_prio_t

◆ vsf_arch_irq_entry_t

typedef void(* vsf_arch_irq_entry_t) (void *)

◆ vsf_gint_state_t

typedef volatile bool vsf_gint_state_t

◆ vsf_arch_irq_state_t

Enumeration Type Documentation

◆ vsf_arch_prio_t

Enumerator
VSF_ARCH_PRIO_INVALID 
vsf_arch_prio_invalid 
vsf_arch_prio_highest 

◆ vsf_arch_irq_state_t

Enumerator
VSF_ARCH_IRQ_STATE_IDLE 
VSF_ARCH_IRQ_STATE_ACTIVE 
VSF_ARCH_IRQ_STATE_FOREGROUND 
VSF_ARCH_IRQ_STATE_BACKGROUND 

Function Documentation

◆ __vsf_arch_trace()

int __vsf_arch_trace ( int  level,
const char *  format,
  ... 
)
extern

◆ __vsf_arch_irq_sleep()

void __vsf_arch_irq_sleep ( uint_fast32_t  ms)
extern

◆ vsf_arch_argu()

int vsf_arch_argu ( char ***  argv)
extern

◆ vsf_arch_alloc_exe()

void * vsf_arch_alloc_exe ( uint_fast32_t  size)
extern

◆ vsf_arch_free_exe()

void vsf_arch_free_exe ( void *  ptr)
extern

◆ __vsf_arch_irq_request_init()

void __vsf_arch_irq_request_init ( vsf_arch_irq_request_t request)
extern

◆ __vsf_arch_irq_request_fini()

void __vsf_arch_irq_request_fini ( vsf_arch_irq_request_t request)
extern

◆ __vsf_arch_irq_request_pend()

void __vsf_arch_irq_request_pend ( vsf_arch_irq_request_t request)
extern

◆ __vsf_arch_irq_request_send()

void __vsf_arch_irq_request_send ( vsf_arch_irq_request_t request)
extern

◆ __vsf_arch_irq_get_cur()

vsf_arch_irq_thread_t * __vsf_arch_irq_get_cur ( void  )
extern

◆ __vsf_arch_irq_init()

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 
)
extern

◆ __vsf_arch_irq_fini()

void __vsf_arch_irq_fini ( vsf_arch_irq_thread_t irq_thread)
extern

◆ __vsf_arch_irq_set_background()

void __vsf_arch_irq_set_background ( vsf_arch_irq_thread_t irq_thread)
extern

◆ __vsf_arch_irq_start()

void __vsf_arch_irq_start ( vsf_arch_irq_thread_t irq_thread)
extern

◆ __vsf_arch_irq_end()

void __vsf_arch_irq_end ( vsf_arch_irq_thread_t irq_thread,
bool  is_terminate 
)
extern

◆ __vsf_systimer_get()

vsf_systimer_tick_t __vsf_systimer_get ( void  )
extern