xref: /dpdk/lib/cmdline/cmdline_socket.c (revision daa02b5cddbb8e11b31d41e2bf7bb1ae64dcae2f)
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 #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 struct cmdline *
20 cmdline_file_new(cmdline_parse_ctx_t *ctx, const char *prompt, const char *path)
21 {
22 	int fd;
23 
24 	/* everything else is checked in cmdline_new() */
25 	if (!path)
26 		return NULL;
27 
28 	fd = open(path, O_RDONLY, 0);
29 	if (fd < 0) {
30 		dprintf("open() failed\n");
31 		return NULL;
32 	}
33 	return cmdline_new(ctx, prompt, fd, -1);
34 }
35 
36 struct cmdline *
37 cmdline_stdin_new(cmdline_parse_ctx_t *ctx, const char *prompt)
38 {
39 	struct cmdline *cl;
40 
41 	cl = cmdline_new(ctx, prompt, 0, 1);
42 
43 	if (cl != NULL)
44 		terminal_adjust(cl);
45 
46 	return cl;
47 }
48 
49 void
50 cmdline_stdin_exit(struct cmdline *cl)
51 {
52 	if (cl == NULL)
53 		return;
54 
55 	terminal_restore(cl);
56 	cmdline_free(cl);
57 }
58