5 // Created by Martin Baulig on 14/11/15.
6 // Copyright (c) 2015 Xamarin. All rights reserved.
9 #ifndef __btls__btls_bio__
10 #define __btls__btls_bio__
16 MONO_BTLS_CONTROL_COMMAND_FLUSH
= 1
17 } MonoBtlsControlCommand
;
19 typedef int (* MonoBtlsReadFunc
) (const void *instance
, const void *buf
, int size
, int *wantMore
);
20 typedef int (* MonoBtlsWriteFunc
) (const void *instance
, const void *buf
, int size
);
21 typedef int64_t (* MonoBtlsControlFunc
) (const void *instance
, MonoBtlsControlCommand command
, int64_t arg
);
24 mono_btls_bio_mono_new (void);
27 mono_btls_bio_mono_initialize (BIO
*bio
, const void *instance
,
28 MonoBtlsReadFunc read_func
, MonoBtlsWriteFunc write_func
,
29 MonoBtlsControlFunc control_func
);
32 mono_btls_bio_read (BIO
*bio
, void *data
, int len
);
35 mono_btls_bio_write (BIO
*bio
, const void *data
, int len
);
38 mono_btls_bio_flush (BIO
*bio
);
41 mono_btls_bio_indent (BIO
*bio
, unsigned indent
, unsigned max_indent
);
44 mono_btls_bio_hexdump (BIO
*bio
, const uint8_t *data
, int len
, unsigned indent
);
47 mono_btls_bio_print_errors (BIO
*bio
);
50 mono_btls_bio_free (BIO
*bio
);
53 mono_btls_bio_mem_new (void);
56 mono_btls_bio_mem_get_data (BIO
*bio
, void **data
);
58 #endif /* defined(__btls__btls_bio__) */