New upstream version 18.02
[deb_dpdk.git] / examples / quota_watermark / qwctl / qwctl.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2014 Intel Corporation
3  */
4
5 #include <fcntl.h>
6 #include <stdio.h>
7 #include <termios.h>
8 #include <unistd.h>
9 #include <sys/mman.h>
10
11 #include <rte_eal.h>
12
13 #include <rte_log.h>
14 #include <rte_memzone.h>
15
16 #include <cmdline_rdline.h>
17 #include <cmdline_parse.h>
18 #include <cmdline_socket.h>
19 #include <cmdline.h>
20
21
22 #include "qwctl.h"
23 #include "commands.h"
24 #include "../include/conf.h"
25
26
27 int *quota;
28 unsigned int *low_watermark;
29 unsigned int *high_watermark;
30
31
32 static void
33 setup_shared_variables(void)
34 {
35         const struct rte_memzone *qw_memzone;
36
37         qw_memzone = rte_memzone_lookup(QUOTA_WATERMARK_MEMZONE_NAME);
38         if (qw_memzone == NULL)
39                 rte_exit(EXIT_FAILURE, "Couldn't find memzone\n");
40
41         quota = qw_memzone->addr;
42         low_watermark = (unsigned int *) qw_memzone->addr + 1;
43         high_watermark = (unsigned int *) qw_memzone->addr + 2;
44 }
45
46 int main(int argc, char **argv)
47 {
48         int ret;
49         struct cmdline *cl;
50
51         rte_log_set_global_level(RTE_LOG_INFO);
52
53         ret = rte_eal_init(argc, argv);
54         if (ret < 0)
55                 rte_exit(EXIT_FAILURE, "Cannot initialize EAL\n");
56
57         setup_shared_variables();
58
59         cl = cmdline_stdin_new(qwctl_ctx, "qwctl> ");
60         if (cl == NULL)
61                 rte_exit(EXIT_FAILURE, "Cannot create cmdline instance\n");
62
63         cmdline_interact(cl);
64         cmdline_stdin_exit(cl);
65
66         return 0;
67 }