FreeCalypso > hg > ffs-editor
comparison src/cs/drivers/drv_app/ffs/board/ffs_env.c @ 0:92470e5d0b9e
src: partial import from FC Selenite
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Fri, 15 May 2020 01:28:16 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:92470e5d0b9e |
|---|---|
| 1 /****************************************************************************/ | |
| 2 /* */ | |
| 3 /* File Name: ffs_env.c */ | |
| 4 /* */ | |
| 5 /* Purpose: This file contains definitions for RV manager related */ | |
| 6 /* functions used to get info, start and stop the FFS SWE. */ | |
| 7 /* */ | |
| 8 /* Version 0.1 */ | |
| 9 /* */ | |
| 10 /* Date Modification */ | |
| 11 /* ------------------------------------ */ | |
| 12 /* 10/24/2000 Create */ | |
| 13 /* */ | |
| 14 /* Author Pascal Puel */ | |
| 15 /* */ | |
| 16 /* (C) Copyright 2000 by Texas Instruments Incorporated, All Rights Reserved*/ | |
| 17 /****************************************************************************/ | |
| 18 | |
| 19 #include "board.cfg" | |
| 20 #include "ffs.cfg" | |
| 21 #include "ffs/ffs_env.h" | |
| 22 #include "rvm/rvm_gen.h" | |
| 23 #include "rvm/rvm_priorities.h" | |
| 24 #include "rvm/rvm_use_id_list.h" | |
| 25 #include "ffs/board/task.h" | |
| 26 #include <string.h> | |
| 27 | |
| 28 extern void ffs_task_init(T_RVF_MB_ID mbid, T_RVF_ADDR_ID addr_id); | |
| 29 T_FFS_TASK_INFO ffs_task_info; | |
| 30 | |
| 31 /* global pointer to the error function */ | |
| 32 static T_RVM_RETURN (*ffs_error_ft)(T_RVM_NAME swe_name, T_RVM_RETURN error_cause, | |
| 33 T_RVM_ERROR_TYPE error_type,T_RVM_STRING error_msg); | |
| 34 | |
| 35 /****************************************************************************** | |
| 36 * Function : ffs_get_info | |
| 37 * | |
| 38 * Description : This function is called by the RV manager to learn | |
| 39 * driver requirements in terms of memory, SWEs... | |
| 40 * | |
| 41 * Parameters : T_RVM_INFO_SWE * swe_info: pointer to the structure to fill | |
| 42 * containing infos related to the driver SWE. | |
| 43 * | |
| 44 * Return : T_RVM_RETURN | |
| 45 * | |
| 46 * History : 0.1 (20-August-2000) | |
| 47 * | |
| 48 * | |
| 49 ******************************************************************************/ | |
| 50 T_RVM_RETURN ffs_get_info(T_RVM_INFO_SWE * infoSWE) | |
| 51 { | |
| 52 | |
| 53 /* SWE info */ | |
| 54 infoSWE->swe_type = RVM_SWE_TYPE_4; | |
| 55 | |
| 56 infoSWE->type_info.type4.swe_use_id = FFS_USE_ID; | |
| 57 memcpy ( (UINT8 *) infoSWE->type_info.type4.swe_name, "FFS", sizeof("FFS") ); | |
| 58 infoSWE->type_info.type4.version = 0; | |
| 59 | |
| 60 infoSWE->type_info.type4.stack_size = FFS_STACK_SIZE; | |
| 61 infoSWE->type_info.type4.priority = RVM_FFS_TASK_PRIORITY; | |
| 62 | |
| 63 /* memory bank info */ | |
| 64 infoSWE->type_info.type4.nb_mem_bank = 1; | |
| 65 | |
| 66 memcpy ((UINT8 *) infoSWE->type_info.type4.mem_bank[0].bank_name, "FFS_PRIM", RVM_NAME_MAX_LEN); | |
| 67 infoSWE->type_info.type4.mem_bank[0].initial_params.size = FFS_MB_PRIM_SIZE; | |
| 68 infoSWE->type_info.type4.mem_bank[0].initial_params.watermark = FFS_MB_PRIM_WATERMARK; | |
| 69 | |
| 70 /* linked SWE info */ | |
| 71 infoSWE->type_info.type4.nb_linked_swe = 0; | |
| 72 | |
| 73 /* generic functions */ | |
| 74 infoSWE->type_info.type4.set_info = ffs_set_info; | |
| 75 infoSWE->type_info.type4.init = ffs_init; | |
| 76 infoSWE->type_info.type4.core = ffs_start; | |
| 77 infoSWE->type_info.type4.stop = ffs_stop; | |
| 78 infoSWE->type_info.type4.kill = ffs_kill; | |
| 79 | |
| 80 /* Set return_path */ | |
| 81 infoSWE->type_info.type4.return_path.callback_func = NULL; | |
| 82 infoSWE->type_info.type4.return_path.addr_id = 0; | |
| 83 | |
| 84 return RV_OK; | |
| 85 } | |
| 86 | |
| 87 | |
| 88 /****************************************************************************** | |
| 89 * Function : ffs_set_info | |
| 90 * | |
| 91 * Description : This function is called by the RV manager to inform | |
| 92 * the driver SWE about task_id, mb_id and error function. | |
| 93 * | |
| 94 * Parameters : - T_RVF_ADDR_ID addr_id: unique path to the SWE. | |
| 95 * - T_RV_RETURN ReturnPath[], array of return path for linked SWE | |
| 96 * - T_RVF_MB_ID mbId[]: array of memory bank ids. | |
| 97 * - callback function to call in case of unrecoverable error. | |
| 98 * | |
| 99 * Return : T_RVM_RETURN | |
| 100 * | |
| 101 * History : 0.1 (20-August-2000) | |
| 102 * | |
| 103 * | |
| 104 ******************************************************************************/ | |
| 105 T_RVM_RETURN ffs_set_info(T_RVF_ADDR_ID addr_id, | |
| 106 T_RV_RETURN ReturnPath[], | |
| 107 T_RVF_MB_ID mbId[], | |
| 108 T_RVM_RETURN (*callBackFct)(T_RVM_NAME SWEntName, | |
| 109 T_RVM_RETURN errorCause, | |
| 110 T_RVM_ERROR_TYPE errorType, | |
| 111 T_RVM_STRING errorMsg)) | |
| 112 { | |
| 113 /* store the pointer to the error function */ | |
| 114 ffs_error_ft = callBackFct ; | |
| 115 | |
| 116 ffs_task_init(mbId[0], addr_id); | |
| 117 | |
| 118 ffs_task_info.addr_id = addr_id; | |
| 119 ffs_task_info.mbid = mbId[0]; | |
| 120 | |
| 121 return RV_OK; | |
| 122 } | |
| 123 | |
| 124 | |
| 125 /****************************************************************************** | |
| 126 * Function : ffs_init | |
| 127 * | |
| 128 * Description : This function is called by the RV manager to initialize the | |
| 129 * ffs SWE before creating the task and calling ffs_start. | |
| 130 * | |
| 131 * Parameters : None | |
| 132 * | |
| 133 * Return : T_RVM_RETURN | |
| 134 * | |
| 135 * History : 0.1 (20-August-2000) | |
| 136 * | |
| 137 * | |
| 138 ******************************************************************************/ | |
| 139 T_RVM_RETURN ffs_init(void) | |
| 140 { | |
| 141 return RV_OK; | |
| 142 } | |
| 143 | |
| 144 | |
| 145 /****************************************************************************** | |
| 146 * Function : ffs_start | |
| 147 * | |
| 148 * Description : This function is called by the RV manager to start the ffs | |
| 149 * SWE, it is the body of the task. | |
| 150 * | |
| 151 * Parameters : None | |
| 152 * | |
| 153 * Return : T_RVM_RETURN | |
| 154 * | |
| 155 * History : 0.1 (20-August-2000) | |
| 156 * | |
| 157 * | |
| 158 ******************************************************************************/ | |
| 159 T_RVM_RETURN ffs_start(void) | |
| 160 { | |
| 161 ffs_task(); | |
| 162 return RV_OK; | |
| 163 } | |
| 164 | |
| 165 | |
| 166 /****************************************************************************** | |
| 167 * Function : ffs_stop | |
| 168 * | |
| 169 * Description : This function is called by the RV manager to stop the ffs SWE. | |
| 170 * | |
| 171 * Parameters : None | |
| 172 * | |
| 173 * Return : T_RVM_RETURN | |
| 174 * | |
| 175 * History : 0.1 (20-August-2000) | |
| 176 * | |
| 177 * | |
| 178 ******************************************************************************/ | |
| 179 T_RVM_RETURN ffs_stop(void) | |
| 180 { | |
| 181 /* other SWEs have not been killed yet, ffs can send messages to other SWEs */ | |
| 182 | |
| 183 return RV_OK; | |
| 184 } | |
| 185 | |
| 186 | |
| 187 /****************************************************************************** | |
| 188 * Function : ffs_kill | |
| 189 * | |
| 190 * Description : This function is called by the RV manager to kill the ffs | |
| 191 * SWE, after the ffs_stop function has been called. | |
| 192 * | |
| 193 * Parameters : None | |
| 194 * | |
| 195 * Return : T_RVM_RETURN | |
| 196 * | |
| 197 * History : 0.1 (20-August-2000) | |
| 198 * | |
| 199 * | |
| 200 ******************************************************************************/ | |
| 201 T_RVM_RETURN ffs_kill (void) | |
| 202 { | |
| 203 /* free all memory buffer previously allocated */ | |
| 204 return RV_OK; | |
| 205 } |
