1
/* ------------------------------------------------------------
4
* Go runtime code for the various generated files.
5
* ------------------------------------------------------------ */
12
typedef struct { char *p; int n; } _gostring_;
13
typedef struct { void* array; unsigned int len; unsigned int cap; } _goslice_;
18
/* Boilerplate for C/C++ code when using 6g/8g. This code is compiled
22
#define swiggo_size_assert_eq(x, y, name) typedef char name[(x-y)*(x-y)*-2+1];
23
#define swiggo_size_assert(t, n) swiggo_size_assert_eq(sizeof(t), n, swiggo_sizeof_##t##_is_not_##n)
25
swiggo_size_assert(char, 1)
26
swiggo_size_assert(short, 2)
27
swiggo_size_assert(int, 4)
28
typedef long long swiggo_long_long;
29
swiggo_size_assert(swiggo_long_long, 8)
30
swiggo_size_assert(float, 4)
31
swiggo_size_assert(double, 8)
37
void crosscall2(void (*fn)(void *, int), void *, int);
43
void _swig_gc_allocate(void *, int);
44
static void *_swig_allocate(int len) {
50
crosscall2(_swig_gc_allocate, &a, (int) sizeof a);
58
void _swig_gc_makegostring(void *, int);
59
static _gostring_ _swig_makegostring(const char *p, size_t l) {
67
crosscall2(_swig_gc_makegostring, &a, (int) sizeof a);
75
void _swig_gc_gopanic(void *, int);
76
static void _swig_gopanic(const char *p) {
83
crosscall2(_swig_gc_gopanic, &a, (int) sizeof a);
88
/* Boilerplate for C code when using 6g/8g. This code is compiled
94
#pragma dynimport initcgo initcgo "libcgo.so"
95
#pragma dynimport libcgo_thread_start libcgo_thread_start "libcgo.so"
96
#pragma dynimport libcgo_set_scheduler libcgo_set_scheduler "libcgo.so"
99
#define SWIG_PARM_SIZE 8
101
#define SWIG_PARM_SIZE 4
105
/* 6g/8g C boilerplate that is only needed once in a program. This
106
only gets added to the file if nothing is imported. */
109
extern void ·_swig_internal_allocate(void);
110
#pragma dynexport _swig_gc_allocate _swig_gc_allocate
111
void _swig_gc_allocate(void *a, int32 n) {
112
cgocallback(·_swig_internal_allocate, a, n);
115
void ·_swig_allocatememory(int32 len, byte *ret) {
120
extern void ·_swig_internal_makegostring(void);
121
#pragma dynexport _swig_gc_makegostring _swig_gc_makegostring
122
void _swig_gc_makegostring(void *a, int32 n) {
123
cgocallback(·_swig_internal_makegostring, a, n);
126
void ·_swig_allocatestring(byte *p, int32 l, String ret) {
133
extern void ·_swig_internal_gopanic(void);
134
#pragma dynexport _swig_gc_gopanic _swig_gc_gopanic
135
void _swig_gc_gopanic(void *a, int32 n) {
136
cgocallback(·_swig_internal_gopanic, a, n);
141
/* Go code that is only needed once in a program. This is only added
142
to the file if nothing is imported. */
144
func _swig_allocatememory(int) *byte
145
func _swig_internal_allocate(len int) *byte {
146
return _swig_allocatememory(len)
149
func _swig_allocatestring(*byte, int) string
150
func _swig_internal_makegostring(p *byte, l int) string {
151
return _swig_allocatestring(p, l)
154
func _swig_internal_gopanic(p *byte, l int) {
155
panic(_swig_allocatestring(p, l))
161
/* Boilerplate for C/C++ code when using gccgo. */
169
void *__go_alloc (size_t);
171
static void *_swig_allocate(int len) {
172
return __go_alloc(len);
175
static _gostring_ _swig_makegostring(const char *p, size_t l) {
177
ret.p = (char*)__go_alloc(l);
187
void __go_panic_msg(const char *);
188
#define _swig_gopanic __go_panic_msg
195
#define SWIG_contract_assert(expr, msg) \
196
if (!(expr)) { _swig_gopanic(msg); } else