intern.h


DEFINITIONS

This source file includes following functions.


   1  /**********************************************************************
   2  
   3    intern.h -
   4  
   5    $Author: aamine $
   6    $Date: 2002/09/05 20:00:52 $
   7    created at: Thu Jun 10 14:22:17 JST 1993
   8  
   9    Copyright (C) 1993-2002 Yukihiro Matsumoto
  10    Copyright (C) 2000  Network Applied Communication Laboratory, Inc.
  11    Copyright (C) 2000  Information-technology Promotion Agency, Japan
  12  
  13  **********************************************************************/
  14  
  15  /* 
  16   * Functions and variables that are used by more than one source file of
  17   * the kernel.
  18   */
  19  
  20  /* array.c */
  21  void rb_mem_clear _((register VALUE*, register long));
  22  VALUE rb_assoc_new _((VALUE, VALUE));
  23  VALUE rb_ary_new _((void));
  24  VALUE rb_ary_new2 _((long));
  25  VALUE rb_ary_new3 __((long,...));
  26  VALUE rb_ary_new4 _((long, const VALUE *));
  27  VALUE rb_ary_freeze _((VALUE));
  28  VALUE rb_ary_aref _((int, VALUE*, VALUE));
  29  void rb_ary_store _((VALUE, long, VALUE));
  30  VALUE rb_ary_dup _((VALUE));
  31  VALUE rb_ary_to_ary _((VALUE));
  32  VALUE rb_ary_to_s _((VALUE));
  33  VALUE rb_ary_push _((VALUE, VALUE));
  34  VALUE rb_ary_pop _((VALUE));
  35  VALUE rb_ary_shift _((VALUE));
  36  VALUE rb_ary_unshift _((VALUE, VALUE));
  37  VALUE rb_ary_entry _((VALUE, long));
  38  VALUE rb_ary_each _((VALUE));
  39  VALUE rb_ary_join _((VALUE, VALUE));
  40  VALUE rb_ary_print_on _((VALUE, VALUE));
  41  VALUE rb_ary_reverse _((VALUE));
  42  VALUE rb_ary_sort _((VALUE));
  43  int rb_cmpint _((VALUE));
  44  VALUE rb_ary_sort_bang _((VALUE));
  45  VALUE rb_ary_delete _((VALUE, VALUE));
  46  VALUE rb_ary_delete_at _((VALUE, long));
  47  VALUE rb_ary_clear _((VALUE));
  48  VALUE rb_ary_plus _((VALUE, VALUE));
  49  VALUE rb_ary_concat _((VALUE, VALUE));
  50  VALUE rb_ary_assoc _((VALUE, VALUE));
  51  VALUE rb_ary_rassoc _((VALUE, VALUE));
  52  VALUE rb_ary_includes _((VALUE, VALUE));
  53  VALUE rb_ary_cmp _((VALUE, VALUE));
  54  VALUE rb_protect_inspect _((VALUE(*)(ANYARGS),VALUE,VALUE));
  55  VALUE rb_inspecting_p _((VALUE));
  56  /* bignum.c */
  57  VALUE rb_big_clone _((VALUE));
  58  void rb_big_2comp _((VALUE));
  59  VALUE rb_big_norm _((VALUE));
  60  VALUE rb_uint2big _((unsigned long));
  61  VALUE rb_int2big _((long));
  62  VALUE rb_uint2inum _((unsigned long));
  63  VALUE rb_int2inum _((long));
  64  VALUE rb_cstr_to_inum _((const char*, int, int));
  65  VALUE rb_str_to_inum _((VALUE, int, int));
  66  VALUE rb_cstr2inum _((const char*, int));
  67  VALUE rb_str2inum _((VALUE, int));
  68  VALUE rb_big2str _((VALUE, int));
  69  long rb_big2long _((VALUE));
  70  #define rb_big2int(x) rb_big2long(x)
  71  unsigned long rb_big2ulong _((VALUE));
  72  #define rb_big2uint(x) rb_big2ulong(x)
  73  #if HAVE_LONG_LONG
  74  VALUE rb_ll2inum _((LONG_LONG));
  75  VALUE rb_ull2inum _((unsigned LONG_LONG));
  76  LONG_LONG rb_big2ll _((VALUE));
  77  unsigned LONG_LONG rb_big2ull _((VALUE));
  78  #endif  /* HAVE_LONG_LONG */
  79  void rb_quad_pack _((char*,VALUE));
  80  VALUE rb_quad_unpack _((const char*,int));
  81  VALUE rb_dbl2big _((double));
  82  double rb_big2dbl _((VALUE));
  83  VALUE rb_big_plus _((VALUE, VALUE));
  84  VALUE rb_big_minus _((VALUE, VALUE));
  85  VALUE rb_big_mul _((VALUE, VALUE));
  86  VALUE rb_big_divmod _((VALUE, VALUE));
  87  VALUE rb_big_pow _((VALUE, VALUE));
  88  VALUE rb_big_and _((VALUE, VALUE));
  89  VALUE rb_big_or _((VALUE, VALUE));
  90  VALUE rb_big_xor _((VALUE, VALUE));
  91  VALUE rb_big_lshift _((VALUE, VALUE));
  92  VALUE rb_big_rand _((VALUE, double*));
  93  /* class.c */
  94  VALUE rb_class_boot _((VALUE));
  95  VALUE rb_class_new _((VALUE));
  96  VALUE rb_mod_clone _((VALUE));
  97  VALUE rb_mod_dup _((VALUE));
  98  VALUE rb_singleton_class_clone _((VALUE));
  99  void rb_singleton_class_attached _((VALUE,VALUE));
 100  VALUE rb_make_metaclass _((VALUE, VALUE));
 101  VALUE rb_class_inherited _((VALUE, VALUE));
 102  VALUE rb_define_class_id _((ID, VALUE));
 103  VALUE rb_module_new _((void));
 104  VALUE rb_define_module_id _((ID));
 105  VALUE rb_mod_included_modules _((VALUE));
 106  VALUE rb_mod_include_p _((VALUE, VALUE));
 107  VALUE rb_mod_ancestors _((VALUE));
 108  VALUE rb_class_instance_methods _((int, VALUE*, VALUE));
 109  VALUE rb_class_protected_instance_methods _((int, VALUE*, VALUE));
 110  VALUE rb_class_private_instance_methods _((int, VALUE*, VALUE));
 111  VALUE rb_obj_singleton_methods _((int, VALUE*, VALUE));
 112  void rb_define_method_id _((VALUE, ID, VALUE (*)(ANYARGS), int));
 113  void rb_frozen_class_p _((VALUE));
 114  void rb_undef _((VALUE, ID));
 115  void rb_define_protected_method _((VALUE, const char*, VALUE (*)(ANYARGS), int));
 116  void rb_define_private_method _((VALUE, const char*, VALUE (*)(ANYARGS), int));
 117  void rb_define_singleton_method _((VALUE, const char*, VALUE(*)(ANYARGS), int));
 118  void rb_define_private_method _((VALUE, const char*, VALUE(*)(ANYARGS), int));
 119  VALUE rb_singleton_class _((VALUE));
 120  /* enum.c */
 121  /* error.c */
 122  EXTERN int ruby_nerrs;
 123  VALUE rb_exc_new _((VALUE, const char*, long));
 124  VALUE rb_exc_new2 _((VALUE, const char*));
 125  VALUE rb_exc_new3 _((VALUE, VALUE));
 126  NORETURN(void rb_loaderror __((const char*, ...)));
 127  NORETURN(void rb_name_error __((ID, const char*, ...)));
 128  NORETURN(void rb_invalid_str _((const char*, const char*)));
 129  void rb_compile_error __((const char*, ...));
 130  void rb_compile_error_append __((const char*, ...));
 131  NORETURN(void rb_load_fail _((char*)));
 132  NORETURN(void rb_error_frozen _((char*)));
 133  void rb_check_frozen _((VALUE));
 134  /* eval.c */
 135  EXTERN struct RNode *ruby_current_node;
 136  void ruby_set_current_source _((void));
 137  NORETURN(void rb_exc_raise _((VALUE)));
 138  NORETURN(void rb_exc_fatal _((VALUE)));
 139  void rb_remove_method _((VALUE, const char*));
 140  void rb_disable_super _((VALUE, const char*));
 141  void rb_enable_super _((VALUE, const char*));
 142  void rb_clear_cache _((void));
 143  void rb_alias _((VALUE, ID, ID));
 144  void rb_attr _((VALUE,ID,int,int,int));
 145  int rb_method_boundp _((VALUE, ID, int));
 146  VALUE rb_dvar_defined _((ID));
 147  VALUE rb_dvar_curr _((ID));
 148  VALUE rb_dvar_ref _((ID));
 149  void rb_dvar_asgn _((ID, VALUE));
 150  void rb_dvar_push _((ID, VALUE));
 151  VALUE *rb_svar _((int));
 152  VALUE rb_eval_cmd _((VALUE, VALUE, int));
 153  int rb_respond_to _((VALUE, ID));
 154  void rb_interrupt _((void));
 155  VALUE rb_apply _((VALUE, ID, VALUE));
 156  void rb_backtrace _((void));
 157  ID rb_frame_last_func _((void));
 158  VALUE rb_obj_instance_eval _((int, VALUE*, VALUE));
 159  VALUE rb_mod_module_eval _((int, VALUE*, VALUE));
 160  void rb_load _((VALUE, int));
 161  void rb_load_protect _((VALUE, int, int*));
 162  NORETURN(void rb_jump_tag _((int)));
 163  int rb_provided _((const char*));
 164  void rb_provide _((const char*));
 165  VALUE rb_f_require _((VALUE, VALUE));
 166  void rb_obj_call_init _((VALUE, int, VALUE*));
 167  VALUE rb_class_new_instance _((int, VALUE*, VALUE));
 168  VALUE rb_f_lambda _((void));
 169  VALUE rb_proc_new _((VALUE (*)(ANYARGS/* VALUE yieldarg[, VALUE procarg] */), VALUE));
 170  VALUE rb_protect _((VALUE (*)(VALUE), VALUE, int*));
 171  void rb_set_end_proc _((void (*)(VALUE), VALUE));
 172  void rb_mark_end_proc _((void));
 173  void rb_exec_end_proc _((void));
 174  void ruby_finalize _((void));
 175  void ruby_stop _((int));
 176  void rb_gc_mark_threads _((void));
 177  void rb_thread_start_timer _((void));
 178  void rb_thread_stop_timer _((void));
 179  void rb_thread_schedule _((void));
 180  void rb_thread_wait_fd _((int));
 181  int rb_thread_fd_writable _((int));
 182  void rb_thread_fd_close _((int));
 183  int rb_thread_alone _((void));
 184  void rb_thread_polling _((void));
 185  void rb_thread_sleep _((int));
 186  void rb_thread_sleep_forever _((void));
 187  VALUE rb_thread_stop _((void));
 188  VALUE rb_thread_wakeup _((VALUE));
 189  VALUE rb_thread_run _((VALUE));
 190  VALUE rb_thread_create _((VALUE (*)(ANYARGS), void*));
 191  void rb_thread_interrupt _((void));
 192  void rb_thread_trap_eval _((VALUE, int));
 193  void rb_thread_signal_raise _((char*));
 194  int rb_thread_select(ANYARGS);
 195  void rb_thread_wait_for(ANYARGS);
 196  VALUE rb_thread_current _((void));
 197  VALUE rb_thread_main _((void));
 198  VALUE rb_thread_local_aref _((VALUE, ID));
 199  VALUE rb_thread_local_aset _((VALUE, ID, VALUE));
 200  void rb_thread_atfork _((void));
 201  /* file.c */
 202  int eaccess _((const char*, int));
 203  VALUE rb_file_s_expand_path _((int, VALUE *));
 204  void rb_file_const _((const char*, VALUE));
 205  int rb_find_file_ext _((VALUE*, const char* const*));
 206  VALUE rb_find_file _((VALUE));
 207  /* gc.c */
 208  NORETURN(void rb_memerror __((void)));
 209  int ruby_stack_check _((void));
 210  int ruby_stack_length _((VALUE**));
 211  char *rb_source_filename _((const char*));
 212  void rb_gc_mark_locations _((VALUE*, VALUE*));
 213  void rb_mark_tbl _((struct st_table*));
 214  void rb_mark_hash _((struct st_table*));
 215  void rb_gc_mark_maybe _((VALUE));
 216  void rb_gc_mark _((VALUE));
 217  void rb_gc_force_recycle _((VALUE));
 218  void rb_gc _((void));
 219  void rb_gc_call_finalizer_at_exit _((void));
 220  VALUE rb_gc_enable _((void));
 221  VALUE rb_gc_disable _((void));
 222  VALUE rb_gc_start _((void));
 223  /* hash.c */
 224  VALUE rb_hash _((VALUE));
 225  VALUE rb_hash_new _((void));
 226  VALUE rb_hash_freeze _((VALUE));
 227  VALUE rb_hash_aref _((VALUE, VALUE));
 228  VALUE rb_hash_aset _((VALUE, VALUE, VALUE));
 229  VALUE rb_hash_delete_if _((VALUE));
 230  VALUE rb_hash_delete _((VALUE,VALUE));
 231  int rb_path_check _((char*));
 232  int rb_env_path_tainted _((void));
 233  /* io.c */
 234  EXTERN VALUE rb_fs;
 235  EXTERN VALUE rb_output_fs;
 236  EXTERN VALUE rb_rs;
 237  EXTERN VALUE rb_default_rs;
 238  EXTERN VALUE rb_output_rs;
 239  VALUE rb_io_write _((VALUE, VALUE));
 240  VALUE rb_io_gets _((VALUE));
 241  VALUE rb_io_getc _((VALUE));
 242  VALUE rb_io_ungetc _((VALUE, VALUE));
 243  VALUE rb_io_close _((VALUE));
 244  VALUE rb_io_eof _((VALUE));
 245  VALUE rb_io_binmode _((VALUE));
 246  VALUE rb_io_addstr _((VALUE, VALUE));
 247  VALUE rb_io_printf _((int, VALUE*, VALUE));
 248  VALUE rb_io_print _((int, VALUE*, VALUE));
 249  VALUE rb_io_puts _((int, VALUE*, VALUE));
 250  VALUE rb_file_open _((const char*, const char*));
 251  VALUE rb_gets _((void));
 252  /* marshal.c */
 253  VALUE rb_marshal_dump _((VALUE, VALUE));
 254  VALUE rb_marshal_load _((VALUE));
 255  /* numeric.c */
 256  void rb_num_zerodiv _((void));
 257  VALUE rb_num_coerce_bin _((VALUE, VALUE));
 258  VALUE rb_float_new _((double));
 259  VALUE rb_num2fix _((VALUE));
 260  VALUE rb_fix2str _((VALUE, int));
 261  VALUE rb_dbl_cmp _((double, double));
 262  /* object.c */
 263  int rb_eql _((VALUE, VALUE));
 264  VALUE rb_any_to_s _((VALUE));
 265  VALUE rb_inspect _((VALUE));
 266  VALUE rb_obj_is_instance_of _((VALUE, VALUE));
 267  VALUE rb_obj_is_kind_of _((VALUE, VALUE));
 268  VALUE rb_obj_alloc _((VALUE));
 269  VALUE rb_obj_clone _((VALUE));
 270  VALUE rb_obj_dup _((VALUE));
 271  VALUE rb_obj_taint _((VALUE));
 272  VALUE rb_obj_tainted _((VALUE));
 273  VALUE rb_obj_untaint _((VALUE));
 274  VALUE rb_obj_freeze _((VALUE));
 275  VALUE rb_obj_id _((VALUE));
 276  VALUE rb_obj_class _((VALUE));
 277  VALUE rb_class_real _((VALUE));
 278  VALUE rb_convert_type _((VALUE,int,const char*,const char*));
 279  VALUE rb_check_convert_type _((VALUE,int,const char*,const char*));
 280  VALUE rb_to_int _((VALUE));
 281  VALUE rb_Integer _((VALUE));
 282  VALUE rb_Float _((VALUE));
 283  VALUE rb_String _((VALUE));
 284  VALUE rb_Array _((VALUE));
 285  double rb_cstr_to_dbl _((const char*, int));
 286  double rb_str_to_dbl _((VALUE, int));
 287  /* parse.y */
 288  EXTERN int   ruby_sourceline;
 289  EXTERN char *ruby_sourcefile;
 290  int yyparse _((void));
 291  ID rb_id_attrset _((ID));
 292  void rb_parser_append_print _((void));
 293  void rb_parser_while_loop _((int, int));
 294  int ruby_parser_stack_on_heap _((void));
 295  void rb_gc_mark_parser _((void));
 296  int rb_is_const_id _((ID));
 297  int rb_is_instance_id _((ID));
 298  int rb_is_class_id _((ID));
 299  int rb_is_local_id _((ID));
 300  VALUE rb_backref_get _((void));
 301  void rb_backref_set _((VALUE));
 302  VALUE rb_lastline_get _((void));
 303  void rb_lastline_set _((VALUE));
 304  VALUE rb_sym_all_symbols _((void));
 305  /* process.c */
 306  int rb_proc_exec _((const char*));
 307  VALUE rb_f_exec _((int,VALUE*));
 308  int rb_waitpid _((int,int*,int));
 309  void rb_syswait _((int));
 310  VALUE rb_proc_times _((VALUE));
 311  /* range.c */
 312  VALUE rb_range_new _((VALUE, VALUE, int));
 313  VALUE rb_range_beg_len _((VALUE, long*, long*, long, int));
 314  VALUE rb_length_by_each _((VALUE));
 315  /* re.c */
 316  int rb_memcmp _((char*,char*,long));
 317  int rb_memcicmp _((char*,char*,long));
 318  VALUE rb_reg_nth_defined _((int, VALUE));
 319  VALUE rb_reg_nth_match _((int, VALUE));
 320  VALUE rb_reg_last_match _((VALUE));
 321  VALUE rb_reg_match_pre _((VALUE));
 322  VALUE rb_reg_match_post _((VALUE));
 323  VALUE rb_reg_match_last _((VALUE));
 324  VALUE rb_reg_new _((const char*, long, int));
 325  VALUE rb_reg_match _((VALUE, VALUE));
 326  VALUE rb_reg_match2 _((VALUE));
 327  int rb_reg_options _((VALUE));
 328  void rb_set_kcode _((const char*));
 329  const char* rb_get_kcode _((void));
 330  /* ruby.c */
 331  EXTERN VALUE rb_argv;
 332  EXTERN VALUE rb_argv0;
 333  void rb_load_file _((char*));
 334  void ruby_script _((char*));
 335  void ruby_prog_init _((void));
 336  void ruby_set_argv _((int, char**));
 337  void ruby_process_options _((int, char**));
 338  void ruby_load_script _((void));
 339  void ruby_init_loadpath _((void));
 340  void ruby_incpush _((const char*));
 341  /* signal.c */
 342  VALUE rb_f_kill _((int, VALUE*));
 343  void rb_gc_mark_trap_list _((void));
 344  #ifdef POSIX_SIGNAL
 345  #define posix_signal ruby_posix_signal
 346  void posix_signal _((int, RETSIGTYPE (*)(int)));
 347  #endif
 348  void rb_trap_exit _((void));
 349  void rb_trap_exec _((void));
 350  /* sprintf.c */
 351  VALUE rb_f_sprintf _((int, VALUE*));
 352  /* string.c */
 353  VALUE rb_str_new _((const char*, long));
 354  VALUE rb_str_new2 _((const char*));
 355  VALUE rb_str_new3 _((VALUE));
 356  VALUE rb_str_new4 _((VALUE));
 357  VALUE rb_str_new5 _((VALUE, const char*, long));
 358  VALUE rb_tainted_str_new _((const char*, long));
 359  VALUE rb_tainted_str_new2 _((const char*));
 360  VALUE rb_str_buf_new _((long));
 361  VALUE rb_str_buf_new2 _((const char*));
 362  VALUE rb_str_buf_append _((VALUE, VALUE));
 363  VALUE rb_str_buf_cat _((VALUE, const char*, long));
 364  VALUE rb_str_buf_cat2 _((VALUE, const char*));
 365  VALUE rb_obj_as_string _((VALUE));
 366  VALUE rb_str_dup _((VALUE));
 367  VALUE rb_str_dup_frozen _((VALUE));
 368  VALUE rb_str_plus _((VALUE, VALUE));
 369  VALUE rb_str_times _((VALUE, VALUE));
 370  VALUE rb_str_substr _((VALUE, long, long));
 371  void rb_str_modify _((VALUE));
 372  VALUE rb_str_freeze _((VALUE));
 373  VALUE rb_str_resize _((VALUE, long));
 374  VALUE rb_str_cat _((VALUE, const char*, long));
 375  VALUE rb_str_cat2 _((VALUE, const char*));
 376  VALUE rb_str_append _((VALUE, VALUE));
 377  VALUE rb_str_concat _((VALUE, VALUE));
 378  int rb_str_hash _((VALUE));
 379  int rb_str_cmp _((VALUE, VALUE));
 380  VALUE rb_str_upto _((VALUE, VALUE, int));
 381  void rb_str_update _((VALUE, long, long, VALUE));
 382  VALUE rb_str_inspect _((VALUE));
 383  VALUE rb_str_split _((VALUE, const char*));
 384  void rb_str_associate _((VALUE, VALUE));
 385  VALUE rb_str_associated _((VALUE));
 386  void rb_str_setter _((VALUE, ID, VALUE*));
 387  /* struct.c */
 388  VALUE rb_struct_new __((VALUE, ...));
 389  VALUE rb_struct_define __((const char*, ...));
 390  VALUE rb_struct_alloc _((VALUE, VALUE));
 391  VALUE rb_struct_aref _((VALUE, VALUE));
 392  VALUE rb_struct_aset _((VALUE, VALUE, VALUE));
 393  VALUE rb_struct_getmember _((VALUE, ID));
 394  VALUE rb_struct_iv_get _((VALUE, char*));
 395  /* time.c */
 396  VALUE rb_time_new(ANYARGS);
 397  /* variable.c */
 398  VALUE rb_mod_name _((VALUE));
 399  VALUE rb_class_path _((VALUE));
 400  void rb_set_class_path _((VALUE, VALUE, const char*));
 401  VALUE rb_path2class _((const char*));
 402  void rb_name_class _((VALUE, ID));
 403  void rb_autoload _((const char*, const char*));
 404  VALUE rb_f_autoload _((VALUE, VALUE, VALUE));
 405  void rb_gc_mark_global_tbl _((void));
 406  VALUE rb_f_trace_var _((int, VALUE*));
 407  VALUE rb_f_untrace_var _((int, VALUE*));
 408  VALUE rb_f_global_variables _((void));
 409  void rb_alias_variable _((ID, ID));
 410  struct st_table* rb_generic_ivar_table _((VALUE));
 411  void rb_copy_generic_ivar _((VALUE,VALUE));
 412  void rb_mark_generic_ivar _((VALUE));
 413  void rb_mark_generic_ivar_tbl _((void));
 414  void rb_free_generic_ivar _((VALUE));
 415  VALUE rb_ivar_get _((VALUE, ID));
 416  VALUE rb_ivar_set _((VALUE, ID, VALUE));
 417  VALUE rb_ivar_defined _((VALUE, ID));
 418  VALUE rb_iv_set _((VALUE, const char*, VALUE));
 419  VALUE rb_iv_get _((VALUE, const char*));
 420  VALUE rb_obj_instance_variables _((VALUE));
 421  VALUE rb_obj_remove_instance_variable _((VALUE, VALUE));
 422  void *rb_mod_const_at _((VALUE, void*));
 423  void *rb_mod_const_of _((VALUE, void*));
 424  VALUE rb_const_list _((void*));
 425  VALUE rb_mod_constants _((VALUE));
 426  VALUE rb_mod_remove_const _((VALUE, VALUE));
 427  int rb_const_defined_at _((VALUE, ID));
 428  int rb_autoload_defined _((ID));
 429  int rb_const_defined _((VALUE, ID));
 430  VALUE rb_const_get _((VALUE, ID));
 431  VALUE rb_const_get_at _((VALUE, ID));
 432  void rb_const_set _((VALUE, ID, VALUE));
 433  void rb_const_assign _((VALUE, ID, VALUE));
 434  VALUE rb_mod_constants _((VALUE));
 435  void rb_autoload_load _((ID));
 436  VALUE rb_cvar_defined _((VALUE, ID));
 437  void rb_cvar_set _((VALUE, ID, VALUE, int));
 438  VALUE rb_cvar_get _((VALUE, ID));
 439  void rb_cv_set _((VALUE, const char*, VALUE));
 440  VALUE rb_cv_get _((VALUE, const char*));
 441  void rb_define_class_variable _((VALUE, const char*, VALUE));
 442  VALUE rb_mod_class_variables _((VALUE));
 443  VALUE rb_mod_remove_cvar _((VALUE, VALUE));
 444  /* version.c */
 445  void ruby_show_version _((void));
 446  void ruby_show_copyright _((void));