RSA BSAFE Cert-C Micro Edition

The power of PKI for the smallest of devices

BIO Reference

This structure contains the data and BIO method structure.

#include <bio.h>

struct bio_st
{
    /** A pointer to the structure with the BIO method functions. */
    BIO_METHOD *method;

    /**
     * The user-defined callback called before and after method functions when
     * accessed through the <tt>BIO_xxx</tt> functions.
     *
     * @param  bio  [In]  A reference to the #BIO.
     * @param  mode [In]  The bit field which gives the function and the
     *                    return flag.
     * @param  argp [In]  The general pointer value for the callback.
     * @param  argi [In]  The general integer value for the callback.
     * @param  argl [In]  The general long value for the callback.
     * @param  ret  [In]  The current return status of the method.
     */
    BIO_CB_FUNC_T *callback;

    /** A pointer to user-supplied data for the callback function. */
    char *cb_arg; /* first argument for the callback */

    /**
     * The flag indicating whether the BIO is correctly initialized. <br>
     * This flag must be set before the <tt>bread</tt>, <tt>bwrite</tt>, 
     * <tt>bgets</tt>, and <tt>bputs</tt> methods will work.<br>
     *
     * 0 indicates BIO is not initialized. 1 indicates BIO is initialized.
     */
    int init;

    /**
     * The flag indicating whether the underlying connection, such as a socket,
     * should be closed when the BIO is freed. <br>
     * See @ref BIO_SHUTDOWN_DEF for valid values.
     */
    int shutdown;

    /** A bit field storing values for the BIO state. */
    int flags;

    /** The reason behind a retry of read or write. */
    int retry_reason;

    /** An integer field for BIO data. */
    int num;

    /**
     * A pointer for BIO data. May be a single value or a local
     * context structure.
     */
    char *ptr;

    /**
     * The next BIO in the stack (that is, one element lower).
     * This is used by filter BIOs.
     */
    struct bio_st *next_bio;

    /**
     * The previous BIO in the stack (that is, one element higher).
     * This is used by filter BIOs.
     */
    struct bio_st *prev_bio;        /* used by filter BIOs */

    /**
     * The number of references to this BIO. This value is decremented by 
     * free. If the value becomes 0, the structure is also removed.
     */
    int references;

    /** The number of Bytes read by the BIO. */
    unsigned long num_read;

    /** The number of Bytes written by the BIO. */
    unsigned long num_write;

    /** A pointer to external data. */
    CRYPTO_EX_DATA *ex_data;
};

Data Fields

BIO_METHODmethod
 A pointer to the structure with the BIO method functions.

BIO_CB_FUNC_Tcallback
 The user-defined callback called before and after method functions when accessed through the BIO_xxx functions. More...

char* cb_arg
 A pointer to user-supplied data for the callback function.

int init
 The flag indicating whether the BIO is correctly initialized. More...

int shutdown
 The flag indicating whether the underlying connection, such as a socket, should be closed when the BIO is freed. More...

int flags
 A bit field storing values for the BIO state.

int retry_reason
 The reason behind a retry of read or write.

int num
 An integer field for BIO data.

char* ptr
 A pointer for BIO data. More...

struct bio_st* next_bio
 The next BIO in the stack (that is, one element lower). More...

struct bio_st* prev_bio
 The previous BIO in the stack (that is, one element higher). More...

int references
 The number of references to this BIO. More...

unsigned long num_read
 The number of Bytes read by the BIO.

unsigned long num_write
 The number of Bytes written by the BIO.

CRYPTO_EX_DATA* ex_data
 A pointer to external data.


Field Documentation

BIO_CB_FUNC_T* callback
 

The user-defined callback called before and after method functions when accessed through the BIO_xxx functions.

Parameters:
bio [In] A reference to the BIO.
mode [In] The bit field which gives the function and the return flag.
argp [In] The general pointer value for the callback.
argi [In] The general integer value for the callback.
argl [In] The general long value for the callback.
ret [In] The current return status of the method.

int init
 

The flag indicating whether the BIO is correctly initialized.
This flag must be set before the bread, bwrite, bgets, and bputs methods will work.

0 indicates BIO is not initialized. 1 indicates BIO is initialized.

struct bio_st* next_bio
 

The next BIO in the stack (that is, one element lower). This is used by filter BIOs.

struct bio_st* prev_bio
 

The previous BIO in the stack (that is, one element higher). This is used by filter BIOs.

char* ptr
 

A pointer for BIO data. May be a single value or a local context structure.

int references
 

The number of references to this BIO. This value is decremented by free. If the value becomes 0, the structure is also removed.

int shutdown
 

The flag indicating whether the underlying connection, such as a socket, should be closed when the BIO is freed.
See Shutdown Identifiers for valid values.


Copyright (c) 1999-2002 RSA Security Inc. All rights reserved. 061-001005-150-001-000-3768 - 1.5