X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=m4%2Fpsi%2Fpsi_macro.m4;fp=m4%2Fpsi%2Fpsi_macro.m4;h=0000000000000000000000000000000000000000;hp=9ff8fd9e1a399e42d1b3254686c93cb7004bfae1;hb=4174d499fe105c6d8bd76d265e28e07f0db08b55;hpb=f090ccb51eb2ecc92a6cca8325c77d688cbbb61d diff --git a/m4/psi/psi_macro.m4 b/m4/psi/psi_macro.m4 deleted file mode 100644 index 9ff8fd9..0000000 --- a/m4/psi/psi_macro.m4 +++ /dev/null @@ -1,70 +0,0 @@ -# psi_add_macro(macro) -# Add a pre-defined macro function to $PSI_MACROS_H. -psi_add_macro() { - PSI_MACROS="$PSI_MACROS -$1" -} - -dnl PSI_MACRO(macro, decl args, action-if-true) -AC_DEFUN(PSI_MACRO, [ - AC_CHECK_DECL(PSI_VAR_NAME($1)$2, [ - macro_type="PSI_VAR_TYPE($1)" - macro_name="PSI_VAR_NAME($1)" - PSI_TYPE_INDIRECTION([$1],, macro_pointer_level, macro_array_size) - if test "$macro_array_size" -gt 0; then - macro_array="@<:@$macro_array_size@:>@" - macro_return="$macro_type*" - else - macro_array="" - macro_return="$macro_type" - fi - m4_case([$2], - [(void)], [ - macro_decl="(void)" - macro_call="()" - macro_action=call - ], - [()], [ - macro_decl="()" - macro_call="()" - macro_action=call - ], - [], [ - macro_decl="()" - macro_call="" - macro_action=get - ], - [ - macro_decl="$2" - macro_call="(m4_map_args_sep([PSI_VAR_NAME(], [)], [, ], m4_bregexp($2, [(\(.*\))], [\1])))" - macro_action=call - ] - ) - ifelse(PSI_VAR_TYPE($1), [void], [ - macro_body="$macro_name$macro_call;" - ], [ - macro_body="return $macro_name$macro_call;" - ]) - $3 - psi_add_macro "$macro_return _psi_${macro_action}_$macro_name$macro_decl { $macro_body }" - PSI_REDIR($macro_name, _psi_${macro_action}_$macro_name) - ], [], PSI_INCLUDES) -]) - -dnl PSI_EXTVAR(type var) -AC_DEFUN(PSI_EXTVAR, [ - PSI_MACRO($1, [], [ - dnl just a getter - PSI_DECL_ARGS($1) - psi_add_decl "$psi_decl_args" - dnl explicit getter - PSI_REDIR([${macro_name}_get], [_psi_get_$macro_name]) - PSI_DECL_ARGS(PSI_VAR_TYPE_RETURN([$1]) PSI_VAR_NAME([$1])_get) - psi_add_decl "$psi_decl_args" - dnl setter - psi_add_macro "void _psi_set_${macro_name}($macro_type value$macro_array) { memcpy(&$macro_name, &value, sizeof($macro_type$macro_array)); }" - PSI_REDIR([${macro_name}_set], [_psi_set_${macro_name}]) - PSI_DECL_ARGS([void ]PSI_VAR_NAME([$1])[_set], [($1)]) - psi_add_decl "$psi_decl_args" - ]) -])