[Spice-devel] [PATCH v3 11/14] server/red_worker: renames to add channel_ prefix and consistent sig
Alon Levy
alevy at redhat.com
Fri Feb 11 04:43:54 PST 2011
s/disconnect_channel_proc/channel_disconnect_proc/
s/release_item_proc/channel_release_pipe_item_proc/
s/handle_message_proc/channel_handle_parsed_proc/
Adds RedChannel* channel as first parameter to hold_pipe_item_proc
---
server/red_worker.c | 41 +++++++++++++++++++++--------------------
1 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c
index 1574b99..2cf3031 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -348,10 +348,10 @@ typedef struct LocalCursor {
#define PALETTE_CACHE_HASH_KEY(id) ((id) & PALETTE_CACHE_HASH_MASK)
typedef struct RedChannel RedChannel;
-typedef void (*disconnect_channel_proc)(RedChannel *channel);
-typedef void (*hold_pipe_item_proc)(PipeItem *item);
-typedef void (*release_item_proc)(RedChannel *channel, void *item);
-typedef int (*handle_message_proc)(RedChannel *channel, size_t size, uint32_t type, void *message);
+typedef void (*channel_disconnect_proc)(RedChannel *channel);
+typedef void (*channel_hold_pipe_item_proc)(RedChannel *channel, PipeItem *item);
+typedef void (*channel_release_pipe_item_proc)(RedChannel *channel, void *item);
+typedef int (*channel_handle_parsed_proc)(RedChannel *channel, uint32_t size, uint16_t type, void *message);
struct RedChannel {
spice_parse_channel_func_t parser;
@@ -385,10 +385,11 @@ struct RedChannel {
uint8_t *end;
} recive_data;
- disconnect_channel_proc disconnect;
- hold_pipe_item_proc hold_item;
- release_item_proc release_item;
- handle_message_proc handle_message;
+ channel_disconnect_proc disconnect;
+ channel_hold_pipe_item_proc hold_item;
+ channel_release_pipe_item_proc release_item;
+ channel_handle_parsed_proc handle_parsed;
+
#ifdef RED_STATISTICS
uint64_t *out_bytes_counter;
#endif
@@ -1179,7 +1180,7 @@ static void show_draw_item(RedWorker *worker, DrawItem *draw_item, const char *p
static void red_channel_init_send_data(RedChannel *channel, uint16_t type, PipeItem *item)
{
if (item) {
- channel->hold_item(item);
+ channel->hold_item(channel, item);
ASSERT(channel->send_data.item == NULL);
channel->send_data.item = item;
}
@@ -8940,7 +8941,7 @@ static void on_new_display_channel(RedWorker *worker)
}
}
-static int channel_handle_message(RedChannel *channel, size_t size, uint32_t type, void *message)
+static int channel_handle_message(RedChannel *channel, uint32_t size, uint16_t type, void *message)
{
switch (type) {
case SPICE_MSGC_ACK_SYNC:
@@ -9247,7 +9248,7 @@ static int display_channel_handle_migrate_data(DisplayChannel *channel, size_t s
return TRUE;
}
-static int display_channel_handle_message(RedChannel *channel, size_t size, uint32_t type, void *message)
+static int display_channel_handle_message(RedChannel *channel, uint32_t size, uint16_t type, void *message)
{
switch (type) {
case SPICE_MSGC_DISPLAY_INIT:
@@ -9315,7 +9316,7 @@ static void red_receive(RedChannel *channel)
return;
}
- if (!channel->handle_message(channel, parsed_size, header->type, parsed)) {
+ if (!channel->handle_parsed(channel, parsed_size, header->type, parsed)) {
free(parsed);
channel->disconnect(channel);
return;
@@ -9348,10 +9349,10 @@ static void free_common_channel_from_listener(EventListener *ctx)
static RedChannel *__new_channel(RedWorker *worker, int size, uint32_t channel_id,
RedsStreamContext *peer, int migrate,
event_listener_action_proc handler,
- disconnect_channel_proc disconnect,
- hold_pipe_item_proc hold_item,
- release_item_proc release_item,
- handle_message_proc handle_message)
+ channel_disconnect_proc disconnect,
+ channel_hold_pipe_item_proc hold_item,
+ channel_release_pipe_item_proc release_item,
+ channel_handle_parsed_proc handle_parsed)
{
struct epoll_event event;
RedChannel *channel;
@@ -9386,7 +9387,7 @@ static RedChannel *__new_channel(RedWorker *worker, int size, uint32_t channel_i
channel->disconnect = disconnect;
channel->hold_item = hold_item;
channel->release_item = release_item;
- channel->handle_message = handle_message;
+ channel->handle_parsed = handle_parsed;
channel->peer = peer;
common->worker = worker;
channel->ack_data.messages_window = ~0; // blocks send message (maybe use send_data.blocked +
@@ -9433,7 +9434,7 @@ static void handle_channel_events(EventListener *in_listener, uint32_t events)
}
}
-static void display_channel_hold_pipe_item(PipeItem *item)
+static void display_channel_hold_pipe_item(RedChannel *channel, PipeItem *item)
{
ASSERT(item);
switch (item->type) {
@@ -9592,7 +9593,7 @@ static void on_new_cursor_channel(RedWorker *worker)
}
}
-static void cursor_channel_hold_pipe_item(PipeItem *item)
+static void cursor_channel_hold_pipe_item(RedChannel *channel, PipeItem *item)
{
ASSERT(item);
((CursorItem *)item)->refs++;
@@ -9725,7 +9726,7 @@ static void red_wait_pipe_item_sent(RedChannel *channel, PipeItem *item)
red_printf("");
common = SPICE_CONTAINEROF(channel, CommonChannel, base);
red_ref_channel(channel);
- channel->hold_item(item);
+ channel->hold_item(channel, item);
end_time = red_now() + CHANNEL_PUSH_TIMEOUT;
--
1.7.4
More information about the Spice-devel
mailing list