ethdev: support GRE optional fields
[dpdk.git] / lib / cmdline / cmdline.h
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 struct cmdline;
27
28 struct cmdline *cmdline_new(cmdline_parse_ctx_t *ctx, const char *prompt, int s_in, int s_out);
29 void cmdline_set_prompt(struct cmdline *cl, const char *prompt);
30 void cmdline_free(struct cmdline *cl);
31 void cmdline_printf(const struct cmdline *cl, const char *fmt, ...)
32         __rte_format_printf(2, 3);
33 int cmdline_in(struct cmdline *cl, const char *buf, int size);
34 int cmdline_write_char(struct rdline *rdl, char c);
35
36 __rte_experimental
37 struct rdline *
38 cmdline_get_rdline(struct cmdline *cl);
39
40 /**
41  * This function is nonblocking equivalent of ``cmdline_interact()``. It polls
42  * *cl* for one character and interpret it. If return value is *RDLINE_EXITED*
43  * it mean that ``cmdline_quit()`` was invoked.
44  *
45  * @param cl
46  *   The command line object.
47  *
48  * @return
49  *   On success return object status - one of *enum rdline_status*.
50  *   On error return negative value.
51  */
52 int cmdline_poll(struct cmdline *cl);
53
54 void cmdline_interact(struct cmdline *cl);
55 void cmdline_quit(struct cmdline *cl);
56
57 #ifdef __cplusplus
58 }
59 #endif
60
61 #endif /* _CMDLINE_SOCKET_H_ */