/* +----------------------------------------------------------------------+ | Copyright © The PHP Group and Contributors. | +----------------------------------------------------------------------+ | This source file is subject to the Modified BSD License that is | | bundled with this package in the file LICENSE, and is available | | through the World Wide Web at . | | | | SPDX-License-Identifier: BSD-3-Clause | +----------------------------------------------------------------------+ | Author: Johannes Schlueter | +----------------------------------------------------------------------+ */ #ifndef CLI_H #define CLI_H #ifdef PHP_WIN32 # define PHP_CLI_API __declspec(dllexport) #elif defined(__GNUC__) && __GNUC__ >= 4 # define PHP_CLI_API __attribute__ ((visibility("default"))) #else # define PHP_CLI_API #endif extern PHP_CLI_API ssize_t sapi_cli_single_write(const char *str, size_t str_length); typedef struct { size_t (*cli_shell_write)(const char *str, size_t str_length); size_t (*cli_shell_ub_write)(const char *str, size_t str_length); int (*cli_shell_run)(void); } cli_shell_callbacks_t; extern PHP_CLI_API cli_shell_callbacks_t *php_cli_get_shell_callbacks(void); typedef enum php_cli_mode { PHP_CLI_MODE_STANDARD = 1, PHP_CLI_MODE_HIGHLIGHT = 2, PHP_CLI_MODE_LINT = 4, PHP_CLI_MODE_STRIP = 5, PHP_CLI_MODE_CLI_DIRECT = 6, PHP_CLI_MODE_PROCESS_STDIN = 7, PHP_CLI_MODE_REFLECTION_FUNCTION = 8, PHP_CLI_MODE_REFLECTION_CLASS = 9, PHP_CLI_MODE_REFLECTION_EXTENSION = 10, PHP_CLI_MODE_REFLECTION_EXT_INFO = 11, PHP_CLI_MODE_REFLECTION_ZEND_EXTENSION = 12, PHP_CLI_MODE_SHOW_INI_CONFIG = 13, PHP_CLI_MODE_SHOW_INI_DIFF = 14, } php_cli_mode; typedef struct php_cli_server_context { php_cli_mode mode; } php_cli_server_context; #endif /* CLI_H */