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