FreeCalypso > hg > fc-magnetite
annotate src/cs/services/dar/dar_handle_message.c @ 575:0198ac1e1a4f
cfile_symlink for GPF: a more robust approach
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Thu, 24 Jan 2019 23:43:00 +0000 | 
| parents | 945cf7f506b2 | 
| children | 
| rev | line source | 
|---|---|
| 0 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 /* File Name: dar_handle_message.c */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 /* Purpose: This function is called when the DAR entity receives a new */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 /* message in its mailbox. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 /* Version 0.1 */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 /* Date Modification */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 /* ------------------------------------ */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 /* 17 October 2001 Create */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 /* Author Stephanie Gerthoux */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 /* (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved*/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 /****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 #include "rv/rv_defined_swe.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 #ifdef RVM_DAR_SWE | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 #include "rv/rv_general.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 #include "rvm/rvm_gen.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 #include "rvm/rvm_priorities.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 #include "dar/dar_api.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 #include "dar/dar_env.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 #include "dar/dar_macro_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 #include "dar/dar_messages_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 #include "dar/dar_msg_ft.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 /* Function dar_handle_message */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 /* Description This function is called every time the DAR entity received */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 /* a new message in its mailbox */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 T_RV_RET dar_handle_msg(T_RV_HDR *msg_p) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 /* Declare local variables */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 T_RV_RET status = RVF_GREEN; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 if (msg_p != NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 switch (msg_p->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 case DAR_FILTER_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 //DAR_SEND_TRACE_PARAM("DAR Diagnose with the msg", msg_p->msg_id, RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 /* process the dar filter */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 dar_filter_request((T_DAR_FILTER_START *)msg_p); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 case DAR_WRITE_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 //DAR_SEND_TRACE_PARAM("DAR Diagnose with the msg", msg_p->msg_id, RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 /* process the dar to write */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 dar_write_data_in_buffer((T_DAR_WRITE_START *)msg_p); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 default: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 /* Unknow message has been received */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 DAR_TRACE_WARNING("A DAR unknow message has been received "); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 }; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 } /* switch (msg_p->msg_id) */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 /* Free message buffer */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 status = rvf_free_buf((T_RVF_BUFFER *)msg_p); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 if (status != RVF_GREEN) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 DAR_SEND_TRACE(" DAR ERROR (env). A wrong message is deallocated ", | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 RV_TRACE_LEVEL_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 } /* if (msg_p != NULL) */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 return RV_OK; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 #endif /* #ifdef RVM_DAR_SWE */ | 
