1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2010-2014 Intel Corporation. 3 * Copyright (c) 2009, Olivier MATZ <zer0@droids-corp.org> 4 * All rights reserved. 5 */ 6 7 #ifndef _CMDLINE_H_ 8 #define _CMDLINE_H_ 9 10 #include <rte_common.h> 11 #include <rte_compat.h> 12 13 #include <cmdline_rdline.h> 14 #include <cmdline_parse.h> 15 16 /** 17 * @file 18 * 19 * Command line API 20 */ 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 enum rdline_status { 27 RDLINE_INIT, 28 RDLINE_RUNNING, 29 RDLINE_EXITED 30 }; 31 32 struct cmdline; 33 34 struct cmdline *cmdline_new(cmdline_parse_ctx_t *ctx, const char *prompt, int s_in, int s_out); 35 void cmdline_set_prompt(struct cmdline *cl, const char *prompt); 36 void cmdline_free(struct cmdline *cl); 37 void cmdline_printf(const struct cmdline *cl, const char *fmt, ...) 38 __rte_format_printf(2, 3); 39 int cmdline_in(struct cmdline *cl, const char *buf, int size); 40 int cmdline_write_char(struct rdline *rdl, char c); 41 42 __rte_experimental 43 struct rdline * 44 cmdline_get_rdline(struct cmdline *cl); 45 46 /** 47 * This function is nonblocking equivalent of ``cmdline_interact()``. It polls 48 * *cl* for one character and interpret it. If return value is *RDLINE_EXITED* 49 * it mean that ``cmdline_quit()`` was invoked. 50 * 51 * @param cl 52 * The command line object. 53 * 54 * @return 55 * On success return object status - one of *enum rdline_status*. 56 * On error return negative value. 57 */ 58 int cmdline_poll(struct cmdline *cl); 59 60 void cmdline_interact(struct cmdline *cl); 61 void cmdline_quit(struct cmdline *cl); 62 63 #ifdef __cplusplus 64 } 65 #endif 66 67 #endif /* _CMDLINE_SOCKET_H_ */ 68