//go:cgo_ldflag "-Wl,-O1"
//go:cgo_ldflag "-Wl,--sort-common"
//go:cgo_ldflag "-Wl,--as-needed"
//go:cgo_ldflag "-Wl,-z,relro"
//go:cgo_ldflag "-Wl,-z,now"
//go:cgo_ldflag "-Wl,-z,pack-relative-relocs"
//go:cgo_ldflag "-ldl"
// Code generated by cmd/cgo; DO NOT EDIT.

package cgo

import "unsafe"

import "syscall"

import _cgopackage "runtime/cgo"

type _ _cgopackage.Incomplete
var _ syscall.Errno
func _Cgo_ptr(ptr unsafe.Pointer) unsafe.Pointer { return ptr }

//go:linkname _Cgo_always_false runtime.cgoAlwaysFalse
var _Cgo_always_false bool
//go:linkname _Cgo_use runtime.cgoUse
func _Cgo_use(interface{})
//go:linkname _Cgo_keepalive runtime.cgoKeepAlive
//go:noescape
func _Cgo_keepalive(interface{})
//go:linkname _Cgo_no_callback runtime.cgoNoCallback
func _Cgo_no_callback(bool)
type _Ctype__GoString_ string

type _Ctype_char int8

type _Ctype_int int32

type _Ctype_intgo = _Ctype_ptrdiff_t

type _Ctype_long int64

type _Ctype_ptrdiff_t = _Ctype_long

type _Ctype_void [0]byte

//go:linkname _cgo_runtime_cgocall runtime.cgocall
func _cgo_runtime_cgocall(unsafe.Pointer, uintptr) int32

//go:linkname _cgoCheckPointer runtime.cgoCheckPointer
//go:noescape
func _cgoCheckPointer(interface{}, interface{})

//go:linkname _cgoCheckResult runtime.cgoCheckResult
//go:noescape
func _cgoCheckResult(interface{})
//go:linkname __cgo_dlclose dlclose
//go:cgo_import_static dlclose
var __cgo_dlclose byte
var _Cfpvar_fp_dlclose unsafe.Pointer = (unsafe.Pointer)(unsafe.Pointer(&__cgo_dlclose))
//go:linkname __cgo_dlerror dlerror
//go:cgo_import_static dlerror
var __cgo_dlerror byte
var _Cfpvar_fp_dlerror unsafe.Pointer = (unsafe.Pointer)(unsafe.Pointer(&__cgo_dlerror))
//go:linkname __cgo_dlopen dlopen
//go:cgo_import_static dlopen
var __cgo_dlopen byte
var _Cfpvar_fp_dlopen unsafe.Pointer = (unsafe.Pointer)(unsafe.Pointer(&__cgo_dlopen))
//go:linkname __cgo_dlsym dlsym
//go:cgo_import_static dlsym
var __cgo_dlsym byte
var _Cfpvar_fp_dlsym unsafe.Pointer = (unsafe.Pointer)(unsafe.Pointer(&__cgo_dlsym))


// CString converts the Go string s to a C string.
//
// The C string is allocated in the C heap using malloc.
// It is the caller's responsibility to arrange for it to be
// freed, such as by calling C.free (be sure to include stdlib.h
// if C.free is needed).
func _Cfunc_CString(s string) *_Ctype_char {
	if len(s)+1 <= 0 {
		panic("string too large")
	}
	p := _cgo_cmalloc(uint64(len(s)+1))
	sliceHeader := struct {
		p   unsafe.Pointer
		len int
		cap int
	}{p, len(s)+1, len(s)+1}
	b := *(*[]byte)(unsafe.Pointer(&sliceHeader))
	copy(b, s)
	b[len(s)] = 0
	return (*_Ctype_char)(p)
}

//go:linkname _cgo_runtime_gostring runtime.gostring
func _cgo_runtime_gostring(*_Ctype_char) string

// GoString converts the C string p into a Go string.
func _Cfunc_GoString(p *_Ctype_char) string {
	return _cgo_runtime_gostring(p)
}
//go:cgo_import_static _cgo_cca57ae2809e_Cfunc_dlclose
//go:linkname __cgofn__cgo_cca57ae2809e_Cfunc_dlclose _cgo_cca57ae2809e_Cfunc_dlclose
var __cgofn__cgo_cca57ae2809e_Cfunc_dlclose byte
var _cgo_cca57ae2809e_Cfunc_dlclose = unsafe.Pointer(&__cgofn__cgo_cca57ae2809e_Cfunc_dlclose)

//go:cgo_unsafe_args
func _Cfunc_dlclose(p0 unsafe.Pointer) (r1 _Ctype_int) {
	_cgo_runtime_cgocall(_cgo_cca57ae2809e_Cfunc_dlclose, uintptr(unsafe.Pointer(&p0)))
	if _Cgo_always_false {
		_Cgo_use(p0)
	}
	return
}
//go:cgo_import_static _cgo_cca57ae2809e_Cfunc_dlerror
//go:linkname __cgofn__cgo_cca57ae2809e_Cfunc_dlerror _cgo_cca57ae2809e_Cfunc_dlerror
var __cgofn__cgo_cca57ae2809e_Cfunc_dlerror byte
var _cgo_cca57ae2809e_Cfunc_dlerror = unsafe.Pointer(&__cgofn__cgo_cca57ae2809e_Cfunc_dlerror)

//go:cgo_unsafe_args
func _Cfunc_dlerror() (r1 *_Ctype_char) {
	_cgo_runtime_cgocall(_cgo_cca57ae2809e_Cfunc_dlerror, uintptr(unsafe.Pointer(&r1)))
	return
}
//go:cgo_import_static _cgo_cca57ae2809e_Cfunc_dlopen
//go:linkname __cgofn__cgo_cca57ae2809e_Cfunc_dlopen _cgo_cca57ae2809e_Cfunc_dlopen
var __cgofn__cgo_cca57ae2809e_Cfunc_dlopen byte
var _cgo_cca57ae2809e_Cfunc_dlopen = unsafe.Pointer(&__cgofn__cgo_cca57ae2809e_Cfunc_dlopen)

//go:cgo_unsafe_args
func _Cfunc_dlopen(p0 *_Ctype_char, p1 _Ctype_int) (r1 unsafe.Pointer) {
	_cgo_runtime_cgocall(_cgo_cca57ae2809e_Cfunc_dlopen, uintptr(unsafe.Pointer(&p0)))
	if _Cgo_always_false {
		_Cgo_use(p0)
		_Cgo_use(p1)
	}
	return
}
//go:cgo_import_static _cgo_cca57ae2809e_Cfunc_dlsym
//go:linkname __cgofn__cgo_cca57ae2809e_Cfunc_dlsym _cgo_cca57ae2809e_Cfunc_dlsym
var __cgofn__cgo_cca57ae2809e_Cfunc_dlsym byte
var _cgo_cca57ae2809e_Cfunc_dlsym = unsafe.Pointer(&__cgofn__cgo_cca57ae2809e_Cfunc_dlsym)

//go:cgo_unsafe_args
func _Cfunc_dlsym(p0 unsafe.Pointer, p1 *_Ctype_char) (r1 unsafe.Pointer) {
	_cgo_runtime_cgocall(_cgo_cca57ae2809e_Cfunc_dlsym, uintptr(unsafe.Pointer(&p0)))
	if _Cgo_always_false {
		_Cgo_use(p0)
		_Cgo_use(p1)
	}
	return
}
//go:cgo_import_static _cgo_cca57ae2809e_Cfunc_free
//go:linkname __cgofn__cgo_cca57ae2809e_Cfunc_free _cgo_cca57ae2809e_Cfunc_free
var __cgofn__cgo_cca57ae2809e_Cfunc_free byte
var _cgo_cca57ae2809e_Cfunc_free = unsafe.Pointer(&__cgofn__cgo_cca57ae2809e_Cfunc_free)

//go:cgo_unsafe_args
func _Cfunc_free(p0 unsafe.Pointer) (r1 _Ctype_void) {
	_cgo_runtime_cgocall(_cgo_cca57ae2809e_Cfunc_free, uintptr(unsafe.Pointer(&p0)))
	if _Cgo_always_false {
		_Cgo_use(p0)
	}
	return
}

//go:cgo_import_static _cgo_cca57ae2809e_Cfunc__Cmalloc
//go:linkname __cgofn__cgo_cca57ae2809e_Cfunc__Cmalloc _cgo_cca57ae2809e_Cfunc__Cmalloc
var __cgofn__cgo_cca57ae2809e_Cfunc__Cmalloc byte
var _cgo_cca57ae2809e_Cfunc__Cmalloc = unsafe.Pointer(&__cgofn__cgo_cca57ae2809e_Cfunc__Cmalloc)

//go:linkname runtime_throw runtime.throw
func runtime_throw(string)

//go:cgo_unsafe_args
func _cgo_cmalloc(p0 uint64) (r1 unsafe.Pointer) {
	_cgo_runtime_cgocall(_cgo_cca57ae2809e_Cfunc__Cmalloc, uintptr(unsafe.Pointer(&p0)))
	if r1 == nil {
		runtime_throw("runtime: C malloc failed")
	}
	return
}
