mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
111 lines
2.6 KiB
C
111 lines
2.6 KiB
C
/* Code generated by cmd/cgo; DO NOT EDIT. */
|
|
|
|
/* package command-line-arguments */
|
|
|
|
|
|
#line 1 "cgo-builtin-export-prolog"
|
|
|
|
#include <stddef.h>
|
|
|
|
#ifndef GO_CGO_EXPORT_PROLOGUE_H
|
|
#define GO_CGO_EXPORT_PROLOGUE_H
|
|
|
|
#ifndef GO_CGO_GOSTRING_TYPEDEF
|
|
typedef struct { const char *p; ptrdiff_t n; } _GoString_;
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/* Start of preamble from import "C" comments. */
|
|
|
|
|
|
#line 3 "lib.go"
|
|
|
|
#include <stdint.h>
|
|
#include <sys/socket.h>
|
|
|
|
typedef struct {
|
|
size_t index;
|
|
int ip;
|
|
int port;
|
|
} Tunnel;
|
|
|
|
// next - is pointer to class instance or callback to call method from node code
|
|
typedef void (*RecvCallback)(void* next, uint8_t* data, size_t num);
|
|
|
|
typedef void (*ReinitCallback)(void* next, struct sockaddr* data);
|
|
|
|
|
|
// we need it because we cannot call C func by pointer directly from go
|
|
static inline void on_recv_batch_ready(RecvCallback cb, void* next, void* data, size_t num) {
|
|
cb(next, (uint8_t*)data, num);
|
|
}
|
|
|
|
static inline void on_reinit(ReinitCallback cb, void* next, void* data) {
|
|
cb(next, (struct sockaddr*)data);
|
|
}
|
|
|
|
#line 1 "cgo-generated-wrapper"
|
|
|
|
|
|
/* End of preamble from import "C" comments. */
|
|
|
|
|
|
/* Start of boilerplate cgo prologue. */
|
|
#line 1 "cgo-gcc-export-header-prolog"
|
|
|
|
#ifndef GO_CGO_PROLOGUE_H
|
|
#define GO_CGO_PROLOGUE_H
|
|
|
|
typedef signed char GoInt8;
|
|
typedef unsigned char GoUint8;
|
|
typedef short GoInt16;
|
|
typedef unsigned short GoUint16;
|
|
typedef int GoInt32;
|
|
typedef unsigned int GoUint32;
|
|
typedef long long GoInt64;
|
|
typedef unsigned long long GoUint64;
|
|
typedef GoInt64 GoInt;
|
|
typedef GoUint64 GoUint;
|
|
typedef size_t GoUintptr;
|
|
typedef float GoFloat32;
|
|
typedef double GoFloat64;
|
|
#ifdef _MSC_VER
|
|
#include <complex.h>
|
|
typedef _Fcomplex GoComplex64;
|
|
typedef _Dcomplex GoComplex128;
|
|
#else
|
|
typedef float _Complex GoComplex64;
|
|
typedef double _Complex GoComplex128;
|
|
#endif
|
|
|
|
/*
|
|
static assertion to make sure the file is being used on architecture
|
|
at least with matching size of GoInt.
|
|
*/
|
|
typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
|
|
|
|
#ifndef GO_CGO_GOSTRING_TYPEDEF
|
|
typedef _GoString_ GoString;
|
|
#endif
|
|
typedef void *GoMap;
|
|
typedef void *GoChan;
|
|
typedef struct { void *t; void *v; } GoInterface;
|
|
typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
|
|
|
|
#endif
|
|
|
|
/* End of boilerplate cgo prologue. */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
//goland:noinspection ALL
|
|
extern Tunnel PrepareTunnel(RecvCallback onRecv, ReinitCallback onReinit, void* nextOnRecv, void* nextOnReinit, char* configJson, int configJsonLen, char* networkConfigJson, int networkConfigJsonLen);
|
|
extern int WriteTunnel(size_t tunIdx, uint8_t* data, size_t num);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|