1 /* 2 * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10 #include <openssl/bio.h> 11 12 struct bio_method_st { 13 int type; 14 char *name; 15 int (*bwrite) (BIO *, const char *, size_t, size_t *); 16 int (*bwrite_old) (BIO *, const char *, int); 17 int (*bread) (BIO *, char *, size_t, size_t *); 18 int (*bread_old) (BIO *, char *, int); 19 int (*bputs) (BIO *, const char *); 20 int (*bgets) (BIO *, char *, int); 21 long (*ctrl) (BIO *, int, long, void *); 22 int (*create) (BIO *); 23 int (*destroy) (BIO *); 24 long (*callback_ctrl) (BIO *, int, BIO_info_cb *); 25 }; 26 27 void bio_free_ex_data(BIO *bio); 28 void bio_cleanup(void); 29 30 31 /* Old style to new style BIO_METHOD conversion functions */ 32 int bwrite_conv(BIO *bio, const char *data, size_t datal, size_t *written); 33 int bread_conv(BIO *bio, char *data, size_t datal, size_t *read); 34