require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&OPENSSL_PARAMS_H)) {
    eval 'sub OPENSSL_PARAMS_H () {1;}' unless defined(&OPENSSL_PARAMS_H);
    require 'openssl/core.ph';
    require 'openssl/bn.ph';
    if(defined(&__cplusplus)) {
    }
    eval 'sub OSSL_PARAM_UNMODIFIED () {(-1);}' unless defined(&OSSL_PARAM_UNMODIFIED);
    eval 'sub OSSL_PARAM_END () {{  &NULL, 0,  &NULL, 0, 0};}' unless defined(&OSSL_PARAM_END);
    eval 'sub OSSL_PARAM_DEFN {
        my($key, $type, $addr, $sz) = @_;
	    eval q({ ($key), ($type), ($addr), ($sz),  &OSSL_PARAM_UNMODIFIED });
    }' unless defined(&OSSL_PARAM_DEFN);
    eval 'sub OSSL_PARAM_int {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_INTEGER, ($addr), $sizeof{\'int\'}));
    }' unless defined(&OSSL_PARAM_int);
    eval 'sub OSSL_PARAM_uint {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_UNSIGNED_INTEGER, ($addr), $sizeof{\'unsigned int\'}));
    }' unless defined(&OSSL_PARAM_uint);
    eval 'sub OSSL_PARAM_long {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_INTEGER, ($addr), $sizeof{\'long int\'}));
    }' unless defined(&OSSL_PARAM_long);
    eval 'sub OSSL_PARAM_ulong {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_UNSIGNED_INTEGER, ($addr), $sizeof{\'unsigned long int\'}));
    }' unless defined(&OSSL_PARAM_ulong);
    eval 'sub OSSL_PARAM_int32 {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_INTEGER, ($addr), $sizeof{ &int32_t}));
    }' unless defined(&OSSL_PARAM_int32);
    eval 'sub OSSL_PARAM_uint32 {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_UNSIGNED_INTEGER, ($addr), $sizeof{ &uint32_t}));
    }' unless defined(&OSSL_PARAM_uint32);
    eval 'sub OSSL_PARAM_int64 {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_INTEGER, ($addr), $sizeof{ &int64_t}));
    }' unless defined(&OSSL_PARAM_int64);
    eval 'sub OSSL_PARAM_uint64 {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_UNSIGNED_INTEGER, ($addr), $sizeof{ &uint64_t}));
    }' unless defined(&OSSL_PARAM_uint64);
    eval 'sub OSSL_PARAM_size_t {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_UNSIGNED_INTEGER, ($addr), $sizeof{\'size_t\'}));
    }' unless defined(&OSSL_PARAM_size_t);
    eval 'sub OSSL_PARAM_time_t {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_INTEGER, ($addr), $sizeof{ &time_t}));
    }' unless defined(&OSSL_PARAM_time_t);
    eval 'sub OSSL_PARAM_double {
        my($key, $addr) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_REAL, ($addr), $sizeof{\'double\'}));
    }' unless defined(&OSSL_PARAM_double);
    eval 'sub OSSL_PARAM_BN {
        my($key, $bn, $sz) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_UNSIGNED_INTEGER, ($bn), ($sz)));
    }' unless defined(&OSSL_PARAM_BN);
    eval 'sub OSSL_PARAM_utf8_string {
        my($key, $addr, $sz) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_UTF8_STRING, ($addr), $sz));
    }' unless defined(&OSSL_PARAM_utf8_string);
    eval 'sub OSSL_PARAM_octet_string {
        my($key, $addr, $sz) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_OCTET_STRING, ($addr), $sz));
    }' unless defined(&OSSL_PARAM_octet_string);
    eval 'sub OSSL_PARAM_utf8_ptr {
        my($key, $addr, $sz) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_UTF8_PTR, ($addr), $sz));
    }' unless defined(&OSSL_PARAM_utf8_ptr);
    eval 'sub OSSL_PARAM_octet_ptr {
        my($key, $addr, $sz) = @_;
	    eval q( &OSSL_PARAM_DEFN(($key),  &OSSL_PARAM_OCTET_PTR, ($addr), $sz));
    }' unless defined(&OSSL_PARAM_octet_ptr);
    if(defined(&__cplusplus)) {
    }
}
1;
