• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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