diff src/cs/drivers/drv_app/r2d/r2d_env.c @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children 76f65c8bb151
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cs/drivers/drv_app/r2d/r2d_env.c	Fri Oct 16 06:23:26 2020 +0000
@@ -0,0 +1,257 @@
+/**
+                                                                          
+	@file:	r2d_env.c	
+	
+	@author Christophe Favergeon                              
+                                                                          
+    @version	0.5	
+
+    Purpose:	Environment  for the software entity
+                of Riviera 2D system (higher software layer)     
+	
+*/
+
+/*
+																			
+ 	Date       	Modification												
+  ------------------------------------									
+    06/02/2001	Create		
+	10/18/2001  Version 0.5 for first integration with Riviera database
+																											    
+																			
+ (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved
+*/
+
+
+#include "rv/general.h"
+
+#include "rvm/rvm_gen.h"
+#include "rvm/rvm_ext_priorities.h"
+#include "rvm/rvm_use_id_list.h"
+
+
+#include "r2d/r2d.h"
+#include "r2d/r2d_env.h"
+#include "r2d/r2d_messages.h"
+#include "r2d/uwire.h" 
+
+#include <string.h>
+
+
+extern void r2d_core(UINT32 param);
+
+/* global pointer to the error function */
+T_RVM_RETURN (*r2d_error_ft)(T_RVM_NAME swe_name, T_RVM_RETURN error_cause, \
+					T_RVM_ERROR_TYPE error_type,T_RVM_STRING error_msg);
+
+
+
+/* global addr id */
+T_RVF_ADDR_ID r2d_addr_id;
+
+
+
+/* global memory bank ID */
+T_RVF_MB_ID r2d_mb_id;
+
+/* Global standard graphical context */
+T_R2D_GC_PTR r2d_g_lcd_gc=NULL;
+
+/* For communication with the task */
+T_R2D_EVT * p_msg;
+
+extern T_RVM_RETURN r2d_initializations(void);
+extern T_RVM_RETURN r2d_cleanup();
+extern UINT32 r2d_get_memory_bank_size();
+/******************************************************************************
+* Function	  : xxx_get_info
+*
+* Description : This function is called by the RV manager to learn 
+*				xxx requirements in terms of memory, SWEs...
+*
+* Parameters  : T_RVM_INFO_SWE  * swe_info: pointer to the structure to fill
+*				containing infos related to the xxx SWE.
+*
+* Return      :  T_RVM_RETURN
+* 
+* History	  : 0.1 (20-August-2000)
+*									
+*
+******************************************************************************/
+T_RVM_RETURN r2d_get_info(T_RVM_INFO_SWE  * infoSWE)
+{
+
+	/* SWE info */
+	
+	memcpy ( (UINT8 *) infoSWE->type_info.type4.swe_name, "R2D", 4);
+	infoSWE->swe_type = RVM_SWE_TYPE_4;
+	infoSWE->type_info.type4.stack_size=R2D_STACK_SIZE;
+    infoSWE->type_info.type4.priority=RVM_R2D_TASK_PRIORITY;
+	infoSWE->type_info.type4.swe_use_id=R2D_USE_ID;
+
+
+
+	
+	/* memory bank info */
+	infoSWE->type_info.type4.nb_mem_bank= 1;
+
+	
+	
+	memcpy ((UINT8 *) infoSWE->type_info.type4.mem_bank[0].bank_name, "R2D_PRIM", 9);
+	infoSWE->type_info.type4.mem_bank[0].initial_params.size          = r2d_get_memory_bank_size();
+	infoSWE->type_info.type4.mem_bank[0].initial_params.watermark     = r2d_get_memory_bank_size()-1000;
+	
+
+	/* linked SWE info */
+	/* this SWE does not require any SWE to run */
+	infoSWE->type_info.type4.nb_linked_swe = 0;
+	
+	
+	/* generic functions */
+	infoSWE->type_info.type4.set_info=r2d_set_info;
+	infoSWE->type_info.type4.init     = r2d_init;
+	infoSWE->type_info.type4.stop     = r2d_stop;
+	infoSWE->type_info.type4.kill     = r2d_kill;
+	infoSWE->type_info.type4.core = r2d_start;
+
+
+	return RVM_OK;
+}
+
+
+/******************************************************************************
+* Function	  : xxx_set_info
+*
+* Description : This function is called by the RV manager to inform  
+*				the xxx SWE about task_id, mb_id and error function.
+*
+* Parameters  : - T_RVM_TASK_ID  taskId[]: array of task_id.
+*					taskId[0] contains xxx task_id.
+*				- T_RVF_MB_ID mbId[]: array of memory bank ids.
+*				- callback function to call in case of unrecoverable error.
+*
+* Return      : T_RVM_RETURN
+* 
+* History	  : 0.1 (20-August-2000)
+*									
+*
+******************************************************************************/
+T_RVM_RETURN  r2d_set_info	(	T_RVF_ADDR_ID	addr_id,
+						  T_RV_RETURN	 return_path[],
+								T_RVF_MB_ID		bk_id_table[],
+								T_RVM_CB_FUNC	call_back_error_ft)
+
+
+{
+
+	/* store the pointer to the error function */
+	r2d_error_ft = call_back_error_ft ;
+
+	r2d_addr_id=addr_id;
+
+
+	/* Store MB id */
+	r2d_mb_id = bk_id_table[0];
+
+	/* return_path of linked SWE -> not used */
+
+	return RVM_OK;
+}
+
+
+
+
+/******************************************************************************
+* Function	  : xxx_start
+*
+* Description : This function is called by the RV manager to start the xxx
+*				SWE, it is the body of the task.
+*
+* Parameters  : None
+*
+* Return      : T_RVM_RETURN
+* 
+* History	  : 0.1 (20-August-2000)
+*									
+*
+******************************************************************************/
+T_RVM_RETURN r2d_start(void)
+{
+	/*
+	** Branch to main task core
+	*/
+	if (r2d_g_lcd_gc!=NULL)
+	{
+	  r2d_erase(r2d_g_lcd_gc);
+	  r2d_core(0);
+	  return RV_OK;
+	}
+	else
+		return RV_MEMORY_ERR;
+}
+
+
+
+/******************************************************************************
+* Function	  : xxx_stop
+*
+* Description : This function is called by the RV manager to stop the xxx SWE.
+*
+* Parameters  : None
+*
+* Return      : T_RVM_RETURN
+* 
+* History	  : 0.1 (20-August-2000)
+*									
+*
+******************************************************************************/
+T_RVM_RETURN r2d_stop(void)
+{
+	/*
+	** other SWEs have not been killed yet, xxx can send messages to other SWEs
+	*/
+	return RVM_OK;
+}
+
+/******************************************************************************
+* Function	  : xxx_kill
+*
+* Description : This function is called by the RV manager to kill the xxx 
+*				SWE, after the xxx_stop function has been called.
+*
+* Parameters  : None
+*
+* Return      : T_RVM_RETURN
+* 
+* History	  : 0.1 (20-August-2000)
+*									
+*
+******************************************************************************/
+T_RVM_RETURN r2d_kill (void)
+{
+    r2d_cleanup();
+	return RV_OK;
+}
+
+
+
+
+/******************************************************************************
+* Function	  : xxx_init
+*
+* Description : This function is called by the RV manager to initialize the 
+*				xxx SWE before creating the task and calling xxx_start. 
+*
+* Parameters  : None
+*
+* Return      : T_RVM_RETURN
+* 
+* History	  : 0.1 (20-August-2000)
+*									
+*
+******************************************************************************/
+T_RVM_RETURN r2d_init(void)
+{
+return(r2d_initializations());
+}
+