view src/g23m-fad/app/app_util.h @ 338:1c711302732a

FCHG: complete enough to attempt linking into fw build
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 14 Dec 2017 22:03:48 +0000
parents 90eb61ecd093
children
line wrap: on
line source

/*
+------------------------------------------------------------------------------
|  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 */