FreeCalypso > hg > freecalypso-sw
changeset 156:eba29cb0526c
gsm-fw: started on the header dependencies for bsp/abb+spi/abb_core_inth.c
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 17 Nov 2013 08:15:19 +0000 |
parents | 3be2bc80ad38 |
children | e48ea5875df7 |
files | gsm-fw/bsp/abb+spi/abb_core_inth.c gsm-fw/osx/cust_os.h |
diffstat | 2 files changed, 201 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/gsm-fw/bsp/abb+spi/abb_core_inth.c Sun Nov 17 06:08:47 2013 +0000 +++ b/gsm-fw/bsp/abb+spi/abb_core_inth.c Sun Nov 17 08:15:19 2013 +0000 @@ -33,39 +33,35 @@ /* */ /**********************************************************************************/ -#include "l1sw.cfg" -#include "chipset.cfg" -#include "swconfig.cfg" -#include "sys.cfg" +#include "../../include/config.h" +#include "../../L1/include/l1_confg.h" +#include "../../L1/include/l1_macro.h" -#include "l1_macro.h" -#include "l1_confg.h" #include <string.h> -#include "abb/abb_core_inth.h" -#include "nucleus.h" +#include "abb_core_inth.h" + +#include "../../include/sys_types.h" +#include "../../riviera/rv/general.h" +#include "../../nucleus/nucleus.h" // for NUCLEUS functions and types #if (OP_L1_STANDALONE == 0) - #include "rv/rv_defined_swe.h" // for RVM_PWR_SWE + #include "../../riviera/rv/rv_defined_swe.h" // for RVM_PWR_SWE #endif #if (OP_L1_STANDALONE == 1) - #include "l1_types.h" -#endif - -#if (CHIPSET == 12) - #include "sys_inth.h" -#else - #include "inth/iq.h" + #include "../../L1/include/l1_types.h" #endif -#include "cust_os.h" -#include "l1_signa.h" -#include "abb/abb.h" +#include "../iq.h" + +#include "../../osx/cust_os.h" +#include "../../L1/include/l1_signa.h" +#include "abb.h" #if(OP_L1_STANDALONE == 0) - #include "rvm/rvm_use_id_list.h" // for SPI_USE_ID - #include "spi/spi_env.h" - #include "spi/spi_process.h" // for ABB_EXT_IRQ_EVT + #include "../../riviera/rvm/rvm_use_id_list.h" // for SPI_USE_ID + #include "spi_env.h" + #include "spi_process.h" // for ABB_EXT_IRQ_EVT #include "power/power.h" #endif /* (OP_L1_STANDALONE == 0) */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gsm-fw/osx/cust_os.h Sun Nov 17 08:15:19 2013 +0000 @@ -0,0 +1,183 @@ +/* ++------------------------------------------------------------------------------ +| File: cust_os.h ++------------------------------------------------------------------------------ +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : Definitions for the communication between L1 and L23 entities. +| This interface file provides an abstraction of the VSI +| interface, e.g. to avoid that macros like PALLOC need to be used +| by the customer. ++----------------------------------------------------------------------------- +*/ +#ifndef CUST_OS_H +#define CUST_OS_H + +/*==== INCLUDES =============================================================*/ + +/*==== CONSTS ===============================================================*/ + +#define OSX_OK 0 +#define OSX_ERROR -1 + +#define L1S_TRACE_DISABLE "L1S_TRACE_DISABLE" +#define L1S_TRACE_ENABLE "L1S_TRACE_ENABLE" +#define NO_SPECIAL_MPHC_RXLEV_REQ "NO_SPEC_MPHC_RXLEV_REQ" + +/*==== TYPES ================================================================*/ + +/* Necessary defintions*/ +typedef enum +{ + L1_QUEUE, /* internal L1 communication */ + DL_QUEUE, /* L1->DL */ + RR_QUEUE, /* L1->RR */ + GRR_QUEUE, /* L1->GRR */ + LLC_QUEUE, /* L1->LLC e.g. ciphering via CCI */ + SNDCP_QUEUE, /* L1->SNDCP e.g. compression via CCI */ + GPF_ACI_QUEUE, /* L1->ACI */ + MAX_OSX_QUEUE +} T_ENUM_OS_QUEUE; + +typedef T_ENUM_OS_QUEUE ENUM_OS_QUEUE; + +typedef struct { + char dummychar; +} DummyStruct; + +typedef struct xSignalHeaderStruct +{ + int SignalCode; + int _dummy1; + int _dummy2; + int _dummy3; + DummyStruct *SigP; + int _dummy4; +} xSignalHeaderRec; + +typedef struct +{ + int caller; + int queue_handle; + unsigned short queue_type; +} T_OSX_REGISTER; + + +/*==== EXPORTS ==============================================================*/ + +/* + * ================================================= + * functional interface to the GPF frame environment + * ================================================= + */ + +/* + * initialize queue_type to queue_handle conversion table + */ +void _osx_init ( void ); + +/* + * dynamic osx configuration + */ +int _osx_config ( const char *config ); + +/* + * open an cust_os communication channel + */ +#ifdef _OSX_ON_OS_ +int _osx_open (int,unsigned short,int,int); +#else +int _osx_open (int,unsigned short,int); +#endif + +/* + * allocation of a primitive container with a specific size e.g. sizeof (T_XXX_REQ) + */ +xSignalHeaderRec* osx_alloc_prim (unsigned long); + +xSignalHeaderRec* int_osx_alloc_prim (int,unsigned long, int); + +/* + * allocation of a memory section with a specific size + */ +void* osx_alloc_mem (unsigned long); + +void* int_osx_alloc_mem (int,unsigned long); + +/* + * deallocation of one primitive container + */ +void osx_free_prim (xSignalHeaderRec*); + +void int_osx_free_prim (int,xSignalHeaderRec*); + +/* + * deallocation of one memory section + */ +void osx_free_mem (void*); + +void int_osx_free_mem (int,void*); + +/* + * reception of a primitive. This function should be called from a thread. It suspends + * the thread on an empty queue. Queue is specified by an idetifier, + */ +xSignalHeaderRec* osx_receive_prim (T_ENUM_OS_QUEUE); + +/* + * reception of a primitive. This function should be called from a thread. It suspends + * the thread on an empty queue. Queue is specified by its handle + */ +xSignalHeaderRec *int_osx_receive_prim (int,int); + +/* + * send a primtive to a queue specified by an identifier (no frame handle!) + */ +void osx_send_prim (xSignalHeaderRec*, T_ENUM_OS_QUEUE); + +/* + * send a primtive to a queue specified by a handle + */ +void int_osx_send_prim (int,xSignalHeaderRec*, int); + +/* + * send a signal with a special signal code (ULONG) and a pointer to a specific memory + * area to a queue specified by an identifier + */ +void osx_send_sig (unsigned long, void *, T_ENUM_OS_QUEUE); + +/* + * send a signal with a special signal code (ULONG) and a pointer to a specific memory + * area to a queue specified by its handle + */ +void int_osx_send_sig (int,unsigned long,void*,int); + +/* + * ================================================ + * customizations for the L1 from Texas Instruments + * ================================================ + */ +#define L1C1_QUEUE L1_QUEUE +#define DLL1_QUEUE DL_QUEUE +#define RRM1_QUEUE RR_QUEUE +#define GRRM1_QUEUE GRR_QUEUE +#define BACK_QUEUE L1_QUEUE +#define ACI_QUEUE GPF_ACI_QUEUE + +#define os_alloc_sig osx_alloc_prim +#define os_free_sig osx_free_prim +#define os_send_sig osx_send_prim +#define os_receive_sig osx_receive_prim + +#define MEM_BUF_SIZE(SIG_PAR_SIZE) (SIG_PAR_SIZE + sizeof (xSignalHeaderRec)) + +#endif /* CUST_OS_H */