mirror of
https://github.com/ipxe/ipxe
synced 2025-12-22 13:00:39 +03:00
Low-overhead filter streams
This commit is contained in:
44
src/include/gpxe/filter.h
Normal file
44
src/include/gpxe/filter.h
Normal file
@@ -0,0 +1,44 @@
|
||||
#ifndef _GPXE_FILTER_H
|
||||
#define _GPXE_FILTER_H
|
||||
|
||||
/** @file
|
||||
*
|
||||
* Filter streams
|
||||
*/
|
||||
|
||||
#include <gpxe/stream.h>
|
||||
|
||||
/** A filter stream */
|
||||
struct filter_stream {
|
||||
/** Upstream
|
||||
*
|
||||
* This is the end pointing towards the top-level application
|
||||
* (e.g. HTTP).
|
||||
*/
|
||||
struct stream_connection upstream;
|
||||
/** Downstream
|
||||
*
|
||||
* This is the end pointing towards the bottom-level
|
||||
* connection (e.g. TCP).
|
||||
*/
|
||||
struct stream_application downstream;
|
||||
};
|
||||
|
||||
extern void filter_connected ( struct stream_application *app );
|
||||
extern void filter_closed ( struct stream_application *app, int rc );
|
||||
extern void filter_senddata ( struct stream_application *app,
|
||||
void *data, size_t len );
|
||||
extern void filter_acked ( struct stream_application *app, size_t len );
|
||||
extern void filter_newdata ( struct stream_application *app,
|
||||
void *data, size_t len );
|
||||
|
||||
extern int filter_bind ( struct stream_connection *conn,
|
||||
struct sockaddr *local );
|
||||
extern int filter_connect ( struct stream_connection *conn,
|
||||
struct sockaddr *peer );
|
||||
extern void filter_close ( struct stream_connection *conn );
|
||||
extern int filter_send ( struct stream_connection *conn,
|
||||
void *data, size_t len );
|
||||
extern int filter_kick ( struct stream_connection *conn );
|
||||
|
||||
#endif /* _GPXE_FILTER_H */
|
||||
Reference in New Issue
Block a user