FreeCalypso > hg > fc-selenite
diff src/g23m-fad/app/app_util.h @ 1:d393cd9bb723
src/g23m-*: initial import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Jul 2018 04:40:46 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/g23m-fad/app/app_util.h Sun Jul 15 04:40:46 2018 +0000 @@ -0,0 +1,101 @@ +/* ++------------------------------------------------------------------------------ +| File: app.h ++------------------------------------------------------------------------------ +| Copyright 2003 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 Entity app. ++----------------------------------------------------------------------------- +*/ + +#ifndef APP_UTIL_H +#define APP_UTIL_H + + +#define __STR2__(x) #x +#define __STR1__(x) __STR2__(x) +#define __TODO__ __FILE__ "("__STR1__(__LINE__)") : T O D O: " + +/*==== INCLUDES =============================================================*/ + +#include "typedefs.h" /* Condat data types. */ + +/*==== CONSTS ===============================================================*/ +/*==== DEFINES =========================================================*/ + +#define BAT_MAX_TEST_CLNT_NUM 4 +#define BAT_MAX_TEST_INST_NUM 2 + +/* Result of test case */ +#define BAT_TEST_PASS 0 +#define BAT_TEST_FAIL 1 + +/* Indicate no additional values for test result */ +#define NO_ADD_VAL 0xFFFFFFFF + +/* Macros for easier coding */ +#define BAT_TEST_PASSED() app_bat_send_result_prim(BAT_TEST_PASS, NO_ADD_VAL) +#define BAT_TEST_FAILED() app_bat_send_result_prim(BAT_TEST_FAIL, NO_ADD_VAL) + +/*==== TYPES ================================================================*/ + +/* Type of command table entry. */ +typedef struct APP_CMD_ENTRY app_cmd_entry_t ; + +/* Type of some application core functions. */ +typedef void (*core_func_t)(int , char* , char*) ; + +/* Type of command handler functions. */ +typedef char *(*cmd_handler_t)(app_cmd_entry_t *cmd_entry_ptr, + char *param1, + char *param2, + char *param3, + core_func_t core_func) ; + +/* Struct for command table entry. */ +struct APP_CMD_ENTRY { + char *cmd_name ; /* Command string. */ + cmd_handler_t cmd_func ; /* Command handler function. */ + core_func_t core_func ; /* Related core function (if applicable). */ + char *cmd_usage ; /* Command usage string (informative only). */ +} ; + + +/*==== FUNCTIONS ============================================================*/ + +/** Parse a command and execute it if it is valid. Return appropriate error + * message if the command is invalid or fails. + * + * @param command command line to execute + * @return an error message or NULL on success + */ +char *app_handle_command(char *command, app_cmd_entry_t * cmd_table); + +/** + * Convert a string into an integer. + * If not possibly, assume the default value. + */ +int get_item(char *param, int default_item, BOOL can_null); + +/** + * Convert a string to lower case + */ +char *string_to_lower(char *s) ; + +/** + * Send a T_APP_BAT_TEST_RSLT result primitive. + * Result can be either BAT_TEST_PASS or BAT_TEST_FAIL. + */ +void app_bat_send_result_prim (U8 result, U32 add_info); + + +#endif /* !APP_UTIL_H */