+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"
+ ])
+])