php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_extensions.c File Reference
#include "zend_extensions.h"
#include "zend_system_id.h"

Go to the source code of this file.

Data Structures

struct  _zend_extension_persist_data
 

Typedefs

typedef struct _zend_extension_persist_data zend_extension_persist_data
 

Functions

zend_result zend_load_extension (const char *path)
 
zend_result zend_load_extension_handle (DL_HANDLE handle, const char *path)
 
void zend_register_extension (zend_extension *new_extension, DL_HANDLE handle)
 
void zend_startup_extensions_mechanism (void)
 
void zend_startup_extensions (void)
 
void zend_shutdown_extensions (void)
 
void zend_extension_dtor (zend_extension *extension)
 
ZEND_API void zend_extension_dispatch_message (int message, void *arg)
 
ZEND_API int zend_get_resource_handle (const char *module_name)
 
ZEND_API int zend_get_op_array_extension_handle (const char *module_name)
 
ZEND_API int zend_get_op_array_extension_handles (const char *module_name, int handles)
 
ZEND_API int zend_get_internal_function_extension_handle (const char *module_name)
 
ZEND_API int zend_get_internal_function_extension_handles (const char *module_name, int handles)
 
ZEND_API size_t zend_internal_run_time_cache_reserved_size (void)
 
ZEND_API void zend_init_internal_run_time_cache (void)
 
ZEND_API void zend_reset_internal_run_time_cache (void)
 
ZEND_API zend_extensionzend_get_extension (const char *extension_name)
 
ZEND_API size_t zend_extensions_op_array_persist_calc (zend_op_array *op_array)
 
ZEND_API size_t zend_extensions_op_array_persist (zend_op_array *op_array, void *mem)
 

Variables

ZEND_API zend_llist zend_extensions
 
ZEND_API uint32_t zend_extension_flags = 0
 
ZEND_API int zend_op_array_extension_handles = 0
 
ZEND_API int zend_internal_function_extension_handles = 0
 

Typedef Documentation

◆ zend_extension_persist_data

Function Documentation

◆ zend_extension_dispatch_message()

ZEND_API void zend_extension_dispatch_message ( int message,
void * arg )

Definition at line 253 of file zend_extensions.c.

◆ zend_extension_dtor()

void zend_extension_dtor ( zend_extension * extension)

Definition at line 229 of file zend_extensions.c.

◆ zend_extensions_op_array_persist()

ZEND_API size_t zend_extensions_op_array_persist ( zend_op_array * op_array,
void * mem )

Definition at line 416 of file zend_extensions.c.

◆ zend_extensions_op_array_persist_calc()

ZEND_API size_t zend_extensions_op_array_persist_calc ( zend_op_array * op_array)

Definition at line 402 of file zend_extensions.c.

◆ zend_get_extension()

ZEND_API zend_extension * zend_get_extension ( const char * extension_name)

Definition at line 364 of file zend_extensions.c.

◆ zend_get_internal_function_extension_handle()

ZEND_API int zend_get_internal_function_extension_handle ( const char * module_name)

Definition at line 306 of file zend_extensions.c.

◆ zend_get_internal_function_extension_handles()

ZEND_API int zend_get_internal_function_extension_handles ( const char * module_name,
int handles )

Definition at line 313 of file zend_extensions.c.

◆ zend_get_op_array_extension_handle()

ZEND_API int zend_get_op_array_extension_handle ( const char * module_name)

The handle returned by this function can be used with ZEND_OP_ARRAY_EXTENSION(op_array, handle).

The extension slot has been available since PHP 7.4 on user functions and has been available since PHP 8.2 on internal functions.

Safety

The extension slot made available by calling this function is initialized on the first call made to the function in that request. If you need to initialize it before this point, call zend_init_func_run_time_cache.

The function cache slots are not available if the function is a trampoline, which can be checked with something like:

if (fbc->type == ZEND_USER_FUNCTION
    && !(fbc->op_array.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)
) {
    // Use ZEND_OP_ARRAY_EXTENSION somehow
}

Definition at line 290 of file zend_extensions.c.

◆ zend_get_op_array_extension_handles()

ZEND_API int zend_get_op_array_extension_handles ( const char * module_name,
int handles )

See zend_get_op_array_extension_handle for important usage information.

Definition at line 298 of file zend_extensions.c.

◆ zend_get_resource_handle()

ZEND_API int zend_get_resource_handle ( const char * module_name)

Definition at line 259 of file zend_extensions.c.

◆ zend_init_internal_run_time_cache()

ZEND_API void zend_init_internal_run_time_cache ( void )

Definition at line 325 of file zend_extensions.c.

◆ zend_internal_run_time_cache_reserved_size()

ZEND_API size_t zend_internal_run_time_cache_reserved_size ( void )

Definition at line 321 of file zend_extensions.c.

◆ zend_load_extension()

zend_result zend_load_extension ( const char * path)

Definition at line 29 of file zend_extensions.c.

◆ zend_load_extension_handle()

zend_result zend_load_extension_handle ( DL_HANDLE handle,
const char * path )

Definition at line 63 of file zend_extensions.c.

◆ zend_register_extension()

void zend_register_extension ( zend_extension * new_extension,
DL_HANDLE handle )

Definition at line 150 of file zend_extensions.c.

◆ zend_reset_internal_run_time_cache()

ZEND_API void zend_reset_internal_run_time_cache ( void )

Definition at line 358 of file zend_extensions.c.

◆ zend_shutdown_extensions()

void zend_shutdown_extensions ( void )

Definition at line 222 of file zend_extensions.c.

◆ zend_startup_extensions()

void zend_startup_extensions ( void )

Definition at line 216 of file zend_extensions.c.

◆ zend_startup_extensions_mechanism()

void zend_startup_extensions_mechanism ( void )

Definition at line 206 of file zend_extensions.c.

Variable Documentation

◆ zend_extension_flags

ZEND_API uint32_t zend_extension_flags = 0

Definition at line 24 of file zend_extensions.c.

◆ zend_extensions

ZEND_API zend_llist zend_extensions

Definition at line 23 of file zend_extensions.c.

◆ zend_internal_function_extension_handles

ZEND_API int zend_internal_function_extension_handles = 0

Definition at line 26 of file zend_extensions.c.

◆ zend_op_array_extension_handles

ZEND_API int zend_op_array_extension_handles = 0

Definition at line 25 of file zend_extensions.c.