VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
vsf_pbuf.h File Reference
#include "service/vsf_service_cfg.h"
#include "utilities/vsf_utilities.h"
#include "utilities/ooc_class.h"

Go to the source code of this file.

Data Structures

struct  req_pbuf_evt_t
 
union  vsf_pbuf_capability_t
 fixed memory block used as stream buffer More...
 
struct  vsf_pbuf_cfg_t
 

Macros

#define __PLOOC_CLASS_USE_STRICT_TEMPLATE__
 
#define __BLOCK_FREE_TO(__N, __NUM)   VSF_PBUF_FREE_TO_##__N = __N+1,
 

Typedefs

typedef struct vsf_pbuf_adapter_t vsf_pbuf_adapter_t
 
typedef struct vsf_pbuf_cfg_t vsf_pbuf_cfg_t
 

Enumerations

enum  {
  VSF_PBUF_FREE_TO_ANY = 0 ,
  VSF_PBUF_NO_FREE = 255
}
 

Functions

 dcl_interface (i_pbuf_t) def_interface(i_pbuf_t) vsf_pbuf_t *(*Init)(vsf_pbuf_t *
 
 end_def_interface (i_pbuf_t) extern const i_pbuf_t VSF_PBUF
 
vsf_pbuf_t * vsf_pbuf_free (vsf_pbuf_t *pbuf)
 
vsf_pbuf_t * vsf_pbuf_init (vsf_pbuf_t *block_ptr, vsf_pbuf_cfg_t *pcfg)
 
void vsf_adapter_register (const vsf_pbuf_adapter_t *adaptors_ptr, uint_fast8_t u8_size)
 
const vsf_pbuf_adapter_tvsf_pbuf_adapter_get (uint_fast8_t id)
 
vsf_pbuf_capability_t vsf_pbuf_capability_get (vsf_pbuf_t *obj_ptr)
 
void vsf_pbuf_size_reset (vsf_pbuf_t *pobj)
 
void * vsf_pbuf_buffer_get (vsf_pbuf_t *pobj)
 
void vsf_pbuf_size_set (vsf_pbuf_t *pobj, int_fast32_t size)
 
int_fast32_t vsf_pbuf_size_get (vsf_pbuf_t *pobj)
 
int_fast32_t vsf_pbuf_capacity_get (vsf_pbuf_t *pobj)
 
int_fast32_t vsf_pbuf_buffer_write (vsf_pbuf_t *pobj, const void *psrc, int_fast32_t size, uint_fast32_t offsite)
 
int_fast32_t vsf_pbuf_buffer_read (vsf_pbuf_t *pobj, void *psrc, int_fast32_t size, uint_fast32_t offsite)
 
void vsf_pbuf_pool_item_init_event_handler (uintptr_t ptarget, uintptr_t pitem, uint_fast32_t item_size)
 
void vsf_pbuf_ref_increase (vsf_pbuf_t *pbuf)
 

Variables

struct { 
 
   vsf_pbuf_t *(*   Free )(vsf_pbuf_t *) 
 
   struct { 
 
      void(*   Get )(uintptr_t ptarget, uintptr_t
         pitem, uint_fast32_t size
 
   }   ItemInitEventHandler 
 
PoolHelper 
 
struct { 
 
   void(*   Register )(const vsf_pbuf_adapter_t
      *padapter, uint_fast8_t size
 method to register an pbuf adapter array, size < 255 More...
 
   const vsf_pbuf_adapter_t *(*   Get )(uint_fast8_t id) 
 
Adapter 
 
struct { 
 
   vsf_pbuf_capability_t(*   Get )(vsf_pbuf_t *) 
 
Capability 
 
struct { 
 
   int_fast32_t(*   Get )(vsf_pbuf_t *) 
 
   void(*   Set )(vsf_pbuf_t *, int_fast32_t
 
   void(*   Reset )(vsf_pbuf_t *) 
 
   int_fast32_t(*   Capacity )(vsf_pbuf_t *) 
 
Size 
 
struct { 
 
   void *(*   Get )(vsf_pbuf_t *) 
 
   int_fast32_t(*   Write )(vsf_pbuf_t *pobj, const void
      *psrc, int_fast32_t size,
       uint_fast32_t offsite) 
 
   int_fast32_t(*   Read )(vsf_pbuf_t *pobj, void *psrc,
       int_fast32_t size,
       uint_fast32_t offsite) 
 
Buffer 
 
struct { 
 
   void(*   Increase )(vsf_pbuf_t *) 
 
   vsf_pbuf_t *(*   Decrease )(vsf_pbuf_t *) 
 
REF 
 
special methods for accessing blocks
Note
the instance of i_block_methods_t should stored in ROM
vsf_pbuf_t * block_ptr
 User specified free.
 
int_fast32_t(* Read )(void *ptarget, void *pbuf_addr_ptr, void *pbuffer, int_fast32_t size, uint_fast32_t offset)
 interface for reading target memory
 
int_fast32_t(* Write )(void *ptarget, void *pbuf_addr_ptr, const void *pbuffer, int_fast32_t size, uint_fast32_t offset)
 interface for write target memory
 

prototype of pbuf request event handler

!

Parameters
target_ptrtarget object address !
nNoLessThanSpecify the smallest available size of the pbuf, ! (-1) means don't care. !
nBestSizeSpecify the most desired size of the pbuf, ! (-1) means don't care. !
Returns
the address of the allocated pbuf, (NULL) means allocation is failed.
typedef struct req_pbuf_evt_t req_pbuf_evt_t
 
typedef union vsf_pbuf_capability_t vsf_pbuf_capability_t
 fixed memory block used as stream buffer
 
int_fast32_t nNoLessThan
 
int_fast32_t int_fast32_t nBestSize
 
int_fast32_t int_fast32_t uint_fast16_t hwReserve
 

Macro Definition Documentation

◆ __PLOOC_CLASS_USE_STRICT_TEMPLATE__

#define __PLOOC_CLASS_USE_STRICT_TEMPLATE__

\NOTE: Make sure #include "utilities/ooc_class.h" is close to the class ! definition and there is NO ANY OTHER module-interface-header file ! included in this file

◆ __BLOCK_FREE_TO

#define __BLOCK_FREE_TO (   __N,
  __NUM 
)    VSF_PBUF_FREE_TO_##__N = __N+1,

Typedef Documentation

◆ req_pbuf_evt_t

◆ vsf_pbuf_capability_t

fixed memory block used as stream buffer

◆ vsf_pbuf_adapter_t

< user defined target obj

< Array index

< block methods

◆ vsf_pbuf_cfg_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
VSF_PBUF_FREE_TO_ANY 
VSF_PBUF_NO_FREE 

Function Documentation

◆ dcl_interface()

dcl_interface ( i_pbuf_t  )

◆ end_def_interface()

end_def_interface ( i_pbuf_t  ) const

◆ vsf_pbuf_free()

vsf_pbuf_t * vsf_pbuf_free ( vsf_pbuf_t *  pbuf)
extern

< allow free NULL item.

◆ vsf_pbuf_init()

vsf_pbuf_t * vsf_pbuf_init ( vsf_pbuf_t *  block_ptr,
vsf_pbuf_cfg_t pcfg 
)
extern

◆ vsf_adapter_register()

void vsf_adapter_register ( const vsf_pbuf_adapter_t adaptors_ptr,
uint_fast8_t  u8_size 
)
extern

< this function could only be called once.

◆ vsf_pbuf_adapter_get()

const vsf_pbuf_adapter_t * vsf_pbuf_adapter_get ( uint_fast8_t  id)
extern

◆ vsf_pbuf_capability_get()

vsf_pbuf_capability_t vsf_pbuf_capability_get ( vsf_pbuf_t *  obj_ptr)
extern

◆ vsf_pbuf_size_reset()

void vsf_pbuf_size_reset ( vsf_pbuf_t *  pobj)
extern

< readonly

◆ vsf_pbuf_buffer_get()

void * vsf_pbuf_buffer_get ( vsf_pbuf_t *  pobj)
extern

◆ vsf_pbuf_size_set()

void vsf_pbuf_size_set ( vsf_pbuf_t *  pobj,
int_fast32_t  size 
)
extern

readonly

◆ vsf_pbuf_size_get()

int_fast32_t vsf_pbuf_size_get ( vsf_pbuf_t *  pobj)
extern

◆ vsf_pbuf_capacity_get()

int_fast32_t vsf_pbuf_capacity_get ( vsf_pbuf_t *  pobj)
extern

◆ vsf_pbuf_buffer_write()

int_fast32_t vsf_pbuf_buffer_write ( vsf_pbuf_t *  pobj,
const void *  psrc,
int_fast32_t  size,
uint_fast32_t  offsite 
)
extern

◆ vsf_pbuf_buffer_read()

int_fast32_t vsf_pbuf_buffer_read ( vsf_pbuf_t *  pobj,
void *  psrc,
int_fast32_t  size,
uint_fast32_t  offsite 
)
extern

◆ vsf_pbuf_pool_item_init_event_handler()

void vsf_pbuf_pool_item_init_event_handler ( uintptr_t  ptarget,
uintptr_t  pitem,
uint_fast32_t  item_size 
)
extern

< use the rest memory of the block as buffer

< total block s32_size

< allow write

< allow read

< allow direct access

< use default adapter

◆ vsf_pbuf_ref_increase()

void vsf_pbuf_ref_increase ( vsf_pbuf_t *  pbuf)
extern

Variable Documentation

◆ nNoLessThan

int_fast32_t nNoLessThan

◆ nBestSize

◆ hwReserve

◆ block_ptr

vsf_pbuf_t* block_ptr

User specified free.

◆ Read

int_fast32_t(* Read) (vsf_pbuf_t *pobj, void *psrc, int_fast32_t size, uint_fast32_t offsite) ( void *  ptarget,
void *  pbuf_addr_ptr,
void *  pbuffer,
int_fast32_t  size,
uint_fast32_t  offset 
)

interface for reading target memory

◆ Write

int_fast32_t(* Write) (vsf_pbuf_t *pobj, const void *psrc, int_fast32_t size, uint_fast32_t offsite) ( void *  ptarget,
void *  pbuf_addr_ptr,
const void *  pbuffer,
int_fast32_t  size,
uint_fast32_t  offset 
)

interface for write target memory

◆ Free

vsf_pbuf_t *(* Free) (vsf_pbuf_t *) ( vsf_pbuf_t *  )

◆ Get

void *(* Get) (vsf_pbuf_t *) ( uintptr_t  ptarget,
uintptr_t  pitem,
uint_fast32_t  size 
)

◆ [struct]

struct { ... } ItemInitEventHandler

◆ [struct]

vsf_pbuf_cfg_t* struct { ... } PoolHelper

◆ Register

void(* Register) (const vsf_pbuf_adapter_t *padapter, uint_fast8_t size) ( const vsf_pbuf_adapter_t padapter,
uint_fast8_t  size 
)

method to register an pbuf adapter array, size < 255

◆ [struct]

struct { ... } Adapter

◆ [struct]

struct { ... } Capability

◆ Set

void(* Set) (vsf_pbuf_t *, int_fast32_t) ( vsf_pbuf_t *  ,
int_fast32_t   
)

◆ Reset

void(* Reset) (vsf_pbuf_t *) ( vsf_pbuf_t *  )

◆ Capacity

int_fast32_t(* Capacity) (vsf_pbuf_t *) ( vsf_pbuf_t *  )

◆ [struct]

struct { ... } Size

◆ [struct]

struct { ... } Buffer

◆ Increase

void(* Increase) (vsf_pbuf_t *) ( vsf_pbuf_t *  )

◆ Decrease

vsf_pbuf_t *(* Decrease) (vsf_pbuf_t *) ( vsf_pbuf_t *  )

◆ [struct]

struct { ... } REF