2019-06-25 11:12:58 +00:00
|
|
|
/* SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
* Copyright(c) 2010-2014 Intel Corporation.
|
2017-04-21 10:43:26 +00:00
|
|
|
* Copyright (c) 2009, Olivier MATZ <zer0@droids-corp.org>
|
|
|
|
* All rights reserved.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _CMDLINE_H_
|
|
|
|
#define _CMDLINE_H_
|
|
|
|
|
2021-02-05 08:48:47 +00:00
|
|
|
#ifndef RTE_EXEC_ENV_WINDOWS
|
2017-04-21 10:43:26 +00:00
|
|
|
#include <termios.h>
|
2021-02-05 08:48:47 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <rte_common.h>
|
|
|
|
#include <rte_compat.h>
|
|
|
|
|
2017-04-21 10:43:26 +00:00
|
|
|
#include <cmdline_rdline.h>
|
2018-05-15 09:49:22 +00:00
|
|
|
#include <cmdline_parse.h>
|
2017-04-21 10:43:26 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @file
|
|
|
|
*
|
|
|
|
* Command line API
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2021-02-05 08:48:47 +00:00
|
|
|
#ifndef RTE_EXEC_ENV_WINDOWS
|
|
|
|
|
2017-04-21 10:43:26 +00:00
|
|
|
struct cmdline {
|
|
|
|
int s_in;
|
|
|
|
int s_out;
|
|
|
|
cmdline_parse_ctx_t *ctx;
|
|
|
|
struct rdline rdl;
|
|
|
|
char prompt[RDLINE_PROMPT_SIZE];
|
|
|
|
struct termios oldterm;
|
|
|
|
};
|
|
|
|
|
2021-02-05 08:48:47 +00:00
|
|
|
#else
|
|
|
|
|
|
|
|
struct cmdline;
|
|
|
|
|
|
|
|
#endif /* RTE_EXEC_ENV_WINDOWS */
|
|
|
|
|
2017-04-21 10:43:26 +00:00
|
|
|
struct cmdline *cmdline_new(cmdline_parse_ctx_t *ctx, const char *prompt, int s_in, int s_out);
|
|
|
|
void cmdline_set_prompt(struct cmdline *cl, const char *prompt);
|
|
|
|
void cmdline_free(struct cmdline *cl);
|
|
|
|
void cmdline_printf(const struct cmdline *cl, const char *fmt, ...)
|
2021-02-05 08:48:47 +00:00
|
|
|
__rte_format_printf(2, 3);
|
2017-04-21 10:43:26 +00:00
|
|
|
int cmdline_in(struct cmdline *cl, const char *buf, int size);
|
|
|
|
int cmdline_write_char(struct rdline *rdl, char c);
|
|
|
|
|
2021-02-05 08:48:47 +00:00
|
|
|
__rte_experimental
|
|
|
|
struct rdline *
|
|
|
|
cmdline_get_rdline(struct cmdline *cl);
|
|
|
|
|
2017-04-21 10:43:26 +00:00
|
|
|
/**
|
|
|
|
* This function is nonblocking equivalent of ``cmdline_interact()``. It polls
|
|
|
|
* *cl* for one character and interpret it. If return value is *RDLINE_EXITED*
|
|
|
|
* it mean that ``cmdline_quit()`` was invoked.
|
|
|
|
*
|
|
|
|
* @param cl
|
|
|
|
* The command line object.
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
* On success return object status - one of *enum rdline_status*.
|
|
|
|
* On error return negative value.
|
|
|
|
*/
|
|
|
|
int cmdline_poll(struct cmdline *cl);
|
|
|
|
|
|
|
|
void cmdline_interact(struct cmdline *cl);
|
|
|
|
void cmdline_quit(struct cmdline *cl);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* _CMDLINE_SOCKET_H_ */
|