summaryrefslogtreecommitdiff
path: root/usbredirparser/usbredirparser.h
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2012-02-13 15:25:34 +0100
committerHans de Goede <hdegoede@redhat.com>2012-02-14 18:56:08 +0100
commit952d838efab53b2817a2783aa9ee31f6485a1a76 (patch)
tree6b764c176571c89faa53b9f0a3fac471fc2a9818 /usbredirparser/usbredirparser.h
parent79e2330bc5c7127d9bfaba3291a3aa3630fbd253 (diff)
Add a usb_redir_filter_filter packet
Make this conditional on the same cap as device_reject, rename the cap to usb_redir_cap_filter. Rename device_reject to filter_reject to reflect that it is filtering related and that the the cap and packet names are consistent with each other. Also cleanup some related comments / docs. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'usbredirparser/usbredirparser.h')
-rw-r--r--usbredirparser/usbredirparser.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/usbredirparser/usbredirparser.h b/usbredirparser/usbredirparser.h
index adf7919..aa37687 100644
--- a/usbredirparser/usbredirparser.h
+++ b/usbredirparser/usbredirparser.h
@@ -24,6 +24,7 @@
#include "usbredirproto.h"
struct usbredirparser;
+struct usbredirfilter_rule;
/* Called by a usbredirparser to log various messages */
enum { usbredirparser_none, usbredirparser_error, usbredirparser_warning,
@@ -64,7 +65,6 @@ typedef void (*usbredirparser_hello)(void *priv,
typedef void (*usbredirparser_device_connect)(void *priv,
struct usb_redir_device_connect_header *device_connect);
typedef void (*usbredirparser_device_disconnect)(void *priv);
-typedef void (*usbredirparser_device_reject)(void *priv);
typedef void (*usbredirparser_reset)(void *priv);
typedef void (*usbredirparser_interface_info)(void *priv,
struct usb_redir_interface_info_header *interface_info);
@@ -100,6 +100,10 @@ typedef void (*usbredirparser_free_bulk_streams)(void *priv,
typedef void (*usbredirparser_bulk_streams_status)(void *priv,
uint32_t id, struct usb_redir_bulk_streams_status_header *bulk_streams_status);
typedef void (*usbredirparser_cancel_data_packet)(void *priv, uint32_t id);
+typedef void (*usbredirparser_filter_reject)(void *priv);
+/* Note that the ownership of the rules array is passed on to the callback. */
+typedef void (*usbredirparser_filter_filter)(void *priv,
+ struct usbredirfilter_rule *rules, int rules_count);
/* Data packets:
@@ -167,7 +171,8 @@ struct usbredirparser {
/* usbredir 0.3.2 new control packet complete callbacks */
usbredirparser_hello hello_func;
/* usbredir 0.3.4 new control packet complete callbacks */
- usbredirparser_device_reject device_reject_func;
+ usbredirparser_filter_reject filter_reject_func;
+ usbredirparser_filter_filter filter_filter_func;
};
/* Allocate a usbredirparser, after this the app should set the callback app
@@ -245,7 +250,6 @@ uint32_t *usbredirparser_get_peer_caps(int *caps_len_ret);
void usbredirparser_send_device_connect(struct usbredirparser *parser,
struct usb_redir_device_connect_header *device_connect);
void usbredirparser_send_device_disconnect(struct usbredirparser *parser);
-void usbredirparser_send_device_reject(struct usbredirparser *parser);
void usbredirparser_send_reset(struct usbredirparser *parser);
void usbredirparser_send_interface_info(struct usbredirparser *parser,
struct usb_redir_interface_info_header *interface_info);
@@ -297,6 +301,9 @@ void usbredirparser_send_bulk_streams_status(struct usbredirparser *parser,
struct usb_redir_bulk_streams_status_header *bulk_streams_status);
void usbredirparser_send_cancel_data_packet(struct usbredirparser *parser,
uint32_t id);
+void usbredirparser_send_filter_reject(struct usbredirparser *parser);
+void usbredirparser_send_filter_filter(struct usbredirparser *parser,
+ struct usbredirfilter_rule *rules, int rules_count);
/* Data packets: */
void usbredirparser_send_control_packet(struct usbredirparser *parser,
uint32_t id,