• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* ----------------------------------------------------------------------------
2  * Copyright (c) Huawei Technologies Co., Ltd. 2013-2020. All rights reserved.
3  * Description: System Console HeadFile
4  * Author: Huawei LiteOS Team
5  * Create: 2013-01-01
6  * Redistribution and use in source and binary forms, with or without modification,
7  * are permitted provided that the following conditions are met:
8  * 1. Redistributions of source code must retain the above copyright notice, this list of
9  * conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11  * of conditions and the following disclaimer in the documentation and/or other materials
12  * provided with the distribution.
13  * 3. Neither the name of the copyright holder nor the names of its contributors may be used
14  * to endorse or promote products derived from this software without specific prior written
15  * permission.
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
18  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
20  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  * --------------------------------------------------------------------------- */
28 
29 #ifndef _CONSOLE_H
30 #define _CONSOLE_H
31 
32 #include "los_config.h"
33 #ifdef LOSCFG_FS_VFS
34 #include "termios.h"
35 #ifdef LOSCFG_NET_TELNET
36 #include "telnet_dev.h"
37 #endif
38 #include "virtual_serial.h"
39 #include "los_ringbuf.h"
40 #endif
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif /* __cplusplus */
45 
46 /* Define two fixed console id for Console ID. */
47 #define CONSOLE_SERIAL 1
48 #define CONSOLE_TELNET 2
49 
50 #define STDIN  0
51 #define STDOUT 1
52 #define STDERR 2
53 
54 #define CONSOLE  "/dev/console"
55 #define CONSOLE_NAMELEN 16
56 
57 #define CONSOLE_CMD_RD_BLOCK_SERIAL    0x104
58 #define CONSOLE_CMD_RD_BLOCK_TELNET    101
59 #define CONSOLE_RD_BLOCK               1
60 #define CONSOLE_RD_NONBLOCK            0
61 #define CONSOLE_SHELL_KEY_EVENT        0x112
62 #define CONSOLE_SHELL_EXITED           0x400
63 #define CONSOLE_CONTROL_RIGHTS_CAPTURE 201
64 #define CONSOLE_CONTROL_RIGHTS_RELEASE 202
65 #define CONSOLE_CONTROL_CAPTURE_LINE   203
66 #define CONSOLE_CONTROL_CAPTURE_CHAR   204
67 #define CONSOLE_FIFO_SIZE              1024
68 #define CONSOLE_NUM                    2
69 
70 /**
71  * @ingroup console
72  * @brief Create a console device.
73  *
74  * @par Description:
75  * Create a console device specified by device name.
76  * @attention
77  * If a console device is already created, the same device cannot create again before
78  * it destroyed.
79  *
80  * @param deviceName    [IN] Charactor device name, can be #SERIAL or #TELNET
81  *
82  * @retval #-1          Initialize failed
83  * @retval #0           Initialize OK
84  * @par Dependency:
85  * <ul><li>console.h: the header file that contains the API declaration.</li></ul>
86  */
87 extern INT32 system_console_init(const CHAR *deviceName);
88 
89 /**
90  * @ingroup console
91  * @brief Destroy a console device.
92  *
93  * @par Description:
94  * Destroy a console device specified by device name. The device shall already created by
95  * #system_console_init before destroy.
96  *
97  * @param deviceName    [IN] Charactor device name, can be #SERIAL or #TELNET
98  *
99  * @retval #-1          Deinitialize failed
100  * @retval #0           Deinitialize OK
101  * @par Dependency:
102  * <ul><li>console.h: the header file that contains the API declaration.</li></ul>
103  */
104 extern INT32 system_console_deinit(const CHAR *deviceName);
105 
106 #ifdef __cplusplus
107 }
108 #endif /* __cplusplus */
109 
110 #endif /* _CONSOLE_H */
111