%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /backups/router/usr/local/lib/perl5/site_perl/mach/5.36/sys/
Upload File :
Create Path :
Current File : //backups/router/usr/local/lib/perl5/site_perl/mach/5.36/sys/atomic_san.ph

require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_SYS_ATOMIC_SAN_H_)) {
    eval 'sub _SYS_ATOMIC_SAN_H_ () {1;}' unless defined(&_SYS_ATOMIC_SAN_H_);
    unless(defined(&_MACHINE_ATOMIC_H_)) {
	die("do\ not\ include\ this\ header\,\ use\ machine\/atomic\.h");
    }
    require 'sys/types.ph';
    eval 'sub ATOMIC_SAN_FUNC_1 {
        my($sp, $op, $name, $type) = @_;
	    eval q( &void $sp &_atomic_$op &_$name( &volatile $type *, $type);  &void $sp &_atomic_$op &_acq_$name( &volatile $type *, $type);  &void $sp &_atomic_$op &_rel_$name( &volatile $type *, $type));
    }' unless defined(&ATOMIC_SAN_FUNC_1);
    eval 'sub ATOMIC_SAN_CMPSET {
        my($sp, $name, $type) = @_;
	    eval q(\'int\' $sp &_atomic_cmpset_$name( &volatile $type *, $type, $type); \'int\' $sp &_atomic_cmpset_acq_$name( &volatile $type *, $type, $type); \'int\' $sp &_atomic_cmpset_rel_$name( &volatile $type *, $type, $type));
    }' unless defined(&ATOMIC_SAN_CMPSET);
    eval 'sub ATOMIC_SAN_FCMPSET {
        my($sp, $name, $type) = @_;
	    eval q(\'int\' $sp &_atomic_fcmpset_$name( &volatile $type *, $type *, $type); \'int\' $sp &_atomic_fcmpset_acq_$name( &volatile $type *, $type *, $type); \'int\' $sp &_atomic_fcmpset_rel_$name( &volatile $type *, $type *, $type));
    }' unless defined(&ATOMIC_SAN_FCMPSET);
    eval 'sub ATOMIC_SAN_READ {
        my($sp, $op, $name, $type) = @_;
	    eval q($type $sp &_atomic_$op &_$name( &volatile $type *, $type));
    }' unless defined(&ATOMIC_SAN_READ);
    eval 'sub ATOMIC_SAN_READANDCLEAR {
        my($sp, $name, $type) = @_;
	    eval q($type $sp &_atomic_readandclear_$name( &volatile $type *));
    }' unless defined(&ATOMIC_SAN_READANDCLEAR);
    eval 'sub ATOMIC_SAN_LOAD {
        my($sp, $name, $type) = @_;
	    eval q($type $sp &_atomic_load_$name( &volatile $type *));
    }' unless defined(&ATOMIC_SAN_LOAD);
    eval 'sub ATOMIC_SAN_LOAD_ACQ {
        my($sp, $name, $type) = @_;
	    eval q($type $sp &_atomic_load_acq_$name( &volatile $type *));
    }' unless defined(&ATOMIC_SAN_LOAD_ACQ);
    eval 'sub ATOMIC_SAN_STORE {
        my($sp, $name, $type) = @_;
	    eval q( &void $sp &_atomic_store_$name( &volatile $type *, $type));
    }' unless defined(&ATOMIC_SAN_STORE);
    eval 'sub ATOMIC_SAN_STORE_REL {
        my($sp, $name, $type) = @_;
	    eval q( &void $sp &_atomic_store_rel_$name( &volatile $type *, $type));
    }' unless defined(&ATOMIC_SAN_STORE_REL);
    eval 'sub ATOMIC_SAN_TEST {
        my($sp, $op, $name, $type) = @_;
	    eval q(\'int\' $sp &_atomic_$op &_$name( &volatile $type *, \'u_int\'); \'int\' $sp &_atomic_$op &_acq_$name( &volatile $type *, \'u_int\'));
    }' unless defined(&ATOMIC_SAN_TEST);
    eval 'sub _ATOMIC_SAN_THREAD_FENCE {
        my($sp) = @_;
	    eval q( &void $sp &_atomic_thread_fence_acq( &void);  &void $sp &_atomic_thread_fence_rel( &void);  &void $sp &_atomic_thread_fence_acq_rel( &void);  &void $sp &_atomic_thread_fence_seq_cst( &void);  &void $sp &_atomic_interrupt_fence( &void));
    }' unless defined(&_ATOMIC_SAN_THREAD_FENCE);
    eval 'sub ATOMIC_SAN_THREAD_FENCE {
        my($sp) = @_;
	    eval q( &_ATOMIC_SAN_THREAD_FENCE($sp));
    }' unless defined(&ATOMIC_SAN_THREAD_FENCE);
    eval 'sub ATOMIC_SAN_LOAD_STORE {
        my($sp, $name, $type) = @_;
	    eval q( &ATOMIC_SAN_LOAD($sp, $name, $type);  &ATOMIC_SAN_STORE($sp, $name, $type));
    }' unless defined(&ATOMIC_SAN_LOAD_STORE);
    eval 'sub _ATOMIC_SAN_FUNCS {
        my($sp, $name, $type) = @_;
	    eval q( &ATOMIC_SAN_FUNC_1($sp,  &add, $name, $type);  &ATOMIC_SAN_FUNC_1($sp,  &clear, $name, $type);  &ATOMIC_SAN_CMPSET($sp, $name, $type);  &ATOMIC_SAN_FCMPSET($sp, $name, $type);  &ATOMIC_SAN_READ($sp,  &fetchadd, $name, $type);  &ATOMIC_SAN_LOAD($sp, $name, $type);  &ATOMIC_SAN_LOAD_ACQ($sp, $name, $type);  &ATOMIC_SAN_READANDCLEAR($sp, $name, $type);  &ATOMIC_SAN_FUNC_1($sp,  &set, $name, $type);  &ATOMIC_SAN_FUNC_1($sp,  &subtract, $name, $type);  &ATOMIC_SAN_STORE($sp, $name, $type);  &ATOMIC_SAN_STORE_REL($sp, $name, $type);  &ATOMIC_SAN_READ($sp,  &swap, $name, $type);  &ATOMIC_SAN_TEST($sp,  &testandclear, $name, $type);  &ATOMIC_SAN_TEST($sp,  &testandset, $name, $type));
    }' unless defined(&_ATOMIC_SAN_FUNCS);
    eval 'sub ATOMIC_SAN_FUNCS {
        my($name, $type) = @_;
	    eval q( &_ATOMIC_SAN_FUNCS( &SAN_INTERCEPTOR_PREFIX, $name, $type));
    }' unless defined(&ATOMIC_SAN_FUNCS);
    unless(defined(&SAN_RUNTIME)) {
	eval 'sub ATOMIC_SAN {
	    my($func) = @_;
    	    eval q( &__CONCAT( &SAN_INTERCEPTOR_PREFIX,  &__CONCAT( &_atomic_, $func)));
	}' unless defined(&ATOMIC_SAN);
	eval 'sub atomic_load_bool () { &ATOMIC_SAN( &load_bool);}' unless defined(&atomic_load_bool);
	eval 'sub atomic_store_bool () { &ATOMIC_SAN( &store_bool);}' unless defined(&atomic_store_bool);
	eval 'sub atomic_add_char () { &ATOMIC_SAN( &add_char);}' unless defined(&atomic_add_char);
	eval 'sub atomic_add_acq_char () { &ATOMIC_SAN( &add_acq_char);}' unless defined(&atomic_add_acq_char);
	eval 'sub atomic_add_rel_char () { &ATOMIC_SAN( &add_rel_char);}' unless defined(&atomic_add_rel_char);
	eval 'sub atomic_clear_char () { &ATOMIC_SAN( &clear_char);}' unless defined(&atomic_clear_char);
	eval 'sub atomic_clear_acq_char () { &ATOMIC_SAN( &clear_acq_char);}' unless defined(&atomic_clear_acq_char);
	eval 'sub atomic_clear_rel_char () { &ATOMIC_SAN( &clear_rel_char);}' unless defined(&atomic_clear_rel_char);
	eval 'sub atomic_cmpset_char () { &ATOMIC_SAN( &cmpset_char);}' unless defined(&atomic_cmpset_char);
	eval 'sub atomic_cmpset_acq_char () { &ATOMIC_SAN( &cmpset_acq_char);}' unless defined(&atomic_cmpset_acq_char);
	eval 'sub atomic_cmpset_rel_char () { &ATOMIC_SAN( &cmpset_rel_char);}' unless defined(&atomic_cmpset_rel_char);
	eval 'sub atomic_fcmpset_char () { &ATOMIC_SAN( &fcmpset_char);}' unless defined(&atomic_fcmpset_char);
	eval 'sub atomic_fcmpset_acq_char () { &ATOMIC_SAN( &fcmpset_acq_char);}' unless defined(&atomic_fcmpset_acq_char);
	eval 'sub atomic_fcmpset_rel_char () { &ATOMIC_SAN( &fcmpset_rel_char);}' unless defined(&atomic_fcmpset_rel_char);
	eval 'sub atomic_fetchadd_char () { &ATOMIC_SAN( &fetchadd_char);}' unless defined(&atomic_fetchadd_char);
	eval 'sub atomic_load_char () { &ATOMIC_SAN( &load_char);}' unless defined(&atomic_load_char);
	eval 'sub atomic_load_acq_char () { &ATOMIC_SAN( &load_acq_char);}' unless defined(&atomic_load_acq_char);
	eval 'sub atomic_readandclear_char () { &ATOMIC_SAN( &readandclear_char);}' unless defined(&atomic_readandclear_char);
	eval 'sub atomic_set_char () { &ATOMIC_SAN( &set_char);}' unless defined(&atomic_set_char);
	eval 'sub atomic_set_acq_char () { &ATOMIC_SAN( &set_acq_char);}' unless defined(&atomic_set_acq_char);
	eval 'sub atomic_set_rel_char () { &ATOMIC_SAN( &set_rel_char);}' unless defined(&atomic_set_rel_char);
	eval 'sub atomic_subtract_char () { &ATOMIC_SAN( &subtract_char);}' unless defined(&atomic_subtract_char);
	eval 'sub atomic_subtract_acq_char () { &ATOMIC_SAN( &subtract_acq_char);}' unless defined(&atomic_subtract_acq_char);
	eval 'sub atomic_subtract_rel_char () { &ATOMIC_SAN( &subtract_rel_char);}' unless defined(&atomic_subtract_rel_char);
	eval 'sub atomic_store_char () { &ATOMIC_SAN( &store_char);}' unless defined(&atomic_store_char);
	eval 'sub atomic_store_rel_char () { &ATOMIC_SAN( &store_rel_char);}' unless defined(&atomic_store_rel_char);
	eval 'sub atomic_swap_char () { &ATOMIC_SAN( &swap_char);}' unless defined(&atomic_swap_char);
	eval 'sub atomic_testandclear_char () { &ATOMIC_SAN( &testandclear_char);}' unless defined(&atomic_testandclear_char);
	eval 'sub atomic_testandset_char () { &ATOMIC_SAN( &testandset_char);}' unless defined(&atomic_testandset_char);
	eval 'sub atomic_add_short () { &ATOMIC_SAN;}' unless defined(&atomic_add_short);
	eval 'sub atomic_add_acq_short () { &ATOMIC_SAN;}' unless defined(&atomic_add_acq_short);
	eval 'sub atomic_add_rel_short () { &ATOMIC_SAN;}' unless defined(&atomic_add_rel_short);
	eval 'sub atomic_clear_short () { &ATOMIC_SAN;}' unless defined(&atomic_clear_short);
	eval 'sub atomic_clear_acq_short () { &ATOMIC_SAN;}' unless defined(&atomic_clear_acq_short);
	eval 'sub atomic_clear_rel_short () { &ATOMIC_SAN;}' unless defined(&atomic_clear_rel_short);
	eval 'sub atomic_cmpset_short () { &ATOMIC_SAN;}' unless defined(&atomic_cmpset_short);
	eval 'sub atomic_cmpset_acq_short () { &ATOMIC_SAN;}' unless defined(&atomic_cmpset_acq_short);
	eval 'sub atomic_cmpset_rel_short () { &ATOMIC_SAN;}' unless defined(&atomic_cmpset_rel_short);
	eval 'sub atomic_fcmpset_short () { &ATOMIC_SAN;}' unless defined(&atomic_fcmpset_short);
	eval 'sub atomic_fcmpset_acq_short () { &ATOMIC_SAN;}' unless defined(&atomic_fcmpset_acq_short);
	eval 'sub atomic_fcmpset_rel_short () { &ATOMIC_SAN;}' unless defined(&atomic_fcmpset_rel_short);
	eval 'sub atomic_fetchadd_short () { &ATOMIC_SAN;}' unless defined(&atomic_fetchadd_short);
	eval 'sub atomic_load_short () { &ATOMIC_SAN;}' unless defined(&atomic_load_short);
	eval 'sub atomic_load_acq_short () { &ATOMIC_SAN;}' unless defined(&atomic_load_acq_short);
	eval 'sub atomic_readandclear_short () { &ATOMIC_SAN;}' unless defined(&atomic_readandclear_short);
	eval 'sub atomic_set_short () { &ATOMIC_SAN;}' unless defined(&atomic_set_short);
	eval 'sub atomic_set_acq_short () { &ATOMIC_SAN;}' unless defined(&atomic_set_acq_short);
	eval 'sub atomic_set_rel_short () { &ATOMIC_SAN;}' unless defined(&atomic_set_rel_short);
	eval 'sub atomic_subtract_short () { &ATOMIC_SAN;}' unless defined(&atomic_subtract_short);
	eval 'sub atomic_subtract_acq_short () { &ATOMIC_SAN;}' unless defined(&atomic_subtract_acq_short);
	eval 'sub atomic_subtract_rel_short () { &ATOMIC_SAN;}' unless defined(&atomic_subtract_rel_short);
	eval 'sub atomic_store_short () { &ATOMIC_SAN;}' unless defined(&atomic_store_short);
	eval 'sub atomic_store_rel_short () { &ATOMIC_SAN;}' unless defined(&atomic_store_rel_short);
	eval 'sub atomic_swap_short () { &ATOMIC_SAN;}' unless defined(&atomic_swap_short);
	eval 'sub atomic_testandclear_short () { &ATOMIC_SAN;}' unless defined(&atomic_testandclear_short);
	eval 'sub atomic_testandset_short () { &ATOMIC_SAN;}' unless defined(&atomic_testandset_short);
	eval 'sub atomic_add_int () { &ATOMIC_SAN( &add_int);}' unless defined(&atomic_add_int);
	eval 'sub atomic_add_acq_int () { &ATOMIC_SAN( &add_acq_int);}' unless defined(&atomic_add_acq_int);
	eval 'sub atomic_add_rel_int () { &ATOMIC_SAN( &add_rel_int);}' unless defined(&atomic_add_rel_int);
	eval 'sub atomic_clear_int () { &ATOMIC_SAN( &clear_int);}' unless defined(&atomic_clear_int);
	eval 'sub atomic_clear_acq_int () { &ATOMIC_SAN( &clear_acq_int);}' unless defined(&atomic_clear_acq_int);
	eval 'sub atomic_clear_rel_int () { &ATOMIC_SAN( &clear_rel_int);}' unless defined(&atomic_clear_rel_int);
	eval 'sub atomic_cmpset_int () { &ATOMIC_SAN( &cmpset_int);}' unless defined(&atomic_cmpset_int);
	eval 'sub atomic_cmpset_acq_int () { &ATOMIC_SAN( &cmpset_acq_int);}' unless defined(&atomic_cmpset_acq_int);
	eval 'sub atomic_cmpset_rel_int () { &ATOMIC_SAN( &cmpset_rel_int);}' unless defined(&atomic_cmpset_rel_int);
	eval 'sub atomic_fcmpset_int () { &ATOMIC_SAN( &fcmpset_int);}' unless defined(&atomic_fcmpset_int);
	eval 'sub atomic_fcmpset_acq_int () { &ATOMIC_SAN( &fcmpset_acq_int);}' unless defined(&atomic_fcmpset_acq_int);
	eval 'sub atomic_fcmpset_rel_int () { &ATOMIC_SAN( &fcmpset_rel_int);}' unless defined(&atomic_fcmpset_rel_int);
	eval 'sub atomic_fetchadd_int () { &ATOMIC_SAN( &fetchadd_int);}' unless defined(&atomic_fetchadd_int);
	eval 'sub atomic_load_int () { &ATOMIC_SAN( &load_int);}' unless defined(&atomic_load_int);
	eval 'sub atomic_load_acq_int () { &ATOMIC_SAN( &load_acq_int);}' unless defined(&atomic_load_acq_int);
	eval 'sub atomic_readandclear_int () { &ATOMIC_SAN( &readandclear_int);}' unless defined(&atomic_readandclear_int);
	eval 'sub atomic_set_int () { &ATOMIC_SAN( &set_int);}' unless defined(&atomic_set_int);
	eval 'sub atomic_set_acq_int () { &ATOMIC_SAN( &set_acq_int);}' unless defined(&atomic_set_acq_int);
	eval 'sub atomic_set_rel_int () { &ATOMIC_SAN( &set_rel_int);}' unless defined(&atomic_set_rel_int);
	eval 'sub atomic_subtract_int () { &ATOMIC_SAN( &subtract_int);}' unless defined(&atomic_subtract_int);
	eval 'sub atomic_subtract_acq_int () { &ATOMIC_SAN( &subtract_acq_int);}' unless defined(&atomic_subtract_acq_int);
	eval 'sub atomic_subtract_rel_int () { &ATOMIC_SAN( &subtract_rel_int);}' unless defined(&atomic_subtract_rel_int);
	eval 'sub atomic_store_int () { &ATOMIC_SAN( &store_int);}' unless defined(&atomic_store_int);
	eval 'sub atomic_store_rel_int () { &ATOMIC_SAN( &store_rel_int);}' unless defined(&atomic_store_rel_int);
	eval 'sub atomic_swap_int () { &ATOMIC_SAN( &swap_int);}' unless defined(&atomic_swap_int);
	eval 'sub atomic_testandclear_int () { &ATOMIC_SAN( &testandclear_int);}' unless defined(&atomic_testandclear_int);
	eval 'sub atomic_testandset_int () { &ATOMIC_SAN( &testandset_int);}' unless defined(&atomic_testandset_int);
	eval 'sub atomic_add_long () { &ATOMIC_SAN;}' unless defined(&atomic_add_long);
	eval 'sub atomic_add_acq_long () { &ATOMIC_SAN;}' unless defined(&atomic_add_acq_long);
	eval 'sub atomic_add_rel_long () { &ATOMIC_SAN;}' unless defined(&atomic_add_rel_long);
	eval 'sub atomic_clear_long () { &ATOMIC_SAN;}' unless defined(&atomic_clear_long);
	eval 'sub atomic_clear_acq_long () { &ATOMIC_SAN;}' unless defined(&atomic_clear_acq_long);
	eval 'sub atomic_clear_rel_long () { &ATOMIC_SAN;}' unless defined(&atomic_clear_rel_long);
	eval 'sub atomic_cmpset_long () { &ATOMIC_SAN;}' unless defined(&atomic_cmpset_long);
	eval 'sub atomic_cmpset_acq_long () { &ATOMIC_SAN;}' unless defined(&atomic_cmpset_acq_long);
	eval 'sub atomic_cmpset_rel_long () { &ATOMIC_SAN;}' unless defined(&atomic_cmpset_rel_long);
	eval 'sub atomic_fcmpset_long () { &ATOMIC_SAN;}' unless defined(&atomic_fcmpset_long);
	eval 'sub atomic_fcmpset_acq_long () { &ATOMIC_SAN;}' unless defined(&atomic_fcmpset_acq_long);
	eval 'sub atomic_fcmpset_rel_long () { &ATOMIC_SAN;}' unless defined(&atomic_fcmpset_rel_long);
	eval 'sub atomic_fetchadd_long () { &ATOMIC_SAN;}' unless defined(&atomic_fetchadd_long);
	eval 'sub atomic_load_long () { &ATOMIC_SAN;}' unless defined(&atomic_load_long);
	eval 'sub atomic_load_acq_long () { &ATOMIC_SAN;}' unless defined(&atomic_load_acq_long);
	eval 'sub atomic_readandclear_long () { &ATOMIC_SAN;}' unless defined(&atomic_readandclear_long);
	eval 'sub atomic_set_long () { &ATOMIC_SAN;}' unless defined(&atomic_set_long);
	eval 'sub atomic_set_acq_long () { &ATOMIC_SAN;}' unless defined(&atomic_set_acq_long);
	eval 'sub atomic_set_rel_long () { &ATOMIC_SAN;}' unless defined(&atomic_set_rel_long);
	eval 'sub atomic_subtract_long () { &ATOMIC_SAN;}' unless defined(&atomic_subtract_long);
	eval 'sub atomic_subtract_acq_long () { &ATOMIC_SAN;}' unless defined(&atomic_subtract_acq_long);
	eval 'sub atomic_subtract_rel_long () { &ATOMIC_SAN;}' unless defined(&atomic_subtract_rel_long);
	eval 'sub atomic_store_long () { &ATOMIC_SAN;}' unless defined(&atomic_store_long);
	eval 'sub atomic_store_rel_long () { &ATOMIC_SAN;}' unless defined(&atomic_store_rel_long);
	eval 'sub atomic_swap_long () { &ATOMIC_SAN;}' unless defined(&atomic_swap_long);
	eval 'sub atomic_testandclear_long () { &ATOMIC_SAN;}' unless defined(&atomic_testandclear_long);
	eval 'sub atomic_testandset_long () { &ATOMIC_SAN;}' unless defined(&atomic_testandset_long);
	eval 'sub atomic_testandset_acq_long () { &ATOMIC_SAN;}' unless defined(&atomic_testandset_acq_long);
	eval 'sub atomic_add_ptr () { &ATOMIC_SAN( &add_ptr);}' unless defined(&atomic_add_ptr);
	eval 'sub atomic_add_acq_ptr () { &ATOMIC_SAN( &add_acq_ptr);}' unless defined(&atomic_add_acq_ptr);
	eval 'sub atomic_add_rel_ptr () { &ATOMIC_SAN( &add_rel_ptr);}' unless defined(&atomic_add_rel_ptr);
	eval 'sub atomic_clear_ptr () { &ATOMIC_SAN( &clear_ptr);}' unless defined(&atomic_clear_ptr);
	eval 'sub atomic_clear_acq_ptr () { &ATOMIC_SAN( &clear_acq_ptr);}' unless defined(&atomic_clear_acq_ptr);
	eval 'sub atomic_clear_rel_ptr () { &ATOMIC_SAN( &clear_rel_ptr);}' unless defined(&atomic_clear_rel_ptr);
	eval 'sub atomic_cmpset_ptr () { &ATOMIC_SAN( &cmpset_ptr);}' unless defined(&atomic_cmpset_ptr);
	eval 'sub atomic_cmpset_acq_ptr () { &ATOMIC_SAN( &cmpset_acq_ptr);}' unless defined(&atomic_cmpset_acq_ptr);
	eval 'sub atomic_cmpset_rel_ptr () { &ATOMIC_SAN( &cmpset_rel_ptr);}' unless defined(&atomic_cmpset_rel_ptr);
	eval 'sub atomic_fcmpset_ptr () { &ATOMIC_SAN( &fcmpset_ptr);}' unless defined(&atomic_fcmpset_ptr);
	eval 'sub atomic_fcmpset_acq_ptr () { &ATOMIC_SAN( &fcmpset_acq_ptr);}' unless defined(&atomic_fcmpset_acq_ptr);
	eval 'sub atomic_fcmpset_rel_ptr () { &ATOMIC_SAN( &fcmpset_rel_ptr);}' unless defined(&atomic_fcmpset_rel_ptr);
	eval 'sub atomic_fetchadd_ptr () { &ATOMIC_SAN( &fetchadd_ptr);}' unless defined(&atomic_fetchadd_ptr);
	eval 'sub atomic_load_ptr {
	    my($x) = @_;
    	    eval q((( &__typeof(*$x)) &ATOMIC_SAN( &load_ptr)(  &__DECONST( &volatile  &uintptr_t *, ($x)))));
	}' unless defined(&atomic_load_ptr);
	eval 'sub atomic_load_acq_ptr () { &ATOMIC_SAN( &load_acq_ptr);}' unless defined(&atomic_load_acq_ptr);
	eval 'sub atomic_load_consume_ptr {
	    my($x) = @_;
    	    eval q((( &__typeof(*$x)) &atomic_load_acq_ptr(( &volatile  &uintptr_t *)($x))));
	}' unless defined(&atomic_load_consume_ptr);
	eval 'sub atomic_readandclear_ptr () { &ATOMIC_SAN( &readandclear_ptr);}' unless defined(&atomic_readandclear_ptr);
	eval 'sub atomic_set_ptr () { &ATOMIC_SAN( &set_ptr);}' unless defined(&atomic_set_ptr);
	eval 'sub atomic_set_acq_ptr () { &ATOMIC_SAN( &set_acq_ptr);}' unless defined(&atomic_set_acq_ptr);
	eval 'sub atomic_set_rel_ptr () { &ATOMIC_SAN( &set_rel_ptr);}' unless defined(&atomic_set_rel_ptr);
	eval 'sub atomic_subtract_ptr () { &ATOMIC_SAN( &subtract_ptr);}' unless defined(&atomic_subtract_ptr);
	eval 'sub atomic_subtract_acq_ptr () { &ATOMIC_SAN( &subtract_acq_ptr);}' unless defined(&atomic_subtract_acq_ptr);
	eval 'sub atomic_subtract_rel_ptr () { &ATOMIC_SAN( &subtract_rel_ptr);}' unless defined(&atomic_subtract_rel_ptr);
	eval 'sub atomic_store_ptr {
	    my($x, $v) = @_;
    	    eval q(({  &__typeof(*$x)  &__value = ($v);  &ATOMIC_SAN( &store_ptr)(( &volatile  &uintptr_t *)($x), ( &uintptr_t)( &__value));}));
	}' unless defined(&atomic_store_ptr);
	eval 'sub atomic_store_rel_ptr () { &ATOMIC_SAN( &store_rel_ptr);}' unless defined(&atomic_store_rel_ptr);
	eval 'sub atomic_swap_ptr () { &ATOMIC_SAN( &swap_ptr);}' unless defined(&atomic_swap_ptr);
	eval 'sub atomic_testandclear_ptr () { &ATOMIC_SAN( &testandclear_ptr);}' unless defined(&atomic_testandclear_ptr);
	eval 'sub atomic_testandset_ptr () { &ATOMIC_SAN( &testandset_ptr);}' unless defined(&atomic_testandset_ptr);
	eval 'sub atomic_add_8 () { &ATOMIC_SAN( &add_8);}' unless defined(&atomic_add_8);
	eval 'sub atomic_add_acq_8 () { &ATOMIC_SAN( &add_acq_8);}' unless defined(&atomic_add_acq_8);
	eval 'sub atomic_add_rel_8 () { &ATOMIC_SAN( &add_rel_8);}' unless defined(&atomic_add_rel_8);
	eval 'sub atomic_clear_8 () { &ATOMIC_SAN( &clear_8);}' unless defined(&atomic_clear_8);
	eval 'sub atomic_clear_acq_8 () { &ATOMIC_SAN( &clear_acq_8);}' unless defined(&atomic_clear_acq_8);
	eval 'sub atomic_clear_rel_8 () { &ATOMIC_SAN( &clear_rel_8);}' unless defined(&atomic_clear_rel_8);
	eval 'sub atomic_cmpset_8 () { &ATOMIC_SAN( &cmpset_8);}' unless defined(&atomic_cmpset_8);
	eval 'sub atomic_cmpset_acq_8 () { &ATOMIC_SAN( &cmpset_acq_8);}' unless defined(&atomic_cmpset_acq_8);
	eval 'sub atomic_cmpset_rel_8 () { &ATOMIC_SAN( &cmpset_rel_8);}' unless defined(&atomic_cmpset_rel_8);
	eval 'sub atomic_fcmpset_8 () { &ATOMIC_SAN( &fcmpset_8);}' unless defined(&atomic_fcmpset_8);
	eval 'sub atomic_fcmpset_acq_8 () { &ATOMIC_SAN( &fcmpset_acq_8);}' unless defined(&atomic_fcmpset_acq_8);
	eval 'sub atomic_fcmpset_rel_8 () { &ATOMIC_SAN( &fcmpset_rel_8);}' unless defined(&atomic_fcmpset_rel_8);
	eval 'sub atomic_fetchadd_8 () { &ATOMIC_SAN( &fetchadd_8);}' unless defined(&atomic_fetchadd_8);
	eval 'sub atomic_load_8 () { &ATOMIC_SAN( &load_8);}' unless defined(&atomic_load_8);
	eval 'sub atomic_load_acq_8 () { &ATOMIC_SAN( &load_acq_8);}' unless defined(&atomic_load_acq_8);
	eval 'sub atomic_readandclear_8 () { &ATOMIC_SAN( &readandclear_8);}' unless defined(&atomic_readandclear_8);
	eval 'sub atomic_set_8 () { &ATOMIC_SAN( &set_8);}' unless defined(&atomic_set_8);
	eval 'sub atomic_set_acq_8 () { &ATOMIC_SAN( &set_acq_8);}' unless defined(&atomic_set_acq_8);
	eval 'sub atomic_set_rel_8 () { &ATOMIC_SAN( &set_rel_8);}' unless defined(&atomic_set_rel_8);
	eval 'sub atomic_subtract_8 () { &ATOMIC_SAN( &subtract_8);}' unless defined(&atomic_subtract_8);
	eval 'sub atomic_subtract_acq_8 () { &ATOMIC_SAN( &subtract_acq_8);}' unless defined(&atomic_subtract_acq_8);
	eval 'sub atomic_subtract_rel_8 () { &ATOMIC_SAN( &subtract_rel_8);}' unless defined(&atomic_subtract_rel_8);
	eval 'sub atomic_store_8 () { &ATOMIC_SAN( &store_8);}' unless defined(&atomic_store_8);
	eval 'sub atomic_store_rel_8 () { &ATOMIC_SAN( &store_rel_8);}' unless defined(&atomic_store_rel_8);
	eval 'sub atomic_swap_8 () { &ATOMIC_SAN( &swap_8);}' unless defined(&atomic_swap_8);
	eval 'sub atomic_testandclear_8 () { &ATOMIC_SAN( &testandclear_8);}' unless defined(&atomic_testandclear_8);
	eval 'sub atomic_testandset_8 () { &ATOMIC_SAN( &testandset_8);}' unless defined(&atomic_testandset_8);
	eval 'sub atomic_add_16 () { &ATOMIC_SAN( &add_16);}' unless defined(&atomic_add_16);
	eval 'sub atomic_add_acq_16 () { &ATOMIC_SAN( &add_acq_16);}' unless defined(&atomic_add_acq_16);
	eval 'sub atomic_add_rel_16 () { &ATOMIC_SAN( &add_rel_16);}' unless defined(&atomic_add_rel_16);
	eval 'sub atomic_clear_16 () { &ATOMIC_SAN( &clear_16);}' unless defined(&atomic_clear_16);
	eval 'sub atomic_clear_acq_16 () { &ATOMIC_SAN( &clear_acq_16);}' unless defined(&atomic_clear_acq_16);
	eval 'sub atomic_clear_rel_16 () { &ATOMIC_SAN( &clear_rel_16);}' unless defined(&atomic_clear_rel_16);
	eval 'sub atomic_cmpset_16 () { &ATOMIC_SAN( &cmpset_16);}' unless defined(&atomic_cmpset_16);
	eval 'sub atomic_cmpset_acq_16 () { &ATOMIC_SAN( &cmpset_acq_16);}' unless defined(&atomic_cmpset_acq_16);
	eval 'sub atomic_cmpset_rel_16 () { &ATOMIC_SAN( &cmpset_rel_16);}' unless defined(&atomic_cmpset_rel_16);
	eval 'sub atomic_fcmpset_16 () { &ATOMIC_SAN( &fcmpset_16);}' unless defined(&atomic_fcmpset_16);
	eval 'sub atomic_fcmpset_acq_16 () { &ATOMIC_SAN( &fcmpset_acq_16);}' unless defined(&atomic_fcmpset_acq_16);
	eval 'sub atomic_fcmpset_rel_16 () { &ATOMIC_SAN( &fcmpset_rel_16);}' unless defined(&atomic_fcmpset_rel_16);
	eval 'sub atomic_fetchadd_16 () { &ATOMIC_SAN( &fetchadd_16);}' unless defined(&atomic_fetchadd_16);
	eval 'sub atomic_load_16 () { &ATOMIC_SAN( &load_16);}' unless defined(&atomic_load_16);
	eval 'sub atomic_load_acq_16 () { &ATOMIC_SAN( &load_acq_16);}' unless defined(&atomic_load_acq_16);
	eval 'sub atomic_readandclear_16 () { &ATOMIC_SAN( &readandclear_16);}' unless defined(&atomic_readandclear_16);
	eval 'sub atomic_set_16 () { &ATOMIC_SAN( &set_16);}' unless defined(&atomic_set_16);
	eval 'sub atomic_set_acq_16 () { &ATOMIC_SAN( &set_acq_16);}' unless defined(&atomic_set_acq_16);
	eval 'sub atomic_set_rel_16 () { &ATOMIC_SAN( &set_rel_16);}' unless defined(&atomic_set_rel_16);
	eval 'sub atomic_subtract_16 () { &ATOMIC_SAN( &subtract_16);}' unless defined(&atomic_subtract_16);
	eval 'sub atomic_subtract_acq_16 () { &ATOMIC_SAN( &subtract_acq_16);}' unless defined(&atomic_subtract_acq_16);
	eval 'sub atomic_subtract_rel_16 () { &ATOMIC_SAN( &subtract_rel_16);}' unless defined(&atomic_subtract_rel_16);
	eval 'sub atomic_store_16 () { &ATOMIC_SAN( &store_16);}' unless defined(&atomic_store_16);
	eval 'sub atomic_store_rel_16 () { &ATOMIC_SAN( &store_rel_16);}' unless defined(&atomic_store_rel_16);
	eval 'sub atomic_swap_16 () { &ATOMIC_SAN( &swap_16);}' unless defined(&atomic_swap_16);
	eval 'sub atomic_testandclear_16 () { &ATOMIC_SAN( &testandclear_16);}' unless defined(&atomic_testandclear_16);
	eval 'sub atomic_testandset_16 () { &ATOMIC_SAN( &testandset_16);}' unless defined(&atomic_testandset_16);
	eval 'sub atomic_add_32 () { &ATOMIC_SAN( &add_32);}' unless defined(&atomic_add_32);
	eval 'sub atomic_add_acq_32 () { &ATOMIC_SAN( &add_acq_32);}' unless defined(&atomic_add_acq_32);
	eval 'sub atomic_add_rel_32 () { &ATOMIC_SAN( &add_rel_32);}' unless defined(&atomic_add_rel_32);
	eval 'sub atomic_clear_32 () { &ATOMIC_SAN( &clear_32);}' unless defined(&atomic_clear_32);
	eval 'sub atomic_clear_acq_32 () { &ATOMIC_SAN( &clear_acq_32);}' unless defined(&atomic_clear_acq_32);
	eval 'sub atomic_clear_rel_32 () { &ATOMIC_SAN( &clear_rel_32);}' unless defined(&atomic_clear_rel_32);
	eval 'sub atomic_cmpset_32 () { &ATOMIC_SAN( &cmpset_32);}' unless defined(&atomic_cmpset_32);
	eval 'sub atomic_cmpset_acq_32 () { &ATOMIC_SAN( &cmpset_acq_32);}' unless defined(&atomic_cmpset_acq_32);
	eval 'sub atomic_cmpset_rel_32 () { &ATOMIC_SAN( &cmpset_rel_32);}' unless defined(&atomic_cmpset_rel_32);
	eval 'sub atomic_fcmpset_32 () { &ATOMIC_SAN( &fcmpset_32);}' unless defined(&atomic_fcmpset_32);
	eval 'sub atomic_fcmpset_acq_32 () { &ATOMIC_SAN( &fcmpset_acq_32);}' unless defined(&atomic_fcmpset_acq_32);
	eval 'sub atomic_fcmpset_rel_32 () { &ATOMIC_SAN( &fcmpset_rel_32);}' unless defined(&atomic_fcmpset_rel_32);
	eval 'sub atomic_fetchadd_32 () { &ATOMIC_SAN( &fetchadd_32);}' unless defined(&atomic_fetchadd_32);
	eval 'sub atomic_load_32 () { &ATOMIC_SAN( &load_32);}' unless defined(&atomic_load_32);
	eval 'sub atomic_load_acq_32 () { &ATOMIC_SAN( &load_acq_32);}' unless defined(&atomic_load_acq_32);
	eval 'sub atomic_readandclear_32 () { &ATOMIC_SAN( &readandclear_32);}' unless defined(&atomic_readandclear_32);
	eval 'sub atomic_set_32 () { &ATOMIC_SAN( &set_32);}' unless defined(&atomic_set_32);
	eval 'sub atomic_set_acq_32 () { &ATOMIC_SAN( &set_acq_32);}' unless defined(&atomic_set_acq_32);
	eval 'sub atomic_set_rel_32 () { &ATOMIC_SAN( &set_rel_32);}' unless defined(&atomic_set_rel_32);
	eval 'sub atomic_subtract_32 () { &ATOMIC_SAN( &subtract_32);}' unless defined(&atomic_subtract_32);
	eval 'sub atomic_subtract_acq_32 () { &ATOMIC_SAN( &subtract_acq_32);}' unless defined(&atomic_subtract_acq_32);
	eval 'sub atomic_subtract_rel_32 () { &ATOMIC_SAN( &subtract_rel_32);}' unless defined(&atomic_subtract_rel_32);
	eval 'sub atomic_store_32 () { &ATOMIC_SAN( &store_32);}' unless defined(&atomic_store_32);
	eval 'sub atomic_store_rel_32 () { &ATOMIC_SAN( &store_rel_32);}' unless defined(&atomic_store_rel_32);
	eval 'sub atomic_swap_32 () { &ATOMIC_SAN( &swap_32);}' unless defined(&atomic_swap_32);
	eval 'sub atomic_testandclear_32 () { &ATOMIC_SAN( &testandclear_32);}' unless defined(&atomic_testandclear_32);
	eval 'sub atomic_testandset_32 () { &ATOMIC_SAN( &testandset_32);}' unless defined(&atomic_testandset_32);
	eval 'sub atomic_add_64 () { &ATOMIC_SAN( &add_64);}' unless defined(&atomic_add_64);
	eval 'sub atomic_add_acq_64 () { &ATOMIC_SAN( &add_acq_64);}' unless defined(&atomic_add_acq_64);
	eval 'sub atomic_add_rel_64 () { &ATOMIC_SAN( &add_rel_64);}' unless defined(&atomic_add_rel_64);
	eval 'sub atomic_clear_64 () { &ATOMIC_SAN( &clear_64);}' unless defined(&atomic_clear_64);
	eval 'sub atomic_clear_acq_64 () { &ATOMIC_SAN( &clear_acq_64);}' unless defined(&atomic_clear_acq_64);
	eval 'sub atomic_clear_rel_64 () { &ATOMIC_SAN( &clear_rel_64);}' unless defined(&atomic_clear_rel_64);
	eval 'sub atomic_cmpset_64 () { &ATOMIC_SAN( &cmpset_64);}' unless defined(&atomic_cmpset_64);
	eval 'sub atomic_cmpset_acq_64 () { &ATOMIC_SAN( &cmpset_acq_64);}' unless defined(&atomic_cmpset_acq_64);
	eval 'sub atomic_cmpset_rel_64 () { &ATOMIC_SAN( &cmpset_rel_64);}' unless defined(&atomic_cmpset_rel_64);
	eval 'sub atomic_fcmpset_64 () { &ATOMIC_SAN( &fcmpset_64);}' unless defined(&atomic_fcmpset_64);
	eval 'sub atomic_fcmpset_acq_64 () { &ATOMIC_SAN( &fcmpset_acq_64);}' unless defined(&atomic_fcmpset_acq_64);
	eval 'sub atomic_fcmpset_rel_64 () { &ATOMIC_SAN( &fcmpset_rel_64);}' unless defined(&atomic_fcmpset_rel_64);
	eval 'sub atomic_fetchadd_64 () { &ATOMIC_SAN( &fetchadd_64);}' unless defined(&atomic_fetchadd_64);
	eval 'sub atomic_load_64 () { &ATOMIC_SAN( &load_64);}' unless defined(&atomic_load_64);
	eval 'sub atomic_load_acq_64 () { &ATOMIC_SAN( &load_acq_64);}' unless defined(&atomic_load_acq_64);
	eval 'sub atomic_readandclear_64 () { &ATOMIC_SAN( &readandclear_64);}' unless defined(&atomic_readandclear_64);
	eval 'sub atomic_set_64 () { &ATOMIC_SAN( &set_64);}' unless defined(&atomic_set_64);
	eval 'sub atomic_set_acq_64 () { &ATOMIC_SAN( &set_acq_64);}' unless defined(&atomic_set_acq_64);
	eval 'sub atomic_set_rel_64 () { &ATOMIC_SAN( &set_rel_64);}' unless defined(&atomic_set_rel_64);
	eval 'sub atomic_subtract_64 () { &ATOMIC_SAN( &subtract_64);}' unless defined(&atomic_subtract_64);
	eval 'sub atomic_subtract_acq_64 () { &ATOMIC_SAN( &subtract_acq_64);}' unless defined(&atomic_subtract_acq_64);
	eval 'sub atomic_subtract_rel_64 () { &ATOMIC_SAN( &subtract_rel_64);}' unless defined(&atomic_subtract_rel_64);
	eval 'sub atomic_store_64 () { &ATOMIC_SAN( &store_64);}' unless defined(&atomic_store_64);
	eval 'sub atomic_store_rel_64 () { &ATOMIC_SAN( &store_rel_64);}' unless defined(&atomic_store_rel_64);
	eval 'sub atomic_swap_64 () { &ATOMIC_SAN( &swap_64);}' unless defined(&atomic_swap_64);
	eval 'sub atomic_testandclear_64 () { &ATOMIC_SAN( &testandclear_64);}' unless defined(&atomic_testandclear_64);
	eval 'sub atomic_testandset_64 () { &ATOMIC_SAN( &testandset_64);}' unless defined(&atomic_testandset_64);
	eval 'sub atomic_thread_fence_acq () { &ATOMIC_SAN( &thread_fence_acq);}' unless defined(&atomic_thread_fence_acq);
	eval 'sub atomic_thread_fence_acq_rel () { &ATOMIC_SAN( &thread_fence_acq_rel);}' unless defined(&atomic_thread_fence_acq_rel);
	eval 'sub atomic_thread_fence_rel () { &ATOMIC_SAN( &thread_fence_rel);}' unless defined(&atomic_thread_fence_rel);
	eval 'sub atomic_thread_fence_seq_cst () { &ATOMIC_SAN( &thread_fence_seq_cst);}' unless defined(&atomic_thread_fence_seq_cst);
	eval 'sub atomic_interrupt_fence () { &ATOMIC_SAN( &interrupt_fence);}' unless defined(&atomic_interrupt_fence);
    }
}
1;

Zerion Mini Shell 1.0