comparison src/g23m-fad/app/app_util.h @ 1:fa8dc04885d8

src/g23m-*: import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:25:50 +0000
parents
children
comparison
equal deleted inserted replaced
0:4e78acac3d88 1:fa8dc04885d8
1 /*
2 +------------------------------------------------------------------------------
3 | File: app.h
4 +------------------------------------------------------------------------------
5 | Copyright 2003 Texas Instruments Berlin, AG
6 | All rights reserved.
7 |
8 | This file is confidential and a trade secret of Texas
9 | Instruments Berlin, AG
10 | The receipt of or possession of this file does not convey
11 | any rights to reproduce or disclose its contents or to
12 | manufacture, use, or sell anything it may describe, in
13 | whole, or in part, without the specific written consent of
14 | Texas Instruments Berlin, AG.
15 +-----------------------------------------------------------------------------
16 | Purpose : Definitions for the Protocol Stack Entity app.
17 +-----------------------------------------------------------------------------
18 */
19
20 #ifndef APP_UTIL_H
21 #define APP_UTIL_H
22
23
24 #define __STR2__(x) #x
25 #define __STR1__(x) __STR2__(x)
26 #define __TODO__ __FILE__ "("__STR1__(__LINE__)") : T O D O: "
27
28 /*==== INCLUDES =============================================================*/
29
30 #include "typedefs.h" /* Condat data types. */
31
32 /*==== CONSTS ===============================================================*/
33 /*==== DEFINES =========================================================*/
34
35 #define BAT_MAX_TEST_CLNT_NUM 4
36 #define BAT_MAX_TEST_INST_NUM 2
37
38 /* Result of test case */
39 #define BAT_TEST_PASS 0
40 #define BAT_TEST_FAIL 1
41
42 /* Indicate no additional values for test result */
43 #define NO_ADD_VAL 0xFFFFFFFF
44
45 /* Macros for easier coding */
46 #define BAT_TEST_PASSED() app_bat_send_result_prim(BAT_TEST_PASS, NO_ADD_VAL)
47 #define BAT_TEST_FAILED() app_bat_send_result_prim(BAT_TEST_FAIL, NO_ADD_VAL)
48
49 /*==== TYPES ================================================================*/
50
51 /* Type of command table entry. */
52 typedef struct APP_CMD_ENTRY app_cmd_entry_t ;
53
54 /* Type of some application core functions. */
55 typedef void (*core_func_t)(int , char* , char*) ;
56
57 /* Type of command handler functions. */
58 typedef char *(*cmd_handler_t)(app_cmd_entry_t *cmd_entry_ptr,
59 char *param1,
60 char *param2,
61 char *param3,
62 core_func_t core_func) ;
63
64 /* Struct for command table entry. */
65 struct APP_CMD_ENTRY {
66 char *cmd_name ; /* Command string. */
67 cmd_handler_t cmd_func ; /* Command handler function. */
68 core_func_t core_func ; /* Related core function (if applicable). */
69 char *cmd_usage ; /* Command usage string (informative only). */
70 } ;
71
72
73 /*==== FUNCTIONS ============================================================*/
74
75 /** Parse a command and execute it if it is valid. Return appropriate error
76 * message if the command is invalid or fails.
77 *
78 * @param command command line to execute
79 * @return an error message or NULL on success
80 */
81 char *app_handle_command(char *command, app_cmd_entry_t * cmd_table);
82
83 /**
84 * Convert a string into an integer.
85 * If not possibly, assume the default value.
86 */
87 int get_item(char *param, int default_item, BOOL can_null);
88
89 /**
90 * Convert a string to lower case
91 */
92 char *string_to_lower(char *s) ;
93
94 /**
95 * Send a T_APP_BAT_TEST_RSLT result primitive.
96 * Result can be either BAT_TEST_PASS or BAT_TEST_FAIL.
97 */
98 void app_bat_send_result_prim (U8 result, U32 add_info);
99
100
101 #endif /* !APP_UTIL_H */