diff src/cs/services/atp/atp_uart_i.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/services/atp/atp_uart_i.h	Fri Oct 16 06:23:26 2020 +0000
@@ -0,0 +1,147 @@
+/********************************************************************************/
+/*                                                                              */
+/*    File Name:         atp_uart_i.h                                           */
+/*                                                                              */
+/*    Purpose:           This header file contains the internal structures,     */
+/*                       constants and prototypes related to the ATP-UART       */
+/*                       interface.                                             */
+/*                                                                              */
+/*    Note:              none.                                                  */
+/*                                                                              */
+/*    Revision History:                                                         */
+/*       10/04/01        Pascal Pompei                                          */
+/*                          - Create.                                           */
+/*                                                                              */
+/* (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved.   */
+/*                                                                              */
+/********************************************************************************/
+#ifndef _ATP_UART_I_
+#define _ATP_UART_I_
+
+#include <windows.h>
+#include "atp/atp_uart_api.h"
+#include "rvm/rvm_gen.h"
+#include "atp/atp_messages.h"
+#include "atp/atp_gsm_bt_api.h"
+#include "atp/atp_gsm_gsm_api.h"
+
+
+/************************************ MAILBOX ***********************************/
+/*                                                                              */
+/* Define the mailbox assigned to the ATP-UART interface.                       */
+#define ATP_UART_MAILBOX                              (RVF_TASK_MBOX_0)
+
+/* Define the main features of the mailbox assigned to the ATP-UART interface.  */
+#define ATP_UART_ALL_EVENT_FLAGS                      (0xFFFF)
+#define ATP_UART_EXPECTED_EVENT                       (RVF_TASK_MBOX_0_EVT_MASK)
+
+
+/****************************** MAXIMUM PACKET SIZE *****************************/
+/*                                                                              */
+/* Define the maximum packet size exchanged with the AT Parser.                 */
+#define ATP_UART_MAX_PACKET_SIZE                      (0x0100)
+
+
+/********************************** PORT NUMBER *********************************/
+/*                                                                              */
+/* Define the port number dedicated to the virtual modem port opened with the   */
+/* AT Parser.                                                                   */
+#define ATP_UART_GSM_PORT_NB                          (0x00FF)
+
+
+/*************************** CONNECTION CONTROL BLOCK ***************************/
+/*                                                                              */
+/* Define the default name assigned to the the COM port. Note that such a name  */
+/* must be a NULL-terminated string.                                            */
+#define ATP_UART_DEFAULT_COM_PORT_NAME                ("COM0")
+
+/* Define a structure used to gather information related to the COM port as     */
+/* well as the virtual modem port established with the AT Parser.               */
+typedef struct
+{
+	T_ATP_SW_ENTITY_ID  atp_id;							/* Unique entity        */
+														/* identifier assigned  */
+														/* to the ATP-UART      */
+														/* interface after its  */
+														/* registration to the  */
+														/* AT Parser.           */
+	char                com_port_name[5];				/* Name associated with */
+														/* the COM port.        */
+	HANDLE              com_port_handle;				/* Unique handle        */
+														/* assigned to the COM  */
+														/* port.                */
+	BOOLEAN             virtual_modem_port_established;	/* Indicate whether the */
+														/* virtual modem port   */
+														/* is established with  */
+														/* the AT Parser.       */
+	T_ATP_PORT_MODE     virtual_modem_port_mode;		/* Indicate whether the */
+														/* virtual modem port   */
+														/* is in 'Command' or   */
+														/* 'Data' state.        */
+	T_ATP_PORT_SIGNAL   control_signals;				/* RS232 control        */
+														/* signals.             */
+	UINT32              nb_bytes_left;					/* Number of bytes      */
+														/* left.                */
+	UINT8               in_buffer_p[ATP_UART_MAX_PACKET_SIZE];
+} T_ATP_UART_CONN_CTRL_BLK;
+
+
+/******************** GLOBAL ATP-UART INTERFACE CONTROL BLOCK *******************/
+/*                                                                              */
+/* Define a global structure used to gather information related to the 'Global  */
+/* ATP-UART Interface Control Block', such as the address and memory bank       */
+/* identifier assigned to the ATP-UART interface.                               */
+typedef struct
+{
+	T_ATP_UART_CONN_CTRL_BLK  conn_ctrl_blk;
+	T_RVF_MB_ID               mb_id;			/* 'Memory Bank' identifier     */
+												/* assigned to the ATP-UART     */
+												/* interface.                   */
+	T_RVF_ADDR_ID             addr_id;			/* Unique address identifier    */
+												/* assigned to the ATP-UART     */
+												/* interface.                   */
+	T_RVM_CB_FUNC             error_function_p;	/* Function to be called        */
+												/* whenever any unrecoverable   */
+												/* error occurs.                */
+} T_ATP_UART_CTRL_BLK;
+
+/* Define a pointer to the 'Global ATP-UART Interface Control Block'.           */
+extern T_ATP_UART_CTRL_BLK  *gbl_atp_uart_ctrl_blk_p;
+
+
+/****************************** UNRECOVERABLE ERROR *****************************/
+/*                                                                              */
+/* Define a macro used to call the function due to an unrecoverable error.      */
+/*                                                                              */
+/* Prototype:                                                                   */
+/*   ATP_UART_UNRECOVERABLE_ERROR (T_RVM_RETURN  error_cause,                   */
+/*                                 T_RVM_STRING  error_message);                */
+#define ATP_UART_UNRECOVERABLE_ERROR(error_cause, \
+									 error_message) \
+		{ \
+			(gbl_atp_uart_ctrl_blk_p->error_function_p) (ATP_UART_NAME, \
+														 (error_cause), \
+														 0x00000000, \
+														 (error_message)); \
+		}
+
+
+/*************************** LOCAL FUNCTION PROTOTYPES **************************/
+/*                                                                              */
+/* Define the local fonction prototypes.                                        */
+T_ATP_UART_ERROR_CODES atp_uart_create_com_port (T_ATP_UART_COM_PORT   com_port,
+												 T_ATP_UART_BAUD_RATE  baud_rate);
+
+T_ATP_UART_ERROR_CODES atp_uart_write_com_port (UINT8   *data_buffer_p,
+												UINT32  data_size);
+
+T_ATP_UART_ERROR_CODES atp_uart_read_com_port (UINT8   *data_buffer_p,
+											   UINT32  *data_size_p);
+
+T_ATP_UART_ERROR_CODES atp_uart_remove_com_port (void);
+
+/********************************************************************************/
+
+T_ATP_UART_ERROR_CODES atp_uart_handle_msg (void);
+
+#endif