view src/g23m-fad/tcpip/include/rvm_gen.h @ 41:58b05205d579
components/misc_{fl,ir}: no dependency on $MEMSUPER
author |
Mychaela Falconia <falcon@freecalypso.org> |
date |
Sat, 17 Oct 2020 08:57:26 +0000 (2020-10-17) |
parents |
fa8dc04885d8 |
children |
|
line source
/**
* @file rvm_gen.h
*
* Defines the generic types used by the Riviera Environment
* and the exported function of the RVM block.
*
* @author David Lamy-Charrier (d-lamy@ti.com)
* @version 0.1
*/
/*
* Revision History:
*
* Date Author Modification
* -------------------------------------------------------------------
* 19/01/2000 David Lamy-Charrier Create.
* 11/20/2001 Vincent Oberle Added BUILD_VERSION_NUMBER.
* Documentation cleaning
*
* (C) Copyright 2000 by Texas Instruments Incorporated, All Rights Reserved
*/
#ifndef __RVM_GEN_H_
#define __RVM_GEN_H_
#ifndef _SIMULATION_
#include "rv.cfg"
#endif
#include "rvf_api.h" /* for memory bank related definitions & GD*/
#include "rvm_api.h"
#ifdef __cplusplus
extern "C" {
#endif
/* RVM global definitions */
#define T_RVM_STRING char *
#define T_RVM_ERROR_TYPE UINT32
#define RVM_MAX_NB_MEM_BK (3)
#if (defined BLUETOOTH) || (defined TEST)
#define RVM_MAX_NB_LINKED_SWE (5)
#else
#define RVM_MAX_NB_LINKED_SWE (3)
#endif
#define RVM_USED_MAILBOX RVF_TASK_MBOX_0
/* define the 4 SWE types */
typedef enum
{
RVM_SWE_TYPE_1,
RVM_SWE_TYPE_2,
RVM_SWE_TYPE_3,
RVM_SWE_TYPE_4
} T_RVM_SWE_TYPE;
/* Memory bank parameters */
typedef struct
{
T_RVF_MB_NAME bank_name;
T_RVF_MB_PARAM initial_params;
} T_RVM_BK_INFO;
/* RVM callback function pointer type */
typedef T_RVM_RETURN (*T_RVM_CB_FUNC)(T_RVM_NAME swe_name,
T_RVM_RETURN error_cause,
T_RVM_ERROR_TYPE error_type,
T_RVM_STRING error_msg);
/*
* Macro used to build the version number from the
* - major version number (8 bits)
* - minor version number (8 bits)
* - build number (16 bits). A 0 indicates this number is not used.
*/
#define BUILD_VERSION_NUMBER(major, minor, build) ( ((major & 0xFF) << 24) | \
((minor & 0xFF) << 16) | \
(build & 0xFFFF) )
/* SWE core function prototype */
typedef T_RVM_RETURN (*T_RVM_SWE_CORE_FUNC)(void);
/* Type1 SWE info */
typedef struct
{
T_RVM_NAME swe_name;
T_RVM_USE_ID swe_use_id;
UINT32 version;
UINT8 nb_mem_bank;
T_RVM_BK_INFO mem_bank[RVM_MAX_NB_MEM_BK];
UINT8 nb_linked_swe;
T_RVM_USE_ID linked_swe_id[RVM_MAX_NB_LINKED_SWE];
T_RV_RETURN_PATH return_path;
T_RVM_RETURN (* set_info) (T_RVF_ADDR_ID addr_id,
T_RV_RETURN_PATH return_path[],
T_RVF_MB_ID bk_id_table[],
T_RVM_CB_FUNC call_back_error_ft);
T_RVM_RETURN (* init) (void);
T_RVM_RETURN (* start) (void);
T_RVM_RETURN (* stop) (/*T_RV_HDR* hdr*/void); //???
T_RVM_RETURN (* kill) (void);
} T_RVM_SWE_PASSIVE_INFO;
/* Type2 SWE info */
typedef struct
{
T_RVM_NAME swe_name;
T_RVM_USE_ID swe_use_id;
UINT16 stack_size;
UINT8 priority;
UINT32 version;
UINT8 nb_mem_bank;
T_RVM_BK_INFO mem_bank[RVM_MAX_NB_MEM_BK];
UINT8 nb_linked_swe;
T_RVM_USE_ID linked_swe_id[RVM_MAX_NB_LINKED_SWE];
T_RV_RETURN_PATH return_path;
T_RVF_GD_ID swe_group_directive; /* A-M-E-N-D-E-D! */
T_RVM_RETURN (* set_info) (T_RVF_ADDR_ID addr_id,
T_RV_RETURN_PATH return_path[],
T_RVF_MB_ID bk_id_table[], /* A-M-E-N-E-D-E-D! is table or list??*/
T_RVM_CB_FUNC call_back_error_ft);
T_RVM_RETURN (* init) (void);
T_RVM_RETURN (* start) (void);
T_RVM_RETURN (* handle_message) (T_RV_HDR * msg);
T_RVM_RETURN (* handle_timer) (T_RV_HDR * msg);
T_RVM_RETURN (* stop) (T_RV_HDR* hdr);
T_RVM_RETURN (* kill) (void);
} T_RVM_SWE_GROUP_MEMBER_INFO;
/* Type3 SWE info */
typedef struct
{
T_RVM_NAME swe_name;
T_RVM_USE_ID swe_use_id;
UINT16 stack_size;
UINT8 priority;
UINT32 version;
UINT8 nb_mem_bank;
T_RVM_BK_INFO mem_bank[RVM_MAX_NB_MEM_BK];
UINT8 nb_linked_swe;
T_RVM_USE_ID linked_swe_id[RVM_MAX_NB_LINKED_SWE];
T_RV_RETURN_PATH return_path;
T_RVM_RETURN (* set_info) (T_RVF_ADDR_ID addr_id,
T_RV_RETURN_PATH return_path[],
T_RVF_MB_ID bk_id_table[],
T_RVM_CB_FUNC call_back_error_ft);
T_RVM_RETURN (* init) (void);
T_RVM_RETURN (* start) (void);
T_RVM_RETURN (* handle_message) (T_RV_HDR * msg);
T_RVM_RETURN (* handle_timer) (T_RV_HDR * msg);
T_RVM_RETURN (* stop) (T_RV_HDR* hdr);
T_RVM_RETURN (* kill) (void);
} T_RVM_SWE_SINGLE_INFO;
/* Type4 SWE info */
typedef struct
{
T_RVM_NAME swe_name;
T_RVM_USE_ID swe_use_id;
UINT16 stack_size;
UINT8 priority;
UINT32 version;
UINT8 nb_mem_bank;
T_RVM_BK_INFO mem_bank[RVM_MAX_NB_MEM_BK];
UINT8 nb_linked_swe;
T_RVM_USE_ID linked_swe_id[RVM_MAX_NB_LINKED_SWE];
T_RV_RETURN_PATH return_path;
T_RVM_RETURN (* set_info) (T_RVF_ADDR_ID addr_id,
T_RV_RETURN_PATH return_path[],
T_RVF_MB_ID bk_id_table[],
T_RVM_CB_FUNC call_back_error_ft);
T_RVM_RETURN (* init) (void);
T_RVM_RETURN (* core) (void);
T_RVM_RETURN (* stop) (/*T_RV_HDR* hdr*/void); // could be removed completely except for legacy code
T_RVM_RETURN (* kill) (void);
} T_RVM_SWE_SELF_MADE_INFO;
/* SWE information */
typedef struct
{
T_RVM_SWE_TYPE swe_type;
union
{ T_RVM_SWE_PASSIVE_INFO type1;
T_RVM_SWE_GROUP_MEMBER_INFO type2;
T_RVM_SWE_SINGLE_INFO type3;
T_RVM_SWE_SELF_MADE_INFO type4;
} type_info;
} T_RVM_INFO_SWE;
/* get info function pointer type */
typedef T_RVM_RETURN (*T_RVM_GET_INFO_FUNC) (T_RVM_INFO_SWE * param);
/* type used in the const SWEs array */
typedef struct t_rvm_const_swe_info
{
T_RVM_USE_ID use_id;
T_RVM_GET_INFO_FUNC get_info_func;
} T_RVM_CONST_SWE_INFO;
#ifdef __cplusplus
}
#endif
#endif /* __RVM_GEN_H_ */