[runtime] Remove duplicate merp invoke line (#12036)
[mono-project.git] / mono / btls / btls-bio.h
blob34d0014ef853eb2aac684e66bb7b6a714d2ad529
1 //
2 // btls-bio.h
3 // MonoBtls
4 //
5 // Created by Martin Baulig on 14/11/15.
6 // Copyright (c) 2015 Xamarin. All rights reserved.
7 //
9 #ifndef __btls__btls_bio__
10 #define __btls__btls_bio__
12 #include <stdio.h>
13 #include "btls-ssl.h"
15 typedef enum {
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);
23 MONO_API BIO *
24 mono_btls_bio_mono_new (void);
26 MONO_API void
27 mono_btls_bio_mono_initialize (BIO *bio, const void *instance,
28 MonoBtlsReadFunc read_func, MonoBtlsWriteFunc write_func,
29 MonoBtlsControlFunc control_func);
31 MONO_API int
32 mono_btls_bio_read (BIO *bio, void *data, int len);
34 MONO_API int
35 mono_btls_bio_write (BIO *bio, const void *data, int len);
37 MONO_API int
38 mono_btls_bio_flush (BIO *bio);
40 MONO_API int
41 mono_btls_bio_indent (BIO *bio, unsigned indent, unsigned max_indent);
43 MONO_API int
44 mono_btls_bio_hexdump (BIO *bio, const uint8_t *data, int len, unsigned indent);
46 MONO_API void
47 mono_btls_bio_print_errors (BIO *bio);
49 MONO_API void
50 mono_btls_bio_free (BIO *bio);
52 MONO_API BIO *
53 mono_btls_bio_mem_new (void);
55 MONO_API int
56 mono_btls_bio_mem_get_data (BIO *bio, void **data);
58 #endif /* defined(__btls__btls_bio__) */