1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2010-2014 Intel Corporation.
3 * Copyright (c) 2009, Olivier MATZ <[email protected]>
4 * All rights reserved.
5 */
6
7 #include <stdio.h>
8 #include <string.h>
9 #include <unistd.h>
10 #include <stdlib.h>
11 #include <stdarg.h>
12 #include <inttypes.h>
13 #include <fcntl.h>
14
15 #include "cmdline.h"
16 #include "cmdline_private.h"
17 #include "cmdline_socket.h"
18
19 #ifdef RTE_EXEC_ENV_WINDOWS
20 #define open _open
21 #endif
22
23 struct cmdline *
cmdline_file_new(cmdline_parse_ctx_t * ctx,const char * prompt,const char * path)24 cmdline_file_new(cmdline_parse_ctx_t *ctx, const char *prompt, const char *path)
25 {
26 int fd;
27
28 /* everything else is checked in cmdline_new() */
29 if (!path)
30 return NULL;
31
32 fd = open(path, O_RDONLY, 0);
33 if (fd < 0) {
34 dprintf("open() failed\n");
35 return NULL;
36 }
37 return cmdline_new(ctx, prompt, fd, -1);
38 }
39
40 struct cmdline *
cmdline_stdin_new(cmdline_parse_ctx_t * ctx,const char * prompt)41 cmdline_stdin_new(cmdline_parse_ctx_t *ctx, const char *prompt)
42 {
43 struct cmdline *cl;
44
45 cl = cmdline_new(ctx, prompt, 0, 1);
46
47 if (cl != NULL)
48 terminal_adjust(cl);
49
50 return cl;
51 }
52
53 void
cmdline_stdin_exit(struct cmdline * cl)54 cmdline_stdin_exit(struct cmdline *cl)
55 {
56 if (cl == NULL)
57 return;
58
59 terminal_restore(cl);
60 }
61