X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fengine.h;h=d7891a2dd4f89913ab61895b14c257fec6e8c754;hp=83f64f14b6507b0519a473c1183354cc98b30629;hb=2f5af21b263403997e154658635d6b6e6eaab453;hpb=8d2ff6a3b85203ea5f8398f846a7764fd0e1d126 diff --git a/src/engine.h b/src/engine.h index 83f64f1..d7891a2 100644 --- a/src/engine.h +++ b/src/engine.h @@ -1,33 +1,11 @@ #ifndef _PSI_ENGINE_H #define _PSI_ENGINE_H -size_t psi_t_alignment(token_t t); -size_t psi_t_size(token_t t); - -static inline size_t psi_align(size_t s, size_t a) { - return ((s - 1) | (a - 1)) + 1; -} - -static inline size_t psi_offset_padding(size_t diff, size_t alignment) { - if (diff && diff <= psi_align(diff, alignment)) { - diff = 0; - } - - return diff; -} - -static inline void psi_do_set(zval *return_value, set_value *set) -{ - decl_arg *set_arg = set->vars->vars[0]->arg; - - zval_dtor(return_value); - set->func->handler(return_value, set, set_arg->let ? set_arg->let->ptr : set_arg->ptr); -} - int psi_internal_type(impl_type *type); zend_internal_arg_info *psi_internal_arginfo(impl *impl); size_t psi_num_min_args(impl *impl); -void psi_call(zend_execute_data *execute_data, zval *return_value, impl *impl); +ZEND_RESULT_CODE psi_call(zend_execute_data *execute_data, zval *return_value, impl *impl); +ZEND_RESULT_CODE psi_callback(let_callback *cb, void *retval, unsigned argc, void **argv); #endif