#include <stddef.h>
#include <gpxe/xfer.h>
Go to the source code of this file.
Data Structures | |
| struct | xfer_filter_half |
| Half of a data transfer filter. More... | |
Functions | |
| FILE_LICENCE (GPL2_OR_LATER) | |
| static | __attribute__ ((always_inline)) struct xfer_interface *filter_other_half(struct xfer_interface *xfer) |
| Get data transfer interface for the other half of a data transfer filter. | |
| void | filter_close (struct xfer_interface *xfer, int rc) |
| int | filter_vredirect (struct xfer_interface *xfer, int type, va_list args) |
| size_t | filter_window (struct xfer_interface *xfer) |
| struct io_buffer * | filter_alloc_iob (struct xfer_interface *xfer, size_t len) |
| int | filter_deliver_iob (struct xfer_interface *xfer, struct io_buffer *iobuf, struct xfer_metadata *meta) |
| int | filter_deliver_raw (struct xfer_interface *xfer, const void *data, size_t len) |
| static void | filter_init (struct xfer_filter_half *left, struct xfer_interface_operations *left_op, struct xfer_filter_half *right, struct xfer_interface_operations *right_op, struct refcnt *refcnt) |
| Initialise a data transfer filter. | |
Definition in file filter.h.
| FILE_LICENCE | ( | GPL2_OR_LATER | ) |
| static __attribute__ | ( | (always_inline) | ) | [inline, static] |
Get data transfer interface for the other half of a data transfer filter.
| xfer | Data transfer interface |
| other | Other half's data transfer interface |
Definition at line 36 of file filter.h.
References container_of, xfer_filter_half::other, and xfer_filter_half::xfer.
00037 { 00038 struct xfer_filter_half *half = 00039 container_of ( xfer, struct xfer_filter_half, xfer ); 00040 return &half->other->xfer; 00041 }
| void filter_close | ( | struct xfer_interface * | xfer, | |
| int | rc | |||
| ) |
Definition at line 36 of file filter.c.
References xfer_close().
00036 { 00037 struct xfer_interface *other = filter_other_half ( xfer ); 00038 00039 xfer_close ( other, rc ); 00040 }
| int filter_vredirect | ( | struct xfer_interface * | xfer, | |
| int | type, | |||
| va_list | args | |||
| ) |
Definition at line 42 of file filter.c.
References xfer_vredirect().
00043 { 00044 struct xfer_interface *other = filter_other_half ( xfer ); 00045 00046 return xfer_vredirect ( other, type, args ); 00047 }
| size_t filter_window | ( | struct xfer_interface * | xfer | ) |
Definition at line 49 of file filter.c.
References xfer_window().
Referenced by tls_plainstream_window().
00049 { 00050 struct xfer_interface *other = filter_other_half ( xfer ); 00051 00052 return xfer_window ( other ); 00053 }
| struct io_buffer* filter_alloc_iob | ( | struct xfer_interface * | xfer, | |
| size_t | len | |||
| ) | [read] |
Definition at line 55 of file filter.c.
References xfer_alloc_iob().
00056 { 00057 struct xfer_interface *other = filter_other_half ( xfer ); 00058 00059 return xfer_alloc_iob ( other, len ); 00060 }
| int filter_deliver_iob | ( | struct xfer_interface * | xfer, | |
| struct io_buffer * | iobuf, | |||
| struct xfer_metadata * | meta | |||
| ) |
Definition at line 62 of file filter.c.
References xfer_deliver_iob_meta().
00063 { 00064 struct xfer_interface *other = filter_other_half ( xfer ); 00065 00066 return xfer_deliver_iob_meta ( other, iobuf, meta ); 00067 }
| int filter_deliver_raw | ( | struct xfer_interface * | xfer, | |
| const void * | data, | |||
| size_t | len | |||
| ) |
Definition at line 69 of file filter.c.
References xfer_deliver_raw().
00070 { 00071 struct xfer_interface *other = filter_other_half ( xfer ); 00072 00073 return xfer_deliver_raw ( other, data, len ); 00074 }
| static void filter_init | ( | struct xfer_filter_half * | left, | |
| struct xfer_interface_operations * | left_op, | |||
| struct xfer_filter_half * | right, | |||
| struct xfer_interface_operations * | right_op, | |||
| struct refcnt * | refcnt | |||
| ) | [inline, static] |
Initialise a data transfer filter.
| left | "Left" half of the filter | |
| left_op | Data transfer interface operations for "left" half | |
| right | "Right" half of the filter | |
| right_op | Data transfer interface operations for "right" half | |
| refcnt | Containing object reference counter, or NULL |
Definition at line 64 of file filter.h.
References xfer_filter_half::other, xfer_filter_half::xfer, and xfer_init().
Referenced by add_tls().
00068 { 00069 xfer_init ( &left->xfer, left_op, refcnt ); 00070 xfer_init ( &right->xfer, right_op, refcnt ); 00071 left->other = right; 00072 right->other = left; 00073 }
1.5.7.1