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