diff src/g23m-aci/aci/psa_psi.h @ 1:fa8dc04885d8

src/g23m-*: import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:25:50 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/g23m-aci/aci/psa_psi.h	Fri Oct 16 06:25:50 2020 +0000
@@ -0,0 +1,153 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  GSM-PS (6147)
+|  Modul   :  PSA_PSI
++----------------------------------------------------------------------------- 
+|  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 protocol stack adapter Protocol Stack Interface (PSI )
++----------------------------------------------------------------------------- 
+*/ 
+#ifdef FF_PSI
+
+#ifndef PSA_PSI_H
+#define PSA_PSI_H
+
+#include "dti_conn_mng.h"
+#include "psa_uart.h"
+
+#ifndef P_BAT_H
+#ifdef FF_BAT
+#include "p_bat.h"
+#endif /* FF_BAT */
+#endif
+
+/*==== CONSTANTS ==================================================*/
+
+#define PSI_DTI_FLOW_OFF     1
+#define PSI_DTI_SB_BIT       2
+#define PSI_DTI_SA_BIT       4
+#define PSI_RING_RUNNING     8
+
+
+/*==== TYPES ======================================================*/
+typedef enum{
+   PSI_CONNECT_DTI = 0,
+   PSI_DISCONNECT_DTI
+}T_DTI_MNG_PSI_MODE;
+
+
+typedef struct
+{
+  T_ACI_DTR_BEHAVIOUR dtr_behaviour;
+  BOOL                dtr_clearcall;
+  BOOL                reconnect_to_aci;
+}
+T_PSI_SHRD_PRM;
+
+
+#ifdef FF_BAT
+typedef struct aci_bat_queue_entry_s
+{
+  struct aci_bat_queue_entry_s *next;
+  T_BAT_cmd_send                cmd;  /* defined in p_bat.h */
+  U8                            client_id;
+} T_aci_bat_queue_entry;
+
+typedef struct
+{
+  T_aci_bat_queue_entry *first;
+  T_aci_bat_queue_entry *last;
+} T_aci_bat_queue;
+
+typedef struct
+{
+  T_BAT_ctrl_params  curCmd;    /* what is the currently running command */
+  BOOL               opened;    /* there was a bat_open() at application */
+  BOOL               atd_live;  /* TRUE while waiting for a final response to ATD */
+  T_desc2           *send_data; /* due to L2P makes our life hard        */
+} T_bat_aci_client_maintain;
+
+#ifdef _SIMULATION_
+typedef unsigned short T_BAT_client;
+typedef struct
+{
+  T_BAT_client         client;
+  T_BAT_cmd_response  *response;
+} T_ACI_BAT_RES;
+#endif
+#endif /* FF_BAT */
+
+
+typedef struct
+{
+  U32 devId;
+  UBYTE dlci;
+  UBYTE srcId;   /* = c_id */
+  T_ACI_DTI_REC_STATE  RecState;
+  T_ACI_DTI_LINE_STATE LineState;
+#ifdef FF_BAT
+  BOOL                 l2p_configured;    /* BAT and L2P */
+  void                *rcv_data;          /* L2P receive buffer pointer, must be freed after BAT cmd processing */
+  T_desc2             *send_data;         /* for control channel (0xFE), due to L2P makes our life hard         */
+  T_bat_aci_client_maintain  *bat_client; /* BAT client maintenance */
+  U8                   active_client;     /* which client runs the current command */
+  U8                   max_clients;       /* maximum # of BAT clients */
+  T_aci_bat_queue     *queue;             /* pendig BAT commands    */
+  U8                  *search_str_ptr;    /* CPBF and similiar candidates */
+#ifdef _SIMULATION_
+  T_ACI_BAT_RES        res;
+#endif
+#endif /* FF_BAT */
+  BOOL                 run_cmd;
+  BOOL                 first_output;
+  BYTE                 data_cntr;         /* DTI line flags (eg. SB-BIT) */
+  T_ACI_UART_MUX_PARMS *MuxParms;
+  BOOL                 large_type;        /* is it a large output ? */
+  T_ACI_DTI_DATA_BUF   data_buffer;
+  T_ACI_DEVICE_TYPE    device_type;
+  S16                  index1;            /* remember for multi line response cmds the current index */
+  S16                  index2;            /* remember for multi line response cmds the current index */
+
+} T_ACI_DTI_PRC_PSI;
+
+
+/*==== PROTOTYPES =================================================*/
+EXTERN void psaPSI_ConnRej ( U32 devId);
+EXTERN void psaPSI_ConnRes ( U32 devId);
+EXTERN void psaPSI_CloseReq ( U32 devId);
+EXTERN void psaPSI_DTICloseReq ( U32 devId, U32 link_id);
+EXTERN void psaPSI_DTIOpenReq ( U32 devId, char* peer_name,
+                                ULONG link_id, UBYTE dti_direction);
+EXTERN void psaPSI_Dti_Req ( ULONG  link_id, UBYTE  peer, T_DTI_MNG_PSI_MODE con_mode);
+
+EXTERN void psa_psi_DTI_data_req (T_desc2 *data, T_ACI_DTI_PRC_PSI *src_infos,
+                               T_DTI_ENTITY_ID peer_id);
+EXTERN void psa_psi_DTI_getdata( UBYTE src_id, T_DTI_ENTITY_ID peer_id);
+EXTERN void psaPSI_DCDreq( UBYTE c_Id, UBYTE line_state );
+EXTERN BOOL psaPSI_ESCAPEreq( UBYTE c_Id, UBYTE detection );
+EXTERN void psaPSI_RINGreq( UBYTE c_Id, UBYTE line_state );
+EXTERN void psaPSI_SetDTIReq( T_DTI_CONN_LINK_ID link_id, T_DTI_ENTITY_ID conn_peer_Id );
+EXTERN BOOL atiPSI_dti_cb( UBYTE dti_id, T_DTI_CONN_STATE result_type );
+
+#ifdef PSA_PSIP_C
+GLOBAL T_PSI_SHRD_PRM psiShrdPrm;
+#else
+EXTERN T_PSI_SHRD_PRM psiShrdPrm;
+#endif /* PSA_PSI_C */
+
+
+/*==== EXPORT =====================================================*/
+
+#endif /* PSA_PSI_H */
+#endif /*FF_PSI*/
+/*==== EOF =======================================================*/