6#ifndef CAFFEINE_SAL_UTL_CLI_H
7#define CAFFEINE_SAL_UTL_CLI_H
19#define CFN_SAL_UTL_TYPE_CLI CFN_SAL_TYPE('C', 'L', 'I')
36 int (*handler)(
int argc,
char **argv);
87 uint32_t peripheral_id,
95 CFN_HAL_POPULATE_DRIVER(
96 driver,
CFN_SAL_UTL_TYPE_CLI, peripheral_id, NULL, dependency, api, phy, config, callback, user_arg);
111 return CFN_HAL_ERROR_BAD_PARAM;
113 driver->base.vmt = (
const struct cfn_hal_api_base_s *) driver->api;
121 return CFN_HAL_ERROR_BAD_PARAM;
131 return CFN_HAL_ERROR_BAD_PARAM;
133 driver->config = config;
140 if (!driver || !config || !driver->config)
142 return CFN_HAL_ERROR_BAD_PARAM;
144 *config = *(driver->config);
145 return CFN_HAL_ERROR_OK;
154 return CFN_HAL_ERROR_BAD_PARAM;
156 driver->cb = callback;
157 driver->cb_user_arg = user_arg;
158 return cfn_hal_base_callback_register(&driver->base,
CFN_SAL_UTL_TYPE_CLI, (cfn_hal_callback_t) callback, user_arg);
162 cfn_hal_power_state_t state)
166 return CFN_HAL_ERROR_BAD_PARAM;
175 return CFN_HAL_ERROR_BAD_PARAM;
184 return CFN_HAL_ERROR_BAD_PARAM;
193 return CFN_HAL_ERROR_BAD_PARAM;
202 return CFN_HAL_ERROR_BAD_PARAM;
211 return CFN_HAL_ERROR_BAD_PARAM;
220 return CFN_HAL_ERROR_BAD_PARAM;
229 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
236 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
243 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
251 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
258 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
259 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(
CFN_SAL_UTL_TYPE_CLI, unregister_command, driver, error, name);
265 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
272 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
281 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
282 CFN_HAL_CHECK_AND_CALL_FUNC_VARG(
CFN_SAL_UTL_TYPE_CLI, register_command_simple, driver, error, cmd, callback);
288 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
295 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
302 cfn_hal_error_code_t error = CFN_HAL_ERROR_OK;
Core definitions and macros for Caffeine SAL.
#define CFN_SAL_CREATE_DRIVER_TYPE(prefix, config_type, api_type, phy_type, cb_type)
Definition cfn_sal.h:38
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_register_command(cfn_sal_utl_cli_t *driver, const cfn_sal_utl_cli_cmd_t *cmd)
Definition cfn_sal_utl_cli.h:248
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_config_get(cfn_sal_utl_cli_t *driver, cfn_sal_utl_cli_config_t *config)
Definition cfn_sal_utl_cli.h:137
#define CFN_SAL_UTL_TYPE_CLI
Definition cfn_sal_utl_cli.h:19
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_config_set(cfn_sal_utl_cli_t *driver, const cfn_sal_utl_cli_config_t *config)
Definition cfn_sal_utl_cli.h:126
CFN_HAL_VMT_CHECK(struct cfn_sal_utl_cli_api_s)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_history_next(cfn_sal_utl_cli_t *driver)
Definition cfn_sal_utl_cli.h:300
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_deinit(cfn_sal_utl_cli_t *driver)
Definition cfn_sal_utl_cli.h:117
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_print(cfn_sal_utl_cli_t *driver, const char *str)
Definition cfn_sal_utl_cli.h:234
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_print_line(cfn_sal_utl_cli_t *driver, const char *str)
Definition cfn_sal_utl_cli.h:241
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_error_disable(cfn_sal_utl_cli_t *driver, uint32_t error_mask)
Definition cfn_sal_utl_cli.h:207
cfn_sal_utl_cli_event_t
Definition cfn_sal_utl_cli.h:24
@ CFN_SAL_UTL_CLI_EVENT_NONE
Definition cfn_sal_utl_cli.h:25
@ CFN_SAL_UTL_CLI_EVENT_CMD_START
Definition cfn_sal_utl_cli.h:26
@ CFN_SAL_UTL_CLI_EVENT_CMD_DONE
Definition cfn_sal_utl_cli.h:27
void(* cfn_sal_utl_cli_callback_t)(cfn_sal_utl_cli_t *driver, uint32_t event, uint32_t error, void *user_arg)
Definition cfn_sal_utl_cli.h:50
cfn_hal_error_code_t cfn_sal_utl_cli_destruct(cfn_sal_utl_cli_t *driver)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_init(cfn_sal_utl_cli_t *driver)
Definition cfn_sal_utl_cli.h:107
struct cfn_sal_utl_cli_s cfn_sal_utl_cli_t
Definition cfn_sal_utl_cli.h:47
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_error_get(cfn_sal_utl_cli_t *driver, uint32_t *error_mask)
Definition cfn_sal_utl_cli.h:216
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_error_enable(cfn_sal_utl_cli_t *driver, uint32_t error_mask)
Definition cfn_sal_utl_cli.h:198
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_history_prev(cfn_sal_utl_cli_t *driver)
Definition cfn_sal_utl_cli.h:293
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_unregister_command(cfn_sal_utl_cli_t *driver, const char *name)
Definition cfn_sal_utl_cli.h:256
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_event_enable(cfn_sal_utl_cli_t *driver, uint32_t event_mask)
Definition cfn_sal_utl_cli.h:171
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_register_command_simple(cfn_sal_utl_cli_t *driver, const char *cmd, void *callback)
Definition cfn_sal_utl_cli.h:277
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_event_get(cfn_sal_utl_cli_t *driver, uint32_t *event_mask)
Definition cfn_sal_utl_cli.h:189
CFN_HAL_INLINE void cfn_sal_utl_cli_populate(cfn_sal_utl_cli_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_utl_cli_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_utl_cli_config_t *config, cfn_sal_utl_cli_callback_t callback, void *user_arg)
Definition cfn_sal_utl_cli.h:86
cfn_hal_error_code_t cfn_sal_utl_cli_construct(cfn_sal_utl_cli_t *driver, const cfn_sal_utl_cli_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_utl_cli_callback_t callback, void *user_arg)
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_callback_register(cfn_sal_utl_cli_t *driver, cfn_sal_utl_cli_callback_t callback, void *user_arg)
Definition cfn_sal_utl_cli.h:148
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_power_state_set(cfn_sal_utl_cli_t *driver, cfn_hal_power_state_t state)
Definition cfn_sal_utl_cli.h:161
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_event_disable(cfn_sal_utl_cli_t *driver, uint32_t event_mask)
Definition cfn_sal_utl_cli.h:180
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_feed_char(cfn_sal_utl_cli_t *driver, char c)
Definition cfn_sal_utl_cli.h:227
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_print_help(cfn_sal_utl_cli_t *driver)
Definition cfn_sal_utl_cli.h:286
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_clear_screen(cfn_sal_utl_cli_t *driver)
Definition cfn_sal_utl_cli.h:270
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_cli_set_prompt(cfn_sal_utl_cli_t *driver, const char *prompt)
Definition cfn_sal_utl_cli.h:263
Generic physical mapping for services.
Definition cfn_sal_types.h:26
CLI Virtual Method Table (VMT).
Definition cfn_sal_utl_cli.h:56
cfn_hal_error_code_t(* print_line)(cfn_sal_utl_cli_t *driver, const char *str)
Definition cfn_sal_utl_cli.h:62
cfn_hal_error_code_t(* register_command_simple)(cfn_sal_utl_cli_t *driver, const char *cmd, void *callback)
Definition cfn_sal_utl_cli.h:67
cfn_hal_error_code_t(* history_prev)(cfn_sal_utl_cli_t *driver)
Definition cfn_sal_utl_cli.h:75
cfn_hal_error_code_t(* clear_screen)(cfn_sal_utl_cli_t *driver)
Definition cfn_sal_utl_cli.h:72
cfn_hal_error_code_t(* unregister_command)(cfn_sal_utl_cli_t *driver, const char *name)
Definition cfn_sal_utl_cli.h:66
cfn_hal_api_base_t base
Definition cfn_sal_utl_cli.h:57
cfn_hal_error_code_t(* print_help)(cfn_sal_utl_cli_t *driver)
Definition cfn_sal_utl_cli.h:68
cfn_hal_error_code_t(* feed_char)(cfn_sal_utl_cli_t *driver, char c)
Definition cfn_sal_utl_cli.h:60
cfn_hal_error_code_t(* register_command)(cfn_sal_utl_cli_t *driver, const cfn_sal_utl_cli_cmd_t *cmd)
Definition cfn_sal_utl_cli.h:65
cfn_hal_error_code_t(* history_next)(cfn_sal_utl_cli_t *driver)
Definition cfn_sal_utl_cli.h:76
cfn_hal_error_code_t(* print_string)(cfn_sal_utl_cli_t *driver, const char *str)
Definition cfn_sal_utl_cli.h:61
cfn_hal_error_code_t(* set_prompt)(cfn_sal_utl_cli_t *driver, const char *prompt)
Definition cfn_sal_utl_cli.h:71
Definition cfn_sal_utl_cli.h:33
const char * name
Definition cfn_sal_utl_cli.h:34
const char * help
Definition cfn_sal_utl_cli.h:35
Definition cfn_sal_utl_cli.h:40
const char * welcome_msg
Definition cfn_sal_utl_cli.h:42
const char * prompt
Definition cfn_sal_utl_cli.h:41
void * custom
Definition cfn_sal_utl_cli.h:44
bool echo_enabled
Definition cfn_sal_utl_cli.h:43