diff src/cs/riviera/rvf/rvf_target.h @ 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cs/riviera/rvf/rvf_target.h	Fri Oct 16 06:23:26 2020 +0000
@@ -0,0 +1,158 @@
+/****************************************************************************/
+/*                                                                          */
+/*  Name        rvf_target.h                                                */
+/*                                                                          */
+/*  Function    this file contains definitions that will probably			*/
+/*              change for each target system. This includes				*/
+/*              such things number of tasks,			                    */
+/*              little endian/big endian conversions, etc...				*/
+/*																			*/
+/*                                                                          */
+/*	NOTE        This file should always be included first.					*/
+/*																			*/
+/*  Version		0.1															*/
+/*																			*/
+/* 	Date       	Modification												*/
+/*  ------------------------------------									*/
+/*  4/19/1999	Create														*/
+/*  10/27/1999  remove declaration of ntohs, htons, ntohl, htonl			*/
+/*				in order to avoid conflict with winsock.h					*/
+/*  12/23/1999	add buffer and memory bank related definition				*/
+/*  07/12/2000	implement dynamic memory allocation.						*/
+/*  01/16/2004  Corrected conversion from seconds/milliseconds to ticks.    */
+/*																			*/
+/*	Author		David Lamy-Charrier (dlamy@tif.ti.com)						*/
+/*																			*/
+/* (C) Copyright 1999 by Texas Instruments Incorporated, All Rights Reserved*/
+/****************************************************************************/
+#ifndef _RVF_TARGET_H
+#define _RVF_TARGET_H
+
+#ifndef _WINDOWS
+	#include "config/rv.cfg"
+	#include "config/swconfig.cfg"
+#endif
+
+
+/* optimizations */
+#ifdef _WINDOWS
+	#define INLINE __inline
+#else
+	#define INLINE inline
+#endif
+
+
+/*----------------------------------------------------------------------*/
+/*                      RVF Definitions                                 */
+/*----------------------------------------------------------------------*/
+
+
+/* the maximum number of memory bank created by users */
+#if (!GSMLITE)
+#define RVF_MAX_TOTAL_MB			70
+#else // GSMLITE
+  #define RVF_MAX_TOTAL_MB			20
+#endif // GSMLITE
+
+/* the maximum number of real memory bank managed */
+#if (!GSMLITE)
+#define RVF_MAX_REAL_MB				60
+#else // GSMLITE
+  #define RVF_MAX_REAL_MB			20
+#endif // GSMLITE
+
+/* max length of memory bank name */
+#define RVF_MAX_MB_LEN				10
+
+/* max length of task name */
+#define RVF_MAX_TASK_LEN			10
+
+
+/* RVF_MB_MAPPING defines the correspondance between mb_name and mb_id */
+/* WARNING!!!! When adding new memory banks in this default list, take care */
+/* to always finish with the {0,0} !!! */
+#if (!GSMLITE)
+#define RVF_MB_MAPPING {{ "RVM_PRIM", 0},{ "TEST1", 1}, { "TEST2", 2},\
+	{ "TEST3", 3}, { "TEST4", 3},\
+	{"HCI_RX", 4},{"HCI_TX", 5},\
+	{"ATP_PRIM",27},{"ATP_UART",27},\
+	{"RV_TRACE", TRACE_MB_ID},\
+	{"UWIRE_PRIM",37},{0,0}}
+#else // GSMLITE
+  #define RVF_MB_MAPPING {{ "RVM_PRIM", 0},{ "TEST1", 1}, { "TEST2", 2},\
+						  { "TEST3", 3}, { "TEST4", 3}, {0,0}}
+#endif // GSMLITE
+
+/* set the following variable to 1 to check for buffer corruption*/
+#define RVF_ENABLE_BUF_CORRUPTION_CHECK	1
+
+/* set the following variable to 1 to check for buffer linkage*/
+#define RVF_ENABLE_BUF_LINKAGE_CHECK	1
+
+/* enable or disable memory statistics functions */
+#define RVF_ENABLE_STATS				1	
+
+
+/* The maximum number of RVF tasks allowed in the system*/
+#if (!GSMLITE)
+#define MAX_RVF_TASKS	            30
+#else // GSMLITE
+  #define MAX_RVF_TASKS	            11
+#endif // GSMLITE
+
+/* max number of callback functions for buffers waiting to be counted on another memory bank */
+#if (!GSMLITE)
+#define RVF_MAX_WAITING_BUF		300 
+#else // GSMLITE
+  #define RVF_MAX_WAITING_BUF		 20 
+#endif // GSMLITE
+/* sum of RVF_BUFi_MAX */
+
+
+
+
+
+
+
+/***********************************************************************
+** Timer related definitions. These should be edited per system. The
+** macros should convert milliseconds and seconds to system ticks.
+** Applications should use these to calculate the number of ticks to
+** sleep for.
+*/
+
+#ifdef _WINDOWS
+#define RVF_MS_TO_TICKS(_x)   ((_x) / 50)
+#define RVF_SECS_TO_TICKS(_x) (((_x) * 1000) / 50)
+#define RVF_TICKS_TO_MS(_x)   ((_x) * 50)
+#else
+#if 1	/* new FreeCalypso code */
+/*
+ * In the present GSM firmware, the Nucleus tick is the TDMA frame,
+ * and the duration of one TDMA frame by definition equals 60/13 ms.
+ * Hence we use the natural factors of 13 and 60 instead of TI's
+ * 200 and 923 (computed to fit the rounded 4.615 ms value),
+ * and get not only better accuracy, but also a greater maximum
+ * time value: 330382 s (just under 4 days) instead of the old maximum
+ * of 21474 s (just under 6 h).
+ */
+#define RVF_MS_TO_TICKS(_x)   ((((_x) * 13) + 30) / 60) 
+#define RVF_SECS_TO_TICKS(_x) ((((_x) * 13000) + 30) / 60)
+/* RVF_TICKS_TO_MS() macro was unused and is being removed */
+#else	/* old code from TI */
+/*
+ * To avoid floating point computation, the tick duration 4.615 ms can be
+ * resolved to the fraction : 923/200.
+ *
+ * Due to the multiplication with 200, the maximum usable value for
+ * milliseconds is 2^32 / 200 = 21,474,836. The maximum usable value
+ * for seconds is 2^32 / (200 * 1000) = 21,474.
+ * Both values correspond approximately to 5h 57m 54s.
+ */
+#define RVF_MS_TO_TICKS(_x)   ((((_x) * 200) + 462) / 923) 
+#define RVF_SECS_TO_TICKS(_x) ((((_x) * 1000 * 200) + 462) / 923)
+#define RVF_TICKS_TO_MS(_x)   ((((_x) * 923) + 100) / 200)
+#endif
+#endif
+
+#endif /* _RVF_TARGET_H */