FreeCalypso > hg > fc-tourmaline
annotate src/g23m-aci/uart/uart_txp.c @ 54:a1799f6d6aa7
doc/Nucleus-change article written
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Tue, 20 Oct 2020 04:11:55 +0000 | 
| parents | fa8dc04885d8 | 
| children | 
| rev | line source | 
|---|---|
| 1 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 +----------------------------------------------------------------------------- | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 | Project : | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | Modul : | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 +----------------------------------------------------------------------------- | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | All rights reserved. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | This file is confidential and a trade secret of Texas | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 | Instruments Berlin, AG | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | The receipt of or possession of this file does not convey | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 | any rights to reproduce or disclose its contents or to | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | manufacture, use, or sell anything it may describe, in | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | whole, or in part, without the specific written consent of | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | Texas Instruments Berlin, AG. | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 +----------------------------------------------------------------------------- | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | Purpose : This modul is part of the entity UART and implements all | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 | functions to handles the incoming primitives as described in | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 | the SDL-documentation (TX-statemachine) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 +----------------------------------------------------------------------------- | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 #ifndef UART_TXP_C | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 #define UART_TXP_C | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 #endif /* !UART_TXP_C */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 #define ENTITY_UART | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 #ifndef FF_MULTI_PORT | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 /*==== INCLUDES =============================================================*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #ifdef WIN32 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #include "nucleus.h" | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 #endif /* WIN32 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 #include "typedefs.h" /* to get Condat data types */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 #include "vsi.h" /* to get a lot of macros */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 #include "macdef.h" /* to get a lot of macros */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "custom.h" | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "gsm.h" /* to get a lot of macros */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 #include "cnf_uart.h" /* to get cnf-definitions */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 #include "mon_uart.h" /* to get mon-definitions */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 #include "prim.h" /* to get the definitions of used SAP and directions */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 #ifdef DTILIB | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 #include "dti.h" /* to get dti lib */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 #endif /* DTILIB */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 #include "pei.h" /* to get PEI interface */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 #ifdef _TARGET_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 #include "uart/serialswitch.h" | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 #include "uart/traceswitch.h" | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 #else /* _TARGET_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 #include "serial_dat.h" /* to get definitions of serial driver */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 #endif /* _TARGET_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 #include "uart.h" /* to get the global entity definitions */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 #include "uart_txf.h" /* to get tx functions */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 #include "uart_kers.h" /* to get ker signals */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 #include "uart_drxs.h" /* to get drx signals */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 #ifdef _SIMULATION_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 #include <stdio.h> /* to get sprintf */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 #include "uart_txp.h" /* to get tx_writedata */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 #endif /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 /*==== CONST ================================================================*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 /*==== LOCAL VARS ===========================================================*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 /*==== PRIVATE FUNCTIONS ====================================================*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 /*==== PUBLIC FUNCTIONS =====================================================*/ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 | Function : tx_uart_driver_sent_ind | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 | Description : Handles the primitive UART_DRIVER_SENT_IND | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 | Parameters : *uart_device - affected device database | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 GLOBAL void tx_uart_driver_sent_ind ( T_UART_DATA* uart_device ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 T_desc2* temp_desc; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 T_DLC* dlc; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 TRACE_EVENT( "tx_uart_driver_sent_ind()" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 * set affected instance | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 uart_data = uart_device; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 switch( GET_STATE( UART_SERVICE_TX ) ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 case TX_READY: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 * send DATA_SENT signal | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 dlc = &uart_data->dlc_table[UART_CONTROL_INSTANCE]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 uart_data->tx.dlc_instance = UART_EMPTY_INSTANCE; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 temp_desc = dlc->transmit_data; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 dlc->transmit_data = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 uart_data->drx = dlc->drx; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 sig_tx_drx_data_sent_req(temp_desc, dlc->transmit_pos); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 * determine whether there is still data to send | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 if(dlc->transmit_data EQ NULL) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 * no more data | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 uart_data->tx.send_state = UART_TX_NOT_SENDING; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 * inform dlc about sending | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 uart_data->drx = dlc->drx; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 sig_tx_drx_sending_req(); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 * transmit data | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 if(uart_data EQ (&(uart_data_base[0]))) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 TRACE_EVENT("UF_WriteData()"); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 #ifdef _SIMULATION_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 tx_writedata(0); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 #else /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 UF_WriteData (uart_data->device, sm_suspend, tx_writeInFunc_0); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 #endif /* else _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 #ifdef FF_TWO_UART_PORTS | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 else if(uart_data EQ (&(uart_data_base[1]))) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 TRACE_EVENT("UF_WriteData()"); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 #ifdef _SIMULATION_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 tx_writedata(1); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 #else /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 UF_WriteData (uart_data->device, sm_suspend, tx_writeInFunc_1); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 #endif /* else _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 #endif /* FF_TWO_UART_PORTS */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 else | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 TRACE_ERROR("wrong value of uart_data"); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 case TX_MUX: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 * send DATA_SENT signal | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 if(uart_data->tx.dlc_instance EQ UART_EMPTY_INSTANCE) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 * use entry 0 for raw data | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 dlc = &uart_data->dlc_table[UART_CONTROL_INSTANCE]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 else | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 dlc = &uart_data->dlc_table[uart_data->tx.dlc_instance]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 temp_desc = dlc->transmit_data; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 dlc->transmit_data = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 if(uart_data->tx.dlc_instance EQ UART_CONTROL_INSTANCE) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 sig_tx_ker_data_sent_ind(temp_desc, dlc->transmit_pos); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 else | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 uart_data->drx = dlc->drx; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 sig_tx_drx_data_sent_req(temp_desc, dlc->transmit_pos); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 * determine next dlc allow to send | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 tx_next_send_allowed(); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 if(uart_data->tx.dlc_instance EQ UART_EMPTY_INSTANCE) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 * queue empty | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 uart_data->tx.send_state = UART_TX_NOT_SENDING; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 189 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 * inform dlc about sending | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 dlc = &uart_data->dlc_table[uart_data->tx.dlc_instance]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 if(uart_data->tx.dlc_instance EQ UART_CONTROL_INSTANCE) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 * Control channel | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 sig_tx_ker_sending_ind(); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 else | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 * Data channel | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 uart_data->drx = dlc->drx; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 sig_tx_drx_sending_req(); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 * transmit data | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 #ifndef _SIMULATION_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 tx_flushUart(); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 #endif /* !_SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 if(uart_data EQ (&(uart_data_base[0]))) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 TRACE_EVENT("UF_WriteData()"); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 #ifdef _SIMULATION_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 tx_writedata(0); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 #else /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 UF_WriteData (uart_data->device, sm_suspend, tx_writeInFunc_0); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 #endif /* else _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 #ifdef FF_TWO_UART_PORTS | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 else if(uart_data EQ (&(uart_data_base[1]))) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 TRACE_EVENT("UF_WriteData()"); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 #ifdef _SIMULATION_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 tx_writedata(1); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 229 #else /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 230 UF_WriteData (uart_data->device, sm_suspend, tx_writeInFunc_1); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 #endif /* else _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 #endif /* FF_TWO_UART_PORTS */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 else | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 TRACE_ERROR("wrong value of uart_data"); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 237 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 238 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 default: | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 241 TRACE_ERROR( "UART_DRIVER_SENT_IND unexpected" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 242 break; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 } /* tx_uart_driver_sent_ind() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 245 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 246 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 #ifdef _SIMULATION_ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 | Function : tx_dti_ready_ind | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 | Description : Handles the primitive DTI_READY_IND | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 | Parameters : *dti_ready_ind - Ptr to primitive payload | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 GLOBAL void tx_dti_ready_ind ( T_DTI2_READY_IND *dti_ready_ind ) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 260 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 261 TRACE_FUNCTION( "tx_dti_ready_ind" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 263 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 264 * free the received primitive | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 PFREE(dti_ready_ind); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 #ifdef DTI2 /* should combine "caller" and "read_data" */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 /* when using both devices in the test document?! */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 tx_uart_driver_sent_ind(&(uart_data_base[UART_TEST_C_ID_1])); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 #else /* DTI2 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 tx_uart_driver_sent_ind(&(uart_data_base[dti_ready_ind->c_id])); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 272 #endif /* DTI2 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 273 } /* tx_dti_ready_ind() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 | Function : tx_writedata | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 | Description : Simulates UF_WriteData call | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 | Parameters : caller - calling UART instance | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 284 | | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 285 +------------------------------------------------------------------------------ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 GLOBAL void tx_writedata (UBYTE caller) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 char buf[100]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 T_reInstMode reInstall; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 USHORT size[2]; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 USHORT pos; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 USHORT i; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 T_UART_DATA* uart_device; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 296 TRACE_FUNCTION( "tx_writedata" ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 297 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 299 * set UART instance | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 300 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 301 uart_device = &(uart_data_base[caller]); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 302 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 303 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 304 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 * calculation of SDU length: ((((frame-size + 3) * 2) + 2) * 8) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 306 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 307 PALLOC_SDU (dti_data_test_req, DTI2_DATA_TEST_REQ, 1088); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 #ifdef DTI2 /* should switch for C_ID_1/2 when using both devices in the test document?! */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 dti_data_test_req->link_id = LINK_WRITEDATA_PORT_1; /* for write_data call */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 dti_data_test_req->parameters.p_id = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 311 dti_data_test_req->parameters.st_lines.st_flow = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 312 dti_data_test_req->parameters.st_lines.st_line_sa = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 dti_data_test_req->parameters.st_lines.st_line_sb = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 314 dti_data_test_req->parameters.st_lines.st_break_len = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 315 dti_data_test_req->sdu.o_buf = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 #else /* DTI2 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 dti_data_test_req->tui = 3; /* for write_data call */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 dti_data_test_req->c_id = caller; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 dti_data_test_req->p_id = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 320 dti_data_test_req->op_ack = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 321 dti_data_test_req->st_flow = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 dti_data_test_req->st_line_sa = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 323 dti_data_test_req->st_line_sb = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 dti_data_test_req->st_escape = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 dti_data_test_req->sdu.o_buf = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 #endif /* DTI2 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 uart_device->tx.dest[0] = dti_data_test_req->sdu.buf; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 329 uart_device->tx.dest[1] = NULL; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 330 size[0] = (USHORT)(1088 >> 3); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 331 size[1] = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 332 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 333 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 * call actual function | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 335 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 if(caller EQ 0) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 tx_writeInFunc_0 (FALSE, &reInstall, 1, uart_device->tx.dest, size); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 340 #ifdef FF_TWO_UART_PORTS | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 341 else if(caller EQ 1) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 343 tx_writeInFunc_1 (FALSE, &reInstall, 1, uart_device->tx.dest, size); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 344 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 345 #endif /* FF_TWO_UART_PORTS */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 346 else | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 348 TRACE_ERROR("wrong caller value"); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 349 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 * set length of sdu | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 353 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 354 dti_data_test_req->sdu.l_buf = ((USHORT)(1088 >> 3) - size[0]) << 3; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 * trace output | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 358 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 359 i = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 360 pos = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 361 while(pos < (dti_data_test_req->sdu.l_buf >> 3)) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 363 i+= sprintf(&buf[i], "0x%02x, ", dti_data_test_req->sdu.buf[pos]); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 364 pos++; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 if(i > 80) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 TRACE_FUNCTION( buf ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 368 i = 0; | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 369 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 else if(pos >= (dti_data_test_req->sdu.l_buf >> 3)) | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 371 { | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 372 TRACE_FUNCTION( buf ); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 /* | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 * send primitive | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 377 */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 378 PSEND (hCommMMI, dti_data_test_req); | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 } | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 } /* tx_writedata() */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 381 #endif /* _SIMULATION_ */ | 
| 
fa8dc04885d8
src/g23m-*: import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 382 #endif /* !FF_MULTI_PORT */ | 
