diff --git a/include/pico_protocol.h b/include/pico_protocol.h index c6605fe6..07bb15a9 100644 --- a/include/pico_protocol.h +++ b/include/pico_protocol.h @@ -134,4 +134,9 @@ int pico_protocol_network_loop(struct pico_stack *S, int loop_score, int directi int pico_protocol_transport_loop(struct pico_stack *S, int loop_score, int direction); int pico_protocol_socket_loop(struct pico_stack *S, int loop_score, int direction); +#ifdef PICO_SUPPORT_TICKLESS +void proto_full_loop_in(struct pico_stack *S, void *arg); +void proto_full_loop_out(struct pico_stack *S, void *arg); +#endif + #endif diff --git a/include/pico_stack.h b/include/pico_stack.h index 8512c4d3..aa7a2087 100644 --- a/include/pico_stack.h +++ b/include/pico_stack.h @@ -76,8 +76,8 @@ struct arp_service_ipconflict { #ifdef PICO_SUPPORT_TICKLESS #define ATTACH_QUEUES_LISTENERS(St, pname, P) \ do { \ - pico_queue_register_listener(St, &((St->q_ ## pname.in, proto_full_loop_in, P); \ - pico_queue_register_listener(St, &((St->q_ ## pname.out, proto_full_loop_out, P); \ + pico_queue_register_listener((St), &((St)->q_ ## pname.in), proto_full_loop_in, &(P)); \ + pico_queue_register_listener((St), &((St)->q_ ## pname.out), proto_full_loop_out, &(P)); \ } while(0) #else #define ATTACH_QUEUES_LISTENERS(St, pname, P) do {} while(0) diff --git a/stack/pico_protocol.c b/stack/pico_protocol.c index 81450d30..814848b7 100644 --- a/stack/pico_protocol.c +++ b/stack/pico_protocol.c @@ -73,7 +73,7 @@ static int proto_loop_out(struct pico_stack *S, struct pico_protocol *proto, int } #ifdef PICO_SUPPORT_TICKLESS -static void proto_full_loop_in(struct pico_stack *S, void *arg) +void proto_full_loop_in(struct pico_stack *S, void *arg) { struct pico_protocol *proto = (struct pico_protocol *)arg; struct pico_frame *f; @@ -86,7 +86,7 @@ static void proto_full_loop_in(struct pico_stack *S, void *arg) } } -static void proto_full_loop_out(struct pico_stack *S, void *arg) +void proto_full_loop_out(struct pico_stack *S, void *arg) { struct pico_protocol *proto = (struct pico_protocol *)arg; struct pico_frame *f;