xref: /PHP-7.4/sapi/cli/cli.h (revision 92ac598a)
1 /*
2   +----------------------------------------------------------------------+
3   | PHP Version 7                                                        |
4   +----------------------------------------------------------------------+
5   | Copyright (c) The PHP Group                                          |
6   +----------------------------------------------------------------------+
7   | This source file is subject to version 3.01 of the PHP license,      |
8   | that is bundled with this package in the file LICENSE, and is        |
9   | available through the world-wide-web at the following url:           |
10   | http://www.php.net/license/3_01.txt                                  |
11   | If you did not receive a copy of the PHP license and are unable to   |
12   | obtain it through the world-wide-web, please send a note to          |
13   | license@php.net so we can mail you a copy immediately.               |
14   +----------------------------------------------------------------------+
15   | Author: Johannes Schlueter <johannes@php.net>                        |
16   +----------------------------------------------------------------------+
17 */
18 
19 #ifndef CLI_H
20 #define CLI_H
21 
22 #ifdef PHP_WIN32
23 #   define PHP_CLI_API __declspec(dllexport)
24 #elif defined(__GNUC__) && __GNUC__ >= 4
25 #   define PHP_CLI_API __attribute__ ((visibility("default")))
26 #else
27 #   define PHP_CLI_API
28 #endif
29 
30 
31 extern PHP_CLI_API ssize_t sapi_cli_single_write(const char *str, size_t str_length);
32 
33 typedef struct  {
34 	size_t (*cli_shell_write)(const char *str, size_t str_length);
35 	size_t (*cli_shell_ub_write)(const char *str, size_t str_length);
36 	int (*cli_shell_run)(void);
37 } cli_shell_callbacks_t;
38 
39 extern PHP_CLI_API cli_shell_callbacks_t *php_cli_get_shell_callbacks();
40 
41 #endif /* CLI_H */
42