view src/g23m-fad/app/app_util.h @ 673:62a5285e014a

Lorekeeping: allow tpudrv-leonardo.lib on Leonardo/Tango Back in 2015 the Mother's idea was to produce a FreeCalypso development board that would be a clone of TI Leonardo, including the original quadband RFFE; one major additional stipulation was that this board needed to be able to run original unmodified TCS211-20070608 firmware with all blobs intact, with only minimal binary patches to main.lib and tpudrv.lib. The necessary patched libs were produced at that time in the tcs211-patches repository. That plan was changed and we produced FCDEV3B instead, with Openmoko's triband RFFE instead of Leonardo quadband, but when FC Magnetite started in 2016, a TPUDRV_blob= provision was still made, allowing the possibility of patching OM's tpudrv.lib for a restored Leonardo RFFE. Now in 2020 we have FC Tango which is essentially a verbatim clone of Leonardo core, including the original quadband RFFE. We have also deblobbed our firmware so much that we have absolutely no real need for a blob version of tpudrv.lib - but I thought it would be neat to put the ancient TPUDRV_blob= mechanism (classic config) to its originally intended use, just for the heck of it.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 29 May 2020 03:55:36 +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 */